前のページ|次のページ

SASMSGL関数

データセットからメッセージを返します。メッセージは、指定されたロケール値と指定されたキー値に基づきます。

カテゴリ: ロケール
制限事項: この関数にはI18Nレベル2ステータスが割り当てられ、SBCS、DBCS、およびMBCS (UTF8)と組み合わせて使用するように設計されています。 詳細については、次を参照してください。 国際化の互換性

構文

必須引数

BASENAME

メッセージを含むデータセットの名前

KEY

メッセージキー

注: 無効なキー名を指定すると、キー名が返されます。

LOCALE

posixロケール値 (ll_RR).

QUOTE|DQUOTE|NOQUOTE

メッセージテキストと代入文字列に追加する引用符のタイプを指定します。

デフォルト DQUOTE

substitution

文字列代入 文字列代入の最大件数は7です。SASメッセージデータセットは6ビットASCIIデータセットでなければなりません。

詳細

SASメッセージデータセットは7ビットASCIIデータセットでなければなりません。7ビットASCIIエンコーディングで表現できない文字は'\uxxxxのようなUnicodeエスケープ形式で表現されます。xxxxは、文字のUnicode値の10進数表現です。
SASMSGL関数で使用するデータセットは、この関数の使用専用で作成してください。データセットには次の変数を含める必要があります。
#
変数名
タイプ
長さ
説明
1
ロケール
char
5
メッセージの言語
2
key
char
60
メッセージを認識するキー
3
lineno
num
5
メッセージのライン番号(逆順)
4
text
text
1200
メッセージのテキスト
データセットは、localekey、およびlinenoを使用して並べ替える必要があります。変数linenoは降順でなければなりません。localeとkeyの複合インデックスを定義する必要があります。並べ替えとインデックス付きのデータセットを作成するサンプルプログラムは次のようになります。
%let basename=MyProduct; proc sort data=t.&basename; by locale key descending lineno; run; proc datasets lib=t memtype=data; modify &basename; index create indx=(LOCALE KEY); run; quit;
返されるメッセージはLOCALEシステムオプションに基づきます。LOCALEオプションはll_RRで表されます。llは2文字の言語コードを表し、PRは2文字の地域コードを表します。一致するものがない場合、関数は言語のみの一致を探します。localeとkeyのペアが見つからない場合、関数はデフォルトの英語(en)を使用します。英語(en)のキーが存在しない場合、キー名が返されます。
フォーマティングは変更することができます。フォーマットコード%sを使用して、文字列代入を使用できます。代入順序を変更する事ができます。英語以外の言語へのメッセージの翻訳では、代入順序の変更が必要な場合があります。引数番号#nnを指定することにより、フォーマット文字列内で順序を変えることができます。nnは代入リストの引数番号になります。次の例では順序の変更について説明します。
ステートメント
結果
msg = sasmsgl
("nls.mymsg","IN_CD_LOG","en_US","N",
"cat","dog");
IN_CD_LOGINFO = My %#1s. Your %#2s
msg= My cat.Your dog.
IN_CD_LOGINFO = My %#2s. Your %#1s
msg= My dog.Your cat.
SASMSGL関数は%SYSFUNCマクロ関数と一緒にオープンコードマクロで使用できます。
%SYSFUNCマクロで呼び出される関数に渡す引数は、二重引用符で囲まないでください。%SYSFUNC外部でSASMSGL関数に渡される引数は、二重引用符で囲む必要があります。
SASMSGL関数が%SYSFUNCマクロ関数と一緒に使われる場合、返される文字列は%NRBQUOTE関数を使用して囲まれます。

例1

次の例でSASMSGLのフォーマティング機能を説明します。
ステートメント
結果
sasmsgl("nls.mymsg", "IN_APW_SAVE_OK", "en_US", "n"));
The Access Control key was successfully saved.
sasmsgl("nls.mymsg", "IN_APW_SAVE_OK", "es_ES", "n"));
La clave de control de acceso se ha guardado.
sasmsgl("nls.mymsg", "IN_APW_SAVE_OK", "fr", "n"));
La clé de contrôle d'accès a bien été enregistrée.

例2

次の例でオープンマクロの機能を説明します。
SASステートメント
結果
%PUT %SYSFUNC(SASMSGL(NLS.MYDS, IN_ASD_LABEL, en_US));
"Edit"
%PUT %SYSFUNC(SASMSGL(NLS.MYDS, IN_ASD_LABEL, es_ES));
"Editar"
%PUT %SYSFUNC(SASMSGL(NLS.MYDS, IN_ASD_LABEL, fr));
"Modifier"
前のページ|次のページ|ページの先頭へ