从rails项目中提取I18n转换键

是否有一些gem或工具可用于解析我的代码并将I18n密钥提取到yml文件?

所以,如果我在代码中:

 

它会添加到yml文件中

 homepage: header: "Cool website" 

GetText可以做到,但对于我的项目,我们现在使用默认的rails设置。 当我需要新的翻译密钥时,我需要手动更新yml文件,这让我很烦恼。

我还没有听说过Ruby on Rails这样的工具,但我很确定它存在。 另一方面,您可以自己创建一个 – 可以使用相对简单的正则表达式来完成,例如:

 \s+t\(\"(?.*?)\"\s*,\s*default:\s*\"(?.*?)\"\) 

您所要做的就是访问命名组(上例中的键和值)并将其写入YAML文件。 根据您要用于捕获此正则表达式的编程语言,您可能需要在正则表达式前添加(?s)或(?-s)以允许将行结尾视为空格(即多行声明) 。

如果您使用default:无处不在,那么有一个可能适合您的解决方案:

  • 转到Locale并创建一个帐户和一个新项目
  • 在rails项目中设置localeapp gem,使用API​​密钥等配置它…
  • 默认情况下,当您访问带有翻译调用的页面时,它会将翻译发送到Locale服务器,然后将其同步回您的YAML。
  • 或者,如果您具有良好的测试覆盖率,则可以将localeapp配置为在测试环境中运行并运行测试套件。

不理想,而不是Locale的主要目的(这是为了避免手动编辑YAML文件),但它应该适用于这种情况。

完全披露:我共同创立了Locale。

对于那些从谷歌来到这里的人来说,现在有了所有这类东西的gem。

https://github.com/glebm/i18n-tasks