ローカライゼーションインスペクションとクイックフィックス
ReSharper は、リソースファイルやコードファイル内のリソース使用箇所に存在するローカライズ可能な文字列やリソースの問題などを検出し、アプリケーションのローカライズを支援する多数のコードインスペクションを提供します。 これらのインスペクションは、オープンドキュメントの 設計時にローカライゼーションの問題を検出し、ソリューション全体まで 特定の範囲でローカライゼーションの問題を見つけることができます。
設計時には、検出された問題があなたの注意を引くために ハイライトされます。 ハイライトされた問題を解決するために、ReSharper はリソース固有の クイックフィックスを多数提供します。
「要素はローカライズ可能」インスペクション
このインスペクションは、ハードコードされた文字列リテラルを検出し、 リソースファイルに移動することを提案します。 同じ文字列がすでにリソースに定義されている場合、ReSharper はリテラルを既存のリソースエントリに置き換えることを提案します。
すべての文字列をリソースに移動してローカライズする必要があるわけではないため、ReSharper にはこのインスペクションを構成する方法がいくつか用意されています。 「Element is localizable」インスペクションが 有効になっている場合、以下のフローチャートに従って動作します。 アルゴリズムの各ステップは、チャートで説明されています。

逐語的な文字列には
@が接頭部として付けられます(例:@"Hello world"デフォルトでは、逐語的文字列はローカライゼーションインスペクションで無視されますが、 ページの 逐語的な文字列を分析しない オプションを使用して ReSharper オプション Alt+R、O でこの設定を変更できます。
ローカライズ可能な プロジェクトプロパティは、プロジェクト内の文字列の扱い方を定義します。 このプロパティを変更するには、ソリューションエクスプローラーでプロジェクトを右クリックし、 プロジェクト項目のプロパティを編集する を選択してから、 ローカライズ可能> [ デフォルト | はい | いいえ ] を選択します。
現在のプロジェクトまたはそれが参照する他のプロジェクトにリソースファイル( .resx )が含まれている場合、ReSharper はそのプロジェクトをデフォルトでローカライズ可能と見なします。
特定の関数やプロパティで文字列値を受け取る場合は、
LocalizableAttributeでマークすることで、受け取る文字列のローカライゼーションインスペクションを[Localizable(true)]で有効化、または[Localizable(false)]で無効化できます。シンボルは 外部アノテーション を使ってこの属性でマークできることに注意してください。 例: 外部アノテーションは、
Console.WriteLineを[Localizable(true)]でマークするために使用されます。ローカライズ可能なインスペクタ プロジェクトプロパティは、
LocalizableAttributeでマークされたメンバーによって消費されない文字列リテラルの処理方法を定義します — 楽観的 アルゴリズムはそのような文字列を無視し、 悲観的 は それらにローカライズ可能としてフラグを立てます。このプロジェクトプロパティを変更するには、ソリューションエクスプローラーでプロジェクトを右クリックし、 プロジェクト項目のプロパティを編集する を選択してから、 ローカライズ可能なインスペクター> [ 楽観的 | 悲観的 ] を選択します。
現在のプロジェクトでローカライゼーションインスペクションを無効化する最も簡単な方法は、エディターでハイライトされた文字列の上で Alt+Enter を押し、 アクションリストの対応するコマンドを使用することです:

このコマンドは、現在のプロジェクトで ローカライズ可能な プロパティを いいえ に設定します。
ローカライゼーションの問題のクイックフィックス
ローカライゼーションインスペクションで検出されたコードの問題に対して クイックフィックスが利用可能な場合、ReSharper は対応する アクションインジケーターをキャレットの左側に表示します。 Alt+Enter を押すかインジケーターアイコンをクリックすると利用可能なアクションの一覧が表示されます。希望するアクションを適用するには、一覧からクリックまたは選択して Enter を押してください。
ローカライゼーションインスペクションのクイックフィックスは次のとおりです。
リソースに移動
このクイックフィックスは リソースに移動リファクタリングを呼び出し、ローカライズ可能な文字列をリソースファイルに移動します。 文字列が中括弧でハイライトされている場合に使用できます。

リテラルの代わりにリソースエントリを使用する
ReSharper が文字列リテラルがすでにリソースに定義されていることを検出した場合、対応するリソースの使用に文字列を置き換えることを提案します:

このクイックフィックスを適用すると、文字列はリソースの使用に置き換えられます。
タイプに「Localizable(false)」のアノテーションを付ける
このクイックフィックスのグループを使用すると、選択したタイプまたはメンバーに [Localizable(false)] 属性を追加して、このシンボルのすべての使用について 「要素はローカライズ可能」インスペクション を抑制することができます。
リソースファイルを作成する
リソースファイル名がコードファイルで使用されているが、まだリソースファイルを作成していない場合は、ReSharper で作成できます。 リソースファイル名を赤でハイライトし、対応するクイックフィックスを提案します。

クイックフィックスを適用すると、不足しているリソースファイルが作成されます。
リソース項目を作成する
リソース名がコードファイルで使用されているにもかかわらず、このリソースをまだ宣言していない場合、ReSharper が作成できます。 リソース名を赤でハイライトし、対応するクイックフィックスを提案します。

クイックフィックスを適用すると、不足しているリソース宣言がリソースファイルに追加されます。
リソースエントリを宣言する
カルチャ階層に編成された複数のカルチャが存在し、カルチャ固有のリソースファイルで宣言されているがデフォルトカルチャで宣言されていないリソースエントリがある場合、ReSharper はリソース宣言をハイライトし、対応するクイックフィックスを提案します:

クイックフィックスを適用した後、リソース宣言はデフォルトのカルチャに挿入され、そこで新しい値に置き換えることができます。
リソースエントリを上書きする
カルチャ階層に複数のカルチャが編成されていて、デフォルトカルチャで宣言されているが他のカルチャでオーバーライドされていないリソースエントリがある場合、ReSharper はリソース名をハイライトし、対応するクイックフィックスを提案します:

クイックフィックスを適用すると、リソース宣言がカルチャ固有のリソースファイルに挿入され、そこで正しい値を指定できます。
リソースエントリを削除する
ReSharper は以下の場合にこのクイックフィックスを提案します:
資源項目は、中立および特定の文化において等しい値を有します。
同じリソース名を持つ宣言が 2 つ以上あります。
カルチャ階層で編成されたカルチャがいくつかあり、特定のカルチャで宣言されているがデフォルトカルチャでは宣言されていないリソースエントリがあります。

クイックフィックスを適用すると、現在のリソースファイルからリソース宣言が削除されます。
冗長なリソースエントリタイプを削除する
リソース項目の文字列・タイプを指定することは、それがデフォルトのリソース項目タイプであるため、冗長です。 ReSharper は冗長な属性の削除を提案します:

安全な削除
カルチャ階層に編成されたカルチャが複数あり、デフォルトカルチャで宣言されているがカルチャ固有のリソースファイルでオーバーライドされていないリソースエントリがある場合、ReSharper はリソース名をハイライトしてこのクイックフィックスを提案します:

このクイックフィックスを適用した後、 安全なリソース削除リファクタリングの手順に従います。