@LCID ディレクティブは、日付、時刻、および通貨の形式を指定します。LCID は、各地域のロケールによって異なります。ロケールによっては、日付が YY-MM-DD 形式になったり、MM-DD-YYYY 形式になったりします。@LCID ディレクティブは書き込み専用です。
LCID は DWORD であり、下位ワードに言語識別子、上位ワードに予約値が入ります。LCID に設定される識別子は、各国を数字で表す標準の省略形です。この LCID は、インストールされたシステムに定義されているロケールの 1 つを一意に識別するために必要なコンポーネントを持ちます。LCID には、LOCALE_SYSTEM_DEFAULT と LOCALE_USER_DEFAULT という 2 つの値があらかじめ定義されています。LOCALE_SYSTEM_DEFAULT は、システムの既定のロケールです。LOCALE_USER_DEFAULT は、現在のユーザーのロケールです。
<% @LCID = localeidentifier %>
@LCID を設定すると、単一の応答におけるリテラル (静的) 文字列に影響します。Response.LCID は、単一応答内の動的文字列に影響し、Session.LCID は、セッション内のすべての応答内の動的文字列に影響します。
@LCID がページ内に明示的に設定されていない場合は、AspLCID メタベース プロパティまたは既定のシステム ロケールによって暗黙的に設定されます。
Response.LCID または Session.LCID を明示的に設定する場合は、書式付き出力を表示する前に行います。同じページ内でリテラル出力と非リテラル出力を使用する場合は、@LCID のロケールが Response.LCID のロケールと一致することを確認してください。一致していない場合は、リテラル出力の書式が非リテラル出力と異なります。
@LCID を設定すると、ASP アプリケーションおよびスクリプト記述エンジンの両方のロケールが変わります。 VBScript 関数 setLocale() を使用すれば、スクリプト エンジンのロケールのみが変更されます。
Web ページのロケールが Web クライアントにおけるシステムの既定値と一致する場合、Web ページでのロケール設定は必須ではありませんが、設定することをお勧めします。
ページ内でロケールが設定されており、文字を適切に表示するためのコードページが設定されている場合、Response.Charset も設定する必要があります。コードページの値は、応答を作成する段階で、データのエンコード方式を IIS に指定します。Charset の値は、応答を表示する段階で、データのデコード方式をブラウザに指定します。Response.Charset の CharsetName は、コードページの値と一致していることが必要です。一致していない場合、ブラウザで表示する文字が統一されません。CharsetNames と対応するコードページの値の一覧については、MSDN Web Workshop の Preferred Charset Label および FamilyCodePage の各列を参照してください。
複数言語対応の Web サイトなどで、各種のロケール、コードページ、および文字セットを使用する Web ページを作成し、テストする場合、テストを実施するクライアント コンピュータには、表示したい各言語の言語パックをインストールしておく必要があります。言語パックは、[コントロール パネル] の [地域のオプション] からインストールします。
このページは、@LCID を [ロシア] に設定することから始まり、その後 [韓国] に変更します。
--- LCID.asp ---
<%@ LCID=1049 %>
<%
' This file doesn't need to be saved in UTF-8 format because
' there are no literal strings that need formatting or encoding.
Response.Codepage = 65001
Response.Charset = "utf-8"
' The LCID is already 1049
Response.Write "<B>Russia</B><BR>"
Response.Write FormatDateTime("17/01/2001", 1) & "<BR>"
Response.Write FormatDateTime("17:41:35", 3) & "<BR>"
Response.Write FormatCurrency(1000) & "<BR>"
Response.Write FormatNumber(50, 3, 0, 0, -1) & " & " & FormatNumber(.02, 3, 0, 0, -1) & "<BR><BR>"
' Now change the LCID to Korea
Response.LCID = 1042
Response.Write "<B>Korea</B><BR>"
Response.Write FormatDateTime(Date, 1) & "<BR>"
Response.Write FormatDateTime(Time, 3) & "<BR>"
Response.Write FormatCurrency(1000) & "<BR>"
Response.Write FormatNumber(50, 3, 0, 0, -1) & " & " & FormatNumber(.02, 3, 0, 0, -1) & "<BR><BR>"
%>
Session.LCID、Response.LCID、インターナショナル クライアントに適応させる