2010-07-08 56 views
0

我對javascript_I18n插件產生了輕微的煩惱,它會生成js友好版本的I18n轉換表,以便您可以本地化您的javascript。它一切正常,但它通過在每個語言環境的翻譯哈希上調用to_json並將結果輸出到文件中起作用。當你使用散列函數調用to_json時,所得到的字符串都是一個單獨的lne,這意味着最終會得到一個巨大的文件。Rails:哈希#to_json - 分成多行?

這反過來會阻止git能夠合併任何更改,因爲合併在逐行基礎上工作,並且無法處理在某處處於中間更改的單個巨量行。這不是一個大問題,因爲我總是可以用插件附帶的一個rake任務重新生成js友好的翻譯文件(用一個全新的插件替換中間文件,我可以直接提交),但是這只是有點煩人。我想,如果json是在不同的行上輸出的,而不是所有的行,那麼這不會是一個問題,甚至不會讓文件變得更大,只是插入兩個字符(\ n )每行。

在我嘗試使用gsub將結果字符串分解爲單獨的行之前,是否有更好的方法來調用hash上的to_json並將結果輸出到單獨的行上?或者更好的方式來解決這個問題? (我在javascript_I18n的文檔中找不到太多有用的東西)。

感謝您的任何意見 - 最大

回答

0

不回答你的問題,而是給一個建議:

它可能會更容易忽略所有生成的js翻譯文件。

這是因爲即使將翻譯分成多行,仍有可能發生合併衝突,您可能已經在yaml文件中解決了這種衝突。

我會這樣設置:

1)。 gitignore所有的js翻譯文件。 2)。在ActionController中,添加一個before過濾器,以僅在開發模式下的每個負載上自動生成js文件。 3)。調整您的deploy.rb文件以在代碼更新後生成js文件。

沒有更多的合併衝突! (至少對於js翻譯文件):D

Aaron Qian