Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得Django的当前语言?_Python_Django_Internationalization - Fatal编程技术网

Python 如何获得Django的当前语言?

Python 如何获得Django的当前语言?,python,django,internationalization,Python,Django,Internationalization,如何在模型或管理中获取当前线程中的当前语言?您可以阅读系统的以获取语言信息。特别感兴趣的函数是django.utils.translation.get_language(),它返回当前线程中使用的语言。请参阅。,或者您也可以在视图中看到这一点 request.LANGUAGE_CODE request.LANGUAGE\u CODE只是想补充一点,如果您确实使用了django.utils.translation.get\u LANGUAGE(),那么您应该记住,如果该段代码将被异步调用(例如作为

如何在模型或管理中获取当前线程中的当前语言?

您可以阅读系统的以获取语言信息。

特别感兴趣的函数是
django.utils.translation.get_language()
,它返回当前线程中使用的语言。请参阅。

,或者您也可以在视图中看到这一点

request.LANGUAGE_CODE
request.LANGUAGE\u CODE只是想补充一点,如果您确实使用了django.utils.translation.get\u LANGUAGE(),那么您应该记住,如果该段代码将被异步调用(例如作为芹菜任务)那么,这种方法将不起作用,因为它运行在不同的线程中。

请小心获取语言的方法。根据使用哪种方法,Django将使用不同的方法和信息来确定要使用的正确语言

当使用
django.utils.translation.get_language()
函数时,它链接到线程语言。在Django 1.8之前,当翻译被禁用时,它总是返回
settings.LANGUAGE\u code
。如果要手动重写线程语言,可以使用
override()
activate()
函数,这些函数的名称不是很明确,但仍然很有用:

从django.utils导入翻译
使用translation.override('fr'):

打印(u(“你好”)#出于某种原因,我把这个从-1投了赞成票。请注意以下内容(来自“使用静态(无中间件)翻译时,语言在settings.language\u代码中,而使用动态(中间件)翻译时,语言在request.language\u代码中”。该链接已失效,我认为没有理由不使用上面已记录的公认解决方案:django.utils.translation.get\u language()
如果没有请求,尝试在例如模型中获取语言是不可能的。我认为
django.utils.translation.get_language()
总是一个更好的解决方案。如何在模板中获取当前语言?@azmeuk这可能对您有用您被调整为-3,但我认为问题是模糊的-“我的web的当前语言”。猜测这意味着操作系统不是你的错。请具体说明。“我的web的语言”-你是指web请求、web服务器还是什么?这里最明显的方法是将语言作为任务参数传递,然后用翻译设置语言。激活(语言)警告:如果翻译被临时停用(通过deactivate_all()或当无传递到override()时),则返回None。在Django 1.8之前,获取_language()停用翻译时始终返回语言\u代码。请注意,它是django.utils.translation,而不是translations。提供的链接中存在拼写错误。在代码段中,它是正确的。+1表示django.utils.translation.get\u LANGUAGE()之间的差异
django.utils.translation.get\u language\u from\u request(request,check\u path)
。如果在视图中,您应该将后者与
check\u path=True
一起使用,以获取模板将呈现的语言。