SETLOCALE  
説明

国/言語ロケールを設定します。このロケールは、ColdFusion の処理と、クライアントに返されるページに適用されます。言語および地域の表記規則に従って、日付、時刻、数値、および通貨値のデフォルト表示形式がロケール値によって決定されます。

 
戻り値

ロケールを設定する前に設定されていたロケール値を表す文字列

 
カテゴリ

各国語対応関数、システム関数

 
関数のシンタックス
SetLocale(new_locale)
 
関連項目

GetHttpTimeString、GetLocale、GetLocaleDisplayName、『ColdFusion MX 開発ガイド』の第17章の「グローバル化アプリケーションの開発」 の「ロケール」

 
ヒストリ

ColdFusion MX 7: ColdFusion MX Java ランタイムがサポートするすべてのロケールに対応できるようになりました。

ColdFusion MX:

  • 形式設定の動作の変更 : この関数では、以前のリリースと異なる値が返される場合があります。この関数では、すべてのプラットフォームで Java 標準のロケール決定ルールおよび形式設定ルールが使用されます。
  • Spanish (Mexican) ロケールオプションを使用禁止としました。今後のリリースでは、このタグは機能しなくなり、エラーが発生する可能性があります。
  • Spanish (Modern) オプションの変更 : このロケールは Spanish (Standard) に設定されるようになりました。
 
パラメータ

 
使用方法

Server.Coldfusion.SupportedLocales 変数にリストされている任意のロケール名を指定できます。この変数は、JVM がサポートするすべてのロケール名、および ColdFusion MX 7 より前の ColdFusion MX で必要であったロケール名のカンマ区切りリストです。

次のロケール名は、ColdFusion MX 6.1 までの ColdFusion リリースで使用され、継続してサポートされます。これらの値のいずれかを SetLocale 関数で使用する場合は、対応する Java ロケール名ではなくユーザーが設定した名前を GetLocale 関数が返します。

Chinese (China)
French (Belgian)
Korean
Chinese (Hong Kong)
French (Canadian)
Norwegian (Bokmal)
Chinese (Taiwan)
French (Standard)
Norwegian (Nynorsk)
Dutch (Belgian)
French (Swiss)
Portuguese (Brazilian)
Dutch (Standard)
German (Austrian)
Portuguese (Standard)
English (Australian)
German (Standard)
Spanish (Modern)
English (Canadian)
German (Swiss)
Spanish (Standard)
English (New Zealand)
Italian (Standard)
Swedish
English (UK)
Italian (Swiss)
English (US)
Japanese

ColdFusion では、ロケールの値を次のように決定します。

  • デフォルトでは、ColdFusion は JVM ロケールを使用します。デフォルトの JVM ロケールはオペレーティングシステムのロケールです。ColdFusion MX では、ColdFusion Administrator の [Java と JVM の設定] ページの [JVM 引数] フィールドで JVM ロケール値を明示的に設定できます。例 :
    -Duser.language=de -Duser.region=DE
  • SetLocale 関数で設定されたロケールは現在のリクエストの終了まで、または、現在のリクエストの途中で再度の SetLocale 呼び出しによる再設定が行われるまで保持されます。
  • 1 回のリクエスト中で複数回 SetLocale 関数が使用された場合、ロケールの影響を受ける ColdFusion タグおよび関数 (LS で始まる関数など) がデータを形式設定する方法は、処理時点のロケール設定により決定されます。ColdFusion がリクエスト送信元 (通常はクライアントブラウザ) にレスポンスを送信する前、最後に処理した SetLocale 関数によって、レスポンスの Content-Language HTTP ヘッダの値が決定されます。ページをリクエストしたブラウザでは、Content-Language ヘッダで指定された言語の規則に従ってレスポンスを表示します。
  • cfflush タグの後にある SetLocale 関数はすべて無視されます。

この関数は変更前のロケール設定を戻り値として返します。これを使えば、元のロケール値を保存しておくことができます。元のロケールに戻すには、保存しておいた変数を使って SetLocale 関数を再度呼び出します。たとえば次のコードでは、元のロケールを Session 変数に保存しています。

<cfset Session.oldlocale = SetLocale(newLocale)>

server.ColdFusion.SupportedLocales 変数は起動時に初期化され、ColdFusion およびオペレーティングシステムがサポートするロケールの一覧がカンマ区切りリストが格納されます。このリストに含まれないロケールを指定して SetLocale を呼び出すと、エラーが発生します。

メモ: ColdFusion では、Spanish (Modern) と Spanish (Standard) に対して Spanish (Standard) 形式が使用されます。
 
<h3>SetLocale の例</h3>
<p>SetLocale は、指定されたロケールを、現在のセッションで使用する新しいロケールとして設定します。
<p>ロケールとは、日付、時刻、数値、および通貨値の表示と形式設定を制御する一連の属性をカプセル化したもの
です。
<p>このシステムのロケール : <cfoutput>#GetLocale()#</cfoutput>
<p><cfoutput><I>変更前のロケール : #SetLocale("English (UK)")#</I>
<p>現在のロケール : #GetLocale()#</cfoutput>
NEW_LOCALE  
ロケール名です。例 : "English (US)"