3ヶ国語を用意してみた。実行中に任意の言語で表示する。
成果物
前回
今回
翻訳ファイル(pot
→po
→mo
)の作成を半自動化した。
残念ながら、翻訳とそのpoファイルへのテキスト入力は手作業である。
./res/i18n/make_pot.sh
export PATH="~/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" echo "Pythonコマンド準備完了。" SOURCE_CODE=../../src/main.py DOMAIN_NAME=hello mkdir -p ./po/ python pygettext.py ${SOURCE_CODE} cp messages.pot ./po/${DOMAIN_NAME}_de.po cp messages.pot ./po/${DOMAIN_NAME}_en.po cp messages.pot ./po/${DOMAIN_NAME}_ja.po mv messages.pot ./po/messages.pot echo "対象ソースコード'${SOURCE_CODE}'からpotファイルを作成しました。" echo "(ドメイン名は'${DOMAIN_NAME}'です。対象ソースコードに gettext.install('${DOMAIN_NAME}') のようにしてドメイン名を指定してください)" # # ( 手作業: poファイルに翻訳テキストを記入する ) # echo "./po/配下にある各.poファイルに翻訳したテキストを入力してください。完了したらENTERキーを押下してください。" read mkdir -p ./languages/de/LC_MESSAGES mkdir -p ./languages/en/LC_MESSAGES mkdir -p ./languages/ja/LC_MESSAGES python msgfmt.py ./po/${DOMAIN_NAME}_de.po python msgfmt.py ./po/${DOMAIN_NAME}_en.po python msgfmt.py ./po/${DOMAIN_NAME}_ja.po mv ./po/${DOMAIN_NAME}_de.mo ./languages/de/LC_MESSAGES/${DOMAIN_NAME}.mo mv ./po/${DOMAIN_NAME}_en.mo ./languages/en/LC_MESSAGES/${DOMAIN_NAME}.mo mv ./po/${DOMAIN_NAME}_ja.mo ./languages/ja/LC_MESSAGES/${DOMAIN_NAME}.mo echo "moファイルの作成と配置が完了しました。正常終了します。"
課題
- 翻訳とそのテキスト入力も自動化したい
- 複数の
.py
ファイルを対象とするときはどうやって管理する?
たった1ファイルの2箇所を3カ国で翻訳するだけなのに、ファイル数やドメイン名などの管理項目が多すぎる。規模が大きくなったら破綻しそう。
所感
規模の拡大に伴い、自動化と管理の負荷が大きくなる。というか、すでに大きい。現実的でないレベル。手作業でやると本筋が進まない。