pythonアプリケーションの多言語化 Printrunの場合

お知り合いのエンジニアさんからpythonアプリの日本語化方法について尋ねられたので調べて見ました。
日本語化するのはこちら。
Printrun
ちなみにwinで動かしたいので、vmwareで準備しました。

既に多言語化に対応したアプリなので、設定がうまく出来ればすぐできそう。

環境構築

まずはreadmeの言う通りに環境を構築する。

  1. http://python.org/ftp/python/2.7.2/python-2.7.2.msi
  2. http://pypi.python.org/packages/any/p/pyserial/pyserial-2.5.win32.exe
  3. http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.0-py27.exe
  4. http://launchpad.net/pyreadline/1.7/1.7/+download/pyreadline-1.7.win32.exe

忠実にインストール。

pathの設定

環境変数pythonにpathを通す。localeのツールも使うので、\Tools\i18nにもpathを通す。

C:\Python27;C:\Python27\Tools\i18n

これで msgfmtが使えるようになります。

日本語化ファイルの準備

Printrunをzipでダウンロードして、とりあえずC:\直下に展開。
README.i18nではpygettextしてjaディレクトリ作ったりとかする様に書いてるけど、めんどいので locale/de をコピーして locale/ja を作成。de.poもjp.poに名前を変える。

注意

ここで必要な文字をpoファイルに書くんだけど、テキストのエンコードutf-8にしないとエラーになるので注意。秀丸とかエンコードが選べるエディタで編集しました。

次はpoファイルのコンパイル

cd locale/ja/LC_MESSAGES/
msgfmt.py -o pronterface.mo ja.po

ロケールファイルをコンパイルする。
README.i18n には{newlang}.mo {newlang}.po って書いてるけど、moファイルは pronterface.mo って名前じゃないと動かないみたい。

起動

後は実行するだけ。言語指定はsetで。

set LANG=ja
pronterface.py

出来上がり


ちゃんと日本語なった。やったね。

macで動かす

pythonの環境が整っていれば、その上で動くPrintrunは同じものが使える。
win

set LANG=ja
pronterface.py

mac

LANG=ja python pronterface.py

それぞれのショートカットを作っておくと便利。

win と macスクリプト

win

start.bat

set LANG=ja
pronterface.py
mac

start.app
applescriptエディターで新規ファイルを作ってアプリケーションで保存。

--- 現在のディレクトリを取得
tell application "Finder" to set current_dir to parent of (path to me)
--- POSIX形式でディレクトリを取得 /User/みたいな
set current_dir to POSIX path of (current_dir as Unicode text)
--- do shell script でディレクトリを移動して実行
do shell script "cd '" & current_dir & "'; LANG=ja ./pronterface.py"