.NET開発者にとって、国際化はもっとも面倒な作業の1つです。国際化には、文字列をリソースファイルに抽出して、多様なカルチャにまたがってリソース項目一式を維持するという、煩わしい作業が求められるからです。
ReSharperは、リファクタリング、ナビゲーション、コードインスペクション、resxファイルやリソース使用箇所のクイックフィックス、さらに、C#やVB.NETのコード、ASP.NETやXAMLのマークアップを備えており、国際化に要する時間を大幅にご節約いただけます。
ReSharperはローカライズ可能な文字列を検出してそれらをハイライト表示し、リソースファイルに移動できるようにします。
プロジェクトの設定に応じて、ReSharperはハードコードされたすべての文字列リテラルをハイライト表示したり、Localizable(true)
で明示的にマークされた文字列リテラルのみをハイライト表示したりいたします。
ReSharperはローカライズ可能な文字列を検出すると、その文字列を早急にリソースファイルに移動できるように支援します。 同一の文字列を検索し、それらをまとめてリファクタリングして新しいリソース項目を使用させることもできます。
プロジェクトの設定に応じて、リソースファイルに移動できる文字列が波下線でハイライト表示されるかどうかが決まります。 文字列がハイライト表示されていない場合は、Ctrl+Shift+Rを押してMove to Resourceリファクタリングを選択してください。 上のスクリーンショットのように文字列が波下線でハイライト表示されている場合は、Alt+Enterを押してクイックフィックスのリストからリファクタリングを直接呼び出せます。
C#やVB.NETのコードで使用される文字列のほか、ReSharperは、各種ウェブアプリケーションのマークアップファイルの文字列や任意のHTML文字列を処理することもできます。
文字列のリソースファイルへの移動に加えて、ReSharperはその他にも以下のような多数の国際化リファクタリングを提供しています。
name
属性値の変更に役立ちます。 ReSharperが提供するその他のリファクタリングについては、リファクタリングをご覧ください。
ReSharperは多数のコードインスペクションを提供します。これらはリソースエントリの一般的な問題を明らかにするのに役立ちます。
具体的には、ReSharperは特定のリソース値が特定のカルチャでオーバーライドされていない場合や、カルチャに依存しないリソースファイルで使用されているのと同じ名前でオーバーライドされている場合に警告します。 ReSharperは単一リソースファイル内の重複リソース名を認識し、リソース値内で不足している、または冗長な書式文字列のプレースホルダーを検出することもできます。
ReSharperはこれらの問題を検出した場合にテキストエディタでハイライト表示をします。 また、ReSharperのFind Code Issues機能を使ってリソースファイル内のすべての問題に目を通すことができます(それらの場所に移動することもできます)。
最後に、ReSharperはリソースファイル内のこれらの問題をすぐに解決できるクイックフィックスを提供しています。
ReSharperのFind Usages機能はリソースに完全に対応しています。 リソースエントリの出現箇所をコードとリソースファイルの両方から検索できます。
ReSharperのGo to Derived Symbols機能とGo to Base機能を使うとカルチャに依存しないリソースファイルのリソースエントリからカルチャ固有のリソースファイルの対応するエントリに相互に移動することができます。
ReSharperはリソースファイルの構造を表示できる特別版のFile Structureツールウィンドウを提供しています。 このウィンドウではリソースファイル内のエントリをリスト表示し、現在のカルチャのリソースID、リソーステキストを可視化します(存在する場合)。 また、このツールウィンドウは、リソースエントリを他のカルチャでオーバーライドするかどうか、それらにプレースホルダーの書式設定が含まれるかどうかを指定します。
このページに記載されたキーボードショートカットはすべて、ReSharperデフォルトの「Visual Studio」キーマップのものです。 ReSharperの2種類のキーマップの詳細は、ReSharperのドキュメントをご覧ください。