gpt4 book ai didi

django - 多语言问题

转载 作者:行者123 更新时间:2023-12-04 05:29:06 26 4
gpt4 key购买 nike

我希望我的应用有多种语言版本(假设有两种,一种是默认英语,另一种是)。

这两个选项都在我的主页上可用,并且必须显示一个链接,使用户能够选择他的语言选择。

我正在阅读 Django 官方 documentation为此

所以任何人都可以让我知道我如何做到这一点。

还有一件事......在settings.py中有默认 LANGUAGE_CODE = 'en-us' 给定,但是因为我希望我的应用程序使用一种以上的语言,所以我如何在此处指定该国家/地区代码。

像这样工作 LANGUAGE_CODE = 'en-us','es-MX (Spanish)' 或者我必须以某种方式做到这一点。

而这个的目的是什么? .po 在此扩展。

最佳答案

设置.py

LANGUAGE_CODE='en_us'
gettext = lambda s: s
LANGUAGES = (
('en', gettext('English')),
('de', gettext('German')),
)

MIDDLEWARE_CLASSES = (
...
'lang.SessionBasedLocaleMiddleware',
)

lang.py
from django.conf import settings

from django.utils.cache import patch_vary_headers
from django.utils import translation

class SessionBasedLocaleMiddleware(object):
"""
This Middleware saves the desired content language in the user session.
The SessionMiddleware has to be activated.
"""
def process_request(self, request):
if request.method == 'GET' and 'lang' in request.GET:
language = request.GET['lang']
request.session['language'] = language
elif 'language' in request.session:
language = request.session['language']
else:
language = translation.get_language_from_request(request)

for lang in settings.LANGUAGES:
if lang[0] == language:
translation.activate(language)

request.LANGUAGE_CODE = translation.get_language()

def process_response(self, request, response):
patch_vary_headers(response, ('Accept-Language',))
if 'Content-Language' not in response:
response['Content-Language'] = translation.get_language()
translation.deactivate()
return response

访问不同的语言 http://example.com/?lang=de
最后让 django 创建您的 .po文件。这是 documentation为此。

关于django - 多语言问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com