2

WebClient を使用して http URL からテンプレートをダウンロードする Windows アプリケーションに取り組んでいます。

レポートにローカライズを実装する必要があります。アプリケーションは常にデフォルト言語 (英語) であり、レポートを印刷する言語を保持する変数があります。レポート テンプレートは、言語に基づいてダウンロードされます。レポート テンプレートは、次のような命名規則を持つ言語ごとに異なります。

デフォルト: http://www.xyz.com/report/report.htm

英語: report.en-US.htm、スペイン語: report.es-ES.htm ポルトガル語: report.pt-PT.htm

言語ごとに switch..case を使用する必要がありますか、それとも他の方法でもかまいません。

4

3 に答える 3

1

Globalization クラスを使用して、現在のカルチャを取得できます。以下を試してください。

string culture = System.Globalization.CultureInfo.CurrentCulture.Name;

string destUri = String.Format("http://www.xyz.com/report/report.{0}.htm", culture);
于 2013-07-04T10:34:43.480 に答える
1

から現在のカルチャ名を取得できます。

System.Globalization.CultureInfo.CurrentUICulture.Name

また

System.Web.HttpRequest.UserLanguages

それで、あなたはの線に沿って何かをすることができます

string url = string.Format("http://www.xyz.com/report/report{0}.htm", CultureInfo.CurrentUICulture.Name);

のような出力

http://www.xyz.com/report/report.en-US.htm

于 2013-07-04T10:30:22.083 に答える
1

ファイル名の形式が同じままである場合は、これを行うことができます

string cultureCode = "en-US"; //set current locale    
Uri reportUri = new Uri(String.Format("http://www.xyz.com/report/report.{0}.htm", cultureCode), UriKind.Absolute);

そうすれば、関連するロケールが追加された URI が動的に作成されます。手っ取り早い方法として

public void Uri GetLocalReportUri(string cultureCode)
{  
   return new Uri(String.Format("http://www.xyz.com/report/report.{0}.htm", cultureCode), UriKind.Absolute);
}
于 2013-07-04T10:27:23.977 に答える