我在我的一个任务中使用了ugettext。我编辑过po文件。但它没有奏效。有谁知道为什么?谢谢!芹菜任务翻译
from django.utils.translation import ugettext
@task
def testtask():
.....
msg = ugettext('test')
.....
阅读芹菜文件,我把语言参数的任务,和之前味精= ugettext(“测试”)并激活(语言),和它的作品。
我在我的一个任务中使用了ugettext。我编辑过po文件。但它没有奏效。有谁知道为什么?谢谢!芹菜任务翻译
from django.utils.translation import ugettext
@task
def testtask():
.....
msg = ugettext('test')
.....
阅读芹菜文件,我把语言参数的任务,和之前味精= ugettext(“测试”)并激活(语言),和它的作品。
Django使用LocaleMiddleware确定当前语言。由于芹菜任务处理超出任何请求范围,所以它将fall back转换为LANGUAGE_CODE。如您所述,您需要手动激活该语言,则语言为bound to the local thread,因此可用于ugettext
。
2016更新:截至Django 1.8,['get_translation'](https://github.com/celery/django-celery/blob/master/djcelery/common.py)现在返回NONE,所以您需要通过将语言转换为您的任务[如此处所述](http://docs.celeryproject.org/projects/django-celery/en/2.4/faq.html#generating-a-template-in-a-task-doesn-t -seem到尊重 - 我 - 国际化的设置) – grokpot
提供一些关于您正在尝试做什么的更多信息,并阅读此内容,尤其是底部的部分:https://docs.djangoproject.com/en/dev/howto/i18n/ – leoluk
这很奇怪,我在任务中使用get_language()总是显示'en-us',但我的本地语言不是。 – Danfi