2009-07-16 20 views
17

私はユーザーコンテキストからロケールを引っ張っにおける興味がない、むしろ私はDBに保存されているユーザーがいると、そのロケールでもあるクラスライブラリのローカリゼーションに非常に簡単に紹介C#クラスライブラリのローカライズ

が必要デシベルでセットアップ....

クラスライブラリの私の機能が既に

...今私は、ロケールに応じて、使用RESXを含めたい...デシベルでのユーザープロファイルからロケールコードを引くことができます

これを正しく行うには、いくつかの手順が必要です...

そしてえええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ>

+0

私はMSDNのいくつかの奇妙なエイリアンなteqniquesに出くわしました... ALを使用して...確かに私は標準的なビジュアルスタジオを使用してこれを達成することができますか? –

答えて

21

残念ながら、この件はあまりにも複雑です。 ;)私は知っている、私も研究を行った。あなたがが、

  1. があなたのアセンブリ内のリソースディレクトリを作成し始めるため

  2. 英語で始まり、そのディレクトリに "Resources File"(.resx)を追加します。 「text.resx」のような名前を付けます。ローカライズされたリソースが見つからない場合は、デフォルトでこのファイルが引き出されます。

  3. テキストリソースを追加します。

  4. 別のリソースファイルを追加してください。これに "text.es.resx"のような名前を付けてください。ファイル名の "es"部分に注意してください。この場合、それはスペイン語を定義します。各言語には独自の文字コード定義があります。それを見てください。

  5. スペイン語のリソースを追加してください。

ここでは、作業するリソースファイルがあるので、実装しようとします。

カルチャーを設定するには、データベースレコードからそのカルテを抜き取ってください。そして、次の操作を行います

String culture = "es-MX"; // defines spanish culture 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture); 

これはあなたのアセンブリをロードしたアプリでまたはアセンブリの初期化自体に発生する可能性があります。あなたは選ぶ。

public string TestMessage() { 
    return Resources.Text.SomeTextValue; 
} 

のTaダ:

がリソースをutlizeするには、あなたがしなければならないすべてはあなたのアセンブリ内に以下のようなものです。リソースは簡単にできました。あなたはusercontrolsを変更するか、aspxページで直接何かをする必要がある場合、物事は少し複雑になることができます。詳細が必要な場合は、質問を更新してください。

"text.es-mx.resx"のような名前のリソースファイルがあることに注意してください。これはメキシコのスペイン語特有のものです。しかし、これは必ずしも必要ではありません。なぜなら、 "es-mx"はデフォルトに戻る前に "es"にフォールバックするからです。あなたのリソースがどのくらい具体的である必要があるかは、あなただけが知っています。

+0

Resouces.Text.SomeTextValueを除いて今のところ良い音です - どこから来たのですか、どの名前空間に含める必要がありますか? –

+0

固定ステップ1。SomeTextValueの完全な名前空間は、MyAssemblyName.MyResourcesDirectoryName.MyResourceFile.MyTextValueになります。したがって、私の例を使用すると、それは:MyAssemblyName.Resources.Text.SomeTextValueになります。 – NotMe

+1

CurrentCultureの呼び出しを実行すると、システムは自動的にtext.resxまたはtext.es.resxを使用するかどうかを判断します。 – NotMe

1

cultureにresxesの名前を付け(例:resource_en-GB.resx)、cultureに基づいて照会するリソースを選択します。

+0

私はこれを試してみましょう –

0

コードからリソースファイルにアクセスするには、リソースファイルを開き、「アクセス修飾子」ドロップダウンリストを「public」に変更する必要があります。私は「コード生成なし」でした。その後、Resources.FileName.ResourceNameのようにアクセスできます。

+1

-1:興味深い事実ですが、質問には答えません。 –