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