是否有一些 gem 或工具可用于解析我的代码并将 I18n 密钥提取到 yml 文件?
所以如果我在代码中有:
<%= t("homepage.header", default: "Cool website") %>
它将添加到 yml 文件中
homepage:
header: "Cool website"
GetText 可以做到,但对于我的项目,我们现在使用默认的 rails 设置。当我需要新的翻译键时,我不得不手动更新 yml 文件,这让我很困扰。
是否有一些 gem 或工具可用于解析我的代码并将 I18n 密钥提取到 yml 文件?
所以如果我在代码中有:
<%= t("homepage.header", default: "Cool website") %>
它将添加到 yml 文件中
homepage:
header: "Cool website"
GetText 可以做到,但对于我的项目,我们现在使用默认的 rails 设置。当我需要新的翻译键时,我不得不手动更新 yml 文件,这让我很困扰。
对于从 Google 来到这里的任何人来说,现在所有这些东西都有一块宝石。
如果您在default:
任何地方都在使用,那么有一个可能适合您的解决方案:
不理想,也不是 Locale 的主要目的(避免手动编辑 YAML 文件),但它应该在这种情况下工作。
全面披露:我共同创立了 Locale。
我还没有听说过这种用于 Ruby on Rails 的工具,但我很确定它存在。另一方面,您可以自己创建一个 - 可以使用相对简单的正则表达式来完成,例如:
\s+t\(\"(?<key>.*?)\"\s*,\s*default:\s*\"(?<value>.*?)\"\)
然后,您所要做的就是访问命名组(上例中的键和值)并将其写入 YAML 文件。根据您要用于捕获此正则表达式的编程语言,您可能需要在正则表达式前面添加 (?s) 或 (?-s) 以允许将行结尾视为空格(即多行声明) .