使用i18n js插件的rails javascript i18n特定yml
我的问题是,是否有必要配置i18njs,以便javascript只查找一个特定的.yml文件,而不是所有文件。我已经按照下面链接中的示例,让javascript查找正确的键;但是,当我查看这个插件在inspect元素中生成的translation.js时,所有的translation键都显示出来了。我们担心,随着我们的应用程序的发展,这会成为一个问题,因为javascript只需要知道它需要的翻译密钥。我想用config/locales/en/javascript.yml将javascript的所有翻译放在这里 仿效 跑 application.js使用i18n js插件的rails javascript i18n特定yml,javascript,jquery,ruby-on-rails,rails-i18n,Javascript,Jquery,Ruby On Rails,Rails I18n,我的问题是,是否有必要配置i18njs,以便javascript只查找一个特定的.yml文件,而不是所有文件。我已经按照下面链接中的示例,让javascript查找正确的键;但是,当我查看这个插件在inspect元素中生成的translation.js时,所有的translation键都显示出来了。我们担心,随着我们的应用程序的发展,这会成为一个问题,因为javascript只需要知道它需要的翻译密钥。我想用config/locales/en/javascript.yml将javascript的
//= require i18n
//= require i18n/translations
application.html.haml
= javascript_include_tag 'translation'
目录
|config
|-locales
|--en
|---en.yml
|---javascript.yml <------ that's what I want and the js only look at this one2
|配置
|-地区
|--嗯
|---恩·伊梅尔
|---javascript.yml目前,通过简单的配置无法做到这一点
i18njs
不知道任何YML翻译文件或翻译文件夹(例如Rails的默认config/locales
)。它只要求i18n
gem(随Rails提供)检索所有可用的翻译,然后将它们导出为JS格式
但是,您可以定义一个自定义rails环境,例如js_i18n
,在该环境中,您可以覆盖默认的i18n加载路径,如下所示:
# config/environments/js_i18n.rb
# code similar to the rest of your config files - you could copy `development.rb`
# ...
config.i18n.load_path = Dir[Rails.root.join('config', 'locales', 'js', '*.{rb,yml}').to_s]
然后使用这个只加载config/locales/js
下的YML/Ruby文件的环境来运行您喜欢的任何任务,例如:
RAILS_ENV=js_i18n rake i18n:js:export
根据文档,您可以指定特定的密钥。我在更新translations.js文件时遇到问题,因此我无法验证这是否有效,但文档中说:
内部配置/i18n-js.yml
translations:
- file: "app/assets/javascripts/application/i18n/translations.js"
only: '*.js*'
内文
js:
posts:
select2:
placeholder: 'Please, select tags'
no-matches: 'No tags found'
js:
posts:
select2:
placeholder: 'Please, select tags'
no-matches: 'No tags found'