【发布时间】:2012-03-30 07:51:02
【问题描述】:
首先要确认的是,我不会在数据库中提供多种语言的任何内容。我只是在谈论页面上的文字。
我对@987654321@中的说法有点困惑:
i18n 库对语言环境键采用实用的方法(经过一些讨论),仅包括语言环境(“语言”)部分,例如 :en、:pl,而不包括区域部分,例如 :en-US或 :en-GB,传统上用于分隔“语言”和“区域设置”或“方言”。许多国际应用程序仅使用区域设置的“语言”元素,例如 :cs、:th 或 :es(用于捷克语、泰语和西班牙语)。但是,不同语言组之间的区域差异也可能很重要。例如,在 :en-US 语言环境中,您将使用 $ 作为货币符号,而在 :en-GB 中,您将使用 £。没有什么能阻止您以这种方式区分区域设置和其他设置:您只需在 :en-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 中的文本翻译。这是在 rails 3 中执行 I18n 的推荐方法吗?
我将相同的部分保留在en.yml 中是否很好(例如星期一星期二,它们在美国和英国是相同的)并将不同的东西(例如货币符号)保留在单独的文件中 en-US.yml 和en-GB.yml? Rails 是否有可能自动在en.yml 中找到相同的部分?正如我测试的那样,它不支持开箱即用
【问题讨论】:
标签: ruby-on-rails-3 internationalization