mirror of
https://github.com/SteamFramelyHomebrew/framely.git
synced 2026-10-18 22:01:37 +02:00
2.1 KiB
2.1 KiB
界面语言与社区翻译
Framely 内置简体中文和英语。在“设置”顶部选择语言;默认跟随系统语言,手动选择会保存在设备配置中。找不到对应语言时使用英语。语言文件缺少某条翻译时,该条内容回退到内置英语。
制作语言文件
从设置下载英文模板,或复制 ui/locales/en-US.json。文件是 UTF-8 JSON:
{
"schemaVersion": 1,
"locale": "fr-FR",
"name": "Français",
"messages": {
"语言": "Langue",
"保存": "Enregistrer",
"启用 {0}": "Activer {0}"
}
}
locale使用语言代码,例如en-US、zh-CN、fr-FR。不能使用auto。name使用该语言自己的名称,显示在语言选择列表中。messages左侧是稳定的文案键,不要翻译或改写左侧;右侧才是译文。{0}、{1}等是运行时参数。可以调整位置,但不能增删占位符。- 可以先提供部分翻译,其余条目显示英语。空字符串是有效译文,不视为缺失。
- 按目标语言习惯重写整句,结合实际操作理解按钮和状态。部分键是句子片段,注意保留必要的空格。
- 文件只包含文本,不执行代码,也不解释 HTML。单文件最多 1 MiB、3000 条翻译,最多导入 50 个语言文件。
安装
在“设置 → 语言”点击“安装语言文件”,选择 JSON 文件。导入后在语言列表中选择它;再次导入相同语言代码会更新原文件。
安装后的文件位于 /var/lib/framely/locales/<locale>.json。也可以由管理员直接放入此目录,文件名必须与 locale 一致;刷新管理面板后读取。损坏的文件会跳过,并在设置中显示文件名。插件作者提供的名称、介绍、标签及插件页面由各插件维护,宿主语言文件不会自动翻译这些内容。
项目校验
执行 node tools/test-localization.mjs 检查内置英语是否覆盖全部界面文案键、占位符是否一致,以及系统语言匹配、手动选择和缺失翻译回退。