首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >金字塔ZPT变色龙模板的定位

金字塔ZPT变色龙模板的定位
EN

Stack Overflow用户
提问于 2014-03-22 22:25:53
回答 2查看 321关注 0票数 0

我试着用ZPT模板使字符串翻译在金字塔中工作。我遵循了关于国际化和本地化的金字塔指南,即http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/i18n.html#chameleon-template-support-for-translation-strings

但是,当我添加行时

代码语言:javascript
复制
<span>${some_translation_string}</span>

对于我的.pt模板文件,我只从服务员那里得到一条断言消息:

代码语言:javascript
复制
NameError: some_translation_string

当我将字符串some_translation_string翻译到ZPT模板之外时(即在视图的Python代码中),它将正确地翻译。因此,我认为应该有一个有效的已编译消息目录(尽管是由于缺少babel/lingua的Python3支持而手动创建的)。

我想我误解了在ZPT模板中插入本地化字符串的方法。它可能不能与引用变量相同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-30 21:12:09

正如我现在所理解的,ZPT模板中的翻译应该如下所示:

代码语言:javascript
复制
<span i18n:translate="">some_translation_string</h1>

如果您省略了i18n:translate中的字符串标识符,则将使用字符串本身。

此外,还必须在模板标题中添加域名,例如:

代码语言:javascript
复制
<html lang="en"
  xmlns:tal="http://xml.zope.org/namespaces/tal"
  xmlns:metal="http://xml.zope.org/namespaces/metal"
  xmlns:i18n="http://xml.zope.org/namespaces/i18n"
  i18n:domain="my_domain">

这些信息似乎在参考的金字塔文件中缺失了。

票数 1
EN

Stack Overflow用户

发布于 2014-07-31 09:01:31

作为参考,要对JavaScript代码中的消息进行翻译,我发现这种方法非常方便:

在您的视图中,向模板参数添加一个TranslationStringFactory实例:

代码语言:javascript
复制
from translationstring import TranslationStringFactory

@view_config(route_name='site', renderer='templates/site.pt')
def form(request):
    ...
    return {'_': TranslationStringFactory('yourapp')}

然后在模板中可以编写:

代码语言:javascript
复制
<script type="text/javascript">
...
yourapp.i18n['error'] = '${_('Error')}';
yourapp.i18n['warning'] = '${_('Warning')}';

</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22584459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档