使えそうなので。
調査
Pylon自体はWebフレームワークらしいが、国際化についての詳しい説明がある。情報が少ないため非常にありがたい。
ライブラリではなくツールだが、Pythonのソースコードにpygettext.py、msgfmt.pyがある。pot
, po
, mo
ファイルを作成するのに使う。手順はこちらを参考にした。
Babelはライブラリ。Pylonの説明をみても、基本的な手順は変わらない。
ただし、便利な点がたくさんある。翻訳対象箇所の一括抽出、potの書式設定、poのマージ(一部更新)など。ライブラリというより、充実したツールに見える。
Babel
コマンドラインだけを見ても便利である。
あとは翻訳処理を自動化するためのAPIかフレームワーク等が欲しい。
翻訳対象テキスト抽出
下記にある関数を使えば、翻訳対象テキストが抽出できそう。
POファイル作成
翻訳したテキストを埋め込んだPOファイルを作成したい。
コード例から察するに、poファイルのmsgid
,msgstr
は、Catalog.id
, Catalog.string
に該当するようだ。potファイルを作成し、それを読み込ませ、Catalogオブジェクトで取得し、Catalog.string
に翻訳済みテキストを設定すれば、翻訳済みpoファイルが作成できそう。
Babel インストール
pyenvにてPython3.6.1をインストール
(game) $ pip install Babel Collecting Babel Downloading Babel-2.5.1-py2.py3-none-any.whl (6.8MB) 100% |████████████████████████████████| 6.8MB 51kB/s Requirement already satisfied: pytz>=0a in /media/mint/85f78c06-a96e-4020-ac36-9419b7e456db/mint/root/tools/pyenv/3.6.1/venv/game/lib/python3.6/site-packages (from Babel) Installing collected packages: Babel Successfully installed Babel-2.5.1
開発環境
- Linux Mint 17.3 MATE 32bit
- pyenv 1.0.10
- Python 3.6.1
所感
次回、使ってみたい。