0

asp.net アプリケーションを国際化したいと考えています。これを行う方法?具体的にどのような手順に従う必要がありますか?

4

6 に答える 6

4

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();
        }        
    }
  1. 静的テキストの場合は、リソースを使用できます。たとえば、デフォルトの言語 (en-us) のテキストを記述する Mytexts.resx を作成し、英国英語の Mytexts.en-UK.resx を作成して、デフォルトの言語とは異なるテキストを上書きします。次に、この文字列をページに挿入できます。
<asp:Label runat="server" Text='<%$ Resources: Mytests,WelcomeMessage %>' />

これは、ローカリゼーションを開始するための簡単な手順にすぎませんが、小さなページやアプリケーションの場合はこれで十分です。

于 2009-10-01T06:30:57.587 に答える
1

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 など、必要な文化を設定します....

于 2009-10-01T07:01:27.573 に答える
1

Web アプリケーションでのリソース ファイルの使用に関するトピックを調べる必要があります。データベース ベースのローカリゼーション サポートが必要な場合は、westwindの優れた無料製品を試してみてください。

これについては、MSDN のローカリゼーションとグローバリゼーションのトピックが最適です。

于 2009-10-01T06:23:48.583 に答える
1

正確な手順を説明できるかどうかは非常に大きな問題であり、いくつかの異なるアプローチがあります。

私の最近のプロジェクト(簡略化)で採用したアプローチは次のとおりです。

  1. 国ごとにドメインを設定する
  2. 各カルチャ (en-US、de-DE、fr-FR) のハードコードされたすべての文字列 (フォーム ラベルなど) のリソース ファイルを作成します。
  3. サイトがアクセスされているドメインに基づいて Thread.CurrentCulture を変更します。これは、すべての数値形式、日付形式が正しくなり、正しいローカライズされたリソース ファイルを使用することを意味します。

お役に立てれば!

国際化に関するマイクロソフトのホワイト ペーパーについては、こちらを参照してください

于 2009-10-01T06:26:53.320 に答える
0

ローカライズされたリソース ファイルの作成に関するこのリンクを参照してください: http://msdn.microsoft.com/en-us/library/ms247246.aspx

基本的に、サポートする言語/カルチャごとに新しいリソース ファイルを作成します。次に、マークアップ ページとコード ビハインド ファイルで、その中の文字列に名前でアクセスします。

さらに、これらのリソース ファイルは、プロジェクト内のApp_GlobalResourcesという特定のフォルダーにある必要があります。

グローバル リソース ファイルは、App_GlobalResources フォルダーにある必要があります。このフォルダーの外に .resx ファイルを作成しようとすると、Visual Web Developer はフォルダー内にファイルを作成するように求めます。

于 2009-10-01T06:24:12.703 に答える
0

これは複雑なトピックであり、システムのすべてのレイヤーを正しく処理するには多くの作業が必要です。

ここから始めてください。

ASP.NET resx ファイルを使用すると、定数文字列を簡単に構成できますが、DB も Unicode をサポートする必要があり、サポートする言語に応じてさまざまなことを行う必要があります。

頑張ってください。特定の問題がある場合は質問してください。

于 2009-10-01T06:24:22.327 に答える