ReSharper 2025.3 ヘルプ

コード検査: 要素はローカライズ可能です

このインスペクションは、ハードコードされた文字列リテラルを検出し、リソースファイルに移動することを提案します。同じ文字列がすでにリソースに定義されている場合、ReSharper はリテラルを既存のリソースエントリに置き換えることを提案します。

すべての文字列をリソースに移動してローカライズする必要があるわけではないため、ReSharper は、このインスペクションを構成するいくつかの方法を提供します。「Element is localizable」インスペクションが有効になっている場合、以下のフローチャートに従って動作します。アルゴリズムの各ステップは、チャートで説明されています。

ReSharper: How the 'Element is localizable' inspection works
  1. 逐語的な文字列には @ が接頭部として付けられます(例: @"Hello world"

  2. デフォルトでは、逐語的文字列はローカライゼーションインスペクションによって無視されますが、ReSharper オプション Alt+R, Oコード編集 | インスペクション重大度ページの逐語的な文字列を分析しないオプションを使用して変更できます。

  3. Localizable プロジェクトプロパティは、プロジェクト内の文字列の処理方法を定義します。このプロパティを変更するには、ソリューションエクスプローラーでプロジェクトを右クリックし、プロジェクト項目のプロパティを編集するを選択してから、ローカライズ可能> [ デフォルト | はい | いいえ ] を選択します。

  4. 現在のプロジェクトまたはそれが参照する他のプロジェクトに少なくとも 1 つのリソースファイル(.resx)が含まれている場合、ReSharper はそのプロジェクトをデフォルトでローカライズ可能と見なします。

  5. LocalizableAttribute でマークすることにより、文字列値を消費できる特定の関数およびプロパティをさらに構成できます。これにより、[Localizable(true)] を明示的に有効にしたり、消費された文字列のローカライゼーションインスペクションで [Localizable(false)] を無効にしたりできます。

    シンボルは、外部アノテーションを介してこの属性でマークできることに注意してください。例: 外部アノテーションは、Console.WriteLine[Localizable(true)] でマークするために使用されます。

  6. ローカライズ可能なインスペクタ プロジェクトプロパティは、LocalizableAttribute でマークされたメンバーによって消費されない文字列リテラルを処理する方法を定義します。楽観的アルゴリズムはそのような文字列を無視し、悲観的それらにローカライズ可能としてフラグを立てます

    このプロジェクトプロパティを変更するには、ソリューションエクスプローラーでプロジェクトを右クリックし、プロジェクト項目のプロパティを編集するを選択してから、ローカライズ可能なインスペクター> [ 楽観的 | 悲観的 ] を選択します。

現在のプロジェクトでローカライゼーションインスペクションを無効にする最も簡単な方法は、エディターでハイライト表示された文字列の上に Alt+Enter を押して、アクションリストの対応するコマンドを使用することです。

ReSharper: Disabling localization inspection for project

このコマンドは、現在のプロジェクトの Localizable プロパティをいいえに設定します。

2024 年 2 月 11 日

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

ローカライゼーションリファクタリング

ReSharper は、プロジェクトの国際化を大幅に簡素化する一連のリソース関連のリファクタリングを提供します。リソースに移動:プロジェクトの内部化に取り組むときは、ローカライズ可能な文字列をリソースファイルに格納するのが一般的です。ReSharper はローカライズ対象の文字列を検出してハイライトするため、そのような文字列を簡単に見つけてソースコードからリソースファイルに移動できます。ReSharper は対応するリソースエントリを宣言し、コード内の文字列をリソース使用量に置き換えます。ロー...

外部アノテーション

使い方:ソースが利用できない外部ライブラリを使用している場合、コードアノテーションを指定するための属性をそこで使用することは現実的ではないようです。この場合、外部アノテーションを使用すると、すでにコンパイルされたエンティティを、ReSharper のコード分析エンジンによって認識される属性で補完できます。外部アノテーションを使用すると、ライブラリのコンパイル時に宣言されていなかった属性 (メソッド、パラメーター、その他の宣言) をエンジンに参照させることで、エンジンを「騙す」ことができます。外...

プロジェクト固有のプロパティを構成する

ReSharper の設定のメインセット(ReSharper | オプションダイアログで設定)は、グローバルまたはソリューションごとに適用されます。各プロジェクトまたはフォルダーごとに個別に設定できる環境設定もあります。これらの設定は、プロジェクトアイテムのプロパティポップアップで利用できます。プロジェクトアイテムのプロパティポップアップは、ソリューションエクスプローラーでプロジェクトのコンテキストメニューからプロジェクト項目のプロパティを編集するを選択して呼び出すことができます。他の ReSh...

ローカライゼーションインスペクションとクイックフィックス

ReSharper は、リソースファイル内のローカライズ可能な文字列、リソースの問題などを検出することにより、アプリケーションをローカライズするのに役立つ多数のコードインスペクションを提供します。これらのインスペクションは、オープンドキュメントの設計時にローカライゼーションの問題を検出し、ソリューション全体まで特定の範囲でローカライゼーションの問題を見つけることができます。設計時には、検出された問題があなたの注意を引くためにハイライトされます。ハイライトされた問題を解決するために、ReSharp...

アクションインジケーターとアクションリスト

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケーターは、設定に応じて、アクションバー、テキストエディターの左マージンおよび / また...