| 摘要 | 通过在 Discourse 界面中轻松分享已完成的翻译,协助翻译主题和主题组件 | |
| 预览 | 目前尚无法在主题创建器中分享主题 | |
| 代码仓库 | GitHub - moin-Jana/share-theme-translations | |
| 安装指南 | 如何安装主题或主题组件 | |
| Discourse 主题新手? | Discourse 主题使用入门指南 |
安装此主题组件
Discourse 让翻译主题和主题组件变得轻而易举。但这些翻译通常仅保留在你的本地站点上。
此组件可帮助你通过向代码仓库提交拉取请求(Pull Request),或在此处的 Meta 话题中发布,将你的翻译分享给社区和作者。
工作原理
当远程主题或组件包含可翻译文本时,此组件会在翻译界面下方添加一个部分。从这里,你可以打开一个弹窗,以多种方式分享你的翻译。
关于默认分支的说明
该组件假设代码仓库的默认分支名为main。如果代码仓库使用其他名称(例如master),某些链接可能无法正常工作,可能需要手动调整。
在 GitHub 上创建新的翻译文件
如果主题托管在 GitHub 上,且该语言尚无翻译文件,按钮将执行以下操作:
- 打开 GitHub 编辑器,并定位到正确路径(例如
locales/de.yml) - 预先填入你已翻译的内容,格式正确
- 包含主题描述和设置(可选)
Discourse 界面中无法翻译描述,但你可以直接在 GitHub 编辑器中编辑它们后再保存。如果你不想翻译这些描述,也可以取消勾选复选框以排除它们。
详细步骤
- 翻译完成后,点击按钮打开弹窗
- 点击“创建拉取请求”
- Fork 该代码仓库
- 编辑器将打开,并预先填入你的翻译。如果需要,你可以直接在文件中翻译描述。
如果你已取消勾选以排除描述,则这些内容不会被包含,从而简化了编辑器中的文本。
- 准备就绪后,点击“提交更改…”,然后“提议更改”,最后“创建拉取请求”(需点击两次)。
- :partying_face 完成!你已成功分享翻译!
在 GitHub 上改进和添加翻译
即使你的语言已有翻译,你仍然可以改进现有内容并补充缺失的翻译。此流程稍显繁琐。按钮将:
- 打开 GitHub 编辑器,并定位到正确路径(例如
locales/en_GB.yml) - 不会预先填充 GitHub 编辑器,而是将翻译内容复制到你的剪贴板,方便你直接粘贴
- 如果你的界面语言与你正在编辑的翻译语言一致,则可以包含额外信息(如主题描述和设置)。否则,组件无法获取对应语言的描述,这些内容将被排除,你只能复制翻译文本。在这种情况下,请确保粘贴时不要覆盖描述。组件会提前警告你,你可以轻松切换界面语言以包含描述。
详细步骤
- 如果你的界面语言与翻译目标语言不匹配(例如,我的界面语言是美式英语,而我要翻译的是英式英语),你有两个选择:
A. 在打开弹窗前更改你的界面语言
B. 继续操作,不切换语言直接打开弹窗。 - 你将看到弹窗高亮显示你的编辑内容
A. 如果你的界面语言也是你要翻译的目标语言,你可以使用复选框选择是否排除描述
B. 否则,该复选框将被禁用。
- 点击“复制并打开 GitHub”,然后 Fork 该代码仓库
- 你将看到编辑器中显示当前保存在 GitHub 上的翻译内容。
A. 如果已包含描述,你可以直接替换整个文件内容。
B. 如果你未切换语言或未勾选复选框,则仅复制了主题翻译。因此,只需替换这些部分即可。请注意保持正确的缩进。
- 你也可以编辑描述。准备就绪后,点击“提交更改…”,然后“提议更改”,最后“创建拉取请求”(需点击两次)。
- :partying_face 完成!你已成功分享翻译!
某些主题组件使用翻译平台进行翻译。例如,许多 official 组件在 Crowdin 上进行翻译。这些文件顶部会有警告,告知你可以在哪里贡献翻译。
在 Meta 上分享翻译
如果你没有 GitHub 账户,且 Meta 话题链接可用,你也可以在那里发布你的翻译,并请求作者在下一次更新中将其包含进来。点击“复制并打开 Meta”将格式化你的翻译,复制到剪贴板,并在新标签页中打开 Meta 话题。然后只需点击 回复,粘贴为你格式化的翻译内容即可。
详细步骤
- 翻译完成后,点击按钮打开弹窗。
- 点击“复制并打开 Meta”。
- 点击“回复”以打开编辑器,然后粘贴你的翻译。
- 如果你未排除描述,可以在发布翻译前直接编辑它们。
- :partying_face 你已成功分享翻译
如果未提供 Meta 话题链接,你可以复制翻译内容并手动搜索相关话题。在这种情况下,请务必注意帖子的格式。
在其他平台上分享翻译
如果主题托管在 GitLab 或其他平台上,你的翻译内容将被复制到剪贴板,同时代码仓库将在新标签页中打开。与 GitHub 不同,GitLab 不支持在 URL 中预填充文件编辑器的内容。因此,即使是新文件,你也需手动粘贴翻译内容。
我尚未研究其他平台上编辑文件链接的构建方式。因此,在这种情况下,你将被带到代码仓库中的文件或目录,需要自行查找如何创建或编辑文件。
设置
此组件包含一个设置:hide_texts
该设置会隐藏 introductory 说明,并在你的界面语言与你正在翻译的语言不匹配时显示较短的消息。
未来展望
目前,该组件无法检测主题是否已在外部(例如通过 Crowdin)进行翻译。如果 about.json 文件包含一个可选的 translation_url 字段(就像它已经可以包含许可证或 Meta 话题链接一样),这在技术上是可行的。例如:
"translation_url": "https://discourse.crowdin.com/discotoc"
有了这个字段,该组件可以:
- 当翻译在其他地方处理时隐藏分享按钮
- 显示一条消息,说明应在哪里贡献翻译
- 避免不必要的拉取请求或混淆
这不仅有助于此组件,对管理员而言,找到贡献翻译的入口也将更加便利。















