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

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

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

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

このクイックフィックスを適用すると、文字列はリソースの使用に置き換えられます。
リソースエントリを宣言する
カルチャ階層に編成された複数のカルチャがあり、カルチャ固有のリソースファイルで宣言されているがデフォルトカルチャでは宣言されていないリソースエントリがある場合、JetBrains Rider はリソース宣言をハイライトし、対応するクイックフィックスを提案します:

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

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

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

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

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