RUIPropertiesLibrary ステレオタイプ

Rich UI アプリケーションでテキストをハードコーディングするのではなく、外部ファイルから表示可能なテキストを取得する場合は、Rich UI プロパティー・ライブラリー (ステレオタイプ RUIPropertiesLibrary) をセットアップします。全体的なメカニズムについては、『表示可能テキストのプロパティー・ファイルの使用』で説明します。Rich UI プロパティー・ライブラリーで暗黙の関数を使用して、任意のストリングの値を置換することもできます。

以下に、Rich UI プロパティー・ライブラリーの例を示します。
Library myLibrary type RUIPropertiesLibrary {propertiesFile="myFile")
   entryForInputRequired STRING;
   entryForOthers STRING;
   someText STRING;
end 

宣言で直接割り当てられている値 (例えば、someText String = "Click!";) はすべて無効です。1 つの例外を除き、すべてのランタイム値が外部ファイルから取得されます。ファイルに特定のエントリーが含まれていない場合 (例えば、ファイルに someText のエントリーが含まれていない場合) は、実行時の値は、変数名 (例えば、「someText」) に等しいストリングになります。

propertiesFile プロパティー

propertiesFile プロパティーは、ファイルのルート名を参照します。ファイル (または、複数の変換が使用可能な場合は複数のファイル) は、プロジェクトの WebContent/properties ディレクトリーに直接配置する必要があります。ルート名には、次の詳細は含めないでください。
  • 「properties/myFile」などのパス情報
  • ハイフン
  • 「en_US」など、変換に固有の情報
  • ファイル拡張子。必ず properties です。

propertiesFile のデフォルト値はライブラリーの名前 (この場合は「myLibrary」) です。

関数 getMessage

すべての RUI プロパティー・ライブラリーには、関数 getMessage が暗黙的に含まれています。この関数を使用すると、プロパティー・ファイル、またはコード内のストリングからメッセージを選択するときに inserts を追加できます。例えば、プロパティー・ファイル内の次のメッセージでは、2 つの inserts が必要です。
someText=Promote {0} in the {1} department
以下に、ストリング「Promote Jeff in the Sales department」をラベルに書き込むサンプル・コードを示します。
employeeName, departmentName String;
employeeName = "Jeff";
departmentName = "Sales";

myLabel TextLabel {text = 
   myLibrary.getMessage(myLibrary.someText, [employeeName, departmentName]);
代替の呼び出しは、前の呼び出しと同じ影響を及ぼしますが、プロパティー・ファイルにはアクセスしません。
myMessage STRING = "Promote {0} in the {1} department";
myLabel TextLabel {text = 
   myLibrary.getMessage(myMessage, [employeeName, departmentName]); 
以下に、関数シグニチャーを示します。
getMessage(baseMessage STRING in, inserts STRING[] in) returns (fullMessage STRING);
baseMessage
RUI プロパティー・ライブラリー内のストリングまたはフィールド。
inserts
ストリングの配列。最初の要素はプレースホルダー {0} の挿入を提供し、2 番目の要素はプレースホルダー {1} の挿入を提供し、以下同様に続きます。
fullMessage
可能な限り多くのプレースホルダーが解決された基本メッセージ。
inserts は、0 から始まる昇順です。メッセージ内のプレースホルダーは、任意の順序にすることができ、順序どおりである必要はありません。挿入の数がプレースホルダーの数と一致しない場合は、挿入は未使用です。プレースホルダーが未解決である場合は、プレースホルダー自体が戻されるメッセージ内にあります。例えば、以下の場合は、戻されるメッセージは「Promote Jeff in the {1} department」です。
employeeName STRING = "Jeff";
myMessage STRING = "Promote {0} in the {1} department";
myLabel TextLabel {text = 
   myLibrary.getMessage(myMessage, [employeeName]); 

検証のオーバーライドまたはメッセージのフォーマット時は関数 getMessage を使用できません。そのようなメッセージに inserts を渡すことはできません。


フィードバック