【发布时间】:2012-05-30 22:36:46
【问题描述】:
我的根应用程序的 config/locales 目前有以下 4 个文件:
-en.yml
-de.yml
-simple_form.en.yml
-simple_form.de.yml
在我的 application.rb 中,它位于 spec/dummy 文件夹中,用于测试应用程序 gem,我有以下代码行,似乎正在检索翻译为预期:
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = :de
我现在希望向我的语言环境文件夹的文件结构介绍结构,但是当我添加其他文件夹并更改 application.rb 中的加载路径时,我收到了未找到翻译的错误。这是我的尝试:
尝试在我的根应用程序的 config/locales 中包含结构:
-views
-en.yml
-de.yml
-models
-en.yml
-de.yml
-forms
-simple_form.en.yml
-simple_form.de.yml
而我在 application.rb 中的加载路径更改为:
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
根据以下导轨指南: http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name
【问题讨论】:
-
请告诉我们您遇到的具体错误。你有可以分享的堆栈跟踪吗?
-
在视图中我收到字符串:缺少翻译:en.new_tenant.header,我没有看到任何错误消息
-
问题可能是 application.rb 文件驻留在 spec 文件夹中以用于测试目的,并且我的 config 文件夹没有在根级别加载,我只将翻译视为 config/语言环境会自动添加,但不会添加任何子文件夹?
-
Dir[Rails.root.to_s] 生成字符串 C:/Sites/MyApp/spec/dummy,这是用于测试 MyApp 的虚拟应用程序。带有翻译的配置文件夹位于 C:/Sites/MyApp/Config/Locales/
-
我试过这个:my_root = "C:/Sites/MyApp" config.i18n.load_path += Dir[my_root.join('config', 'locales', '* ', '.{rb,yml}').to_s] config.i18n.default_locale = :de
标签: ruby-on-rails-3 internationalization locale i18n-gem load-path