日本語化スクリプト
日本語化スクリプト
いまさらながら、日本語化のためのスクリプトを眺めていていろいろ問題が見つかったのっで見直そうとしています。
最初は私が作ったものだけど、なにしろ 2007-2015年で10年以上前のもので(thinkpadnerdさんの修正が 2019年にある)、よく覚えてません。
みなさんのお知恵をいただきたいと、このトピックを建てました。
テスト版を次の場所に置いています。→ https://shinobar.server-on.net/puppy/test/langpack/
日本語化のためのスクリプトは大きくは2つあって、日本語化パッケージをインストールしたときに行う作業と、ロケールを変更したさいにデスクトップ上のアイコンの表示を都度変更するものとです。
まずは後者の /usr/local/fixmenus_on_locale から。
gtk-immodule まわりは前者のインストール時に行う鵜べき。、ブラウザの日本語化も同じかな。ヘルプファイルの差し替えなども今回はパス。
なのでやるべきことはスクリプト名のとおりロケールが切り替わったときにメニューをリフレッシュすることと、デスクトップアイコンやトレイの表示を変更すること(だけ?)。
日本語化パッケージを削除したときにデスクトップアイコンが日本語のままで残る問題への対処のコードがあるのだけれど、これも不要ですね。
いちど英語に戻してからパッケージを削除すれば済むことだし、あるいは RAMモードからやり直せばよい。
いまある問題として私が気づいていることは、
・ロケールを切り替えたときに、ユーザーが作成したデスクトップアイコンが消える?
・「terminal」は「端末」と翻訳されるが、「console」や「term」は翻訳されない。「Menu」は「メニュー」になることも、ならないこともある。
みなさんお気づきのことはありますか?
最初は私が作ったものだけど、なにしろ 2007-2015年で10年以上前のもので(thinkpadnerdさんの修正が 2019年にある)、よく覚えてません。
みなさんのお知恵をいただきたいと、このトピックを建てました。
テスト版を次の場所に置いています。→ https://shinobar.server-on.net/puppy/test/langpack/
日本語化のためのスクリプトは大きくは2つあって、日本語化パッケージをインストールしたときに行う作業と、ロケールを変更したさいにデスクトップ上のアイコンの表示を都度変更するものとです。
まずは後者の /usr/local/fixmenus_on_locale から。
gtk-immodule まわりは前者のインストール時に行う鵜べき。、ブラウザの日本語化も同じかな。ヘルプファイルの差し替えなども今回はパス。
なのでやるべきことはスクリプト名のとおりロケールが切り替わったときにメニューをリフレッシュすることと、デスクトップアイコンやトレイの表示を変更すること(だけ?)。
日本語化パッケージを削除したときにデスクトップアイコンが日本語のままで残る問題への対処のコードがあるのだけれど、これも不要ですね。
いちど英語に戻してからパッケージを削除すれば済むことだし、あるいは RAMモードからやり直せばよい。
いまある問題として私が気づいていることは、
・ロケールを切り替えたときに、ユーザーが作成したデスクトップアイコンが消える?
・「terminal」は「端末」と翻訳されるが、「console」や「term」は翻訳されない。「Menu」は「メニュー」になることも、ならないこともある。
みなさんお気づきのことはありますか?
最後に編集したユーザー シノバー [ 24/12/12(木) 16:32 ], 累計 2 回
-
- 記事: 2374
- 登録日時: 15/10/25(日) 14:00
Re: n日本語化スクリプト
一点目は、ユーザが PuppyPin のバックアップを取っておくしかないと思います。JWMDesk ->「アイコンレイアウト」でカスタム配置のバックアップを取ることができます。
二点目は、PuppyPin.nls を "console" や "term" に対応させ、puppy-desktop.mo (確かこのファイルだったと思う) に対応する訳語を加えます。拙作の日本語化パッケージではバージョン毎に修正を加えています。
だいたい、バージョンによって用語がまちまちなのが問題です。海の向こうの人は翻訳のことなど考えていないのでしょう。
例えば、Menu と MENU は別の単語ですし、File と file も別の単語です。なので、それぞれに訳語を当てないといけません。
ただ、BookwormPup では、私はあえて "Menu" は訳さなかったと思います。隣に "Places" がありますが、「場所」と訳すのは変だし、「メニュー」の隣に "Places" と表示されるのもかっこ悪い... なので、"Menu" "Places" のままにしたと記憶しています。(そんなに前のことではないのですが、記憶が曖昧)
追記
タスクバー関連は、.jwmrc-tray.nls が関係すると思います。
ThinkPad X121e (Precise 571 / Tahr 605 / Tahr64 606 / Xenial 7.5 / Bionic32)
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
langpack_ja-scripts-241202.pet
/usr/local/bin/fixmenus_on_locale の修正のみを入れた PETを作りました。
langpack_ja-scripts-241202.pet
以下の場所に置いています。
https://shinobar.server-on.net/puppy/test/langpack/
インストールすると、修正版である /usr/local/bin/fixmenus_on_locale.new が背理、オリジナルは fixmenus_on_locale.org に名前変更され、
fixmenus_on_locale は fizmenus_on_locale.new へのリンクとなります。パッケージをアンインストールすればもとに戻ります。
日本語化版か、英語版に日本語化パッケージをインストールした状態に追加インストールしてください。
1. gtk-immodulesやブラウザの関係は削除しています。
2. sedを使っての編集でセパレーターに「/」を使っていると一部の翻訳に失敗する場合があります。代わりにセパレーターを「 |」 としました。
3. BionicPup32 のトレイ翻訳のコードが冗長だったので、まとめて短くしました。
4. 本来は同じロケールを変更したときにのみ動作し、同じロケールでXを再起動したときはパスすることになっているはずなのに、そうなっていなかったようです。そのためのフラグを /root/.config/menu_locale としました。
5. jwm を -restart するのではなく -reload (メニューのみの変更)するようにしました。このほうがトラブルが少ないようです。
6. ログの場所は /var/log/nls/fixmenus_on_locale に変更しました。
BionicPup32-simple-r2 でロケールを ja_JP → en_US → ja_JP と変更して動作を確認しました。
en_US → ja_JP のときに出ていた例の青紫色の警告は出なくなりました。パッケージ名が langpack_ja だからです。
ロケールを変更したとき、ユーザー作成のデスクトップアイコンが消える問題はそのままです。
langpack_ja-scripts-241202.pet
以下の場所に置いています。
https://shinobar.server-on.net/puppy/test/langpack/
インストールすると、修正版である /usr/local/bin/fixmenus_on_locale.new が背理、オリジナルは fixmenus_on_locale.org に名前変更され、
fixmenus_on_locale は fizmenus_on_locale.new へのリンクとなります。パッケージをアンインストールすればもとに戻ります。
日本語化版か、英語版に日本語化パッケージをインストールした状態に追加インストールしてください。
1. gtk-immodulesやブラウザの関係は削除しています。
2. sedを使っての編集でセパレーターに「/」を使っていると一部の翻訳に失敗する場合があります。代わりにセパレーターを「 |」 としました。
3. BionicPup32 のトレイ翻訳のコードが冗長だったので、まとめて短くしました。
4. 本来は同じロケールを変更したときにのみ動作し、同じロケールでXを再起動したときはパスすることになっているはずなのに、そうなっていなかったようです。そのためのフラグを /root/.config/menu_locale としました。
5. jwm を -restart するのではなく -reload (メニューのみの変更)するようにしました。このほうがトラブルが少ないようです。
6. ログの場所は /var/log/nls/fixmenus_on_locale に変更しました。
BionicPup32-simple-r2 でロケールを ja_JP → en_US → ja_JP と変更して動作を確認しました。
en_US → ja_JP のときに出ていた例の青紫色の警告は出なくなりました。パッケージ名が langpack_ja だからです。
ロケールを変更したとき、ユーザー作成のデスクトップアイコンが消える問題はそのままです。
-
- 記事: 2374
- 登録日時: 15/10/25(日) 14:00
Re: n日本語化スクリプト
これは「問題」でしょうか。
通常は英語版を日本語環境に切り替えるのに使われると思うので、langpack を適用する前にアイコン配置を変更していなければ、問題にならないと思うのですが...
英語環境で使いたいのなら英語版を使えばいいと思いますし、日本語化済みの Puppy を英語環境に切り替えることも考えなくていいと思います。
ThinkPad X121e (Precise 571 / Tahr 605 / Tahr64 606 / Xenial 7.5 / Bionic32)
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
Re: n日本語化スクリプト
「ロケールを ja_JP → en_US → ja_JP と変更」そんなことをする人が居るのか?ってことですよね。
日本語話者と英語話者が同居してるところでの共用パソコン?ならpupsaveを2つ用意すれば切り替えはできるし。
でもねえ、期待される動作にならないということが気持ち悪いんですよ。まれな環境で妙な副作用が出たりしないかと。
ロケールをそのままに「デスクトップの修復」をやると、この fixmenus_on_locale が走ります。このときユーザー作成のデスクトップアイコンは維持されます。
なのでこのスクリプトに因らない、別のところに原因があるのかもしれません。
日本語サポートパッケージ 241211
SFSをあきらめ、PETにしました。
langpack_ja-241211.pet 全部乗せの勢いで 32bit/64/bit 共用としちゃったもの。/usr/share/anthy/anthy.doc が 32bit/64bit 互換性が内ので、大きくなってしまった。
langpack_ja-241211-amd64.pet 上のものがあまりに大きくなるので、やはり 64bit 専用にしたもの。
langpack_ja-scripts-241211.tar.xz は /usr/local/bin 内のスクリプトだけを集めたもの。
https://shinobar.server-on.net/puppy/test/langpack/
CUPS関係の日本語化ファイルはできているが、ブラウザを日本語優先に設定しないと意味がない...。
langpack_ja-241211.pet 全部乗せの勢いで 32bit/64/bit 共用としちゃったもの。/usr/share/anthy/anthy.doc が 32bit/64bit 互換性が内ので、大きくなってしまった。
langpack_ja-241211-amd64.pet 上のものがあまりに大きくなるので、やはり 64bit 専用にしたもの。
langpack_ja-scripts-241211.tar.xz は /usr/local/bin 内のスクリプトだけを集めたもの。
https://shinobar.server-on.net/puppy/test/langpack/
CUPS関係の日本語化ファイルはできているが、ブラウザを日本語優先に設定しないと意味がない...。
日本語サポートパッケージ 241214
fixmesus_on_locale の翻訳の部分を大幅に改善しました。
ブラウザに関しては /opt 以下に Tinkpadnerd さんによる firefox と palemoon の日本語化部分を収録しています。
langpack_ja-241214-amd64.pet - 64bit 専用。BionicPup64, S15Pup64, Fissapup64, BionicPup64 などで動作確認しました。
https://shinobar.server-on.net/puppy/test/langpack/
langpack_ja-scripts-241214.tar.xz には新しく作った nlsmaker も収録しています。(langpack_ja-*.pet には含めず。)
デスクトップアイコンややトレイなどの翻訳に必要なファイルを作成するツールです。詳細は改めて。
ブラウザに関しては /opt 以下に Tinkpadnerd さんによる firefox と palemoon の日本語化部分を収録しています。
langpack_ja-241214-amd64.pet - 64bit 専用。BionicPup64, S15Pup64, Fissapup64, BionicPup64 などで動作確認しました。
https://shinobar.server-on.net/puppy/test/langpack/
langpack_ja-scripts-241214.tar.xz には新しく作った nlsmaker も収録しています。(langpack_ja-*.pet には含めず。)
デスクトップアイコンややトレイなどの翻訳に必要なファイルを作成するツールです。詳細は改めて。
-
- 記事: 2374
- 登録日時: 15/10/25(日) 14:00
Re: 日本語化スクリプト
CUPS の日本語化対策ですか?
firefox にしても palemoon にしても、バージョンが異なると適合しません。S15Pup にいたっては、デフォルトブラウザは Light です。CUPS の様々なバージョンへの対応もきりがないと思うのですが... (たくさんのバージョンを収録されていることには敬意を表します)
ブラウザの日本語化はユーザに任せればいいのでは?
ユーザが好みのブラウザを追加して使う場合もあるでしょう。
ThinkPad X121e (Precise 571 / Tahr 605 / Tahr64 606 / Xenial 7.5 / Bionic32)
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
CPU AMD C-50 1.0GHz, RAM 4GB
ThinkPad L440 (Xenial 7.5 / Bionic64 / Fossa64)
CPU intel Celeron 2950M 2.0GHz, RAM 4GB
Re: ブラウザの日本語化
私もそう思っていて、主だったブラウザについて日本語化の手順を案内するページを用意してはと。本フォーラムのHOWTOあたりにまとめておくとよいかもしれません。
最後に編集したユーザー シノバー [ 24/12/15(日) 00:26 ], 累計 1 回
日本語化補助スクリプト nlsmaker
デスクトップアイコンの日本語化の仕組みがどうなっているか、不思議でした。て、私が考案した方法なのですが 大昔のことなので思い出すのにずいぶんかかりました。
たとえばデスクトップアイコンについては /root/Choices/ROX-Filer/PuppyPin にその記述があります。その中身の1行の例:
<icon x="32" y="32" label="File">/usr/local/bin/defaultfilemanager</icon>
PuppyPin.nls の対応行:
<icon x="32" y="224" label="$(gettext "Browse")">/usr/local/bin/defaultbrowser</icon>
fixmenus_on_locale で処理後:
<icon x="32" y="224" label="ブラウザ">/usr/local/bin/defaultbrowser</icon>
fixmenus_on_locale は対応行を見つけるのに label ではなく、実行コマンド /usr/local/bin/defaultbrowser の一致を見ています。
/usr/local/bin/defaultbrowser → gettext "Browse") → 「ブラウザ」→ 「16進数表現」
ですので、元が「browse」でも「Browser」でも日本語では「ブラウザ」となります。
gettex による「Browse」→「ブラウザ」への変換には /usr/share/locale/ja/LC_MESSAGES/puppy-desukutop.mo を参照します。
ここで PuppyPin.nls はすいぶん昔に手作業で作りました。新しいパピーに対応しない部分も出てきますので、作り直すことにしました。そのために作ったスクリプトが nlsmaker です。
https://shinobar.server-on.net/puppy/te ... 214.tar.xz の中 /usr/local/bin 内に収めています。
(日本語化されていない)オリジナルの .iso ファイルから必要なファイルを抽出し、 PuppyPin.nls などを自動作成します。
使い方の詳細は次の記事で。
たとえばデスクトップアイコンについては /root/Choices/ROX-Filer/PuppyPin にその記述があります。その中身の1行の例:
<icon x="32" y="32" label="File">/usr/local/bin/defaultfilemanager</icon>
PuppyPin.nls の対応行:
<icon x="32" y="224" label="$(gettext "Browse")">/usr/local/bin/defaultbrowser</icon>
fixmenus_on_locale で処理後:
<icon x="32" y="224" label="ブラウザ">/usr/local/bin/defaultbrowser</icon>
fixmenus_on_locale は対応行を見つけるのに label ではなく、実行コマンド /usr/local/bin/defaultbrowser の一致を見ています。
/usr/local/bin/defaultbrowser → gettext "Browse") → 「ブラウザ」→ 「16進数表現」
ですので、元が「browse」でも「Browser」でも日本語では「ブラウザ」となります。
gettex による「Browse」→「ブラウザ」への変換には /usr/share/locale/ja/LC_MESSAGES/puppy-desukutop.mo を参照します。
ここで PuppyPin.nls はすいぶん昔に手作業で作りました。新しいパピーに対応しない部分も出てきますので、作り直すことにしました。そのために作ったスクリプトが nlsmaker です。
https://shinobar.server-on.net/puppy/te ... 214.tar.xz の中 /usr/local/bin 内に収めています。
(日本語化されていない)オリジナルの .iso ファイルから必要なファイルを抽出し、 PuppyPin.nls などを自動作成します。
使い方の詳細は次の記事で。
最後に編集したユーザー シノバー [ 24/12/15(日) 00:37 ], 累計 1 回
日本語化補助スクリプト nlsmaker の使い方
この記事は日本語化パッケージを作成する開発者のためのものです。利用者には必要ありません。
動作環境は日本語化(されていなくてもよい)パピー上でROX-Filerが動作してること。xgettext コマンドを使用するので、poedit がインストールされているか、 devx を読み込んでいる環境。
用意するものは(日本語化されていない)オリジナルのパピーの .iso ファイル。
.iso ファイルを nlsmaker のアイコン上にマウスでドロップします。
/var/tmp/nlsmaker/nls 内に次の5つのファイルができます。
PuppyPin.nls _root_.jwmrc.nls jwmrc-tray.nls puppy-desktop puppy-desktop.pot
このうち puppy-desuktop は作業用ファイルなので、捨てて構いません。残り4つを「翻訳補助ファイル」とでも呼びましょうか。
puppy-desktop.pot は puppy-desktop.mo を更新する作業で使いますので取っておいてください。
残る3つを日本語化パッケージの所定位置に収めます。それぞれ、
/root/Choices/ROX-Filer/PuppyPin.nls
/etc/xdg/templates.locale/_root_.jwmrc.nls
/root/.jwmrc-tray.nls
最後の jwmrc-tray.nls は頭に「.」(ドット)を加えて隠しファイルに変更します。
さて、元のパピーとして何を使うかですが、メインラインのものを中心に複数選ぶことができます。
最初の .iso ファイルをドロップ後、次に別のパピーの .iso ファイルを追加でドロップすると、nlsmaker はこれらをマージして翻訳補助ファイルを作り直します。
これを繰り返すことで複数のパピーをカバーする翻訳補助ファイルを作成することができます。
ちなみに langpack_ja-241214-amd64.pet では BionicPup64, S15Pup64, Fissapup64, BionicPup64 の4つのパピーから作りました。
nlsmaker はコマンドラインでも動作しますが、 ROX-Filer上でのアプリとして使うことを想定しています。シノバー さんが書きました: ↑24/12/14(土) 23:36 PuppyPin.nls はすいぶん昔に手作業で作りました。新しいパピーに対応しない部分も出てきますので、作り直すことにしました。そのために作ったスクリプトが nlsmaker です。
https://shinobar.server-on.net/puppy/te ... 214.tar.xz の中 /usr/local/bin 内に治めています。
(日本語化されていない)オリジナルの .iso ファイルから必要なファイルを抽出し、 PuppyPin.nls などを自動作成します。
動作環境は日本語化(されていなくてもよい)パピー上でROX-Filerが動作してること。xgettext コマンドを使用するので、poedit がインストールされているか、 devx を読み込んでいる環境。
用意するものは(日本語化されていない)オリジナルのパピーの .iso ファイル。
.iso ファイルを nlsmaker のアイコン上にマウスでドロップします。
/var/tmp/nlsmaker/nls 内に次の5つのファイルができます。
PuppyPin.nls _root_.jwmrc.nls jwmrc-tray.nls puppy-desktop puppy-desktop.pot
このうち puppy-desuktop は作業用ファイルなので、捨てて構いません。残り4つを「翻訳補助ファイル」とでも呼びましょうか。
puppy-desktop.pot は puppy-desktop.mo を更新する作業で使いますので取っておいてください。
残る3つを日本語化パッケージの所定位置に収めます。それぞれ、
/root/Choices/ROX-Filer/PuppyPin.nls
/etc/xdg/templates.locale/_root_.jwmrc.nls
/root/.jwmrc-tray.nls
最後の jwmrc-tray.nls は頭に「.」(ドット)を加えて隠しファイルに変更します。
さて、元のパピーとして何を使うかですが、メインラインのものを中心に複数選ぶことができます。
最初の .iso ファイルをドロップ後、次に別のパピーの .iso ファイルを追加でドロップすると、nlsmaker はこれらをマージして翻訳補助ファイルを作り直します。
これを繰り返すことで複数のパピーをカバーする翻訳補助ファイルを作成することができます。
ちなみに langpack_ja-241214-amd64.pet では BionicPup64, S15Pup64, Fissapup64, BionicPup64 の4つのパピーから作りました。