Skip to main content

CSP ページでのテキストのローカライズ

アプリケーションのテキストのローカライズに関する一般的な情報は、"文字列のローカライズとメッセージ・ディクショナリ" を参照してください。

CSP ベースの Web アプリケーションの場合、%response オブジェクトを使用する追加のオプションがあります。

既定のランタイム言語の設定

$$$Text$$$TextJS、および $$$TextHTML マクロを介してローカライズされたテキストの場合、既定のランタイム言語は、%response オブジェクトの Language プロパティによって決定されます (明示的にこれを設定している場合)。Language プロパティが明示的に設定されていない場合、ランタイム言語はブラウザの設定によって決まります。

Language プロパティを設定する方法としては、以下の例に示すように、%Library.MessageDictionaryOpens in a new tabMatchLanguage() メソッドを使用することをお勧めします。

 Set lang = ##class(%MessageDictionary).MatchLanguage(languages,domain,flag)
 Set %response.Language=lang

言語のリストとドメイン名を指定すると、このメソッドは HTTP 1.1 マッチング・ルール (RFC2616Opens in a new tab) を使用して、ドメイン内で最も一致する言語を見つけます。このメソッドには、以下のシグニチャがあります。

classmethod MatchLanguage(languages As %String, 
                          domain As %String = "", 
                          flag As %String = "") as %String

以下はその説明です。

  • languages は、RFC1766Opens in a new tab 形式の言語名のコンマ区切りリストです。リスト内の各言語には、関連付けられた品質の値を指定できます。この値は、言語リストによって指定された言語に対するユーザの好みの見積もりを表します。品質値の既定値は q=1 です。

    例えば、da, en-gb;q=0.8, en;q=0.7 は、「デンマーク語が第一希望であるが、イギリス英語やその他のタイプの英語も受け入れる。」という意味になります。リスト内の言語がサポートされている言語タグに一致するのは、それがタグと正確に一致しているか、タグの接頭語と正確に一致する (接頭語の後の最初のタグ文字がハイフンである) 場合です。特殊言語のアスタリスク (*) が入力リスト内に存在する場合、これは、リスト内に存在する他のどの言語とも一致しない、すべてのサポート対象言語と一致します。

    サポート対象言語タグに割り当てられた言語品質係数は、その言語タグに一致するリスト内の最長言語の品質値です。返される言語は、最も高い品質係数が割り当てられたサポート対象言語です。

  • domain は、マッチングを実行するローカリゼーション・ドメインです。

  • flag は、システム・メッセージまたはアプリケーション・メッセージのどちらに対してマッチングされるかを示すオプションのフラグです。

%response.GetText() メソッド

%response オブジェクトには、GetText() インスタンス・メソッドが含まれます。このメソッドを使用することで、メッセージ・ディクショナリからテキストを取得して、メッセージに指定可能な引数の値を置換できます。

メソッド・シグニチャは以下のとおりです。

 method GetText(language As %String = "",
                domain As %String = "",
                id As %String,
                default As %String,
                args...) returns %String

以下はその説明です。

  • language は、言語を指定するオプションの RFC1766Opens in a new tab コードです。InterSystems IRIS ではこの文字列はすべて小文字に変換されます。既定の language%responseLanguage プロパティです。Language プロパティが明示的に設定されていない場合、使用される言語はブラウザの設定によって決まります。

  • domain はメッセージのドメインを指定するオプションの文字列です。指定されない場合、domain は既定で %response オブジェクトの Domain プロパティに設定されます。

  • id はメッセージ ID です。

  • default は、languagedomain、および id で識別されるメッセージが見つからない場合に返される文字列です。

  • arg1arg2 などは、メッセージの引数の置換テキストです。これらはすべてオプションなので、メッセージに引数がない場合でも GetText() を使用できます。

FeedbackOpens in a new tab