update
This commit is contained in:
171
src/renderer/i18n.ts
Normal file
171
src/renderer/i18n.ts
Normal file
@@ -0,0 +1,171 @@
|
||||
// 极简文案:只有中文一种语言;保持 t() 调用点的 API 不变以便后续扩展。
|
||||
// 缺失键时静默回落到键名本身(开发期容易发现)。
|
||||
// 简单 {0} {1} 占位符替换。
|
||||
const dict = {
|
||||
// 顶栏 / 侧栏
|
||||
'app.brand': 'Time',
|
||||
'nav.clock': '时钟',
|
||||
'nav.alarms': '闹钟',
|
||||
'nav.pomodoro': '番茄钟',
|
||||
'nav.countdown': '倒计时',
|
||||
/** TabStrip 整条 tablist 的无障碍名称 */
|
||||
'nav.mainTabs': '主导航',
|
||||
'topbar.pinOn': '已置顶',
|
||||
'topbar.pinOff': '置顶',
|
||||
'topbar.settings': '设置',
|
||||
'topbar.floatingGroup': '浮窗小卡片',
|
||||
'topbar.floatingPomodoro': '浮窗番茄钟',
|
||||
'topbar.floatingClock': '浮窗时钟',
|
||||
'topbar.floatingAlarms': '浮窗闹钟',
|
||||
'topbar.floatingCountdown': '浮窗倒计时',
|
||||
// 时钟面板
|
||||
'clock.subtitle': '当前时间',
|
||||
'clock.nextNone': '暂无闹钟',
|
||||
/** {0}=时刻 {1}=剩余分钟 {2}=标签 */
|
||||
'clock.nextFmtMin': '下一个 {0} · {1} 分钟后 · {2}',
|
||||
/** {0}=时刻 {1}=小时 {2}=分钟 {3}=标签 */
|
||||
'clock.nextFmtHm': '下一个 {0} · {1}h {2}m 后 · {3}',
|
||||
'clock.statEnabledSub': '闹钟',
|
||||
'clock.pomoStateIdle': '未开始',
|
||||
// 闹钟
|
||||
'alarms.title': '闹钟',
|
||||
'alarms.empty': '暂无闹钟',
|
||||
'alarms.emptyHint': '点击右上"+ 新建闹钟"开始',
|
||||
'alarms.newBtn': '+ 新建闹钟',
|
||||
'alarms.cancelNew': '取消新建',
|
||||
'alarms.edit': '编辑',
|
||||
'alarms.delete': '删除',
|
||||
'alarms.confirmDelete': '确认删除',
|
||||
'alarms.toggle': '启用',
|
||||
'alarms.toggleAria': '启用闹钟',
|
||||
'alarms.countFmt': '{0} / {1} 启用',
|
||||
'alarms.untitled': '(无标题)',
|
||||
'alarms.repeatOnce': '一次',
|
||||
'alarms.repeatDaily': '每日',
|
||||
// 编辑器
|
||||
'editor.newTitle': '新建闹钟',
|
||||
'editor.editTitle': '编辑闹钟',
|
||||
'editor.label': '标签',
|
||||
'editor.labelPh': '例如:晨间起床',
|
||||
'editor.time': '时间',
|
||||
'editor.save': '保存',
|
||||
'editor.saving': '保存中…',
|
||||
'editor.cancel': '取消',
|
||||
'editor.deleteBtn': '删除',
|
||||
'editor.timeInvalid': '时间格式错误',
|
||||
'editor.behaviorNotify': '系统通知',
|
||||
'editor.behaviorSilent': '静默',
|
||||
'editor.saveFailedPrefix': '保存失败:',
|
||||
'editor.deleteFailedPrefix': '删除失败:',
|
||||
'editor.settingsLoading': '设置尚未加载,请稍后重试。',
|
||||
'editor.defaultLabel': '闹钟',
|
||||
'editor.ariaSetTime': '设定闹钟时间',
|
||||
'editor.ariaHours': '小时',
|
||||
'editor.ariaMinutes': '分钟',
|
||||
'editor.ariaSeconds': '秒',
|
||||
'editor.srHours': '小时',
|
||||
'editor.srMinutes': '分钟',
|
||||
'editor.srSeconds': '秒',
|
||||
'editor.repeat': '每日重复',
|
||||
'editor.repeatOnce': '一次',
|
||||
'editor.repeatDaily': '每日',
|
||||
// 番茄钟
|
||||
'pomo.idle': '未开始',
|
||||
'pomo.focus': '专注',
|
||||
'pomo.shortBreak': '短休',
|
||||
'pomo.longBreak': '长休',
|
||||
'pomo.paused': '已暂停',
|
||||
'pomo.subFocus': '保持专注',
|
||||
'pomo.subBreak': '休息一下',
|
||||
'pomo.start': '开始',
|
||||
'pomo.pause': '暂停',
|
||||
'pomo.resume': '继续',
|
||||
'pomo.skip': '跳过',
|
||||
'pomo.reset': '重置',
|
||||
'pomo.today': '今日完成',
|
||||
'pomo.todayUnit': '个番茄',
|
||||
'pomo.footHint': '长休出现在每完成 4 轮之后',
|
||||
'pomo.roundPill': '第 {0} 轮',
|
||||
'pomo.ariaDisplay': '番茄钟显示',
|
||||
'pomo.ariaIdle': '番茄钟未开始,下一阶段 {0} {1} 分钟',
|
||||
'pomo.ariaRemain': '{0}{1},剩余 {2}',
|
||||
'pomo.ariaPaused': '(已暂停)',
|
||||
// 倒计时
|
||||
'countdown.title': '倒计时',
|
||||
'countdown.stateIdle': '空闲',
|
||||
'countdown.stateRunning': '运行中',
|
||||
'countdown.statePaused': '暂停',
|
||||
'countdown.ariaSetDuration': '设定时长',
|
||||
'countdown.ariaHours': '小时',
|
||||
'countdown.ariaMinutes': '分钟',
|
||||
'countdown.ariaSeconds': '秒',
|
||||
'countdown.ariaDisplay': '倒计时显示',
|
||||
'countdown.srHours': '小时',
|
||||
'countdown.srMinutes': '分钟',
|
||||
'countdown.srSeconds': '秒',
|
||||
'countdown.startBtn': '开始',
|
||||
'countdown.pauseBtn': '暂停',
|
||||
'countdown.resumeBtn': '继续',
|
||||
'countdown.resetBtn': '重置',
|
||||
'countdown.doneBtn': '完成',
|
||||
'countdown.timeUp': '时间到',
|
||||
'countdown.setN': '设定 {0}',
|
||||
'countdown.inputEmpty': '请输入时间',
|
||||
'countdown.ariaPausedFmt': '倒计时已暂停,剩余 {0}',
|
||||
'countdown.ariaRunningFmt': '倒计时运行中,剩余 {0}',
|
||||
'countdown.fmtHoursMinutes': '{0} 小时 {1} 分',
|
||||
'countdown.fmtMinutes': '{0} 分钟',
|
||||
'countdown.fmtSeconds': '{0} 秒',
|
||||
// 浮窗番茄钟的文案沿用 pomo.* 共享一份(id 全套启停/重置与主页一致);
|
||||
// 后续若浮窗需要独立文案(如"开始 / 暂停"按钮 title 这类)再拆 floating.pomo.*。
|
||||
// 浮窗闹钟
|
||||
'floating.alarms.next': '下一个',
|
||||
'floating.alarms.empty': '暂无闹钟',
|
||||
'floating.alarms.tagDefault': '闹钟',
|
||||
'floating.alarms.titleFmt': '{0} · 共 {1} 个启用',
|
||||
'floating.alarms.titleOnly': '{0}',
|
||||
'floating.alarms.countN': '共 {0} 个启用',
|
||||
'floating.alarms.diffSec': '{0} 秒后',
|
||||
'floating.alarms.diffMin': '{0} 分后',
|
||||
'floating.alarms.diffHM': '{0}h {1}m 后',
|
||||
'floating.alarms.diffH': '{0}h 后',
|
||||
// 浮窗倒计时
|
||||
'floating.cd.stateIdle': '空闲',
|
||||
'floating.cd.stateRunning': '运行中',
|
||||
'floating.cd.statePaused': '已暂停',
|
||||
// 浮窗时钟
|
||||
'floating.clock.dateFmt': '星期{0} {1}月{2}日',
|
||||
'floating.clock.weekdayChars': '日一二三四五六',
|
||||
// 设置面板
|
||||
'settings.title': '设置',
|
||||
'settings.sub': '个性化外观',
|
||||
'settings.skinTitle': '外观',
|
||||
'settings.skinDesc': '点击卡片即可切换整套配色,立即生效。',
|
||||
'settings.windowTitle': '窗口',
|
||||
'settings.alwaysOnTop': '窗口置顶',
|
||||
'settings.alwaysOnTopDesc': '让主窗口悬浮在其它窗口之上',
|
||||
'settings.modeDark': '暗色',
|
||||
'settings.modeLight': '亮色',
|
||||
'settings.aboutTitle': '关于',
|
||||
'settings.aboutDeveloper': '开发者:关济寰',
|
||||
'settings.aboutDeveloperAria': '访问关济寰的个人网站',
|
||||
'settings.aboutOpenFailed': '无法在系统浏览器中打开链接',
|
||||
'settings.foot': '所有设置都会自动保存到本地',
|
||||
// 通用
|
||||
'common.cancel': '取消',
|
||||
'toast.close': '关闭',
|
||||
// 错误(toast)
|
||||
'error.unhandled': '未捕获的错误:{0}',
|
||||
'error.unknown': '未知',
|
||||
'error.script': '脚本错误:{0}',
|
||||
} as const;
|
||||
|
||||
type Dict = typeof dict;
|
||||
|
||||
export function t(key: keyof Dict, ...args: unknown[]): string {
|
||||
let s = (dict as Record<string, string>)[key as string] ?? (key as string);
|
||||
if (args.length > 0) {
|
||||
s = s.replace(/\{(\d+)\}/g, (_m, idx) => String(args[Number(idx)] ?? ''));
|
||||
}
|
||||
return s;
|
||||
}
|
||||
Reference in New Issue
Block a user