1

Rails の経験豊富な開発者が既存の Ruby on Rails プラグインまたは gem を推奨してくれることを願っています。これにより、Simple I18n バックエンドを引き続き使用しながら、オプションでデータベースで翻訳を指定できるようになります。

理由は次のとおりです。

多くの Web サイトで使用される 1 つの Rails アプリがあります。この例では、次の 2 つの Web サイトを使用します。

ウェブサイト 1: レプラコーンズ R アス

ウェブサイト 2: Unicorns R Us

ほとんどの翻訳は両方の Web サイトで同じですが、翻訳をオーバーライドしたい場合があります。たとえば、私の en-US.yml ファイルには、次の翻訳があります。

view_all: すべて表示

ほとんどの Web サイトでは、この翻訳で問題ありません。Web サイト 1 (Leprechauns) では、「すべて表示」を喜んで使用します。

ただし、Web サイト 2 では、「View all Unicorns」を view_all の翻訳として使用し、これをデータベースで指定したいと考えています。メンテナンス上の理由から、YAML ファイルでこのオーバーライドを指定したくありません。

どうもありがとう、

エリオット

4

1 に答える 1

1

結局、私はRailsのI18n :: Backend::Simpleの.ymlファイルと.rbファイルの両方をロケール辞書として処理する機能を利用することを選択しました。

作成されたアーティファクト:

  1. ロケール、キー、テキストの列を持つ翻訳テーブルを作成するためのDB移行

  2. 変換テーブルにマップする変換モデル

  3. I18n :: Backend::Simple.load_rbで必要とされるロケールキー付きハッシュを返す変換モデルのクラスメソッドto_locale_hash

  4. config/translations.rbにある「Translation.to_locale_hash」という行の1行のファイル

ソースコードについては、Spree拡張機能を参照してください(Railsプラグイン構造ではありません。必要に応じてプラグインに簡単に移行できます)。

http://github.com/eliotsykes/spree-i18n-db/tree/master

于 2009-09-03T14:55:39.927 に答える