3

私のアプリケーションは、英語とドイツ語の2つの言語で提供されます。アプリケーションは、Descriptionフィールドを持つXTypeオブジェクトをいくつか持ちます。 XTypeの説明フィールドをどのように翻訳できますか? Djangoはこれをサポートしていますか、別のDjangoアプリケーションを使用する必要がありますか?Djangoアプリケーションでのモデルの国際化

class XType(models.Model): 
    description = models.CharField(max_length=50) 
    def __unicode__(self): 
     return self.description 

class X(models.Model): 
    type = models.ForeignKey(XType) 

答えて

1

Djangoはモデルフィールドの翻訳の直接的なサポートを提供していません。

これは、Djangoやプラグイン可能なアプリケーション(django-easymodeやcheck http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.htmlなど)で対処する方法を見つける必要があります。

あなたはそれをあなたのアプリ内で対処したい場合は、言語ごとに1つのインスタンスを保存するような何かをしようとしてからデータを取得するときに応じてフィルタリングすることがあります:

class XType(models.Model): 
    language = models.CharField(max_length=5) 
    description = models.CharField(max_length=50) 

当然に依存プロジェクトのニーズに多く。

+0

私はモデル変換を使用して翻訳を試みました。手順に従って、それが動作します。変換するフィールドはadminから変更できます。 – Seitaridis

0

django-easymodeあなたのケースを解決することがあり@i18n decoratorを、含まれています。時には

それは 翻訳モデルへの要件となります。 Djangoは、 gettextを使用して テンプレートとコードの静的テキストの国際化をサポートしています。モデルの翻訳のために - 動的データ - easymodeは国際 モデルフィールドおよびローカライズされた管理者 クラスを有効にするために、単純な デコレータを提供しています。