Babelでpyファイルからpot,po,moファイルを作成する。Google翻訳APIで翻訳したテキストを使う。
成果物
Python.i18n.Babel.Translate.Google.201709161734
前回
今回
msgidを原文として翻訳する。
ついにpy
→pot
→翻訳
→po
→mo
の自動化ができた。スクリプトを叩くだけで.py
ファイル一式の特定部分が翻訳される。
- pythonソースコード(
./src/
配下の.py
)に_('翻訳したいテキスト')
を記入する ./res/i18n/script/run.py
を実行する.mo
ファイルが作成される./src/main.py
を実行する- 翻訳されていることを確認する
実行結果
$ python run.py HTTP Code: 200 {'sentences': [{'trans': 'Hello World !!', 'orig': 'Hello World !!', 'backend': 0}], 'src': 'en', 'confidence': 0.7099877, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [0.7099877], 'extended_srclangs': ['en']}} Hello World !! HTTP Code: 200 {'sentences': [{'trans': 'Good Luck !', 'orig': 'Good Luck !', 'backend': 0}], 'src': 'en', 'confidence': 1, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [1], 'extended_srclangs': ['en']}} Good Luck ! HTTP Code: 200 {'sentences': [{'trans': 'Hallo Welt !!', 'orig': 'Hello World !!', 'backend': 1}], 'src': 'en', 'confidence': 0.7099877, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [0.7099877], 'extended_srclangs': ['en']}} Hallo Welt !! HTTP Code: 200 {'sentences': [{'trans': 'Viel Glück !', 'orig': 'Good Luck !', 'backend': 1}], 'src': 'en', 'confidence': 1, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [1], 'extended_srclangs': ['en']}} Viel Glück ! HTTP Code: 200 {'sentences': [{'trans': 'こんにちは世界 !!', 'orig': 'Hello World !!', 'backend': 1}, {'translit': "Kon'nichiwa sekai! !"}], 'src': 'en', 'confidence': 0.7099877, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [0.7099877], 'extended_srclangs': ['en']}} こんにちは世界 !! HTTP Code: 200 {'sentences': [{'trans': 'がんばろう !', 'orig': 'Good Luck !', 'backend': 1}, {'translit': 'Ganbarou!'}], 'src': 'en', 'confidence': 1, 'ld_result': {'srclangs': ['en'], 'srclangs_confidences': [1], 'extended_srclangs': ['en']}} がんばろう !
課題
- pot, po, moファイルの更新を実装する(現在は新規作成のみ)
- 新規追加、変更、の箇所は新たに翻訳処理を行う
- 翻訳リクエスト回数を減らす工夫をする
- 原文言語と翻訳言語が同一のときは翻訳しないようにする(原文をそのままmessage.stringに代入する)
- 1回のリクエストに10件分(1000文字分)の文章を入力するなど
- 翻訳リクエスト部分の抽象化
- 異なる翻訳APIの実装
必要性があるか微妙な課題は以下。
所感
これはすごいんじゃないの?