4番手の執筆者「Ogawa」です。
4月になりました、世間一般では新しい年度になりましたので、改めて「今後共、弊社コアネクスト及び、本ブログを宜しくお願い致します。」
今回は、アプリケーションで使用するメッセージの管理について、GeneXusのLanguageオブジェクトを使用して管理する活用方法をご紹介します。
出力メッセージを、よくDB上に保存する場合はあると思いますが、GeneXus内で管理をする方法になります。この方法を使用するメッセージの多言語対応も容易に出来ます。
手順
1)GeneXusの設定 → 上から3つ目の歯車の環境設定を選択 → 下記のプロパティを設定
(※1)Translation Type | Static | Translate to languageに設定されているLanguageに翻訳 |
Translate to language | (翻訳する言語) | 後述する作成且つ、有効になっているLanguageが選択できる |
(※1) アプリケーション実行時(操作による動的な変更)→ SetLanguage 関数による複数の翻訳切替が必要な場合は「Run-time」にする必要があります。
1-2)設定を有効化するために、「リビルト」を実行する。
2)KBエクスプローラー → カスタマイズ → ローカライズ → (翻訳する言語)をダブルクリック
(※)有効化するには、チェックを入れる必要があります。標準では、画像のLanguageオブジェクトが用意されています。GeneXusの標準メッセージ(GXM_XXXX)は標準で翻訳値が設定されています。
3)一覧の適当な場所をクリック → ENTER → コード欄に任意の「MessageId」(翻訳元のテキスト値)を入力します。
4)「MessageId」の「ローカライズされたテキスト欄」列に任意のメッセージを定義する。
例)「%1は必須項目です。」 %Nは引数の数に応じて、%1,%2..%5の様に増やす事が可能です。
(※)日本語入力の際、変換操作(ENTERなど)を行ったタイミングで、カーソルが移動して次の行の進んでしまう挙動があります。
-GeneXus 日本語SAC
https://sac.genexus.jp/viewtr_saclist.aspx?36445
5)出力箇所のMsg関数に対し(トランザクション、Webパネル、プロシージャ等)下記の形式で記述します。
(※)先頭のビックリマークが付いているものと付いていないもの違いについて、「!」を付与しない場合は、Languageオブジェクトのコード列に自動的に登録されていきます。付与している場合は、登録されません。登録しない値は「!」を付与するのを推奨します。
6)ビルドをして下さい。
Web配下に「messages.xxx.txt」(xxxは言語によって可変)が生成されていると思います。設定したメッセージが入っていれば、実行時に変換されたメッセージが出力されます。
補足
2019年4月執筆時(GeneXus15U12)では、機能としてEXCEL等インポート及びエクスポートは用意されていません。2018年1月頃に、要望事項としてGeneXus SACに登録されています。
https://sac.genexus.jp/viewtr_saclist.aspx?42859
-参考
◇ GeneXus 日本語Wiki
・[Translation Type] プロパティ
・アプリケーションローカリゼーション
今回は以上です。最後までご覧頂きありがとうございました。
「Ogawa」の次回の記事投稿は、4月15日頃を予定しています。
GeneXus Tips 新着情報
- 投稿タグ
- GeneXus-Tips, Languageオブジェクト, メッセージ, 多言語化, 翻訳