Django国际化

所谓的国际化,是指使用不同语言的用户在访问同一个网站页面时能够看到符合其自身语言的文本页面  

1.在视图中使用,或者在model中使用verbose_name前实现国际化

from django.utils.translation import ugettext as _
from django.utils.translation import ugettext as _
from django.http import HttpResponse
def my_view(request):
    output = _("Welcome to my site.")
    return HttpResponse(output)

  2.在模板中使用 在模版文件中,要标识一个待翻译的文本,需要使用{% trans %}模板标签,但首先你要在模版的顶部加载{% load i18n %}。比如:

{% load i18n %}
<title>{% trans "This is the title." %}</title>

要注意的是trans标签内部不可以有内嵌的模板变量  

1.本地化

python manage.py makemessages -l zh-cn  //中文简体

下面列出了所有可用于各种系统设置的语言代码对照表:

  • af 南非荷兰语
  • sq 阿尔巴尼亚语
  • ar-sa 阿拉伯语(沙特阿拉伯)
  • ar-iq 阿拉伯语(伊拉克)
  • ar-eg 阿拉伯语(埃及)
  • ar-ly 阿拉伯语(利比亚)
  • ar-dz 阿拉伯语(阿尔及利亚)
  • ar-ma 阿拉伯语(摩洛哥)
  • ar-tn 阿拉伯语(突尼斯)
  • ar-om 阿拉伯语(阿曼)
  • ar-ye 阿拉伯语(也门)
  • ar-sy 阿拉伯语(叙利亚)
  • ar-jo 阿拉伯语(约旦)
  • ar-lb 阿拉伯语(黎巴嫩)
  • ar-kw 阿拉伯语(科威特)
  • ar-ae 阿拉伯语(阿拉伯联合酋长国)
  • ar-bh 阿拉伯语(巴林)
  • ar-qa 阿拉伯语(卡塔尔)
  • eu 巴斯克语
  • bg 保加利亚语
  • be 贝劳语
  • ca 加泰罗尼亚语
  • zh-tw 中文(中国台湾)
  • zh-cn 中文(中华人民共和国)
  • zh-hk 中文(中国香港特别行政区)
  • zh-sg 中文(新加坡)
  • hr 克罗地亚语
  • cs 捷克语
  • da 丹麦语
  • nl 荷兰语(标准)
  • nl-be 荷兰语(比利时)
  • en 英语
  • en-us 英语(美国)
  • en-gb 英语(英国)
  • en-au 英语(澳大利亚)
  • en-ca 英语(加拿大)
  • en-nz 英语(新西兰)
  • en-ie 英语(爱尔兰)
  • en-za 英语(南非)
  • en-jm 英语(牙买加)
  • en 英语(加勒比)
  • en-bz 英语(伯利兹)
  • en-tt 英语(特立尼达)
  • et 爱沙尼亚语
  • fo 法罗语
  • fa 波斯语
  • fi 芬兰语
  • fr 法语(标准)
  • fr-be 法语(比利时)
  • fr-ca 法语(加拿大)
  • fr-ch 法语(瑞士)
  • fr-lu 法语(卢森堡)
  • gd 盖尔语(苏格兰)
  • gd-ie 盖尔语(爱尔兰)
  • de 德语(标准)
  • de-ch 德语(瑞士)
  • de-at 德语(奥地利)
  • de-lu 德语(卢森堡)
  • de-li 德语(列支敦士登)
  • el 希腊语
  • he 希伯来语
  • hi 北印度语
  • hu 匈牙利语
  • is 冰岛语
  • in 印度尼西亚语
  • it 意大利语(标准)
  • it-ch 意大利语(瑞士)
  • ja 日语
  • ko 朝鲜语
  • ko 朝鲜语(韩国)
  • lv 拉脱维亚语
  • lt 立陶宛语
  • mk FYRO 马其顿语
  • ms 马来西亚语
  • mt 马耳他语
  • no 挪威语(博克马尔)
  • no 挪威语(尼诺斯克)
  • pl 波兰语
  • pt-br 葡萄牙语(巴西)
  • pt 葡萄牙语(葡萄牙)
  • rm 拉丁语系
  • ro 罗马尼亚语
  • ro-mo 罗马尼亚语(摩尔达维亚)
  • ru 俄语
  • ru-mo 俄语(摩尔达维亚)
  • sz 萨摩斯语(拉普兰)
  • sr 塞尔维亚语(西里尔)
  • sr 塞尔维亚语(拉丁)
  • sk 斯洛伐克语
  • sl 斯洛文尼亚语
  • sb 索布语
  • es 西班牙语(西班牙传统)
  • es-mx 西班牙语(墨西哥)
  • es 西班牙语(西班牙现代)
  • es-gt 西班牙语(危地马拉)
  • es-cr 西班牙语(哥斯达黎加)
  • es-pa 西班牙语(巴拿马)
  • es-do 西班牙语(多米尼加共和国)
  • es-ve 西班牙语(委内瑞拉)
  • es-co 西班牙语(哥伦比亚)
  • es-pe 西班牙语(秘鲁)
  • es-ar 西班牙语(阿根廷)
  • es-ec 西班牙语(厄瓜多尔)
  • es-cl 西班牙语(智利)
  • es-uy 西班牙语(乌拉圭)
  • es-py 西班牙语(巴拉圭)
  • es-bo 西班牙语(玻利维亚)
  • es-sv 西班牙语(萨尔瓦多)
  • es-hn 西班牙语(洪都拉斯)
  • es-ni 西班牙语(尼加拉瓜)
  • es-pr 西班牙语(波多黎各)
  • sx 苏图语
  • sv 瑞典语
  • sv-fi 瑞典语(芬兰)
  • th 泰语
  • ts 汤加语
  • tn 瓦纳语
  • tr 土耳其语
  • uk 乌克兰语
  • ur 乌尔都语
  • ve 文达语
  • vi 越南语
  • xh 科萨语
  • ji 依地语
  • zu 祖鲁语

Django国际化
http://www.jcwit.com/article/268/
作者
Carlos
发布于
2018年9月12日
许可协议