【问题标题】:Rails Internationalization: i18n look up with nested locales directoriesRails 国际化:i18n 查找嵌套的语言环境目录
【发布时间】:2013-11-25 00:38:45
【问题描述】:

我正在尝试使用嵌套文件结构来组织我的本地化文件,以便于查找。

我关注了

Organization of Locale Files in rails app

How do you structure i18n yaml files in Rails?

但我缺少翻译:en.view.fruits.apple。我认为 Rails 试图只在 locales/en.yml 文件中查找翻译,而不是在子目录中,尽管我已经包含了它们。

配置/应用程序.rb:

 config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]

我的语言环境目录:

|locales   
|-en.yml
|-views
|--en.yml

locales/views/en.yml:

en:
  fruits:
    apple: "apple"

views/fruit.html.haml:

= I18n.t('views.fruits.apple')

【问题讨论】:

标签: ruby-on-rails internationalization ruby-on-rails-4 haml i18n-gem


【解决方案1】:

问题解决了

在我看来/fruit.html.haml

而不是

= I18n.t('views.fruits.apple')

应该是

= I18n.t('fruits.apple')

因为所有子文件夹都是从

预加载的

config/application.rb

 config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]

别忘了你需要重启你的服务器!!

【讨论】:

  • 另一种方法是将所有内容嵌套在 yml 文件中的“视图”下,因此基本上是:{en:views:fruits:apple:“apple”}。 Rails 不会根据文件位置/名称解释范围,仅根据 yml 的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多