2

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

所以如果我在代码中有:

<%= t("homepage.header", default: "Cool website") %>

它将添加到 yml 文件中

homepage:
  header: "Cool website"

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

4

3 回答 3

3

对于从 Google 来到这里的任何人来说,现在所有这些东西都有一块宝石。

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

于 2013-12-03T17:11:29.390 回答
2

如果您在default:任何地方都在使用,那么有一个可能适合您的解决方案:

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

不理想,也不是 Locale 的主要目的(避免手动编辑 YAML 文件),但它应该在这种情况下工作。

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

于 2012-10-22T12:58:07.500 回答
1

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

\s+t\(\"(?<key>.*?)\"\s*,\s*default:\s*\"(?<value>.*?)\"\)

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

于 2012-10-22T18:30:17.917 回答