ベルギーのUnited Codesが提供しているOracle APEXの有償プラグインEnhanced Grid Proを日本語化する手順を紹介します。Enhanced Grid ProはUnited Codesが開発しているOracle APEXのプラグインPlug-ins Proに含まれています。
日本語化した結果は、Enhanced Grid Proのサンプル・アプリケーションのBasic Exampleのページで確認します。
プラグインを開き、United Codesが開発したJavaScriptのファイルを確認します。ucGrid.min.jsを開きます。
JavaScriptのファイルを確認すると、メッセージはUC_GRID.TOOLTIP_NOT_POSSIBLEといった形で、Oracle APEXのテキスト・メッセージで定義されていることが確認できます。
以下のスクリプトを実行し、APEXアプリケーションのグローバリゼーションのテキスト・メッセージを作成します。先頭のC_APP_IDは、テキスト・メッセージを作成するアプリケーションのアプリケーションIDに変更します。
グローバリゼーションのテキスト・メッセージを開き、日本語のテキスト・メッセージが作成されていることを確認します。
これまでの作業でボタンやコンテキスト・メニューが日本語化されています。
コンテキスト・メニューの一部およびフィルタの文字列については、Enhanced Grid Proが採用しているWebコンポーネントHandsontableを日本語化する必要があります。
Handsontableのローカライズの方法について、以下を参考にしました。
Enhanced Grid Proの日本語化では、この中の3. Universal Module Definition (UMD)の手法が使えそうです。
DemoのEditを開いて、手法について確認します。jsFiddleが起動します。
HTMLの記述はそのままでも良いのですが、日本語に限定するため、all.jsをja-JP.jsに変更します。
JavaScriptについては、言語に関する記述(deDEが現れる行)をコメントアウトします。それに加えて、Handsontableを生成する(new)するときのlanguageの指定をde-DEからja-JPに変更します。
上記の変更を行ったあと、左上でのRunをクリックします。
コンテキスト・メニューが日本語で表示されることが確認できます。
以上の操作で確認できた実装を、United CodesのEnhanced Grid Proに適用します。
HandsontableのソースコードはGitHub上でホストされています。GitHubからHandsontable 12.3.0の各国語対応を含んだ完全なコードをダウンロードします。
12.3.0のAssetsからSource codeをダウンロードします。
handsontable/dist/languages/ja-JP.js
プラグインUnited Codes - Enhanced Grid Proのファイルのファイルの作成をクリックし、このファイルja_JP.jsをプラグインを構成するファイルとして追加します。
ファイルをドラッグ・アンド・ドロップをクリックして、ja-JP.jsを選択します。
作成をクリックします。
ファイルのアップロードが行われ、ja-JP.jsがスクリプト・エディタで開かれます。スクリプト自体の変更は行わず、変更の保存をクリックします。ja-JP.jsがミニファイされ、ja-JP.min.jsが作成されます。
ファイルが保存され、縮小されました、というメッセージを確認し、ブレッドクラムのUnited Codes - Enhanced Grid Proをクリックして、プラグインの設定画面に戻ります。
ファイルja-JP.min.jsが作成されていることを確認し、ロードするファイルURLのセクションに移ります。
ロードするファイルURLのJavaScriptに、以下のファイルを追加します。handsontable_12_3_0.full.min.jsより後に配置します。
#PLUGIN_FILES#ja-JP.min.js
Enhanced Grid Proをタイプとして選択しているリージョンの属性の初期化JavaScriptファンクションに以下のコードを記述し、languageをja-JPに指定します。
function (pOptions) {
pOptions.language = 'ja-JP';
return pOptions;
}
本来であれば、これでHandsontableのlanguageがja-JPとなり、jsFiddleで確認したようにコンテキスト・メニューが日本語化されるはずですが、現行のバージョンではそうなりません。
ワークアラウンドとして、ucGrid.min.jsに含まれるlanguage指定を直接更新します。
プラグインのファイルに含まれるucGrid.min.jsを開きます。
以下のように続くコードを見つけます。
"en-US"の部分を、初期化JavaScriptファンクションで設定するlanguageを参照するように変更します。
this.hot=new Handsontable(document.getElementById(this.regionID),{language:o.options.language,licenseKey:
以上の変更により、Handsontableが提供するフィルタが日本語で表示されます。
まだ、コンテキスト・メニューの一部が日本語化されていません。
Handsontableのローカライズは、本体の機能追加の後に、各国の有志によってローカライズのためのリソースが提供されているようです。Copy with headersの機能の日本語訳は12.3.1で追加されています。
12.3.1のSource codeをダウンロードし、Enhanced Grid Proに追加したja-JP.jsを12.3.1のものに入れ替えます。
アップロード済みのja-JP.jsを一旦削除し、12.3.1のja-JP.jsをアップロードします。
以上で、コンテキスト・メニューのCopy with headersなども日本語表記になります。
以上が、United Codesが提供しているEnhanced Grid Proの日本語手順の紹介になります。
完