2016-04-22 8 views
0

私は、I18n変換キーを含む.ymlファイルを持つRailsプロジェクトを持っています。私は追加されたキー(gitが追加されたことを認識する行)のパスを抽出するレーキタスク(または同様のもの)を作成したい。結果が端末またはファイルに書き込まれているかどうかは関係ありません。Rubyとgitを使って.ymlファイルから新しいキーを抽出します

例.ymlファイル:rakeタスクの

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 

はこの何とか可能ですか?ありがとう!

+0

はい、これは間違いありません。 – mudasobwa

答えて

1

はい、できます。この機能はすべての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 
+0

お返事ありがとうございました。これは、キーまたはそれらに関連付けられた文字列を出力しますか? – Linus

+0

あなたは 'en.index.greeting:" Hello world! "のようなkeyの値を意味しましたか? –

+0

はい - あなたの答えがキーの値を表示するか、キー自体を表示するかは不明です。 (私が必要とするのは、値ではなくキーです) – Linus

関連する問題