CultureInfo.CreateSpecificCulture メソッド
指定した名前に関連付けられている特定のカルチャを表す CultureInfo を作成します。
Public Shared Function CreateSpecificCulture( _
ByVal name As String _) As CultureInfo
[C#]
public static CultureInfo CreateSpecificCulture(stringname);
[C++]
public: static CultureInfo* CreateSpecificCulture(String* name);
[JScript]
public static function CreateSpecificCulture(
name : String) : CultureInfo;
パラメータ
- name
定義済みの CultureInfo の名前または既存の CultureInfo の名前。
戻り値
name が "" (インバリアント カルチャ) の場合は、インバリアント カルチャを表す CultureInfo 。
または
name がニュートラル カルチャの場合は、name に関連付けられている既定の特定のカルチャを表す CultureInfo 。
または
name が既に特定のカルチャである場合は、name を表す CultureInfo 。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | name が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | name が有効なカルチャ名ではありません。
または name で指定するカルチャに関連付けられている特定のカルチャがありません。たとえば、"zh-CHS" または "zh-CHT" などがあります。 |
解説
カルチャは、通常、インバリアント カルチャ、ニュートラル カルチャ、および特定カルチャの 3 つのセットにグループ化されます。
インバリアント カルチャは、カルチャ固有の設定ではありません。空の文字列 ("") を使用した名前で、またはカルチャ識別子 0x007F を使用することによって、インバリアント カルチャを指定できます。 InvariantCulture は、インバリアント カルチャのインスタンスを取得します。この設定は、英語と関連付けられていますが、国や地域には関連付けられていません。これは、カルチャを必要とする Globalization 名前空間のほとんどのメソッドで使用できます。セキュリティの決定が文字列の比較や大文字/小文字の変換操作に依存する場合は、システムのカルチャ設定にかかわらず一定の動作を保証するために InvariantCulture を使用してください。ただし、インバリアント カルチャは、システム サービスなど、カルチャに依存しない結果を必要とするプロセスでだけ使用する必要があります。それ以外の場合に使用すると、言語として正しくない、またはカルチャに対して不適切な結果が生じます。
ニュートラル カルチャは、国や地域ではなく、言語に関連付けられているカルチャです。特定のカルチャは、1 つの言語、および 1 つの国または地域に関連付けられたカルチャです。たとえば、"fr" はニュートラル カルチャであり、"fr-FR" は特定のカルチャです。"zh-CHS" (簡体字中国語) および "zh-CHT" (繁体字中国語) はニュートラル カルチャです。
カルチャは階層構造になっています。たとえば、特定のカルチャの親はニュートラル カルチャで、ニュートラル カルチャの親は InvariantCulture となっています。 Parent プロパティは、特定のカルチャに関連付けられているニュートラル カルチャを返します。
システム内で特定のカルチャのリソースが利用できない場合は、ニュートラル カルチャのリソースが使用されます。ニュートラル カルチャのリソースが利用できない場合は、メイン アセンブリに埋め込まれているリソースが使用されます。リソース フォールバック処理の詳細については、 リソースのパッケージ化と配置 を参照してください。
Windows API のカルチャの一覧は、.NET Framework のカルチャの一覧と若干異なります。たとえば、カルチャ識別子 0x7C04 のニュートラル カルチャ zh-CHT "繁体字中国語" は Windows API では利用できません。Windows との相互運用 (たとえば、p/invoke 機構を通じた相互運用) が必要な場合は、.NET Framework で定義されている特定のカルチャを使用してください。これにより、同一の LCID で識別される等価な Windows ロケールとの一貫性が確保されます。
使用例
[Visual Basic, C#, C++] 次のコード例は、異なる複数のカルチャを指定した場合の CreateSpecificCulture の結果を示したものです。
Imports System
Imports System.Globalization
Public Class SamplesCultureInfo
Public Shared Sub Main()
' Prints the header.
Console.WriteLine("CULTURE SPECIFIC CULTURE")
' Determines the specific culture associated with each culture in the .NET Framework.
Dim ci As CultureInfo
For Each ci In CultureInfo.GetCultures(CultureTypes.AllCultures)
Console.Write("{0,-12} {1,-40}", ci.Name, ci.EnglishName)
Try
Console.WriteLine("{0}", CultureInfo.CreateSpecificCulture(ci.Name).Name)
Catch e As ArgumentException
Console.WriteLine("(no associated specific culture)")
End Try
Next ci
End Sub 'Main
End Class 'SamplesCultureInfo
'This code produces the following output. This output has been cropped for brevity.
'
'CULTURE SPECIFIC CULTURE
'ar Arabic ar-SA
'ar-SA Arabic (Saudi Arabia) ar-SA
'ar-IQ Arabic (Iraq) ar-IQ
'ar-EG Arabic (Egypt) ar-EG
'ar-LY Arabic (Libya) ar-LY
'ar-DZ Arabic (Algeria) ar-DZ
'ar-MA Arabic (Morocco) ar-MA
'ar-TN Arabic (Tunisia) ar-TN
'ar-OM Arabic (Oman) ar-OM
'ar-YE Arabic (Yemen) ar-YE
'ar-SY Arabic (Syria) ar-SY
'ar-JO Arabic (Jordan) ar-JO
'ar-LB Arabic (Lebanon) ar-LB
'ar-KW Arabic (Kuwait) ar-KW
'ar-AE Arabic (U.A.E.) ar-AE
'ar-BH Arabic (Bahrain) ar-BH
'ar-QA Arabic (Qatar) ar-QA
'bg Bulgarian bg-BG
'bg-BG Bulgarian (Bulgaria) bg-BG
'ca Catalan ca-ES
'ca-ES Catalan (Catalan) ca-ES
'zh-CHS Chinese (Simplified) (no associated specific culture)
'zh-TW Chinese (Taiwan) zh-TW
'zh-CN Chinese (People's Republic of China) zh-CN
'zh-HK Chinese (Hong Kong S.A.R.) zh-HK
'zh-SG Chinese (Singapore) zh-SG
'zh-MO Chinese (Macau S.A.R.) zh-MO
'zh-CHT Chinese (Traditional) (no associated specific culture)
'cs Czech cs-CZ
'cs-CZ Czech (Czech Republic) cs-CZ
'da Danish da-DK
'da-DK Danish (Denmark) da-DK
[C#]
using System;
using System.Globalization;
public class SamplesCultureInfo {
public static void Main() {
// Prints the header.
Console.WriteLine( "CULTURE SPECIFIC CULTURE" );
// Determines the specific culture associated with each culture in the .NET Framework.
foreach ( CultureInfo ci in CultureInfo.GetCultures( CultureTypes.AllCultures ) ) {
Console.Write( "{0,-12} {1,-40}", ci.Name, ci.EnglishName );
try {
Console.WriteLine( "{0}", CultureInfo.CreateSpecificCulture( ci.Name ).Name );
}
catch {
Console.WriteLine( "(no associated specific culture)" );
}
}
}
}
/*
This code produces the following output. This output has been cropped for brevity.
CULTURE SPECIFIC CULTURE
ar Arabic ar-SA
ar-SA Arabic (Saudi Arabia) ar-SA
ar-IQ Arabic (Iraq) ar-IQ
ar-EG Arabic (Egypt) ar-EG
ar-LY Arabic (Libya) ar-LY
ar-DZ Arabic (Algeria) ar-DZ
ar-MA Arabic (Morocco) ar-MA
ar-TN Arabic (Tunisia) ar-TN
ar-OM Arabic (Oman) ar-OM
ar-YE Arabic (Yemen) ar-YE
ar-SY Arabic (Syria) ar-SY
ar-JO Arabic (Jordan) ar-JO
ar-LB Arabic (Lebanon) ar-LB
ar-KW Arabic (Kuwait) ar-KW
ar-AE Arabic (U.A.E.) ar-AE
ar-BH Arabic (Bahrain) ar-BH
ar-QA Arabic (Qatar) ar-QA
bg Bulgarian bg-BG
bg-BG Bulgarian (Bulgaria) bg-BG
ca Catalan ca-ES
ca-ES Catalan (Catalan) ca-ES
zh-CHS Chinese (Simplified) (no associated specific culture)
zh-TW Chinese (Taiwan) zh-TW
zh-CN Chinese (People's Republic of China) zh-CN
zh-HK Chinese (Hong Kong S.A.R.) zh-HK
zh-SG Chinese (Singapore) zh-SG
zh-MO Chinese (Macau S.A.R.) zh-MO
zh-CHT Chinese (Traditional) (no associated specific culture)
cs Czech cs-CZ
cs-CZ Czech (Czech Republic) cs-CZ
da Danish da-DK
da-DK Danish (Denmark) da-DK
*/
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;
int main() {
// Prints the header.
Console::WriteLine(S"CULTURE SPECIFIC CULTURE");
// Determines the specific culture associated with each culture in the .NET Framework.
System::Collections::IEnumerator* myEnum = CultureInfo::GetCultures(CultureTypes::AllCultures)->GetEnumerator();
while (myEnum->MoveNext()) {
CultureInfo* ci = dynamic_cast<CultureInfo*>(myEnum->Current);
Console::Write(S"{0, -12} {1, -40}", ci->Name, ci->EnglishName);
try {
Console::WriteLine(S"{0}", CultureInfo::CreateSpecificCulture(ci->Name)->Name);
} catch (Exception*) {
Console::WriteLine(S"(no associated specific culture)");
}
}
}
/*
This code produces the following output. This output has been cropped for brevity.
CULTURE SPECIFIC CULTURE
ar Arabic ar-SA
ar-SA Arabic (Saudi Arabia) ar-SA
ar-IQ Arabic (Iraq) ar-IQ
ar-EG Arabic (Egypt) ar-EG
ar-LY Arabic (Libya) ar-LY
ar-DZ Arabic (Algeria) ar-DZ
ar-MA Arabic (Morocco) ar-MA
ar-TN Arabic (Tunisia) ar-TN
ar-OM Arabic (Oman) ar-OM
ar-YE Arabic (Yemen) ar-YE
ar-SY Arabic (Syria) ar-SY
ar-JO Arabic (Jordan) ar-JO
ar-LB Arabic (Lebanon) ar-LB
ar-KW Arabic (Kuwait) ar-KW
ar-AE Arabic (U.A.E.) ar-AE
ar-BH Arabic (Bahrain) ar-BH
ar-QA Arabic (Qatar) ar-QA
bg Bulgarian bg-BG
bg-BG Bulgarian (Bulgaria) bg-BG
ca Catalan ca-ES
ca-ES Catalan (Catalan) ca-ES
zh-CHS Chinese (Simplified) (no associated specific culture)
zh-TW Chinese (Taiwan) zh-TW
zh-CN Chinese (People's Republic of China) zh-CN
zh-HK Chinese (Hong Kong S.A.R.) zh-HK
zh-SG Chinese (Singapore) zh-SG
zh-MO Chinese (Macau S.A.R.) zh-MO
zh-CHT Chinese (Traditional) (no associated specific culture)
cs Czech cs-CZ
cs-CZ Czech (Czech Republic) cs-CZ
da Danish da-DK
da-DK Danish (Denmark) da-DK
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
CultureInfo クラス | CultureInfo メンバ | System.Globalization 名前空間 | CultureInfo | Parent