Files
th-hotel-simple/client/src/i18n/locales/zh-CN.ts
2026-07-22 09:39:31 +07:00

1027 lines
39 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export default {
app: {
name: 'Hotel OMS',
theme: '主题',
language: '语言',
navigationAria: '预订订单导航',
healthUp: '后端已连接',
healthDown: '后端未连接',
healthChecking: '检查中',
},
auth: {
loginTitle: '登录系统',
loginSubtitle: '使用系统账号进入 TH Hotel 预订处理工作台。',
username: '用户名',
password: '密码',
loginSubmit: '登录',
loggingIn: '登录中',
loginFailed: '用户名或密码错误。',
logout: '退出登录',
currentUser: '当前用户',
currentHotel: '当前酒店',
unauthorizedTitle: '没有访问权限',
unauthorizedMessage: '当前账号没有访问这个页面或操作的权限,请联系管理员调整角色权限。',
backHome: '返回可访问页面',
},
nav: {
orders: '订单列表',
taskQueue: '预订事项',
manualInvoice: '手工开票',
roomingList: '房表生成',
sourceMessages: '消息来源',
systemStatus: '系统状态',
orderDetail: '订单总览',
taskDetail: '订单事项办理',
sourceMessageConversation: '邮件会话',
sourceNotificationDetail: '来源通知详情',
debugEml: 'Debug EML',
systemSettings: '系统设置',
systemUsers: '用户管理',
systemRoles: '角色权限',
systemMenus: '菜单管理',
systemHotels: '酒店管理',
systemReservationCatalogs: '预订目录',
systemAudits: '管理审计',
},
common: {
loading: '加载中',
noData: '暂无数据',
endpointPending: '接口待接入',
endpointMissing: '接口待补',
all: '全部',
unknownStatus: '未知状态',
unknownTaskType: '未知任务类型',
unknownTaskSubtype: '未知任务细分',
unknownReadonlyReason: '暂不可处理',
unknownActorType: '未知操作者',
unknownAuditAction: '未知操作',
unknownOperation: '未知操作',
previousPage: '上一页',
nextPage: '下一页',
pageStatus: '第 {current} / {total} 页',
pageSize: '每页',
refresh: '刷新',
saving: '保存中',
cancel: '取消',
},
notFound: {
title: '页面不可用',
message: '当前菜单或链接对应的前端页面尚未接入。',
backHome: '返回可访问页面',
},
systemAdmin: {
title: '系统设置',
subtitle: '维护用户、角色权限、菜单和酒店资料',
navigationAria: '系统设置导航',
common: {
keyword: '关键词',
viewDetail: '查看详情',
selectRow: '选择一行查看详情',
create: '新增',
save: '保存',
edit: '编辑',
yes: '是',
no: '否',
},
status: {
ACTIVE: '启用',
DISABLED: '禁用',
},
users: {
title: '用户筛选',
tableTitle: '用户数据',
detailTitle: '用户详情',
createTitle: '新增用户',
totalSuffix: '个用户',
keywordPlaceholder: '用户名 / 展示名 / 邮箱',
userStatus: '用户状态',
username: '用户名',
initialPassword: '初始密码',
displayName: '展示名称',
email: '邮箱',
phone: '手机号',
roles: '角色',
hotels: '授权酒店',
defaultHotel: '默认酒店',
saveRoles: '保存角色',
saveHotels: '保存酒店授权',
resetPassword: '重置密码',
temporaryPassword: '临时密码:',
created: '用户已创建',
columns: {
user: '用户',
status: '状态',
roles: '角色',
defaultHotel: '默认酒店',
},
},
roles: {
title: '角色筛选',
tableTitle: '角色数据',
detailTitle: '角色详情',
createTitle: '新增自定义角色',
totalSuffix: '个角色',
keywordPlaceholder: '角色代码 / 角色名称',
roleStatus: '角色状态',
roleCode: '角色代码',
roleName: '角色名称',
builtinReadonly: '内置角色由系统启动矩阵维护,不能在页面修改。',
savePermissions: '保存权限',
columns: {
role: '角色',
status: '状态',
builtin: '内置',
permissions: '权限',
users: '用户数',
},
},
menus: {
title: '菜单筛选',
managementTitle: '菜单管理',
managementHint: '维护侧边栏菜单的父子层级、排序、可见性和权限入口。',
createTitle: '新增菜单',
editTitle: '编辑菜单',
tableTitle: '菜单数据',
totalSuffix: '个菜单',
keywordPlaceholder: '菜单代码 / 名称 / 路由',
menuStatus: '菜单状态',
visibleOnly: '只看可见菜单',
treeWarningTitle: '菜单树存在异常配置',
treeWarningHint: '后端已返回菜单树,但以下配置需要管理员确认。',
treeTitle: '菜单树',
treeDirty: '树结构有未保存调整',
treeDirtyActionBlocked: '请先保存树结构后再继续操作。',
treeWarningSaveBlocked: '请先处理菜单树异常,确认父级关系正确后再保存树结构。',
saveTreeOrder: '保存树结构',
menuCode: '菜单代码',
menuName: '菜单名称',
parentMenu: '上级菜单',
rootMenu: '根菜单',
componentKey: '组件标识',
iconKey: '图标标识',
unknownRoute: '未知路由',
unknownRouteHint: '当前路由未被前端识别,菜单可能会进入未接入页面。',
permissionLoadFailed: '权限列表加载失败,权限选择和菜单配置保存暂不可用。',
moveUp: '上移',
moveDown: '下移',
columns: {
menu: '菜单',
route: '路由',
permission: '权限码',
visible: '可见',
status: '状态',
sort: '排序',
knownRoute: '已知路由',
},
},
hotels: {
title: '酒店筛选',
createTitle: '新增酒店',
editTitle: '编辑酒店',
tableTitle: '酒店数据',
totalSuffix: '家酒店',
keywordPlaceholder: '酒店 ID / 酒店名称',
hotelStatus: '酒店状态',
hotelId: '酒店 ID',
hotelName: '酒店名称',
saveStatus: '保存状态',
singleActiveRule: '单酒店阶段只允许一家 ACTIVE 酒店;新增酒店默认禁用。',
columns: {
hotel: '酒店',
status: '状态',
timeZone: '时区',
authorizedUsers: '授权用户',
sort: '排序',
},
},
catalogs: {
title: 'Reservation V4 目录管理',
subtitle: '维护 Account、Room Type 和 Rate Code供 V4 任务卡 lookup 和后端确认校验使用。',
typeNavigation: 'Reservation V4 目录类型',
filters: '目录筛选',
hotel: '酒店',
defaultHotel: '当前默认酒店',
keywordPlaceholder: '代码 / 名称',
catalogStatus: '目录状态',
createTitle: '新增 {type}',
createHint: '第一版新增目录由系统管理维护,保存后默认启用。',
createAction: '新增目录',
createSucceeded: '目录已新增',
statusUpdated: '目录状态已更新',
disabledLookupNotice: '停用目录项后,普通 V4 任务卡 lookup 不再返回该项;已确认历史卡片不会被回滚。',
defaultActiveHint: '新增后默认启用。Account 第一版固定使用 Market=LEISURE、Source=TRAVEL_AGENT。',
hotelRequired: '请先选择酒店。',
tableTitle: '{type} 数据',
totalSuffix: '条目录',
accountCode: 'Account Code',
accountName: 'Account 名称',
marketCode: 'Market Code',
sourceCode: 'Source Code',
externalAccountId: '外部 Account ID',
code: '代码',
displayName: '显示名称',
externalId: '外部目录 ID',
sortOrder: '排序',
catalogVersion: '目录版本',
metadataJson: '扩展 JSON',
enableAction: '启用',
disableAction: '停用',
types: {
accounts: 'Account',
roomTypes: 'Room Type',
rateCodes: 'Rate Code',
},
columns: {
catalog: '目录',
status: '状态',
marketSource: 'Market / Source',
source: '来源 / 版本',
sort: '排序',
},
},
audits: {
title: '审计筛选',
tableTitle: '管理审计数据',
totalSuffix: '条审计记录',
targetType: '对象类型',
targetId: '对象 ID',
action: '操作类型',
columns: {
action: '操作',
target: '对象',
actor: '操作者',
occurredAt: '发生时间',
},
},
},
workbench: {
title: '订单工作台',
subtitle: '查看、筛选和处理预订订单任务',
filters: '筛选条件',
dateRange: '日期范围',
businessKey: '业务号 / 临时单号',
orderStatus: '订单状态',
taskStatus: '任务状态',
taskCardType: '任务卡类型',
reset: '重置',
tableTitle: '订单 / 任务列表',
columns: {
businessKey: '业务号',
orderStatus: '订单状态',
currentTask: '当前任务',
taskStatus: '任务状态',
updatedAt: '最近更新',
operation: '操作',
},
view: '查看',
totalPrefix: '共',
totalSuffix: '条任务线索',
},
orderList: {
title: '订单列表',
subtitle: '按订单查看预订处理入口',
keyword: '团队号 / 确认号',
keywordPlaceholder: '团队号 / 确认号',
groupCode: '团队号',
groupCodePlaceholder: '输入团队号',
confirmationNumber: '确认号',
confirmationNumberPlaceholder: '输入确认号',
tableTitle: '订单数据',
totalSuffix: '条订单',
viewDetail: '查看详情',
continueTask: '继续处理',
noOpenTask: '无待处理任务',
endpointPending: '订单列表接口待后端接入,当前不展示假数据。',
columns: {
order: '订单',
status: '状态',
openTasks: '待处理',
createdAt: '创建时间',
},
},
manualInvoice: {
title: '手工开票',
createTitle: '创建 Invoice',
subtitle: '无订单、无任务时,手工填写 Proforma Invoice 字段并生成 PDF。',
sourceBadge: '手工生成',
independentHint: '本页第一版不关联订单或任务,生成记录和审计由后端统一落库。',
documentSection: '单据信息',
recipientSection: '收件方',
bookingSection: '预订信息',
chargesSection: '费用明细',
previewSection: '金额预览',
resultSection: '生成结果',
invoiceDate: '开票日期Invoice Date',
bookingDate: '预订日期Booking Date',
dueDate: '付款截止日期Due Date',
companySeed: '选择公司Company',
contactSeed: '选择收件人Attention',
selectCompany: '请选择公司',
selectContact: '请选择收件人',
company: '公司Company',
attention: '收件人Attention',
address: '地址Address',
companyInputPlaceholder: '输入公司名称',
attentionInputPlaceholder: '输入收件人',
addressInputPlaceholder: '输入客户完整账单地址',
telephone: 'Tel',
email: 'Email',
groupName: '团队名称Group Name',
arrivalDate: '到店日期Arrival Date',
departureDate: '离店日期Departure Date',
roomRateNote: '房价备注Room Rate Note',
roomRateNotePlaceholder: '例如 including BF',
datePlaceholder: '年-月-日',
extraBedRate: '加床价格Extra Bed Rate',
description: '费用描述Description',
roomType: '房型Room Type',
quantity: '数量Quantity',
rate: '单价Rate',
nights: '晚数Nights',
amount: 'Amount',
subtotal: 'Sub-Total',
vat: 'VAT 7%',
total: 'Total',
addCharge: '新增一行',
removeCharge: '删除',
chargeLineLabel: '第 {index} 行',
removeChargeLineAria: '删除第 {index} 行',
maxChargesReached: '第一版最多支持 10 条费用明细。',
previewDisclaimer: '前端仅做金额预览,最终金额以后端返回 totals 为准。',
manualOverrideHint: '选择 Company / Attention 后会自动带出资料,带出的文本仍可手工覆盖。',
generate: '确认并生成 PDF',
generating: '生成中',
openPdf: '打开 PDF',
downloadPdf: '下载 PDF',
downloadingPdf: '下载中',
downloadFallback: '浏览器未能直接下载,已尝试打开 PDF 页面。',
technicalDetails: '技术详情',
generationId: '生成记录 ID',
generationStatus: '生成状态',
pdfUrl: 'PDF 链接',
hotelId: '酒店 ID',
templateCode: '模板',
createdAt: '创建时间',
noPdfUrl: '后端未返回 PDF 链接。',
backendTotals: '后端返回金额',
validationTitle: '请先修正表单',
fieldErrors: {
required: '必填',
invalidEmail: 'Email 格式不正确',
dateOrder: '日期顺序不正确',
positiveNumber: '必须大于 0',
nonNegativeNumber: '不能小于 0',
},
statuses: {
SUCCEEDED: '已生成',
GENERATED: '已生成',
FAILED: '生成失败',
PROCESSING: '生成中',
},
errors: {
FRONTEND_VALIDATION: '表单校验未通过,请检查必填字段和费用明细。',
RESERVATION_INVOICE_VALIDATION_FAILED: 'Invoice 字段校验失败,请检查表单内容。',
RESERVATION_INVOICE_CONTEXT_MISMATCH: '订单或任务上下文不匹配。',
DOCUMENT_CONVERSION_FAILED: 'PDF 生成失败,请稍后重试或联系管理员。',
DOCUMENT_CONVERSION_TIMEOUT: 'PDF 生成超时,请稍后重试。',
AUTH_401: '登录已失效,请重新登录后再生成。',
AUTH_403: '当前账号没有手工开票权限。',
UNKNOWN: '生成失败,请稍后重试。',
requiredFields: '请补充日期、收件方、预订信息和至少一条有效费用明细。',
invalidEmail: 'Email 格式不正确。',
dueDateBeforeBookingDate: 'Due Date 不能早于 Booking 日期。',
departureBeforeArrival: 'Departure Date 必须晚于 Arrival Date。',
extraBedNegative: '加床价格不能小于 0。',
chargePositive: '费用明细的 Quantity、Rate、Nights 必须大于 0。',
},
},
roomingList: {
eyebrow: '预订工具',
title: '生成 Rooming List Excel',
subtitle: '上传旅行团名单 Excel填写每房人数和目标列默认值生成酒店可导入的 Rooming List。',
currentHotel: '当前酒店',
sourceSection: '来源名单与必填信息',
targetSection: '目标 Excel 默认值',
sourceFile: '来源 Excel 文件',
sourceFileHint: '支持 .xls / .xlsx前端不会读取或记录名单内容。',
noFile: '选择 .xls / .xlsx 文件',
peoplePerRoom: '每间房人数',
arrival: '入住日期',
departure: '离店日期',
roomType: '房型',
roomTypePlaceholder: '例如 DLX / TWN',
titleColumn: '称谓Title',
rateCode: '价格代码Rate Code',
adults: '成人数Adults',
children: '儿童数Children',
paymentType: '付款方式Payment Type',
vip: 'VIP',
nationality: '国籍Nationality',
email: '邮箱Email',
idType: '证件类型ID Type',
idNumber: '证件号码ID Number',
generate: '生成并下载 Excel',
generating: '生成中',
validationTitle: '请先修正表单',
resultSuccess: '生成结果',
resultDownloaded: 'Excel 已生成,并已触发浏览器下载。',
downloadedFile: '下载文件',
fieldErrors: {
fileRequired: '请选择来源 Excel 文件。',
fileType: '仅支持 .xls / .xlsx 文件。',
positiveInteger: '每间房人数必须大于 0。',
nonNegativeInteger: '必须是 0 或正整数。',
arrivalRequired: '请填写入住日期。',
departureRequired: '请填写离店日期。',
dateFormat: '日期格式必须为 yyyy-MM-dd。',
departureAfterArrival: '离店日期必须晚于入住日期。',
roomTypeRequired: '请填写房型。',
invalidEmail: 'Email 格式不正确。',
},
errors: {
FRONTEND_VALIDATION: '表单校验未通过,请检查必填字段。',
ROOMING_LIST_VALIDATION_FAILED: 'Rooming List 字段校验失败,请检查表单内容。',
ROOMING_LIST_SOURCE_FILE_INVALID: '来源名单文件不合法,请检查 Excel 表头和文件格式。',
FRONTEND_PERMISSION_DENIED: '当前账号没有生成 Rooming List 的权限。',
HOTEL_ACCESS_DENIED: '当前账号不能访问所选酒店。',
AUTH_TOKEN_REQUIRED: '请先登录后再生成 Rooming List。',
AUTH_SESSION_INVALID: '登录已失效,请重新登录后再生成。',
UNKNOWN: 'Rooming List 生成失败,请稍后重试。',
},
},
order: {
summary: '订单摘要',
taskQueue: '同订单预订事项',
v4TaskTimeline: '处理记录',
v4TaskTimelineEmpty: '暂无处理记录。',
v4TaskTimelineHint: '只展示来源邮件处理记录和事项状态摘要;办理动作请进入订单事项办理页完成。',
v4OverviewTitle: '订单信息总览',
v4OverviewSubtitle: '仅来自已确认事项,不使用未确认建议。',
v4OverviewEmpty: '暂无已确认的订单信息。',
accountCode: 'Account 代码',
accountName: 'Account 名称',
marketCode: 'Market 代码',
sourceCode: 'Source 代码',
departureDate: '离店日期',
rateCode: 'Rate Code',
roomItems: '已确认房型房量',
latestConfirmedAt: '最近确认时间',
traceCardStatus: '跟进事项状态',
roomingListCardStatus: '房表事项状态',
paymentCardStatus: '付款凭证状态',
nextV4ActionTitle: '下一步处理',
nextV4ActionSubtitle: '订单总览只提供入口,不直接确认、复核或编辑事项。',
nextV4ActionType: '下一步',
nextV4ActionStatus: '处理状态',
nextV4CardId: '事项编号',
openOrderTaskCount: '待处理事项数',
enterV4Task: '进入办理页',
nextActionConfirm: '确认事项',
nextActionReview: '需要复核',
nextActionNone: '无待处理事项',
nextStep: '处理事项',
nextStepConfirm: '有事项待确认',
nextStepReview: '有事项需要复核',
nextV4ActionEmpty: '暂无下一步处理事项。',
relatedSourceMessages: '关联来源邮件',
relatedSourceMessagesHint: '只展示邮件头和会话摘要;全文请进入邮件会话页查看。',
relatedSourceMessagesEmpty: '暂无关联来源邮件。',
externalConversationId: '外部会话编号',
latestActivityAt: '最近活动时间',
v4CardsEmpty: '暂无事项状态摘要。',
cardStatusSummary: '事项状态摘要',
cardId: '事项编号',
reviewStatus: '复核状态',
confirmedBy: '确认人',
confirmedAt: '确认时间',
sourceEventIndex: '来源邮件事件 {index}',
processingRecord: '来源邮件处理记录',
sourceMessage: '来源消息',
businessKeySource: '业务号来源',
updatedAt: '最近更新',
guestName: '客人',
arrivalDate: '入住日期',
roomType: '房型',
amount: '金额',
openTask: '处理任务',
groupCode: '团队号Group Code',
confirmationNumber: '确认号Confirmation No.',
temporaryOrderNo: '临时单号',
blockCode: '团队预留号Block Code',
createdAt: '创建时间',
conversationMessageCount: '会话邮件数',
sourceSummaryPending: '订单详情任务时间线的来源邮件摘要字段待后端补充;请从具体任务进入后查看。',
},
taskList: {
title: '待处理预订事项',
subtitle: '查看需要确认、复核或已读的预订事项',
keyword: '订单 / 邮件关键词',
keywordPlaceholder: '订单号 / 邮件关键词',
taskType: '任务类型',
taskSubtype: '任务细分',
tableTitle: '预订事项',
totalSuffix: '条事项',
noSourceSubject: '暂无来源主题',
sourceReceivedAt: '来源时间',
businessStatus: '事项状态',
filterPending: '待处理',
filterReview: '需要复核',
filterCompleted: '已完成',
filterSourceNotification: '来源通知',
noOpenItems: '暂无需要处理的预订事项',
noPendingItems: '暂无待确认的预订事项',
noReviewItems: '暂无需要复核的预订事项',
noCompletedItems: '暂无已完成的预订事项',
noSourceNotifications: '暂无来源通知',
itemType: '工作项类型',
itemTypeOrderTask: '预订事项',
itemTypeSourceNotification: '来源通知',
orderTaskStatus: '订单任务状态',
cardStatus: '卡片状态',
orderUnresolved: '订单归属待确认',
sourceNotificationNoOrder: '不关联订单',
sourceNotificationNoOrderHint: '该邮件不关联订单,请查看邮件内容。',
cardCountsTotal: '共 {total} 个事项',
cardCountsPending: '待确认 {count}',
cardCountsReview: '待复核 {count}',
cardCountsConfirmed: '已确认 {count}',
viewNotification: '查看通知',
canProcess: '可处理',
cannotProcess: '不可处理',
queueParticipation: '是否参与队列',
queueAll: '全部队列状态',
queueIncluded: '参与队列',
queueExcluded: '不参与队列',
viewTask: '处理事项',
viewOrder: '查看订单',
viewConversation: '查看邮件会话',
sourceOnlyOrderLabel: '来源消息只读',
hiddenTechnicalOrder: '不关联可见订单',
columns: {
item: '事项类型',
task: '任务',
order: '订单',
card: '事项',
status: '状态',
source: '来源邮件',
cards: '事项进度',
queue: '队列',
},
},
taskV4: {
title: '订单事项办理',
subtitle: '按来源邮件办理当前订单事项',
orderTaskSummary: '事项摘要',
orderTaskId: '事项编号',
orderReference: '订单引用',
targetBookingType: '预订类型',
targetLocator: '订单线索',
targetResolutionStatus: '订单归属',
cardCounts: '事项统计',
sourceMessageCard: '来源邮件',
basicInformationCard: '预订基础信息',
roomInformationCard: '房型与日期',
paymentCard: '付款凭证',
businessCards: '预订事项',
adapterContractErrors: '适配契约诊断',
noAdapterContractErrors: '暂无适配契约异常。',
noBusinessCards: '暂无需要办理的预订事项。',
displayPayload: '展示摘要',
rawCardPayload: '卡片安全摘要',
readonlyReason: '不可操作原因',
blockedReason: '阻塞原因',
bookingTypeGroup: '团队预订',
bookingTypeFit: '散客预订',
bookingTypeUnknown: '预订类型待确认',
targetResolved: '已确认',
targetUnresolved: '待确认',
targetPending: '待确认',
confirmCard: '确认卡片',
confirmingCard: '确认中',
resolveReview: '提交复核',
resolvingReview: '提交中',
reviewReason: '复核说明',
reviewReasonPlaceholder: '可选,说明人工判断依据',
confirmedOrderId: '确认订单编号',
confirmedOrderIdPlaceholder: '订单归属未解决时填写',
confirmedOrderRequired: '订单归属未解决,请先填写确认订单编号。',
cardConfirmed: '卡片已确认,详情已刷新。',
reviewResolved: '复核已提交,详情已刷新。',
validationFailed: '请先修正当前卡片字段。',
roomInformation: {
noDisplayModel: '房型与日期信息暂不可用,请稍后刷新或联系管理员。',
eventType: {
NEW_BOOKING: '新预订',
UPDATE_BOOKING: '修改预订',
CANCEL_BOOKING: '取消预订',
unknown: '预订事项',
},
emptyValues: '暂无可展示字段。',
changeSummary: '本次变更摘要',
currentValues: '当前值',
proposedValues: '建议值',
finalValues: '最终值',
groupBlockName: '团队名称',
fitName: '散客姓名',
arrivalDate: '入住日期',
departureDate: '离店日期',
nights: '晚数',
rateCode: 'Rate Code',
breakfastIncluded: '含早',
groupBookingStatus: '团队预订状态',
blockId: 'Block ID',
confirmationNumber: '确认号',
roomItems: '房型明细',
roomTypeCode: '房型代码',
roomCount: '房间数',
yes: '是',
no: '否',
},
paymentAttachments: {
title: '付款凭证附件',
loading: '正在加载附件预览权限...',
loadFailed: '附件预览暂不可用,可检查来源邮件权限后重试。',
empty: '暂无付款凭证附件。',
openPreview: '查看大图',
closePreview: '关闭预览',
download: '下载',
previewUnavailable: '不可预览',
downloadUnavailable: '不可下载',
noMatchedMedia: '当前邮件中未找到匹配附件。',
missingSourceMessage: '缺少来源邮件,暂不可预览或下载。',
unavailableReason: '不可用原因:{reason}',
fileMeta: '{type} · {size}',
},
roomingList: {
title: '房表事项',
targetOrder: '目标订单',
unboundOrder: '暂未绑定可见订单',
description: '当前来源消息包含需要人工处理的 Rooming List 事项,请在酒店内部流程处理后确认该卡片。',
confirmHint: '第一版仅确认该事项已由人工处理,不展示或处理名单明细和附件内容。',
},
trace: {
title: '跟进事项',
itemLabel: '事项 {index}',
generalTitle: '普通事项',
extraBedTitle: '加床事项',
action: '固定动作',
},
lookup: {
loading: '选项加载中',
empty: '暂无可选项,如需新增请联系管理员维护资料。',
stale: '当前目录为过期快照,仍可选择,最终以后端校验为准。',
warning: '目录提示:{warning}',
error: '选项暂不可用,请刷新后重试。',
accountDerived: '选择后会带出市场:{market} / 来源:{source}。',
currentNotInCatalog: '原值“{value}”不在当前可选项中,请重新选择。',
},
sourceMessage: {
subject: '主题',
sender: '发件人',
receivedAt: '接收时间',
conversationCount: '会话邮件数',
attachments: '附件',
excerpt: '邮件片段',
body: '当前邮件正文',
bodyCollapsed: '邮件正文已折叠,展开后读取当前触发邮件正文。',
bodyLoading: '正在加载当前邮件正文...',
bodyLoadFailed: '当前邮件正文暂时无法加载,可进入邮件会话查看。',
noBody: '暂无当前邮件正文。',
showFullBody: '展开全文',
collapseBody: '收起正文',
noExcerpt: '暂无邮件片段',
noAttachments: '无附件',
},
field: {
required: '必填',
readonly: '只读',
empty: '未填写',
hidden: '敏感内容已隐藏',
selectPlaceholder: '请选择',
datePlaceholder: '年-月-日',
},
error: {
loadFailed: '订单事项办理页加载失败。',
actionFailed: '操作失败,请检查后端返回信息。',
},
},
sourceNotification: {
title: '来源通知详情',
subtitle: 'S10/S99 来源消息只读通知,不进入订单或任务卡处理。',
summary: '通知摘要',
notificationId: '通知编号',
routeCode: '路由代码',
status: '通知状态',
sourceMessage: '来源邮件',
ackReason: '处理说明',
ackReasonPlaceholder: '可选,说明已读或已处理依据',
ack: '确认已读',
acking: '确认中',
acked: '已确认已读,详情已刷新。',
noBusinessEntry: '该通知不关联订单、业务卡、字段编辑、复核或 OPERA 操作。',
error: {
loadFailed: '来源通知详情加载失败。',
ackFailed: '确认已读失败,请检查后端返回信息。',
},
},
task: {
title: '任务卡',
fieldContract: '字段契约',
evidence: '证据区',
saveDraft: '保存草稿',
confirm: '确认任务',
blocked: '阻塞中',
readOnly: '只读',
operaOperations: 'OPERA 模拟操作',
audits: '审计时间线',
noOperations: '确认任务后生成 OPERA 模拟操作。',
noAudits: '暂无审计记录。',
execute: '执行',
retry: '重试',
simulateFailure: '模拟失败',
fieldNotes: '字段备注',
emptyValue: '未填写',
attachments: '附件',
fieldAreaFallback: '基础信息',
savedLocally: '草稿已保存',
confirmedLocally: '任务已确认',
validationFailed: '请先修正字段',
validation: {
required: '{field}为必填项',
enum: '{field}必须来自可选项',
date: '{field}日期格式必须为 YYYY-MM-DD',
number: '{field}必须是数字',
},
viewOrder: '查看订单',
viewConversation: '查看邮件会话',
parentGroup: 'Parent Group',
sourceMessageId: '来源消息编号ID',
sourceSubject: '来源主题',
sourceSender: '发件人',
sourceReceivedAt: '接收时间',
sourceSummaryPending: '来源邮件摘要字段待后端补充',
sourceEmailPreview: '来源邮件预览',
sourceEmailExcerpt: '邮件片段',
sourceEmailAttachments: '相关附件',
sourceEmailNoExcerpt: '暂无邮件片段',
sourceEmailNoAttachments: '无附件',
sourceEmailFullConversation: '查看完整邮件会话',
sourceOnlyResult: '来源消息入口结果',
sourceOnlyReadonly: '该任务仅用于展示来源消息入口结果,不进入订单处理、字段编辑或 OPERA 操作。',
sourceOnlyNoOpera: '该类任务不涉及 OPERA 操作。',
routeInfo: '路由与处理信息',
resultType: '识别结果类型',
aiTaskType: 'AI 任务类型',
systemTaskType: '系统任务类型',
taskCardType: '任务卡类型',
taskSubtype: '任务细分',
routeCode: '路由代码',
systemProcessCategory: '系统处理分类',
reviewStatus: '复核状态',
entryResultCode: '入口结果码',
entryResultMeaning: '结果含义',
entryResultDescription: '结果说明',
entryResultSourceMessageId: '结果来源消息编号',
rawAnswer: 'SuperAgent 原始回答',
agentAssessment: 'AI 原始字段',
sourceNotification: '来源消息通知',
manualReviewData: '人工复核信息',
manualReviewEvidence: '人工复核证据',
manualReviewEvidenceFallback: '请根据来源邮件和候选信息确认 Parent Group 身份。',
manualReviewMissingFields: '缺失字段',
manualReviewBlockingPoints: '阻塞点',
manualReviewConflictingPoints: '冲突点',
manualReviewSuggestedActions: '建议动作',
manualReviewEvidenceToCheck: '建议核对证据',
parentIdentityCandidates: 'Parent Group 候选',
parentIdentityCandidate: '候选项',
noParentIdentityCandidates: '暂无 Parent Group 候选;需要后端透出 context_used.parent_identity_candidates。',
adapterContractErrors: '适配契约异常',
unhandledIntents: '未处理意图',
noSourceOnlyResult: '暂无来源消息入口结果。',
manualResolution: {
title: '人工复核解阻',
description: '在原任务卡上补齐缺失字段,提交后由后端校验并解除阻塞。',
pendingStatus: '待复核',
resolvedTitle: '复核已完成',
reasonCode: '复核原因代码',
reviewInstruction: '复核说明',
confirmedOrderId: '确认订单编号',
fieldValuePlaceholder: '填写确认后的值',
noSupportedMissingFields: '当前缺失字段暂不支持前端解阻,请联系后端确认字段映射。',
unopenedFieldsTitle: '未开放编辑字段',
fieldBackendUnopened: '当前字段后端未开放编辑',
fieldRequired: '请填写缺失字段和确认订单编号',
reason: '处理说明',
reasonPlaceholder: '可选,说明人工判断依据',
submit: '提交复核结果',
succeeded: '人工复核已解阻,任务状态已刷新。',
},
manualConversion: {
title: '人工转换',
description: '将人工复核任务转换为可处理的预订任务。',
targetTaskType: '目标任务类型',
targetOrder: '目标订单',
targetOrderHelp: '修改或取消预订必须选择一个未删除订单。',
targetOrderKeyword: '目标订单搜索',
targetOrderKeywordPlaceholder: '团队号、确认号或订单关键词',
searchTargetOrders: '搜索订单',
noTargetOrderCandidates: '请输入关键词并搜索目标订单',
orderDeletedDisabled: '已删除订单不可选',
newBookingHint: '转为新预订时不强制选择目标订单,后端会按当前任务重新归属。',
reason: '转换原因',
reasonPlaceholder: '可选,说明人工判断依据',
submit: '转换任务',
targetOrderRequired: '请选择目标订单',
succeeded: '人工转换已完成:{taskType},目标订单 {orderId}',
orderId: '订单编号',
},
},
conversation: {
title: '邮件会话详情',
subtitle: '查看来源邮件所在会话下的全部历史邮件和回复',
endpointPending: '邮件会话详情接口待后端接入,当前不展示假数据。',
subject: '会话主题',
messageCount: '邮件数',
channel: '渠道',
firstReceivedAt: '首次接收',
lastReceivedAt: '最近接收',
emptyBody: '邮件正文为空',
attachments: '附件 / 内嵌图片',
unnamedAttachment: '未命名附件',
relatedOrders: '关联订单',
relatedTasks: '关联任务',
},
debugEml: {
title: 'Debug EML 调试上传',
subtitle: '上传单封 .eml 邮件并查看 SourceMessage 与 SuperAgent 调试结果',
uploadConfig: '上传配置',
hotelId: '酒店 ID',
debugUploadKey: 'Debug 上传口令',
runLabel: '运行标签',
emlFile: '.eml 文件',
submit: '提交调试',
submitting: '等待 SuperAgent 返回',
executionStatus: '执行状态',
status: '状态',
debugRunId: 'Debug 运行 ID',
backendStatus: '后端状态',
backendMessage: '后端消息',
waitingSuperAgent: '正在解析邮件并等待 SuperAgent 返回',
systemStages: '本系统处理阶段',
superAgentTrace: 'SuperAgent Trace',
traceToolName: '工具',
traceInputSummary: '入参摘要',
traceOutputSummary: '出参摘要',
traceStatus: '状态',
traceTime: '时间',
sourceTrace: 'SourceMessage 追溯',
sourceMessageId: 'SourceMessage ID',
sourceProvider: '来源 Provider',
externalMessageId: '外部消息 ID',
externalConversationId: '外部会话 ID',
mailPreview: '邮件内容预览',
noSafeHtml: '当前没有可安全渲染的 HTML 正文',
uploadedMedia: '上传媒体',
unnamedMedia: '未命名媒体',
rawHtml: '原始处理 HTML',
superAgentResult: 'SuperAgent 结果',
superAgentSessionId: 'SuperAgent Session ID',
superAgentRunId: 'SuperAgent Run ID',
parsedJson: '解析 JSON',
rawAnswer: '原始回答',
warnings: '警告',
bookingExcelExtractions: 'Booking Excel 附件预处理',
debugPayload: '调试 Payload',
statuses: {
idle: '待上传',
uploading: '执行中',
succeeded: '成功',
failed: '失败',
},
errors: {
REQUEST_FIELD_REQUIRED: '缺少必填字段,请检查酒店 ID、文件或请求参数',
EML_FILE_REQUIRED: '请选择 .eml 邮件文件',
EML_FILE_TOO_LARGE: '邮件文件超过后端限制',
INVALID_FILE_TYPE: '只支持 .eml 邮件文件',
DEBUG_UPLOAD_KEY_INVALID: '调试上传口令缺失或错误',
EML_PARSE_FAILED: '邮件文件无法解析',
OSS_UPLOAD_FAILED: 'OSS 上传失败,请联系后端排查',
SUPERAGENT_OPEN_API_FAILED: 'SuperAgent 调用失败SourceMessage 可能已经写入',
DEBUG_EML_RUN_FAILED: 'Debug EML 链路内部失败',
UNKNOWN: 'Debug EML 调试失败',
},
},
status: {
TEMPORARY: '临时',
ACTIVE: '有效',
ENDED: '已结束',
LOGIC_DELETED: '已删除',
PENDING_CONFIRM: '待确认',
READY: '待执行',
EXECUTING: '执行中',
FAILED: '失败',
COMPLETED: '已完成',
PENDING: '待执行',
SUCCEEDED: '成功',
BLOCKED: '阻塞',
SKIPPED: '跳过',
OPEN: '处理中',
READONLY: '只读',
REVIEW_REQUIRED: '待复核',
CONFIRMED: '已确认',
ACK_REQUIRED: '待确认已读',
ACKED: '已读',
},
cardType: {
NEW_BOOKING: '新预订',
UPDATE_BOOKING: '修改预订',
CANCEL_BOOKING: '取消预订',
CANCEL_ALLOTMENT: '取消 Parent Group 配额',
VOUCHER: '凭证',
ROOMING_LIST: '房表',
AMEND_GROUP_CODE: '修改团队号',
TRACE_NOTE: '追踪备注Trace',
TA_RECORD: '旅行社记录',
MESSAGE_NOTIFICATION: '消息通知',
INFORMATIONAL_MESSAGE: '消息通知(历史 Message Notification',
SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
SOURCE_MESSAGE_ONLY: '来源消息只读',
SOURCE_MESSAGE_DISPLAY: '来源消息展示卡',
SOURCE_MESSAGE_NOTIFICATION: '来源消息通知卡',
BASIC_INFORMATION: '基础信息卡',
ROOM_INFORMATION: '房型信息卡',
TRACE_RESERVATION_NOTES: '追踪备注卡',
PAYMENT: '付款信息卡',
MANUAL_REVIEW: '人工复核',
FALLBACK_REVIEW: '人工复核',
},
taskSubtype: {
NEW_BOOKING: '新预订',
UPDATE_BOOKING: '修改预订',
CANCEL_BOOKING: '取消预订',
RATE_CHANGE: '价格调整',
UPDATE_STAY_DATES: '修改入住日期',
UPDATE_ROOM_TYPE: '修改房型',
UPDATE_FIX_CHARGE: '修改固定收费',
CANCEL_ALLOTMENT_CONTROL_BLOCK: '取消 Parent Group 整块配额',
NEW_GROUP_BLOCK: '新团队预留',
NEW_FIT_RESERVATION: '新散客预订',
MANUAL_REVIEW: '人工复核',
S10: '纯信息类邮件S10',
S99: '无法形成业务素材包S99',
S000: '纯信息类邮件',
S999: '无法形成业务素材包',
},
resultType: {
NORMAL_TASK: '普通任务',
MANUAL_REVIEW: '人工复核',
SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
ADAPTER_CONTRACT_ERROR: '适配契约异常',
UNHANDLED_CURRENT_INTENT: '未处理意图',
},
systemProcessCategory: {
BUSINESS_TASK: '业务任务',
SOURCE_MESSAGE_NOTIFICATION: '来源消息通知',
ADAPTER_CONTRACT_ERROR: '适配契约异常',
UNHANDLED_CURRENT_INTENT: '未处理意图',
},
readonlyReason: {
PROCESSABLE: '可处理',
PREVIOUS_TASK_NOT_FINISHED: '前序任务未完成',
TASK_FINISHED: '任务已结束',
TASK_READ_ONLY: '任务只读',
ORDER_CLOSED: '订单已关闭',
QUEUE_EXCLUDED: '未参与队列',
BLOCKED: '阻塞中',
MANUAL_REVIEW_REQUIRED: '需要人工复核',
},
actorType: {
USER: '人工用户',
SYSTEM: '系统',
AI: 'AI',
AGENT: '外部助手',
BACKEND: '后端服务',
},
auditAction: {
TASK_CREATED: '任务创建',
TASK_LOADED: '任务读取',
TASK_CONFIRMED: '任务确认',
TASK_CONFIRM: '任务确认',
DRAFT_SAVED: '草稿保存',
TASK_UPDATED: '任务更新',
OPERA_EXECUTED: 'OPERA 执行',
OPERA_RETRIED: 'OPERA 重试',
MANUAL_REVIEW_CREATED: '创建人工复核',
MANUAL_REVIEW_CONVERT: '人工转换',
MANUAL_REVIEW_RESOLVED: '人工复核解阻',
},
operaOperation: {
CREATE_RESERVATION: '创建预订',
UPDATE_RESERVATION: '更新预订',
CANCEL_RESERVATION: '取消预订',
UPDATE_ROOMING_LIST: '更新房表',
ADD_TRACE_NOTE: '添加追踪备注',
},
}