我会进入容器,安装vim并修复本地化文件。
你可以保存损坏的希伯来语本地化文件,然后用英语本地化文件覆盖它……
root@carrie-app:/var/www# for i in `find . -name *.he.yml` ; do cp ${i/he.yml/en.yml} $i ; done
这个想法很可爱,但实际上并不能奏效。当我再次将我的区域设置为 HE 时,我收到了错误。我想我现在还是会遍历用户,将他们全部设置为英语。
修改区域设置后,您是否重新启动了 discourse?
是的。没做什么。

在展示了我旧的 Ruby 技能后,我现在暂时将所有人都切换到了英语。我稍后会就希伯来语本地化问题开一个工单。
感谢 @JammyDodger 将其移至 Bug,仅此就可以提交 bug 报告了吗,还是我应该在某个 bug 跟踪器中提交正式报告?
如果复制了 en 区域设置,则在合并过程中会出现错误(似乎未翻译的条目被删除,如果没有剩余条目,则会出现错误)。
但是,删除 config/locales/client.he.yml 可以让我的测试站点登录。
因为它完全回退到EN。我认为这是预期的行为。
在希伯来语区域设置 config/locales/client.he.yml 中
posts_likes_MF: |
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
many {# תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
行
many {# תגובות, }
必须删除。
希伯来语不允许使用 many(请参阅 Language Plural Rules
可以通过用户界面解决此问题。为此,应在希伯来语的 /admin/customize/site_texts/js.posts_likes_MF 中输入更正后的值:
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
通过将错误数据输入文本自定义项,可能导致整个站点无法使用,这感觉有点奇怪。
在此处记录就是提交 bug 报告的地方。![]()
我将使用 git 来查看谁应该为那一行负责,我以为唯一允许提交更改到那些的是 crowdin?\n另外,如果是这种情况,为什么在复制完英文到希伯来文后重启 unicorn 就不能解决这个问题?
实际上应该区分“不允许”和“不支持”。
奇怪的是,在 Discourse 代码中,“复数二”也不支持这两种语言代码,这与阿拉伯语是共享的。我认为问题需要在这里修复。我会为此提交一个 PR,但绝对有必要修复对“多余的”many 字段的硬性失败,因为 Crowdin 似乎不符合这个 plurals.rb 文件。
我认为这更复杂。
前端翻译由节点模块 @messageformat/core 使用 messageformat-wrapper 进行解释。
问题在于复数规则定义在两个地方。另一个最近已更改为使用库(https://github.com/discourse/discourse/commit/301713ef9631e52975781b60b8b4c4a0d75530cf)。
然而,库中定义的复数规则并不总是与 Discourse 之前使用的规则相同,并且 plurals.rb 中的规则也没有更改。Inconsistency in plural definition
但这并不能解释为什么 Crowdin 为许多复数创建了单独的版本。
我添加了翻译所需的字段规则,但这并不是此错误的解决方案,只是为了兼容 Crowdin 的输出。
我认为行尾的规则也需要调整。
目前,这仍然只提到了“one”和“other”。
rule: lambda { |n| n == 1 ? :one : :other }
是的,我搞砸了。我用 amend 修复了它,却忽略了我在没有 --force 的情况下推送了它。现在已经更正了。
感谢大家,让我们继续在此主题中跟踪更广泛的问题: