Formal german available?

我在 app.yml 中将所有内容更改为默认值 (en),然后运行了 ./laucher rebuild app。之后,默认语言变为英语 (US),其行为与更改默认区域设置之前的任何更改都自行恢复一样——这意味着 UI 接受了更改,当我接受更改(例如,更改为 Deutsch)然后进入管理中的另一个选项卡然后返回时,它又变回了英语 (US)。

这是否意味着对默认区域设置的任何更改都必须始终通过更改 app.yml 和重建应用程序来完成?

在我通过 app.yml 将默认区域设置更改为英语 (US) 后,我可以使用替换文本按钮将所有文本(例如 TOS 等)从之前的德语更改为英语(因为这是默认区域设置)。这奏效了。但是,当我尝试将所有文本(例如,从现在的英语新文本更改为德语)时,却不起作用。

这是否意味着替换文本仅适用于 discourse 实例的默认区域设置?

1 个赞

@gerhard
为了开始我的测试,我设置了 DISCOURSE_DEFAULT_LOCALE : de_formal 并运行了 ./launcher rebuild app。然后我使用相应的按钮替换了所有文本。

在我的测试实例上需要登录。当我注销时,我收到消息:

Ein Konto ist erforderlich. Bitte frage ein existierendes Mitglied nach einer Einladung oder melde dich an, um fortzufahren.

管理后台中对应的文本是“login_required.welcome_message_invite_only”。我在 transifex 中仔细检查过,没有未翻译的字符串包含此文本。但是 discourse(使用 Deutsch(Sie) 运行)仍然显示非正式文本。

transifex 中的源语言文件是否缺少某些文本?

1 个赞

@gerhard
我已找到解决方案。原因是“根据接受语言标头设置区域设置”的设置。我启用了此设置,导致出现非正式文本,因为我的浏览器的语言标头没有显示“de_formal”。

2 个赞

@gerhard
我是否可以自己从 Transifex 更新 Discourse 的翻译,还是每次都需要请你更新插件?

我目前缺少一个 Discourse 的键,该键在 Transifex 上无法进行翻译:

discourse_narrative_bot.new_user_narrative.hello.title

你知道在哪里可以找到它,或者为什么它在 Transifex 上不可用吗?

2 个赞

是的,那个字符串丢失了,因为它在插件中,我现在没有时间来修复它。可能需要等到我找到时间将它移到 Crowdin 并实现一个适当的自动化解决方案。

我将尝试每周从 Transifex 进行更新。这是我现在能做的最好的了。抱歉。我将在未来几个月内努力寻找一个更好的解决方案。

3 个赞

@gerhard
您能更新一下翻译吗?提前感谢。

最好能找到一个我自己就能完成的解决方案。有什么方向吗?

2 个赞

完成。您可以通过安装 GitHub - transifex/cli: The Transifex command-line client 并运行 bin/pull_translations.rb 来创建包含更新的拉取请求,以用于 https://github.com/gschlager/discourse-german-formal-locale。

1 个赞