I18n続き
「翻訳されるべき文字列」が「_("翻訳されるべき文字列")」と書かれているソースコードにpygettextを使ってpotを作成する。(ここまでは普通のgettextの流れ) その後、potファイルを読んで下記のようなtemplate.pyを作成する。
map = {
"Run Script": "",
"Load Background Image": "",
"Capture": "",
(以下略)
ならびに、日本語の翻訳が入っているja.pyをインポートして、そこですでに翻訳されている文字列を埋め込んだja_template.pyも作る。(このとき、前回の翻訳ファイルにはあるのに今回使われていないものは参考までにnotUsedっていうハッシュの中に入れておく。)
この作業はバッチファイルにまとめてあるので、僕が英語版と日本語版のメンテナンスするのに関してはそれを実行してja_template.pyのまだ翻訳されていないところを翻訳してja.pyに上書きするだけで済む。もしも日英以外の言語に対応させようという奇特な人が現れたらtemplate.pyを渡せばいい。
以下、現在のja_template.py。まだまだ翻訳すべきところは少ないから楽チン。
map = {
"File": "",
"Load LegacyFormat Data": "ロード(LegacyFormat)",
"Load PairedFormat Data": "ロード(PairedFormat)",
"Run Script": "スクリプトを実行",
"Load Background Image": "背景画像を読み込み",
"Capture": "キャプチャ",
"Edit": "編集",
"make selected edge undirected": "選択辺を無向辺に",
"make selected edge directed": "選択辺を有向辺に",
"Mouse[&L]": "左ボタン[%L]",
"Mouse[&R]": "右ボタン[&R]",
"&Translation": "",
"&Scaling": "",
"&Move Vertex": "",
"Select &Range": "",
"":"space for extra information (in future)"
}
notUsed = {
"Move Vertex": "頂点移動[&M]",
"Select Range": "範囲選択[&R]",
"Translation": "平行移動[&T]",
"Scaling": "拡大縮小[&S]",
"": "space for extra information (in future)"
}