安裝相關軟體
sudo apt-get install gettext
修改settings.py,在MIDDLEWARE加上所需的套件,LANGUAGES列出支援哪些語言,LOCALE_PATHS則是將語言的翻譯包儲存的路徑。
# project/settings.py MIDDLEWARE = [ ..., 'django.middleware.locale.LocaleMiddleware', ] LANGUAGES = ( ('zh-tw', '繁體中文'), ('en', 'English'), ) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), )
新增一個html的模板,記得加入i18n的tag,頁面內想翻譯的字詞標註起來。另外在url的設定裡,將所有頁面區分成多個語言,也就是原先的路徑http://your.ip.address/welcome,可由http://your.ip.address/en/welcome來檢視英文版網站,中文網站則是打開http://your.ip.address/zh-tw/welcome。
# templates/index.html {% load i18n %} {% trans '一起唱DoReMi' %}設定url
# myapp/views.py def index(request): return render(request, 'index.html', {}) # project/urls.py from myapp import views from django.conf.urls.i18n import i18n_patterns urlpatterns = i18n_patterns( path('', views.index, name='index'), )
標註好想翻譯的字詞或段落後,請透過下列指令產生翻譯文件。
python manage.py makemessages -l en python manage.py makemessages -l zh_TW
此時在locale資料夾內,會找到產生的檔案,msgid是你標註的字詞,請在msgstr寫入翻譯。針對重複的id,在文件內只能設定一種翻譯。
# locale\en\LC_MESSAGES\django.po msgid "一起唱DoReMi" msgstr "singing DoReMi together"
# locale\zh_TW\LC_MESSAGES\django.po msgid "一起唱DoReMi" msgstr "一起唱DoReMi"
翻譯完成後,將翻譯包編譯出*.mo
python manage.py compilemessages -l en python manage.py compilemessages -l zh_TW可以參考一下完成編譯的檔案結構
locale/ ├── en │ └── LC_MESSAGES │ ├── django.mo │ └── django.po └── zh_TW └── LC_MESSAGES ├── django.mo └── django.po 4 directories, 4 files
這時就可以開啟瀏覽器查看成果囉!
http://your.ip.address/en/
http://your.ip.address/zh-tw/
沒有留言:
張貼留言