我的问题是,无论如何都要配置i18n-js,以便javascript只查找一个特定的.yml文件,但不是全部。我已经按照下面的链接中的示例进行了操作,并让javascript查找正确的密钥;但是,当我查看translation.js中这个插件在inspect元素中生成时,所有翻译键都显示出来。我们担心这会成为一个问题,因为我们的应用程序增长,因为javascript只需要知道它需要的翻译密钥。我想只需要一个config / locales / en / javascript.yml来将javascript的所有翻译放在这里。
遵循示例
https://github.com/fnando/i18n-js
http://blog.10to1.be/rails/2011/03/22/localizing-javascript-in-your-rails-app/
然
rake i18n:js:setup
的application.js
//= 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
答案 0 :(得分:0)
目前,通过简单的配置无法做到这一点。
i18n-js
与任何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
答案 1 :(得分:0)
根据文档,您可以指定特定密钥。我在翻译translate.js文件时遇到问题,因此我无法验证这是否真的有效,但文档说明了这一点:
内部配置/ i18n-js.yml
translations:
- file: "app/assets/javascripts/application/i18n/translations.js"
only: '*.js*'
内部en.yml
js:
posts:
select2:
placeholder: 'Please, select tags'
no-matches: 'No tags found'