2012-04-05 23 views
1

現在、私は別の言語を話す人が情報にアクセスするアプリケーションを作成中です。情報は非常にユニークなので、翻訳ツールを使用するだけでは十分ではありません。すべての情報は異なる言語である必要があり、ユーザーがログインすると、彼の設定に従って情報が表示されます。今、アプリケーションはDjangoとMySQLに基づいています。 Djangoにはローカライズ機能がありますが、私はそれをあまり理解していません。それは翻訳機構か何かを呼びますか?理解できません。Python/Djangoのデータベースローカリゼーション(多言語)設計

私はこの問題を解決するための最良の方法が何であったのだろうと思っていました。異なる言語の数は今のところ不明です。だから私はテーブル内の各列の正確な翻訳を格納することは良い考えですが、それはクエリに時間を節約することができます。 (内部結合などはありません)。

1)Djangoのローカリゼーション機能を調べる必要がありますか?正確には何ですか? [私は実際にファイルに翻訳を格納したくない]

2)多言語アプリケーションにはどのようなデータベース設計が最適ですか?私はそれらのものを見つけました:

?どうもありがとう!

編集:私は特に使いやすいものを探していません。演奏者で、私のDBに巨大な混乱を生み出さないものがほとんどです...それは可能ですか?

+0

あなたは[django-hvad](https://github.com/KristianOellegaard/django-hvad)を見ましたか? – ilvar

+0

私は特に使いやすいものを探していません。演奏者で、私のDBに巨大な混乱を生み出さないものがほとんどです...それは可能ですか? – abisson

答えて

0

1)Djangoのi18nメカニズムは、テンプレート、フィールド名、エラーメッセージの静的なテキストラベルのローカライズを可能にするために使用されます。データベースの内容の翻訳にはあまり役に立ちません。

2)私が見てきた多言語Djangoのモデルで、すべての主要な努力は、以下のいずれかの方法を使用しています。

  • 同じテーブルにmodlename_lang列を追加します。
  • 1つのテーブルに共有フィールドを格納し、別のテーブルに共有フィールドを格納します。

私はこれらのアプローチのどれをもっと好きなのかを決めることをお勧めします。

いくつかの言語を使用する予定がある場合は、最初の方法をお勧めします。一方、言語の数が増えると、第2のアプローチがより実行可能になる可能性があります。