2017-06-13 31 views
0

日本語と英語を切り替えることができる多言語Wagtailウェブサイトを設定しました。 CMSの各ページには、翻訳が必要なコンテンツ用の2つのフィールドがあります。フォールバック言語フィールドのコンテンツを表示できるかどうか、翻訳可能なフィールドが空白のままであるかどうかを調べようとしています。Wagtail多言語ウェブサイトフォールバック言語

これは、この質問に関係なく、私のセットアップは異なるようだ: [Django, how to create a fallback language in a multilingual website?

クラスTranslatedField(オブジェクト):

def __init__(self, en_field, ja_field): 
    self.en_field = en_field 
    self.ja_field = ja_field 

def __get__(self, instance, owner): 
    if translation.get_language() == 'ja': 
     return getattr(instance, self.ja_field) 
    else: 
     return getattr(instance, self.en_field) 

クラスのホームページ(ページ):だから

body_en = RichTextField(blank=True) 
body_ja = RichTextField(blank=True) 

body = TranslatedField(
    'body_en', 
    'body_ja', 
) 

content_panels = Page.content_panels + [ 
    ImageChooserPanel('background_image'), 
    FieldPanel('body_en', classname="full"), 
    FieldPanel('body_ja', classname="full") 
] 

テンプレートでは、コンテンツはちょうど{{page.body | richtext}}で呼び出されます。たぶん私は何かを私のdefに追加する必要があります if/else文を取得します。

ありがとうございました。

答えて

0

テンプレート内の変数はそうのように設定されている場合は、単に確認することができます。

<div> 
    <span> 
    {% if page.body_jp %} 
     私の日本語テキスト 
    {% else %} 
     This is my fallback text in English! 
    {% endif %} 
    </span> 
</div>