Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用i18n js插件的rails javascript i18n特定yml_Javascript_Jquery_Ruby On Rails_Rails I18n - Fatal编程技术网

使用i18n js插件的rails javascript i18n特定yml

使用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的

我的问题是,是否有必要配置i18njs,以便javascript只查找一个特定的.yml文件,而不是所有文件。我已经按照下面链接中的示例,让javascript查找正确的键;但是,当我查看这个插件在inspect元素中生成的translation.js时,所有的translation键都显示出来了。我们担心,随着我们的应用程序的发展,这会成为一个问题,因为javascript只需要知道它需要的翻译密钥。我想用config/locales/en/javascript.yml将javascript的所有翻译放在这里

仿效

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
|配置
|-地区
|--嗯
|---恩·伊梅尔

|---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'