2011-06-30 7 views

答えて

3

テスト環境では、できることはI18n.config.exception_handler = :raise_i18n_exceptionと設定されています。それはすべてをキャッチしませんが、それは何よりも簡単で簡単です。

(設定/環境では/それだけでI18n.exception_handler = :raise_i18n_exception だろうtest.rb)

+0

すべての回答は非常に役に立ちました!しかし、これは私の質問に最も直接的に答えました。皆さんありがとう! –

1

Gettextは翻訳では事実上の標準です。その非常に機能豊富で率直に私はホイールを再開発しようとするアプリが嫌い。それで、私はいつもgettext-rails(またはfastgettext)プラグインに切り替えます。

それはモデルでうまく動作:http://www.yotabanana.com/hiki/ruby-gettext-howto-rails.html#Models

そして...それはあなたの問題を解決します。 Gettextは翻訳されていない文字列を追跡するのに役立ちます。あなたに叫ぶように設定したり、翻訳されていない文字列を返すように設定できます(デフォルト)。

+0

申し訳ありませんが、プロジェクトは非常に古くなっているようです...多くの人がRailsのI18nがその機能を置き換えたと言います。 –

+0

古くなったgettext?!? gettextを置き換えましたか?それは真実ではありません:https://github.com/grosser/fast_gettextと詳細はこちら:http://ruby-i18n.org/wiki – lzap

+0

ああ!申し訳ありません、https://github.com/mutoh/gettext_railsを見ていました - 私はfast_gettextをチェックアウトします。 –

2

あなたは、キーが欠落している翻訳のキーのために少しのWeb管理コンソールを(追加して、あなたを示しtranslateプラグインを確認することができますし、どこに)。

これはおそらく少し古くなっていますが、Rails 2で動作し、いくつかの設定問題を修正する(またはすでにそこで利用可能なプルリクエストをピックアップしている)場合は、3で動作します。

1

いつか私はすべてのアプリで共通の翻訳をすべて共有する簡単な方法を考えていました。このrailscasts episodeは私にそれをする方法のアイデアを与えました。

簡潔に言えば、異なる翻訳バックエンドをチェーンすることができ、i18n gemはそれらを定義された順序で使用するため、私はRedisバックエンド*を使用してすべての共通翻訳(AR検証メッセージなど)を保存し、 i18nを必要とする私のすべてのアプリのフォールバックバックエンド。

このアプローチでは、別の視点から問題を解決することができます。翻訳を一度書き、永遠にそれらを共有します。さらに、欠落している翻訳を見つけたときはいつでも、共有バックエンドを使用するすべてのアプリケーションで修正されます。

私はこれを行う時間がなかったので、まだ実装していませんでしたが、私の考えは、翻訳を管理し、railscastに示された方法を使ってそれらを共有するために、translate interfaceのようなことをすることでした。

希望すると、これが役立ちます。

* Redisなどの永続的なネットワークキーストアがあれば、そのタスクで問題ありません。

関連する問題