2

私が取り組んでいる小さなテストプロジェクトにi18n機能を追加しようとしています。私はwebapp2_extras i18nライブラリを使用しています。私は、babelコマンドラインを使用して作成されたコンパイル済みの翻訳.moファイルを含むロケールフォルダを持っています。アプリそのものはちょうど1つの簡単なdjangoテンプレートと1つのハンドラを持つmain.pyです。私がメインでgettextメソッドを使用しているとき、私は翻訳されたテキストを取得しますが、{%trans%}タグでラップされたテンプレート内の文字列は翻訳されません。ここでは、ハンドラの:GAEのwebapp2 i18nはdjangoテンプレート{%trans%}タグを認識しません

class MainHandler(webapp2.RequestHandler): 
def get(self): 

    locale = self.request.GET.get('locale', 'en_US') 
    i18n.get_i18n().set_locale(locale) 

    message = i18n.gettext('Hello, world!') 

    self.response.out.write(template.render("templates/index.html")) 

「メッセージ」文字列が翻訳されてではなく、テンプレート内の同じ文字列がでwrappwed {%のトランス%}がありません。

おかげで、

+0

jinja2.ext.i18n拡張機能を有効にしましたか?私はそれがwebapp2のデフォルト設定をオフになっていると信じています。 – alex

+0

私はジンジャを使用していません、私はdjangoのテンプレートを使用しています。 – yohairosen

+0

私はあなたがjinja2を使用して参照してください。 django-template-renderにはtemplate.render-methodがありません。これをもう一度チェックするか、ここにインポートセクションを投稿してください。 – SkyFox

答えて

1

GoogleのApp EngineでDjangoの国際化トランスタグを可能にするカスタム要求ハンドラを使用することが可能です。しかし、はるかに良い使用jinja2のようにここでは、ソリューションは公式です。 webapp2_extrasからjinja2をインポートすると、i18nが動作し、jinja2の翻訳タグは{% trans %}{ % endtrans %}のようになります。

あなたはここにジャンゴを使用しなければならない場合は、Djangoのテンプレートを使用しなければならない場合に使用できるカスタム要求ハンドラを提示古いBLODポストへのリンクです:http://blog.yjl.im/2009/02/using-django-i18n-in-google-app-engine.html

しかし、我々はあなたがJinja2のを使用することをお勧めします。あなたはそれを試しましたか?

+0

Jinjaが機能しています。ありがとう。 – yohairosen

関連する問題