2012-03-06 5 views
1

ローカライズされた文字列のリソース辞書があります。コードの背後にあるResourceDictionaryを簡単に識別できるように、プロパティ(例:Tag)をロケールの名前に設定します。String ResourceDictionaryのロケールを最適に識別するには?

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:system="clr-namespace:System;assembly=mscorlib" 
        Tag="de-DE"> 

    <system:String x:Key="Hello">Hallo Welt!</system:String> 

</ResourceDictionary> 

をしかし、これはXamlParseExceptionResourceDictionary.Tag以来、その結果:(。そうでなければ、私はさまざまな方法で私を傷つけるいくつかの汚れファイル名の解析を、行う)

たとえば、私はこのような何かをしたいと思います存在しない。ここにタグを設定する別の方法はありますか?または、私の目標を達成するためのより良い方法がありますか?ありがとう。

EDIT: 明確にするために、私は、それぞれが特定のロケールのローカライズされた文字列を含む、ResourceDictionaryいくつかのXAMLファイルのディレクトリを持っています。たとえば、ユーザーがロケールをドイツ語に設定すると、私のアプリケーションは前述のディレクトリにXAMLファイル("de-DE.xaml")を探し、そのファイルのリソース辞書をロードします。私はこの方法でファイル名に縛られたくない。 Tagのようなものを使用することには、実際のロケールを決定する前に辞書をロードしなければならないことがあるため、ファイル名解析がその前で勝利するということには不利になります。理想的な(私にとって)解決策は、ファイル名に依存せず、リソースディクショナリをロードする必要もありません。

+0

Woh。いいえ。コードビハインドのタグを知る必要があるのはなぜですか? – MyKuLLSKI

+0

ディクショナリは、コードビハインドでカスタムリソースディクショナリマネージャから読み込まれます。ロケールでリソース辞書を選択/参照する簡単な方法が必要ですが、この関連付けを実装する方法はわかりません。 – user46874

+0

右。これらのResourceDictionariesリソースまたはコンテンツはありますか? – MyKuLLSKI

答えて

0

あなたのリソースディクショナリは、REALリソースはその後、ちょうど文化としてファイル名を持っている場合は、私はいくつかのアプローチ

  • を持っています。開発者だけがファイル名にアクセスできるので、ここでは問題は見えません。

  • あなたは、物理的に各辞書を開き、最初の文字列が本当の文化であることを確認する必要があるのでこれは悪いですダミーのキー(恐ろしいアプローチ)

    <system:String x:Key="Culture">de-DE</system:String> 
    

    を持っています。

  • リソースディクショナリがコンテンツファイルの場合、エンドユーザーがファイルを削除した場合にエラーを確実に伝えるように、リソースの場合と同じように処理します。

関連する問題