python - 用于定义选择字段的元组列表中前导下划线的含义?

标签 python django internationalization

我见过一些这样定义选择字段的示例:

COUNTRIES = (
    ('fr', _('France')),
    ('de', _('Germany')),
    ...
)

(来源:http://code.djangoproject.com/ticket/5446 另见:http://djangosnippets.org/snippets/494/ )

前导下划线是什么意思?为什么元组中的第二个值还要加上括号?

最佳答案

前导下划线是国际化 (i18n) 机制使用的 ugettext 函数之一的常用函数别名。

这意味着当您运行 i18n 时,选择字段标签将被翻译成适当的最终用户语言(如果有翻译可用)。

在具有这种语法的文件的顶部,您应该看到(或者如果没有,您应该看到)如下内容:

from django.utils.translation import ugettext_lazy as _

docs here了解更多

关于python - 用于定义选择字段的元组列表中前导下划线的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964244/

相关文章:

python - 在 python 中使用 google protobuf 反射

python - 在 Django 中使用 JSONField 的默认字典列表

ruby - 如何对 YAML 文件进行排序?

reactjs - 使用 useTranslation() 中的 t() 时 react i18next "hooks"错误

python - 如何使用 Pandas 根据列值选择行?

python - 处理多类问题。随机森林分类器可以处理 >100,000 个类别吗?

python - 你如何使用 pandas.DataFrame 列作为索引、列和值?

python - 返回database_name == ':memory:' or 'mode=memory' in database_name TypeError : argument of type 'WindowsPath' is not iterable

python - 在 Django ListView 中更新 get_queryset 后如何更改排序?

java - 可以安全地假设 Spring MessageSource 实现是线程安全的吗?