2011-01-21 2 views
2

i18nロケールキーをプログラマチックに挿入、変更、削除する方法があるかどうかを知りたいと思います(私はDBを使用することができますが、私はRails i18nが好きで、できるだけ近くにとどめたいです)。Rails 2.3.x i18nロケールをプログラム的に管理するには?

基本的に私は次のように物事を行う方法(ネイティブ、宝石、プラグイン、何でも)があるかどうかを知りたい:パッケージ化されたよう

I18n.add_locale_key("en", "application.messages.submit_message", "Submit message!") 
I18n.add_locale_key("es", "application.messages.submit_message", "Enviar mensaje!") 

I18n.remove_locale_key("en", "application.messages.submit_message") 
I18n.remove_locale_key("es", "application.messages.submit_message") 

答えて

2

は、Railsの国際化APIは、ローカル経由でのロケールの用語を定義するサポート。 yamlまたは.rbファイル。実行時にこれらのファイルを動的に編集することができない場合は、FastGetTextのような宝石のDB機能を使用するのが最善の方法です。

もちろん、独自のソリューションをロールすることもできますが、DBメソッドはユースケースに適している可能性が高く、時間の投資が少なくなります。

2

ここでそれを行うための一つの方法です:

>> I18n.backend.store_translations :en, :hello_world => "Hello, world." 
=> {:hello_world=>"Hello, world."} 
>> I18n.t :hello_world 
=> "Hello, world." 
+0

この方法は、再起動時にレール翻訳損失につながる新しい翻訳を持続しません。 –

関連する問題