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

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

Table of Contents

お知り合いのエンジニアさんから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

出来上がり

f:id:re_shikajiro:20111220153040j:image

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

macで動かす

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

win

set LANG=ja
pronterface.py

mac

LANG=ja python pronterface.py

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

f:id:re_shikajiro:20111226112958p:image

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"