2

たとえば、プロジェクト モデルと 5 つの利用可能なロケールがあります。ユーザーはこれら 5 つのロケールにローカライズされたプロジェクトを作成できるはずですか? この種の機能を追加する最良の方法は何ですか?これにはレールの方法がありますか? これらすべての翻訳をデータベースに保存する必要があることは理解していますが、フィールドごとに , , , のようなものはtext_en怖いtext_ptですtext_es. アドバイスをいただけますか?ありがとう!text_frtext_it

アップデート。仕事のための素敵なツールを見つけたようですhttps://github.com/svenfuchs/globalize3 :)

4

3 に答える 3

0

ロケールに依存するデータにシリアル化された属性を使用し、タイトル(またはその他)をハッシュとして定義することをお勧めします。

class Project
  serialize :title, Hash
...

p.title[:pt] = "title in pt"

問題は、テキスト値のSQL検索を実行できないことです。プロジェクトを名前で検索する場合は、ロケールに依存する属性を別のテーブルに抽出するだけです。

class Project
  has_many :titles
end

class Title
  belongs_to :project
  belongs_to :locale # or just put there a string attribute
end
于 2012-06-12T10:46:18.203 に答える
0

別のテーブルを作成します。メインテーブルはテキストのキーのみを保持します。2 番目のテーブルには、フィールド キーとローカライズ キーを使用してローカライズされたテキストが保持されます。もちろん、テキスト キー + ローカライズ キーは一意である必要があります。

1 つの言語を第一言語として選択します。したがって、たとえば、英語のテキストは別のキーになります。

それが役に立てば幸い..

于 2012-06-12T10:52:47.173 に答える