2012-02-18 25 views
4

MM中使用的技術堆棧中是否會有一些東西能夠處理JS的i18n?例如。這將需要一個javascript:部分出en.ymles.yml文件,並使其可以作爲translation.js文件或類似的東西(我只知道它是如何有時在軌道)。如何與Middleman做i18n for javascript?

Fwiw,https://github.com/fnando/i18n-js似乎是一個流行的鐵軌解決方案。我猜測這個JS的部分將會工作得很好。我只是不確定如何將生成過程集成到MM堆棧中,以便生成所有文件並最終放置到正確的位置。

@tdreyno建議:目前不是,但它看起來像我們可以掛鉤 鏈輪(JS)和國際錳協。

有沒有人做過這件事,或者對如何繼續進行建議(對於Ruby/Rails中尚未解決,但尚未在3.1資源路徑中挖掘但不敢嘗試的人)。

回答

1

我只是想解決完全相同的問題。因此,這裏是我的解決方案:

source/layouts/layout.html.slim

javascript: 
    var I18n = {}; 
    I18n.locale = 'fr'; 
    I18n.translations = {}; 
    I18n.translations['fr'] = #{I18n.backend.send(:translations)[:fr].to_json}; 

在JS然後訪問翻譯一樣簡單:

I18n.translations.fr['menu']['glossaire'] 
#=> "Glossaire" 
0

caedes的解決方案很簡單,可行的,但在我的情況下,我想以便能夠使用i18n-js的一些更復雜的功能,如字符串插值,而不僅僅是具有一組嵌套字典。

幸運的是,i18n-js可以read in from a dictionary。我安裝i18n-js與browserify,與window.I18n = require('i18n-js');全球進口,並增加了部分_i18n_js.slim

javascript: 
    I18n.translations = #{I18n.backend.send(:translations).to_json}; 

,然後你可以使用優秀i18n-js的所有功能。