簡體   English   中英

使用i18n-js插件的Rails javascript i18n特定yml

[英]rails javascript i18n specific yml using i18n-js plugin

我的問題是,是否仍然需要配置i18n-js,以便javascript僅查找一個特定的.yml文件,而不是全部。 我按照下面的鏈接中的示例進行操作,並讓javascript查找正確的鍵;但是,當我查看此插件在inspect元素中生成的translation.js時,將顯示所有翻譯鍵。 我們擔心隨着我們的應用程序的增長,這將成為一個問題,因為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

當前沒有辦法通過簡單的配置來做到這一點。

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

根據文檔,您可以指定一個特定的密鑰。 我在更新translations.js文件時遇到問題,因此無法驗證它是否確實有效,但是文檔中指出:

內部config / 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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM