2

ビューの一部をローカライズするために、標準の Rails I18n APIを使用しています。enこれは非常にうまく機能していますが、現在、ロケールに対する地域的な変更のユースケースがいくつかあります。

API ガイドには、これは直接サポートされておらず、他のプラグインを使用する必要があると記載されています。しかし、これを行うより簡単な方法があるかどうか疑問に思っています。

私はすでに を持っているen.ymlので、理論的には と を作成することができますがen-AU.ymlen-US.ymlこれは実質的に のクローンですen.ymlが、いくつかの地域的な変更が適用されています。次に、新しい地域固有のロケールにマップされ、ユーザーが地域固有のロケールを使用できるようにするオプションを構成にEnglish - American追加できます。English - Australian

これに関して私が考えることができる唯一の問題は、DRY ではないということです。すべての一般的な英語の単語の翻訳が重複することになります。これを回避する方法がわかりません。

このアプローチには他にも欠点がありますか?それとも、代わりに Globalize2 などのプラグインの 1 つに飛び込む必要がありますか?

4

3 に答える 3

6

rails-i18n-translation-inheritance-helperは少し古くなっているので、これがRails3.2プロジェクトに対する私のアプローチです。

en-USとen-AUの両方を同じen.ymlファイルに保持する場合は、yml反復ノードを使用してスーパーenセクションを作成できます。

例えば:

    en: &en
      errors:
        messages:
          expired: "has expired, please request a new one"
          not_found: "not found"

    en-US:
      <<: *en

    en-AU:
      <<: *en
      errors:
        messages:
          not_found: "tis not found"
于 2013-01-16T00:31:49.390 に答える
2

Rails / i18nの新しいバージョンでは、フォールバック機能が追加されています。古いtranslation inheritance helper宝石と同様に機能します

詳細については、この回答を参照してください:翻訳が欠落している場合は、デフォルトの言語にフォールバックします

于 2013-03-12T12:10:08.367 に答える
2

これには翻訳継承ヘルパープラグインを使用しています。

于 2010-06-07T23:58:44.240 に答える