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日頃を予定しています。