開発者は各国用のリソースファイルを準備することで、国際化対応アプリケーションを開発できます。

設計情報に含まれる「項目名」などの文字は、すべて「リソースファイル」に格納されています。 リソースファイルの詳細は"リソースファイルの編集"をお読みください。

ファイル名に "_ja" が付与されているものが日本語リソースです。"_en"が英語リソースです。出荷時の製品には日本語と英語のリソースファイルが同梱されています。
  1. wagbyapp/webapps/wagby/WEB-INF/classes/jfcapp_en.properties.UTF8 をテキストエディタで開きます。(Windowsに付属の「メモ帳」は使いません。TeraPad など別のテキストエディタをご用意ください。)
  2. リソースファイルのところどころが日本語表記になっています。これらを英語に翻訳します。
    ...
    qa_report.title=title
    ...
    
    リソースファイルのキー部分(上記では "qa_report.title" の部分)は変更してはいけません。
  3. 編集したファイルを customize/resources フォルダに保存します。これによって次回以降のビルド時に、今回編集したファイルが用いられるようになります。

この方法はファイルの置き換えになりますが、非推奨です。このあとの説明にある「差分ファイルの作成」までお読みください。

リソースファイルの置き換え方式とは別に、差分ファイルを作成する方法を提供しています。差分ファイルとして個別に管理した場合でも、ビルド時にマージ(結合)され、一つの .properties ファイルとしてまとめられます。

  1. jfcapp_en.properties.UTF8 ファイルに対して、接頭語 "my" をつけたファイルである myjfcapp_en.properties.UTF8 ファイルを新規に作成します。ファイルの中身は空です。このファイルを customize/resources フォルダに保存します。
  2. my ではじまるファイルを編集します。このとき、元々あったメッセージと同じ行を記述することで、置き換えることができます。例えば次の行を加えることで、もともと "Logoff" だったメッセージを書き換えます。
    __jfc_common.globallink.logoff=Log OFF !
    
  3. ビルド時にマージ(結合)されます。
図1 既存リソースの置き換え
この "my" をつけたファイルの拡張は、すべてのリソースファイルに対応しています。カスタマイズしたい部分のみを管理することができます。

差分ファイル方式を推奨します

jfcapp_XX.properties.UTF8 は「システムが標準で提供するリソース」と「開発者が追加したモデルに関するリソース」が一つになっています。このファイルを直接、編集すると、Wagbyのバージョンアップ時にシステムが提供するリソースが追加・変更された場合、開発者が手動で修正する必要が生じます。

この手間を省略するため、myjfcapp_XX.properties.UTF8 ファイルを作成することを推奨します。開発者が追加したモデルに関するリソースを、このmyファイルに分離して管理します。

標準で提供される文言を変更する場合も、このmyファイルに記述するとよいです。myファイルに記述したリソースが、標準のリソースを上書きします。(図1の例を参照)

カレンダビューで表示される「休日」は iCalendar 形式のファイルで記述されています。標準ではmozilla が提供する日本の公休日情報 "JapanHolidays.ics" を同梱しています。

これを他国用に変更することができます。

  1. customize/webpage/WEB-INF フォルダに、その国向けの ics ファイルを保存します。
  2. カスタマイズフォルダ customize/resources に myapplication.properties ファイルを用意し、次の行を加えます。
    server.context-parameters.icsfilename=(ファイル名)
    
    標準では server.context-parameters.icsfilename=JapanHolidays.ics となっています。
  3. ビルドを行い、wagbyappを再起動します。指定した ics ファイルが読み込まれます。

修正した application.properties を customize/webpage/WEB-INF/classes に保存すると、次回以降の wagbyapp の起動で、カスタマイズしたファイルが利用されます。

[注意] このカスタマイズを行なったあと、リポジトリを変更して生成される application.properties が変わった場合は、手動でマージをを行うようにしてください。

入力チェック(ユーザ定義チェック)の設定で、メッセージを国際化対応することができます。

ERRORMESSAGE 関数を使います。引数はリソースキーです。

ERRORMESSAGE("E0001")

myerrormsg_ja.properties.UTF8を編集する

リソースキーに対応するエラーメッセージは、myerrormsg_ja.properties.UTF8 に「キー=値」の書式で記述します。このファイルをcustomize/resources に保存します。

記述例を示します。

E0001=このデータは登録できません。
E0002=このデータは {0} のため登録できません。
E0003=このデータは {0} のため {1} できません。

ここで {0} や {1} は「プレースホルダ」となります。ERRORMESSAGE 関数の第一引数はリソースキー(上のファイルで E0001 に相当する)ですが、第二引数以降に固定文字列を渡すことができます。

ERRORMESSAGE("E0002", "空白が含まれている")
ERRORMESSAGE("E0003", "空白が含まれている", "登録")

言語パック(英語)をインストールした Wagby は開発から運用まで、すべて英語化されます。一部メッセージの置換も行うため、日本語に戻すことはできません。完全に英語モードとして動作させたい場合に適用してください。

言語パックには次の内容が含まれています。

  • WagbyDesignerのメッセージを英語表記とする。(言語の環境変数を英語に変えた起動スクリプトを含む。)
  • 製品では一部、日本語が固定となっていた箇所を英語に置き換える。
  • ワークフロー、ポータル、ジョブ管理に関する初期データの英語化。

入手方法

wagby.comのダウンロードサイトから「言語パック(英語)ランタイム版」を入手できます。言語パックのインストール方法は、このページにリンクとして用意しています。

次のリソースファイルを翻訳することで、日・英以外の国に対応することができます。"<ロケール>" は ISO-639 に準拠した指定になります。この詳細は「サポートされているロケール」をお読みください。例えば台湾は zh_TW となります。

ファイル説明修正のタイミング
customize/resources/jfcapp_<ロケール>.properties.UTF8 システムメッセージを含む、基本的なリソース。(*1) モデルの修正の都度。
customize/resources/logcode_<ロケール>.properties.UTF8 ログコード。(*1) 初回のみ。
customize/resources/errormsg_<ロケール>.properties.UTF8 エラーメッセージ。(*1) 初回のみ。
customize/resources/errormsgconv_<ロケール>.properties.UTF8 データベースのメッセージの変換用。(*1) 初回のみ。
customize/webpage/nls/<ロケール>/common.js Dojotoolkit用の標準メッセージ。(*2) 初回のみ。
1. テキストエディタで編集するファイルは拡張子 .properties.UTF8 として、UTF-8 を編集できるテキストエディタを使ってください。ビルド時にこのファイルから ".properties" へ変換されます。実際のアプリケーションは(変換された)".properties" ファイルを読み込んでいます。
2. JavaScript ファイルですが、メッセージが含まれています。

最初に用意する方法

1. アプリケーションビルドする

翻訳する直前のアプリケーションをビルドします。

2. 英語リソースをコピーする

ビルドされたアプリケーションに含まれる英語リソースのファイルを、対象となる国向けのファイルとしてコピーします。

ここでは中国 (ロケールIDをzhとする)のリソースを作成する例で説明します。以下のコマンドを参考にしてください。(*3)

3. copy はファイルをコピーするコマンドで、第一引数のファイルを第二引数のファイルとしてコピーすると解釈してください。mkdir はフォルダを作成するコマンドです。実際の操作はコマンドラインまたはファイルエクスプローラを使って、以下に記載のコマンドと同様のことを行なってください。Unix系OS利用時は copy を cp に読み替えてください。
copy wagbyapp/webapps/<プロジェクト識別子>/WEB-INF/classes/jfcapp_en.properties customize/resources/jfcapp_zh.properties.UTF8
copy wagbydesigner/bin/webpage/WEB-INF/src/logcode_en.properties customize/resources/logcode_zh.properties.UTF8
copy wagbydesigner/bin/webpage/WEB-INF/src/errormsg_en.properties customize/resources/errormsg_zh.properties.UTF8
copy wagbydesigner/bin/webpage/WEB-INF/src/errormsgconv_en.properties.UTF8 customize/resources/errormsgconv_zh.properties.UTF8
copy wagbydesigner/bin/webpage/WEB-INF/src/i18n.txt customize/resources/i18n.txt
mkdir customize/webapp/nls
mkdir customize/webapp/nls/zh
copy wagbydesigner/bin/webpage/nls/common.js customize/webapp/nls/common.js
copy wagbydesigner/bin/webpage/nls/en/common.js customize/webapp/nls/zh/common.js

3. myjfcapp の作成

customize/resources/myjfcapp_zh.properties.UTF8 を用意します。次の行を含めます。

__jfc_common.dojo_webpage_dir=dojo-release-1.14.1

実際には Wagby に同梱されている JavaScript フレームワーク Dojotoolkit のバージョン番号を含めます。1.14.1の部分はご利用の Wagby に含まれている Dojotoolkit にあわせて適切に読み替えてください。(*4)

4. Dojotoolkitのバージョンは、ビルドしたアプリケーション wagbyapp 内のフォルダ webapps/wagby/dojo-release-1.XX.YY で確認できます。XX と YY には数字が入ります。

なお上記ファイルに翻訳した文言を含めることができます。ビルドしたアプリケーションは、ここに記載した内容が反映されます。例えば次の行を加えると、メニューの右横にあるボタンの文言 "ログオフ" が変わります。

__jfc_common.globallink.logoff=注销

4. nls/<ロケール>/common.js リソースの修正

customize/webpage/nls/common.js の末尾部分に 'zh': true, を追加します。(*5)

…
'ja-jp': true,
'zh': true,
});
5. JavaScript で利用しているロケール文字は、各画面の _javascript.jsp ファイル内の setLocale("<c:out value='${sessionScope.__jfc_locale}'/>"); 関数で設定されています。${sessionScope.__jfc_locale} の文字列が利用するリソースファイルのフォルダ名と一致している必要があります。(上記例の場合 "zh")。念のため利用しているブラウザで、目的とする「言語」のロケール情報を確認するようにするとよいでしょう。この調査には、WagbyのLOCALE関数を利用できます。

5. ログオン画面からの選択

ログオン画面で、今回追加した「国」を選択させる場合は「言語の選択 > 選択できる言語を追加する」を行なってください。

このあとにモデルの追加など、リポジトリの変更が生じた場合は wagbyapp/webapps/<プロジェクト識別子>/WEB-INF/classes/jfcapp_en.properties が変わります。差分をとって過不足の生じたリソースがあれば手動でマージしてください。