django - 在 Django 字段的定义中使用 `ugettext`

标签 django internationalization gettext

在我的 models.py 文件中,我在模型上定义了一个字段,如下所示:

description = models.CharField(
    max_length=40,
    default=_('Bla bla bla'),
)

现在,_django.utils.translation.ugettext,我想使用 'Bla bla bla' 的希伯来语翻译作为默认值,即'בלה בלה'。 (该网站仅提供希伯来语版本。)该字符串已在消息文件中正确翻译。但是当我运行 Django 管理并创建一个新对象时,我在字段上看到英文 'bla bla bla' 。我假设英语是编译 models.py 模块时的事件语言。我怎样才能解决这个问题并将其变成希伯来语?

我知道一种解决方案是放弃 ugettext 并在 Python 模块内编写希伯来语,但我更愿意避免这种情况,以防止编码 hell 。

最佳答案

尝试ugettext_lazy

https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/#lazy-translation

Always use lazy translations in Django models.

关于django - 在 Django 字段的定义中使用 `ugettext`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145447/

相关文章:

cross-compiling - 为什么 libtool 会抛出 "unsupported hardcode properties"错误,它们是什么意思?

mysql - 从 django 检索 mysql 输出 'manage.py sql appname'

java - Android:如何以用户的语言获取当前的星期几(星期一等)?

javascript - i18next 中的语言变量

ruby-on-rails - 本地化时间单位

php - Apache gettext 窗口不工作/翻译

python - Django 可重复使用的市场应用程序

django - 让 django 使用 x-original-host header 来设置绝对 url

python - 为什么我的 Django 项目无法识别设置中安装的应用程序?

c - 在嵌入式系统上获取文本?