Django怎么實(shí)現(xiàn)國(guó)際化和本地化

小億
108
2024-04-09 16:22:39

要實(shí)現(xiàn)Django的國(guó)際化和本地化,需要做以下步驟:

  1. 在settings.py中設(shè)置語(yǔ)言設(shè)置:
LANGUAGE_CODE = 'zh-hans'  # 設(shè)置默認(rèn)語(yǔ)言為簡(jiǎn)體中文
USE_I18N = True  # 啟用國(guó)際化
USE_L10N = True  # 啟用本地化
  1. 在每個(gè)需要翻譯的模板中使用{% trans %}標(biāo)簽來(lái)標(biāo)記需要翻譯的文本,例如:
{% trans "Hello World" %}
  1. 在Django項(xiàng)目根目錄下執(zhí)行以下命令生成語(yǔ)言文件:
django-admin makemessages -l zh_Hans  # 生成簡(jiǎn)體中文的語(yǔ)言文件
  1. 在生成的語(yǔ)言文件中進(jìn)行翻譯,將需要翻譯的文本翻譯成對(duì)應(yīng)的語(yǔ)言。

  2. 編譯翻譯文件,執(zhí)行以下命令:

django-admin compilemessages
  1. 在模板中使用{% trans %}標(biāo)簽來(lái)翻譯文本。

  2. 如果需要根據(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ó)際化和本地化功能。

0