ruby-on-rails-3 – 在Rails 3中推荐的I18n导轨方式是什么

ruby-on-rails-3 – 在Rails 3中推荐的I18n导轨方式是什么,第1张

概述首先要确认的是,我不会在数据库中提供多种语言的任何内容.我只是在谈论页面上的文字. 我对Rails Guide中的陈述有点困惑: i18n库采用实用的方法来处理区域设置键(经过一些讨论),仅包括语言环境(“语言”)部分,如:en,:pl,而不是区域部分,如:en-US或:en-GB,传统上用于分离“语言”和“区域设置”或“方言”.许多国际应用程序仅使用语言环境的“语言”元素,例如:cs,:th或: 首先要确认的是,我不会在数据库中提供多种语言的任何内容.我只是在谈论页面上的文字.

我对Rails Guide中的陈述有点困惑:

i18n库采用实用的方法来处理区域设置键(经过一些讨论),仅包括语言环境(“语言”)部分,如:en,:pl,而不是区域部分,如:en-US或:en-GB,传统上用于分离“语言”和“区域设置”或“方言”.许多国际应用程序仅使用语言环境的“语言”元素,例如:cs,:th或:es(适用于捷克语,泰语和西班牙语).但是,不同语言群体之间也存在区域差异,这些差异可能很重要.例如,在:en-US语言环境中,您将使用$作为货币符号,而在:en-GB中,您将拥有£.没有什么可以阻止你以这种方式分离区域和其他设置:你只需要在:en-GB字典中提供完整的“英语 – 英国”语言环境.

假设我想拥有一套完整的英语本地化,其中包含美国部分和GB部分.

所以我需要在locale文件夹中包含en.yml,en-US.yml和en-GB.yml,3个文件,

-- Rails Root  |-- config    |-- locale      |      |-- en.yml      |-- en-US.yml      |-- en-GB.yml

当我设置I18n.locale =’en-US’时,它将使用en-US.yml中的文本翻译.这是在轨道3中进行I18n的推荐方法吗?

我在en.yml中保留相同的部分是很好的(就像星期一一样,它们在美国和英国都是一样的)并且在分离的文件en-US.yml和en中保存不同的东西(类似于货币符号) -GB.yml? rails可以自动在en.yml中找到相同的部分吗?在我测试时,它不支持开箱即用

解决方法 为避免重复使用en-US和en-GB共有的所有翻译,您可以为不同的翻译定义自定义回退路由.

I18n.fallbacks.map(:"en-GB" => :"en")

要么

I18n.fallbacks[:"en-GB"] # => [:"en-US",:en]

因此,如果en-GB没有某种翻译,您可以回退到en.yml或en-US.yml.通过这种方式,您可以将区域特定的翻译保留在en-US.yml和en-GB.yml中,而他们共有的所有内容都可以在en中,并且当您无法找到en-US.yml或en-GB.yml中的特定翻译.

总结

以上是内存溢出为你收集整理的ruby-on-rails-3 – 在Rails 3中推荐的I18n导轨方式是什么全部内容,希望文章能够帮你解决ruby-on-rails-3 – 在Rails 3中推荐的I18n导轨方式是什么所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存