私は次のことをしました:
- development.iniでに変更
pyramid.default_locale_name = en
しますde
私
index.pt
はこのように見えます:<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org namespaces/tal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n:domain="mvc"> <a href="/user/login/form" i18n:translate="">Login Page</a><br /> <a href="/user/register/form" i18n:translate="">Register Page</a><br /> <a href="/ds/landing/view" i18n:translate="">Datasource landing page</a> <br /> <p>${locale_name}</p>
setup.pyに変更を加えました
message_extractors = { '.': [ ('**.py', 'lingua_python', None ), ('**.pt', 'lingua_xml', None ), ]}
実行する
python setup.py extract_messages
とpython setup.py update_catalog
、locale/de/LC_MESSAGES/mvc.po
すべての文字列が取得されます。翻訳後は# German translations for mvc. # Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the mvc project. # FIRST AUTHOR <EMAIL@ADDRESS>, 2012. # msgid "" msgstr "" "Project-Id-Version: mvc 0.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2012-05-02 12:24+0530\n" "PO-Revision-Date: 2012-05-02 11:38+0530\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: de <LL@li.org>\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" #: mvc/templates/index.pt:2 msgid "Login Page" msgstr "sign in page" #: mvc/templates/index.pt:3 #, fuzzy msgid "Register Page" msgstr "register in this Page" #: mvc/templates/index.pt:4 msgid "Datasource landing page" msgstr "Landing Page of datasources"
私は実際の翻訳を行っていないので、英語は無視してください。動作するか確認したい。
やった
python setup.py compie_catalog
とmvc.moファイルが作成されますしかし、ページをロードすると、翻訳が取得されずに同じページが表示されます。ビューからわかるように、ロケールは適切に設定されているようです
@view_config(route_name='home',renderer='templates/index.pt') def index_view(request): from pyramid.i18n import negotiate_locale_name return {'locale_name' : negotiate_locale_name(request)}
init.pyに追加
config.add_translation_dirs('mvc:locale')
しました
私は何が間違っているのですか?それとも私は何か正しいことをしていますか?