Chr*_*fer 9 ruby-on-rails rails-i18n
我在使用I18n的Rails翻译应用程序中遇到了问题.我在这样的数组中创建动态句子[:this_is_a, 5, :which_is_a_number, "."],我逐个翻译每个单词.
当我遍历这个并翻译I18n.t(".")时,我在我的整个应用程序中获得了所有翻译的完整数组,输出了1000多个数组文本.这似乎也适用于I18n.t("%").
有没有设置阻止这种情况发生?我目前唯一的解决方案是改变所有"." "."但我希望有更好的解决方案.有什么建议?
“。” 用于命名空间翻译键。如果你有这样的文件:
module1:
key_a: "Module1 Translation A"
key_b: "Module1 Translation B"
module2:
key_a: "Module2 Translation A"
Run Code Online (Sandbox Code Playgroud)
然后你可以用“.”访问那些。
I18n.t("module1.key_a")
I18n.t("module2.key_a")
Run Code Online (Sandbox Code Playgroud)
如果您只是使用I18n.t(".")它将提供整个顶级命名空间。您可以通过更改分隔符来更改此行为
I18n.t("module1@key_a", separator: "@")
Run Code Online (Sandbox Code Playgroud)
只需选择一些您知道不会作为标记出现的字符即可。
“%”字符用于插值:
module1:
name: "My name is %{name}"
Run Code Online (Sandbox Code Playgroud)
进而
I18n.t("module1.name", name: "John")
Run Code Online (Sandbox Code Playgroud)
看起来您不能将“%”更改为其他内容,因为它是硬编码的。但它不应该返回整个翻译数组。它应该只返回“翻译缺失”错误。至少我的 I18n gem 版本就是这样。
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |