Django 中文本地化汉化方法
在 Python 的 web 開(kāi)發(fā)框架中很多人都會(huì)選擇強(qiáng)大的 Django 來(lái)進(jìn)行學(xué)習(xí),但是 Django 默認(rèn)使用的語(yǔ)言是英語(yǔ),對(duì)于開(kāi)發(fā)人員可能還好,但是實(shí)際部署的時(shí)候英文環(huán)境對(duì)于網(wǎng)站運(yùn)維人員未必友好,所以需要能夠?qū)?Django 的后臺(tái)中文本地化,接下來(lái)就簡(jiǎn)單介紹一下如何漢化我們的 Django 。
系統(tǒng)環(huán)境
本文建立在以下系統(tǒng)環(huán)境中,對(duì)于其他版本和環(huán)境本文內(nèi)容僅供參考。
操作系統(tǒng):Manjaro Linux 內(nèi)核版本 4.14
Django: 1.11
Python: 3.6
我們搭建了一個(gè)簡(jiǎn)單的投票應(yīng)用,登錄后臺(tái)是純英文的如下圖:
可以看到我們的應(yīng)用(app)名字叫polls ,polls 下有一個(gè)模型(models)叫做Question,然后我們整個(gè)后臺(tái)管理界面(admin)也都是全英文的。
設(shè)置項(xiàng)目為中文
打開(kāi)項(xiàng)目配置文件 settings.py 修改為下面的樣子
# 較早版本的 Django 可以嘗試改為'zh-CN',具體可查看 # “python/site-packages/django/conf/locale/”中的語(yǔ)言名稱 LANGUAGE_CODE = 'zh-Hans'# Windows環(huán)境中此項(xiàng)的時(shí)區(qū)必須和系統(tǒng)一致,設(shè)置為 Asia/Shanghai。 # 另外此項(xiàng)設(shè)置如果保持 UTC 有可能導(dǎo)致 Django 時(shí)間和本地時(shí)間不同的情況。 TIME_ZONE = 'Asia/Shanghai'# 這里必須是 True,否則 LANGUAGE_CODE 會(huì)失效 USE_I18N = True保存后我們刷新后臺(tái)就可以多看,幾乎所有由 Django 創(chuàng)建的內(nèi)容都已經(jīng)漢化為了中文
漢化應(yīng)用app
眼尖的同學(xué)肯定看到我們創(chuàng)建的應(yīng)用 polls 和模型 Question 還都是英文的狀態(tài),那么接下來(lái)我們首先給應(yīng)用設(shè)置中文名字。
我們打開(kāi)應(yīng)用下的 apps.py 文件設(shè)置應(yīng)用的名稱
# polls/apps.pyclass PollsConfig(AppConfig):name = 'polls'# 在已有的 PollsConfig 類中增加app的名字verbose_name = '投票系統(tǒng)'設(shè)置模型 models 的中文名
剩下的模型的名字了,當(dāng)然還包括模型中不同字段的名字,不然不清楚要填寫什么就更要命了。
我們看一下 Question 的的模型
ForeignKey、ManyToManyField 和 OneToOneField 的中文名
由于 ForeignKey() ManyToManyField() 和 OneToOneField() 的第一個(gè)參數(shù)要求是關(guān)聯(lián)的模型,因此他們的漢化名字需要通過(guò)增加 verbose_name 關(guān)鍵字參數(shù)來(lái)設(shè)置
# 先來(lái)建立一個(gè)新的tag標(biāo)簽的模型,并且設(shè)置中文名稱 class Tag(models.Model):tag_name = models.CharField("標(biāo)簽", max_length=10)class Meta:verbose_name="Tag標(biāo)簽"verbose_name_plural = "Tag標(biāo)簽"# 創(chuàng)建一個(gè)新的文章的模型設(shè)置Tag模型的外鍵,并設(shè)置中文名稱 class Post(models.Model):title = models.CharField('題目', max_length=30)tag = models.ForeignKey(Tag, on_delete=models.CASCADE, verbose_name="標(biāo)簽")至此,我們通過(guò)相對(duì)來(lái)說(shuō)簡(jiǎn)單暴力的方法讓我們的 Django 站點(diǎn)實(shí)現(xiàn)了中文化。而對(duì)于需要面對(duì)多語(yǔ)言用戶的的情況,官方更建議的方式是通過(guò)本地化和全球化的方法來(lái)編輯翻譯文檔來(lái)實(shí)現(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的Django 中文本地化汉化方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Instructions on EINT
- 下一篇: 李一男2003年在港湾给开发人员培训时的