【发布时间】:2015-07-23 12:50:26
【问题描述】:
我想在金字塔框架中激活我的翻译。因此,我添加了翻译目录并在https://stackoverflow.com/a/11289565/2648872 中设置了一个本地谈判者,并在http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/i18n.html#default-locale-negotiator 中进行了描述。此外,我的 ini 文件中的默认和可用语言已设置,但金字塔不会接受我的翻译。我错过了激活翻译的内容吗?
问候
托比亚斯
编辑:
我的 production.ini 的片段
[app:main]
use = egg:dbas
pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = de
available_languages = de en
从我的 init.py:
def main(global_config, **settings):
[...]
config = Configurator(settings=settings,root_factory='dbas.database.RootFactory')
config.add_translation_dirs('locale')
[...]
config.set_locale_negotiator(my_locale_negotiator)
此外,设置会被记录下来,并且 default_locale_name 和 available_languages 都是可见的。不幸的是,在 my_locale_negotiator 中,它们不可读:(
我的文件夹结构是这样的:
dbas
|- setup.py
|- development.ini
|- [...]
|-dbas
|- __init__.py
|- views.py
|- [...]
|- locale
|- dbas.pot
|- de
|- LC_MESSAGES
|- dbas.mo
|- dbas.po
|- en
|- LC_MESSAGES
|- dbas.mo
|- dbas.po
【问题讨论】:
-
至少为 my_locale_negotiator 添加代码。更清楚地说明您正在做什么来切换语言,应该发生什么以及发生什么而不是预期的行为。如果可用,添加异常或日志记录。我在金字塔 1.5 中运行了这个。你可能还记得我。
-
我的本地谈判代表就像食谱中描述的那样:docs.pylonsproject.org/docs/pyramid/en/latest/narr/…谈判代表。我的期望是一个网页,它被翻译成德语,因为这应该是默认语言。相反,我得到了英文页面的翻译版本 :( 是的,我记得你和你的有用提示 :)
标签: python internationalization translation pyramid