暗中模索、五里霧中、七転八倒。
まぁ、試して見る! は そんな感じ になる事が多いですね。
其のお陰 で、経験が増えたり知識が附いたり、します。
今回も其の類でした。
GIMP の Plug-in (Python Script) で役立つかも、です。
お題は 国際化 言い換えれば 多国語対応。
先に書いた様に、将来的に、
正式な ガイドライン (Tutorials) が示される可能性が高いのですが、
事前調査的な意味合いで。
足掻いて見ました。 正確には、足掻いた だけ ... 。 溺れ沈んでいました。
詰まる処、此れから書く事は結果を齎しません。
真似されても、失敗や徒労に終わります。
今後の為の 参考 程度 です。
さて、
検索して見ると、通常、
国際化 で 文字列を翻訳する作業は、
.py > .pot > .po > .mo と順に作って行く様です。
此れは Python 単独での流れ。
でも、GIMP の Python は組み込まれていますので、少し、違いがあるのが分かりました。
必要なツール類も、 GIMP 実行ファイル群の中に、ありました。
尚、 環境は Windows で、です。
1..pot 生成
なので、最初、GIMP の Python Console を立ち上げ、
其の中で、Path を通したり、Import したり、Dir() や Help() を酷使し乍らトライしたのですが、
一向に上手く動きません。
ふと、参考で見ていたサイトの以下の行が 一条の光になりました。
$ python pygettext.py main.py
$ python で始まると言う事は Linux の Terminal (端末) の例?。
user_a@machine:~$ xxx が一般的な例だった筈。
ならば、OS Windows なら cmd.exe (Command Prompt) から、かい?。
ビンゴ!。 ;)
あんなに苦労していたのが嘘の様に、すんなり!。
でも、最初は、cd せずに実行したので、
User Profile 直下に作成されて仕舞いました。 こりゃぁ。拙い。
本来なら、実行前に、cd で Current Dir.(Folder) を変更しましょう。
"C:¥Program Files¥GIMP 2.99¥bin¥python.exe" "C:¥Program Files¥GIMP 2.99¥lib¥python3.9¥Tools¥i18n¥pygettext.py" -d Test "<FullPath¥source.py>"
<FullPath¥source.py> は ドライブ名から始まるフルパス付きで .py を指定します。
因みに、Default では Message.pot で出力されるみたいですが、
-d Test を入れて実行したので、得られたファイルは Test.pot でした。
2..po 生成
Windows の場合、作業は notepad.exe メモ帳 で OK です。
さて、得られたファイルの拡張子を .pot から .po に変えて保存し、
必要なら名称を 元のファイル名 と合わせます。
更に、抽出された文字列 msgid に対応する msgstr が 空白 "" になっているので、
訳語を入れて行きます。
尚、冒頭に、日本語 Windows 特有の charset=cp932 の記述がある筈です。
一応、UTF-8 に合わせる為に、charset=utf-8 を書き換えて置きましょう。
保存も UTF-8 で上書きします。
また、PO-Revision-Date と Last-Translator も直した方が良さそうです。
日付と名前のみ訂正して置きます。
此れ等の項目は .mo にも引き継がれますから。
3. .mo 生成
.mo は .po と同じ場所に生成される様ですね。
cd は必要なさそうです。
"C:¥Program Files¥GIMP 2.99¥bin¥python.exe" "C:¥Program Files¥GIMP 2.99¥lib¥python3.9¥Tools¥i18n¥msgfmt.py" "<FullPath¥source.po>"
4. 配置(結果は 散々)
GIMP 2.99.x では Python Script は Script 名 と同じ Sub Dir.(Folder) に格納されます。
其の中に、以下の Sub Dir.(Folder) を新設し、生成した .mo をコピーします。
¥ja¥ は、勿論、日本語でのケースです。
¥locale¥ja¥LC_MESSAGES¥
日付情報を保持した方が望ましいので、
Windows では robocopy でコピーした方が管理がし易いでしょう。
5. 実行
GIMP を起動するも、言語表記は ... 変わらず。
恐らく、.py (Source) の 以下の記述が邪魔してる様です。
def do_query_procedures(self):
self.set_translation_domain("gimp30-python",
Gio.file_new_for_path(Gimp.locale_directory()))
此れは組み込み .py を参考に書いているので、
此の記述だと、 組み込み gimp30-python.mo の中に 該当 .py の差分を入れる必要が ... 。
或いは、gimp30-python の部分を変えるか? ... 。
にしても、場所が場所だけに、嫌らしいし ... 。
う~ん、もう ひと捻り が必要でしょうね。
少し、書き換えて見ましたが、
暑さの所為か?、上手く行きませぬ。
Gimp.locale_directory() は、Windows 版 の場合、
他ならぬ Program Files の中にありますから、
矢鱈に 手出しするのは 如何なものか! なので、
試すのは止めました。
オマケに、 GIMP 更新の際に、
古いものを削除してから 新しいもの を書いている様なので、
別ファイルにしても、少し、怖いですね。 削除され無い保証は無い ... 。
やはり、 正式の Tutorials 待ちか?。
0 件のコメント:
コメントを投稿