私のDjangoアプリケーションのユーザーは、一連のWebフォームを介して対話し、ログが生成されます。ログは、たとえば、次のようになります。Djangoで多言語の "ログメッセージ"を作成する最も良い方法は何ですか?
- バトルが開始されました!
- 攻撃者(Elver)がWhirlwindを使用しました。それは超効果的だった!
- Defender(Angeleyes)が堀を建てました。防衛+5。
- 嵐が勃発しました。攻撃者(Elver)がターンを欠場する。
このログは他の言語でも表示する必要があります。新しい言語が追加された場合、以前のログメッセージも新しい言語で自動的に表示されなければなりません。彼らはなるように、これらを格納するための最良のデータ構造は何
あなたは(などのparamsのないイベント、のparamsのイベント、攻撃イベント、建設イベント、)メッセージの複数の種類がある見ることができるように
簡単なテンプレートに基づいて簡単に翻訳可能?
私の考えはもともと、イベントごとに別々のモデルを構築することでした。フィールドattacker、spell、resultを持つクラスAttackEvent(models.Model)しかし、これらはいくつかのバトルを参照しなければならないので、それらのすべてを照会して並べ替えることは簡単です。彼らはすべて、同じrelated_nameを持つForeignKeyを使って、その戦いに戻りますか?おそらくそうではありません。
もう1つのオプションは、大部分が空白= True、null = Trueの非常識な数のparamsを持つ巨大なGenericLogEventクラスを持つことです。 eventTypeに基づいて切り替えます。
ここで最善の方法は何ですか?
私は大きなdjango開発者ではありませんが、私にとってdjangoメッセージcontribとtemplatetagを使用して、あなたのレンダリングを行うことは素晴らしいかもしれません... jsonデータベースフィールドを使用して、大文字と小文字の区別はありません。 – christophe31