要實(shí)現(xiàn)Django的國(guó)際化和本地化,需要做以下步驟:
LANGUAGE_CODE = 'zh-hans' # 設(shè)置默認(rèn)語(yǔ)言為簡(jiǎn)體中文
USE_I18N = True # 啟用國(guó)際化
USE_L10N = True # 啟用本地化
{% trans %}
標(biāo)簽來(lái)標(biāo)記需要翻譯的文本,例如:{% trans "Hello World" %}
django-admin makemessages -l zh_Hans # 生成簡(jiǎn)體中文的語(yǔ)言文件
在生成的語(yǔ)言文件中進(jìn)行翻譯,將需要翻譯的文本翻譯成對(duì)應(yīng)的語(yǔ)言。
編譯翻譯文件,執(zhí)行以下命令:
django-admin compilemessages
在模板中使用{% trans %}
標(biāo)簽來(lái)翻譯文本。
如果需要根據(jù)用戶的瀏覽器語(yǔ)言自動(dòng)切換語(yǔ)言,可以在視圖中添加以下代碼:
from django.utils.translation import activate
from django.utils.translation import ugettext_lazy as _
def my_view(request):
language = request.META.get('HTTP_ACCEPT_LANGUAGE', '')
if language.startswith('zh'):
activate('zh_Hans') # 激活簡(jiǎn)體中文
else:
activate('en') # 激活英語(yǔ)
通過(guò)以上步驟,就可以實(shí)現(xiàn)Django的國(guó)際化和本地化功能。