前のページ|次のページ

SASMSG関数

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

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

構文

必須引数

BASENAME

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

KEY

メッセージキー

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

QUOTE|DQUOTE|NOQUOTE

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

デフォルト DQUOTE

substitution

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

詳細

SASメッセージデータセットは7ビットASCIIデータセットでなければなりません。xxxx'は、文字のUnicode値の10進数表現です。
SASMSG関数で使用するデータセットは、この関数の使用専用で作成してください。データセットには次の変数を含める必要があります。
#
変数名
タイプ
長さ
説明
1
ロケール
char
5
メッセージの言語
2
key
char
60
メッセージを認識するキー
3
lineno
num
5
メッセージのライン番号(逆順)
4
text
text
1,200
メッセージのテキスト
データセットは、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 = sasmsg
("nls.mymsg","IN_CD_LOG",
"noquote","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.
SASMSG関数は%SYSFUNCマクロ関数と一緒にオープンコードマクロで使用されます。
%SYSFUNCマクロで呼び出される関数に渡す引数は、二重引用符で囲まないでください。%SYSFUNC外部でSASMSG関数に渡される引数は、二重引用符で囲む必要があります。
SASMSG関数が%SYSFUNCマクロ関数と一緒に使われる場合、返される文字列は%NRBQUOTE関数を使用して囲まれます。

例1

次の例でSASMSGのフォーマティング機能を説明します。
%macro demo_sasmsg; data _null_; msg = sasmsg("nls.mymsg","IN_APW_SAVE_OK","noquote"); put msg=; run; %mend demo_sasmsg;
SASステートメント
結果
options locale = en_US;
%demo_sasmsg ;
msg=The Access Control key was successfully saved.
options locale = es_ES;
%demo_sasmsg;
msg=La clave de control de acceso se ha guardado.
options locale = french_France;
%demo_sasmsg;
msg=La clé de contrôle d'accès a bien été enregistrée.

例2

次の例でオープンマクロの機能を説明します。
%MACRO PRT(loc,tb,key); option locale=&loc; %PUT %SYSFUNC(SASMSG(&tb,&key) ); %MEND PRT;
SASステートメント
結果
%PRT(en_US,&TABLEID,IN_EDIT)
"Edit"
%PRT(es_ES,&TABLEID,IN_EDIT)
"Editar"
%PRT(fr_FR,&TABLEID,IN_EDIT)
"Modifier"
前のページ|次のページ|ページの先頭へ