gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:15:44 26 4
gpt4 key购买 nike

首先要确认的是,我不会在数据库中提供多种语言的任何内容。我只是在谈论页面上的文字。

我对 Rails Guide 中的声明有点困惑:

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

假设我想要一套完整的英文本地化,其中包含美国部分和GB部分。

所以我需要en.yml , en-US.ymlen-GB.yml , locale 文件夹中的 3 个文件,

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

当我设置 I18n.locale = 'en-US'那么它将使用 en-US.yml 中的文本翻译.这是推荐的方式吗 I18n在导轨 3 中?

我在 en.yml中保留相同的部分好吗? (例如 Monday 星期二,它们在美国和 GB 中相同)并将不同的东西(例如货币符号)保存在单独的文件中 en-US.ymlen-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 的推荐 Rails 方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com