2010-07-08 22 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