Payara の asadmin を日本語化する (ja)

この記事は Payara Advent Calendar 2016 の 2 日目です。昨日分は「そのプログラム、Payara なら動きますよ」です。

Payara には多国語化対応のパッケージが用意されています。それを利用すると GUI の管理コンソールが日本語表示になるなど、英語の苦手な日本人にとっては嬉しいものです。ダウンロードサイト上部のメニューから "All Downloads" をクリックすると (リンク先は http://www.payara.fish/all_downloads です) 多国語化対応パッケージを入手することができます。

多国語化対応パッケージで日本語化されるのは管理コンソールだけで、asadmin については日本語化されません。ただし、Payara を構成する JAR ファイルを手動で移動 (またはコピー) することで asadmin を強制的に日本語化する方法があります。以下に手順を示しますが、Payara の構成ファイルを操作するため動作しなくなる可能性もあります。あくまで自己責任でお願いします。

Step 1 : Payara Server を完全に停止した状態にする。

Step 2 : payara41/glassfish/modules に存在する以下の 3 ファイルを、payara41/glassfish/lib/asadmin に移動 (またはコピー) する。

  • cli-optional-l10n.jar
  • cluster-cli-l10n.jar
  • server-mgmt-l10n.jar

Step 3 : Payara Server を起動する。asadmin start-domain のメッセージが日本語化されているはず。

上記で移動 (またはコピー) した 3 ファイルは、本来 payara41/glassfish/lib/asadmin 以下に存在すべきファイルですが、Payara が GlassFish 4.0 から引きずっているバグ (公式にはバグと認められていない) により payara41/glassfish/modules 以下に配置されています。Payara を構成する JAR ファイルのうち末尾に "-l10n" が付加されているものは、付加されていないモジュールに対する多国語化パッチであり、モジュール本体と多国語化パッチが同じディレクトリ上に配置されることではじめてローカライズが行われる仕組みとなっています。上記 3 ファイルは asadmin の多国語化パッチですが、既定でモジュール本体とは異なるディレクトリにあるため、結果として asadmin のローカライズが行われない状態になっているのです。

このあたりのことは Payara (GlassFish) のモジュラー・システムが深く関わっています。参考までに、以前の発表資料 (20 分版) を添付します。


この件については、一度 Payara の国際化対応に関する Issue に関連づけて私が修正を試みたのですが、該当箇所のソースコードがスパゲティ状態でとうとう手が付けられませんでした (さすがにこの時ばかりは GlassFish 4.0 の開発時に該当箇所をいじった人間を恨みましたが...)。多分、今後もなかったことにされ続けることでしょう。