我有一个 Rails 项目,其中包含一个包含 I18n 转换键的.yml
文件。我想创建一个 rake 任务(或类似任务),它提取添加键的路径(行 git 识别为已添加)。结果是写入终端还是文件并不重要。
示例 .yml 文件:
en:
index: # <-- new key
greeting: "Hello world!" # <-- new key
show:
title: "Old text"
body: "This is a text" # <-- new key
抽成任务的示例输出/结果:
en.index.greeting
en.show.body
这在某种程度上可能吗?谢谢!
是的,你可以。此功能将打印所有 I18n 键
def print_translations(prefix, x)
if x.is_a? Hash
prefix += "." if prefix.present?
x.each do |key, value|
print_translations(prefix + key.to_s, value)
end
else
puts prefix
end
end
I18n.translate(:foo)
translations_hash = I18n.backend.send :translations
print_translations "", translations_hash