我做了以下事情:
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)}
我甚至已将config.add_translation_dirs('mvc:locale')
添加到 init .py
我做错了什么?或者我正在做任何事情吗?
答案 0 :(得分:1)