From 77f5b6cd5ed5610215cade99cfecb9263e6b3032 Mon Sep 17 00:00:00 2001 From: Chilor <1275282135@qq.com> Date: Wed, 14 May 2025 18:35:27 +0800 Subject: [PATCH] add zh-cn support --- src/components/ProfileList.vue | 1 + src/i18n.ts | 4 +- src/i18n/zh.ts | 256 +++++++++++++++++++++++++++++++++ 3 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 src/i18n/zh.ts diff --git a/src/components/ProfileList.vue b/src/components/ProfileList.vue index cf86484..227cbab 100644 --- a/src/components/ProfileList.vue +++ b/src/components/ProfileList.vue @@ -217,6 +217,7 @@ const importPick = async () => { { title: 'English', value: 'en' }, { title: '日本語', value: 'ja' }, { title: 'Polski', value: 'pl' }, + { title: '简体中文', value: 'zh' }, ]" size="small" option-label="title" diff --git a/src/i18n.ts b/src/i18n.ts index 3dc9cff..b0bca60 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,7 +1,7 @@ import en from './i18n/en'; import { createI18n } from 'vue-i18n'; -export type Locale = 'en' | 'ja' | 'pl'; +export type Locale = 'en' | 'ja' | 'pl' | 'zh'; const loadLocaleMessages = async (locale: Locale) => { return (await import(`./i18n/${locale}.ts`)).default; @@ -13,7 +13,7 @@ const i18n = createI18n({ fallbackLocale: 'en', warnHtmlInMessage: false, warnHtmlMessage: false, - messages: { en, ja: {}, pl: {} }, + messages: { en, ja: {}, pl: {}, zh: {} }, }); const setLocale = async (locale: Locale) => { diff --git a/src/i18n/zh.ts b/src/i18n/zh.ts new file mode 100644 index 0000000..d38835e --- /dev/null +++ b/src/i18n/zh.ts @@ -0,0 +1,256 @@ +export default { + ok: '确定', + cancel: '取消', + enable: '启用', + disable: '禁用', + default: '默认', + search: '搜索', + next: '下一个', + skip: '跳过', + close: '关闭', + by: '来自 {namespace}', + updateAll: '更新全部', + start: { + failed: '启动检查失败', + accept: '仍要运行', + error: { + package: 'Package缺失', + dependency: '依赖缺失', + tool: 'Tools缺失', + unknown: '未知错误', + }, + tooltip: { + game: '需要指定游戏路径', + amfs: '需要指定amfs路径', + segatools: '需要segatools hook package', + }, + button: { + start: '启动', + stop: '停止', + unchecked: '跳过检查并启动', + shortcut: '创建桌面快捷方式', + help: '帮助', + refresh: '重新应用MOD并启动', + cache: '清空MOD缓存', + }, + }, + game: { + ongeki: '音击', + chunithm: '中二节奏', + }, + profile: { + welcome: '欢迎来到STARTLINER! 创建一个配置文件以开始.', + create: '{game} 配置文件', + delete: '删除配置文件', + reallyDelete: '确定删除 {profile}?', + template: 'STARTLINER 模板', + importTemplate: '导入模板', + exportTemplate: '导出配置文件', + export: '导出', + standardExport: '模板', + diagnostic: '诊断', + }, + creator: { + header: 'Package作者', + basic: '基本信息', + name: '名称', + description: '介绍', + website: '网站', + type: 'Package类型', + rainy: '标准', + segatools: 'Segatools', + native: '原生', + games: '游戏', + packageFormat: 'Package格式规范', + }, + store: { + installRecommended: '安装推荐的Packages', + installed: '显示已安装', + deprecated: '显示已弃用', + nsfw: '显示NSFW', + incompatible: 'STARTLINER暂不支持此Package.', + + includeCategories: '包含类别', + excludeCategories: '排除类别', + }, + pkglist: { + missing: '缺失', + local: '本地Packages', + namespace: '按名称', + type: '按类型', + category: '按类别', + standard: '标准MOD', + native: '原生MOD', + segatools: 'Segatools', + unsupported: '不支持', + exclusions: '排除项:', + }, + patch: { + loading: '加载中...', + noneFound: + "未找到兼容的Patch. 请确认你使用的是已解密且未经修补的文件.", + forceLoad: '强制加载', + // Example patch name override + // 'standard-no-encryption': 'No encryption', + // 'standard-no-encryption-tooltip': 'Will also disable TLS', + // It is also possible to add a tooltip where there normally is none + // 'standard-maximum-tracks-tooltip': 'The number of tracks per credit', + // For more info check https://gitea.tendokyu.moe/akanyan/STARTLINER/wiki/Translation-%26-Localization + }, + cfg: { + afterRestart: '将在重新启动后应用', + hardware: '硬件', + segatools: { + general: '通用', + builtIn: 'Segatools内置模拟', + targetTooltip: + 'STARTLINER希望将已解密的可执行文件放入其他干净的数据中.', + hooks: 'Hook', + ioModules: 'IO模块', + ioModulesDesc: '此处应符合您希望使用的输入方式.', + ioBuiltIn: 'Segatools内置(键盘)', + io4: '原生IO4', + installTooltip: '{thing} 可从Package Store下载.', + }, + display: { + title: '显示', + resolution: '游戏分辨率', + primary: '主显示器', + target: '目标显示器', + mode: '模式', + rotation: '旋转', + refreshRate: '刷新率', + borderlessFullscreen: '无边框全屏', + borderlessFullscreenTooltip: + '将显示器的分辨率调整为游戏分辨率.', + dontSwitchPrimary: '跳过主显示器切换', + dontSwitchPrimaryTooltip: + '仅在更换到主显示器遇到问题时启用此选项,显示器必须具有匹配的刷新率.', + index: '显示器索引', + portrait: '纵向', + landscape: '横向', + flipped: '翻转', + window: '窗口化', + borderless: '无边框窗口化', + fullscreen: '全屏', + }, + network: { + title: '网络', + type: '服务器类型', + remote: '在线', + localArtemis: '本地 (ARTEMiS)', + artemisPath: 'ARTEMiS路径', + address: '服务器地址', + keychip: '加密狗号 (Keychip)', + subnet: '子网 (Subnet)', + addrSuffix: '地址后缀 (Address suffix)', + }, + aime: { + type: 'Aime读卡器类型', + modules: 'AimeIO', + code: 'Aime卡号', + codeTooltip: + '仅适用于Segatools内置模拟或第三方AimeIO', + aimedb: '对实体卡使用AiMeDB', + aimedbTooltip: + '实体卡需要使用AiMeDB来解析真实卡号,如果您想要获取卡片背面印刷的真实卡号,请启用此选项.', + serialPort: '读卡器端口', + serialPortTooltip: `端口号可在 设备和打印机 或 设备管理器 中查看 + 对于AIC Pico,应选择AIME Port.`, + serverName: '服务器名称', + }, + misc: { + title: '杂项', + intel: '修复Intel 10代及以上CPU存在的OpenSSL问题', + intelTooltip: '推荐使用该选项来代替给amdaemon打补丁.', + other: '其他segatools选项', + otherTooltip: + '未被STARTLINER覆盖的高级选项', + prescript: '启动脚本', + prescriptTooltip: '在游戏启动前运行的脚本.', + postscript: '结束脚本', + postscriptTooltip: + '在游戏进程结束后运行的脚本.', + }, + extensions: { + title: '扩展', + bepInExConsole: 'BepInEx控制台', + audioMode: '音频模式', + audioTooltip: + '独占双声道音频需要MOD: 7EVENDAYSHOLIDAYS-ExclusiveAudio', + audioShared: '共享', + audio6Ch: '独占六声道', + audio2Ch: '独占双声道', + sampleRate: '采样率', + blacklist: '歌曲ID黑名单', + blacklistTooltip: + '黑名单中的歌曲分数不会被保存和上传', + bonusTracks: '解锁Bonus Track', + bonusTracksTooltip: + '禁用此选项可帮助你整理歌曲列表', + saekawa: 'Saekawa配置文件', + inohara: 'Inohara配置文件', + }, + keyboard: { + title: '键盘', + tooltip: + '仅适用于Segatools内置(键盘)或兼容的第三方IO(如mu3io.NET)', + leverMode: '摇杆模式', + mouse: '鼠标', + irTooltip: + '当使用键盘游玩时,请只绑定ir1;其余的请设置为未绑定', + }, + wine: { + prefix: 'Wine前缀', + runtime: 'Wine运行时', + }, + startliner: { + offlineMode: '离线模式', + offlineModeTooltip: '禁用Package Store.', + autoUpdate: '自动更新', + verbose: '详细日志', + }, + }, + onboarding: { + or: '或', + backButton: '控制器背后的按钮', + standard: ` + 你可能会卡在这个界面: + + {bigblack}Aグループの基準機から設定を取得{endbig} + + 在这种情况下, 你需要跳转到测试模式(Test), 在游戏设定中 {black}ゲーム設定{end} 将 "从机" {black}基準機に従う{end} 切换到 "基准机" {black}基準機{end}. + + 测试模式可通过 %TESTMENU% 进入. + `, + + 'ongeki-system-processing': ` + 你可能会在这个界面上停留一段时间. _这是正常的_. 这个游戏加载数据需要很长时间. + + 如果你安装了 7EVENDAYSHOLIDAYS/LoadBoost, 后续启动会变得更快. + `, + + 'ongeki-lever': ` + 你需要校准你的摇杆, 不然你会看到错误3301. + + 前往摇杆设定 ({black}レバー設定{end}), 将摇杆移动至两边, 然后按下"结束" ({black}終了{end}) 和 "保存" ({black}保存する{end}). + `, + + 'chunithm-server': ` + 如果你卡在这个界面, 请重启游戏. + + 如果问题依旧存在, {link}请检查你的网络配置{endlink} + `, + + finale: ` + 您随时都可以通过右键点击START按钮重新回到这个页面. + + 附录: + + - {segaguide}SEGAguide{endlink} + - {twotorial}two-torial{endlink} + + ## 玩得愉快 + `, + }, +};