2012-03-14 42 views
1

ローカライズする必要があるWebフォームサイトがあります。つまり、ローカライズされているので、ドメインに応じて適切な言語を設定するだけです。ような何か:各ページのInitializeCulture()は必要ですか?

protected override void InitializeCulture() 
{ 
    var i = Request.Url.Host.ToLower(); 
    var domain = i.Substring(i.Length - 2, 2); 
    if (domain == "se") 
    { 
     Thread.CurrentThread.CurrentCulture = 
      CultureInfo.CreateSpecificCulture("sv-SE"); 
     Thread.CurrentThread.CurrentUICulture = new 
      CultureInfo("sv-SE"); 
    } 
    else if (domain == "dk") 
    { 
     Thread.CurrentThread.CurrentCulture = 
CultureInfo.CreateSpecificCulture("da-DK"); 
     Thread.CurrentThread.CurrentUICulture = new 
      CultureInfo("da-DK"); 
    } 
} 

は私の最初の質問です:私は実際にロードすることが適切なリソースごとに単一ページにInitializeCulture()を呼び出す必要がありますか?

2番目の質問です。私はいくつかのグローバルリソースも持っています。最初の質問に対して「はい」と答えた場合、正しく設定されますか?

ps。 webconfigのuiCulture="auto"enableClientBasedCulture="true"は十分ではありません(長い話)。

答えて

2

はい。あなたがしているのはMicrosoft-recommended methodです。 あなたの例ではURLに基​​づいてどの言語を使用するかが決まるため、各ページの要求には異なる言語が必要な場合があるため、個々のページごとにこれを行うことは避けられません。

2番目の質問によると、すべてのリソースの読み込みはCurrentCultureに依存しています。したがって、ローカルとグローバルの両方のリソースは、あなたの文化の初期化の影響を受けます。

2

アプリケーションの言語がページごとに異なる場合は、hereというコードを再利用することが理にかなっています。 また、HTTPモジュールを使用してもよく、hereと説明してください。

+0

興味深い。それを調べます! –

関連する問題