asp.net アプリケーションを国際化したいと考えています。これを行う方法?具体的にどのような手順に従う必要がありますか?
6 に答える
1.) データベースを使用する場合は、テーブルを変更する必要があります。少なくとも LCID 列を追加すると。
2.) web.config で既定のカルチャと UI カルチャを設定する
<system.web>
<globalization culture="cs-CZ" uiCulture="cs-CZ"/>
</system.web>
3.) 次に、BeginRequest イベントなどの global.asax、または InitializeCulture メソッドのページ クラスの基本クラスのいずれかで、実際のスレッド カルチャを設定できます。
protected override void InitializeCulture()
{
string language = Request["lang"];
if (!string.IsNullOrEmpty(language))
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;
}
else
{
base.InitializeCulture();
}
}
- 静的テキストの場合は、リソースを使用できます。たとえば、デフォルトの言語 (en-us) のテキストを記述する Mytexts.resx を作成し、英国英語の Mytexts.en-UK.resx を作成して、デフォルトの言語とは異なるテキストを上書きします。次に、この文字列をページに挿入できます。
<asp:Label runat="server" Text='<%$ Resources: Mytests,WelcomeMessage %>' />
これは、ローカリゼーションを開始するための簡単な手順にすぎませんが、小さなページやアプリケーションの場合はこれで十分です。
Page クラスから継承される basepage クラスを作成し、このメソッドを basepage クラスに配置し、すべての aspx.cs ページで basepage クラスを継承して、グローバリゼーションを実現します。
protected override void InitializeCulture()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
base.InitializeCulture();
}
このメソッドで、アラビア語の ar-sa など、必要な文化を設定します....
Web アプリケーションでのリソース ファイルの使用に関するトピックを調べる必要があります。データベース ベースのローカリゼーション サポートが必要な場合は、westwindの優れた無料製品を試してみてください。
これについては、MSDN のローカリゼーションとグローバリゼーションのトピックが最適です。
正確な手順を説明できるかどうかは非常に大きな問題であり、いくつかの異なるアプローチがあります。
私の最近のプロジェクト(簡略化)で採用したアプローチは次のとおりです。
- 国ごとにドメインを設定する
- 各カルチャ (en-US、de-DE、fr-FR) のハードコードされたすべての文字列 (フォーム ラベルなど) のリソース ファイルを作成します。
- サイトがアクセスされているドメインに基づいて Thread.CurrentCulture を変更します。これは、すべての数値形式、日付形式が正しくなり、正しいローカライズされたリソース ファイルを使用することを意味します。
お役に立てれば!
ローカライズされたリソース ファイルの作成に関するこのリンクを参照してください: http://msdn.microsoft.com/en-us/library/ms247246.aspx
基本的に、サポートする言語/カルチャごとに新しいリソース ファイルを作成します。次に、マークアップ ページとコード ビハインド ファイルで、その中の文字列に名前でアクセスします。
さらに、これらのリソース ファイルは、プロジェクト内のApp_GlobalResourcesという特定のフォルダーにある必要があります。
グローバル リソース ファイルは、App_GlobalResources フォルダーにある必要があります。このフォルダーの外に .resx ファイルを作成しようとすると、Visual Web Developer はフォルダー内にファイルを作成するように求めます。
これは複雑なトピックであり、システムのすべてのレイヤーを正しく処理するには多くの作業が必要です。
ここから始めてください。
ASP.NET resx ファイルを使用すると、定数文字列を簡単に構成できますが、DB も Unicode をサポートする必要があり、サポートする言語に応じてさまざまなことを行う必要があります。
頑張ってください。特定の問題がある場合は質問してください。