2017-08-24 9 views
1

私は自分のアプリケーションをローカライズしようとしており、https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localizationに従っています。私は自分の鍵として英語のフレーズを使用し、私の価値としてフランスの翻訳を使用しています。残念ながら、キーは同じですが、大文字と小文字の区別があります(「Hello World」と「HELLO WORLD」)。.resxファイル異なるケースの同じキー

.resxデザイナーは2つのキーの入力を許可しませんが、テキストモードで編集すると、アプリケーションがビルドされ、リソースが埋め込まれます。しかし、 "Hello World"の1つが欠落しています。

これを行う方法はありますか?そうでない場合は回避策がありますか?

答えて

1

これは、チュートリアルの「タイトルについて」の例で述べています:代わり

、あなたは伝統的なアプローチを使用して、既定の言語の文字列を取得するために、キー を提供することができます。

オプションは、実際の文字列の代わりにリソースキーを使用することです(Working with resource filesのセクションを参照)。次に、このNaming Resourcesのガイドラインに記載されているように、リソースに文字列キーを追加するときは、リソースキーの代わりにPascal Casingを使用します。

これが意味:

  • ノースペースのみの "Hello World" と "HELLO WORLD" のあなたの例を取る場合

が異なる

  • ないキーを、あなたがすることによって、それらを区別することができます接頭辞/接尾辞の識別子を次のように追加します。

    HelloWorldDnCase
    HelloWorldUpCase

    しかし、実際の文字列をキーとして使用したい場合(「About Title」と似ています)、単一のキー「Hello World」を使用して、大文字で表示する必要があります。

  • +0

    トップのコメントを無視してください。 .NETコアの方法は英語のフレーズをキーとして使用するという印象を受けました。このようにStringLocalizerを使用することができます:_localizer ["Hello World!"] StringLocalizerのデフォルトの実装では、Sceneの背後でResourceManagerが使用されるため、文字列はresxファイル内に「Hello World!」として存在する必要があります。スペースとすべてを備えています。チュートリアルを誤解していますか:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization –

    +0

    @GrantParker「About Title」の例で説明したように、 'StringLocalizer'の動作は次のとおりです。_" About Title "のローカライズされた値が見つからない場合は、インデクサキーが返されます。 "_これは開発の初期段階で簡単になります_また、"従来のアプローチを使用して、デフォルトの言語文字列 "_を取得するためのキーを提供することもできます。これは、文字列を実装するためにできることです**リソースファイルの操作** –

    +0

    @GrantParker _ "トップコメントを無視"のセクションを参照してください。_:必要でない場合は、コメントを削除できます。 –

    関連する問題