Rails 使用 I18n 语言环境的语言名称
Rails language name using I18n locale
我想将区域设置代码与特定语言名称相匹配。 I18n/rails 中是否有任何内置函数可以将 return 语言名称转换为相应的语言环境。安装 gem 是唯一的方法吗?
无需安装额外的 gem,您可以制作自己的 key/value 对(将其存储在 json 文件中或将其存储到数据库中),然后查找密钥,例如 "de" 并读取值(在本例中为 "German")。它需要一些手动工作(或设置一个 rake 任务或从某些信息源以适当的格式为您构建它)但在这种情况下您不依赖于额外的 gem(无需去彻底了解代码,可能对您的应用 performance/memory 产生的影响远大于您根据您所知道的特定需求自定义实现)。
不过,我不知道有任何 rails 内置函数会 return 整个语言名称。您可以 return 语言缩写(例如用于 html lang 属性),但我认为就内置函数而言它就到此为止了。
I18n 好像没有这个方法。
如果您只需要当前的语言名称,您可以轻松地将其包含在相应的语言环境文件中:
# config/locales/en.yml
en:
language_name: "English"
照常获取:I18n.t('language_name')
或 I18n.t('language_name', locale: :en)
。
对于一般用途,您可以使用:https://github.com/hexorx/countries 或将您自己的映射初始化为 ruby 散列:{ en: 'English', ... }
.
看看下面post中的google groups (Gist)。我希望 rails.
中没有对所需转换的默认支持
我想将区域设置代码与特定语言名称相匹配。 I18n/rails 中是否有任何内置函数可以将 return 语言名称转换为相应的语言环境。安装 gem 是唯一的方法吗?
无需安装额外的 gem,您可以制作自己的 key/value 对(将其存储在 json 文件中或将其存储到数据库中),然后查找密钥,例如 "de" 并读取值(在本例中为 "German")。它需要一些手动工作(或设置一个 rake 任务或从某些信息源以适当的格式为您构建它)但在这种情况下您不依赖于额外的 gem(无需去彻底了解代码,可能对您的应用 performance/memory 产生的影响远大于您根据您所知道的特定需求自定义实现)。
不过,我不知道有任何 rails 内置函数会 return 整个语言名称。您可以 return 语言缩写(例如用于 html lang 属性),但我认为就内置函数而言它就到此为止了。
I18n 好像没有这个方法。 如果您只需要当前的语言名称,您可以轻松地将其包含在相应的语言环境文件中:
# config/locales/en.yml
en:
language_name: "English"
照常获取:I18n.t('language_name')
或 I18n.t('language_name', locale: :en)
。
对于一般用途,您可以使用:https://github.com/hexorx/countries 或将您自己的映射初始化为 ruby 散列:{ en: 'English', ... }
.
看看下面post中的google groups (Gist)。我希望 rails.
中没有对所需转换的默认支持