要將Ubuntu的gettext工具與Git集成,你需要在提交代碼時自動更新翻譯文件
sudo apt-get install gettext
.pot
的模板文件。這個文件將包含所有需要翻譯的字符串。你可以使用xgettext
命令從源代碼中提取字符串。例如,如果你的源代碼是Python文件,你可以運行:xgettext -o messages.pot -L python --from-code=UTF-8 source_file.py
LC_MESSAGES
的目錄,然后使用msginit
命令創建一個名為messages.po
的翻譯文件:mkdir -p locale/zh_CN/LC_MESSAGES
msginit -i messages.pot -o locale/zh_CN/LC_MESSAGES/messages.po -l zh_CN
編輯messages.po
文件,添加翻譯內容。
將messages.po
文件編譯成二進制的.mo
文件,以便在程序中使用:
msgfmt -o locale/zh_CN/LC_MESSAGES/messages.mo locale/zh_CN/LC_MESSAGES/messages.po
import gettext
translation = gettext.translation('messages', 'locale', languages=['zh_CN'])
_ = translation.gettext
print(_("Hello, world!"))
.git/hooks
目錄下,創建一個名為pre-commit
的文件,并添加以下內容:#!/bin/sh
# 提取字符串并更新.pot文件
xgettext -o messages.pot -L python --from-code=UTF-8 source_file.py
# 更新翻譯文件
msgmerge -U locale/zh_CN/LC_MESSAGES/messages.po messages.pot
# 編譯翻譯文件
msgfmt -o locale/zh_CN/LC_MESSAGES/messages.mo locale/zh_CN/LC_MESSAGES/messages.po
# 添加翻譯文件到Git
git add locale/zh_CN/LC_MESSAGES/messages.po
git add locale/zh_CN/LC_MESSAGES/messages.mo
確保pre-commit
文件具有可執行權限:
chmod +x .git/hooks/pre-commit
現在,每次你提交代碼時,翻譯文件都會自動更新。當你需要添加新的翻譯時,只需編輯messages.po
文件并重新編譯.mo
文件即可。