首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:本地化问题

Django:本地化问题
EN

Stack Overflow用户
提问于 2011-01-18 00:28:34
回答 1查看 175关注 0票数 1

在我的应用程序中,我有一个贯穿整个应用程序的短语字典。此词典用于创建PDF和Excel电子表格。

字典看起来像这样:

代码语言:javascript
复制
GLOBAL_MRD_VOCAB = {
    'fiscal_year': _('Fiscal Year'),
    'region': _('Region / Focal Area'),
    'prepared_by': _('Preparer Name'),
    'review_cycle':_('Review Period'),
    ... snip ...
}

在生成PDF的代码中,我有:

代码语言:javascript
复制
fy = dashboard_v.fiscal_year
fy_label = GLOBAL_MRD_VOCAB['fiscal_year']

rg = dashboard_v.dashboard.region
rg_label = GLOBAL_MRD_VOCAB['region']

rc = dashboard_v.review_cycle
rc_label = GLOBAL_MRD_VOCAB['review_cycle']

pb = dashboard_v.prepared_by
pb_label = GLOBAL_MRD_VOCAB['prepared_by']

现在,当PDF生成时,在PDF中,我看不到这些标签,但我看到:

代码语言:javascript
复制
<django.utils.functional.__proxy__ object at 0x10106fdd0>

有人能帮我一下吗?如何获得正确翻译的标签?

谢谢埃里克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-18 01:48:27

"Lazy translation"

中使用unicode字符串(类型为unicode的对象)的任何地方都可以使用ugettext_lazy()调用的结果。如果您尝试在需要字节字符串( str对象)的地方使用它,事情将不会像预期的那样工作,因为ugettext_lazy()对象不知道如何将自身转换为字节字符串。您也不能在字节串中使用unicode字符串,因此这与正常的Python行为是一致的。

..。

如果您曾经看到类似于"hello <django.utils.functional...>"的输出,则您曾尝试将ugettext_lazy()的结果插入到一个字节字符串中。这是你的代码中的一个bug。

要么将其传递给unicode()以从中获取unicode,要么不要使用惰性转换。

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

https://stackoverflow.com/questions/4715423

复制
相关文章

相似问题

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