1

私が構築しているプロジェクトで、Globalize3 を利用してモデルを変換したいと考えていました。ただし、試してみると、各モデルのように見えます。次のように言いますPost

class Post < ActiveRecord::Base
    translates :title, :body
end

タイトルが既に翻訳されたものと同一であっても、タイトルを複数回翻訳する必要があるという意味で、他の投稿から完全に独立しています。つまり、システムは、そうあるべきであることをすでに認識しています。

文字列がユニークな場合が多いので問題ないとは思いますが、色属性を持つ車のモデルを想像してみてください。システムに同じ色の車が何百台もある場合、その色を何回も変換する必要がありますか? 一度だけ翻訳したいのですが、文字列が同じであれば、全員が同じ翻訳を使用できます。

私は何かを誤解していますか、それともこれが Globalize3 の仕組みですか? もしそうなら、ブログのように文字列がユニークな場合に最も適しているように聞こえます.

私が必要とすることを行う利用可能な別の宝石はありますか?

ご協力いただきありがとうございます!

4

2 に答える 2

2

基本的に、各モデル レコードの属性が翻訳され、翻訳レコードに保存されるというのが、Globalize のしくみです。

テーブルを正規化することで問題を解決できるため、色自体がモデルになり、それを変換します。

私はそれをしませんし、あなたのシナリオの宝石も知りません。代わりに次のことを行います。

代わりに RGB 値を保存し、コントローラーでそれを色名に変換します。その後、Rails i18n モジュールを使用して翻訳できます。

または上記のバリエーションとして、色名を のようt("color.#{car.color.parameterize}")に i18n キーとして使用し、en.yml に

en:
  color:
    dark-blue: 'Dark Blue'
于 2012-02-16T06:28:26.433 に答える
0

これは簡単に回避できない問題です。翻訳する文字列が「標準」である場合は、lulalala (その情報をモデル化する) によって提案されたソリューションを使用できます。

同様の問題があり (Rails ではありませんが同じです)、複製されたコンテンツの翻訳を定期的かつ自動的にコピーするタスクで「修正」しました。

于 2012-02-29T10:33:36.827 に答える