2022年8月7日日曜日

GIMP 2.99 Python 寄り道 其の肆

暗中模索、五里霧中、七転八倒。
まぁ、試して見る! は そんな感じ になる事が多いですね。
其のお陰 で、経験が増えたり知識が附いたり、します。
今回も其の類でした。


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 件のコメント:

コメントを投稿