It is a common practice to store localizable strings in resource files when working on project internalization. ReSharper detects strings to be localized and highlights them, so you can easily find and move such strings from your source code to resource files. ReSharper will declare the corresponding resource entry and replace the string in the code with a resource usage.
You can specify the template for resource names in the Code Editing | Localization page or ReSharper options.
ReSharper defines whether to highlight a string or not depending on the value of Localizable Inspector setting. For more information, see Quick-Fixes.
- Place the caret at the string that should be localized.
If a string is highlighted, you can use the corresponding
ReSharper | Refactor | Move
on the main menu or press
In the Move to resource dialog box that appears,
ReSharper automatically generates the name for the resource entry and proposes a resource file.
If necessary, you can change the name in the Name text box
and choose other resource file in the Resource File drop-down
- Optionally, you can change the resource string value in the Value text area and add a comment in the Comment text area.
- Optionally, you can specify whether to search for identical strings and the search scope by selecting the value in the Find identical items in drop-down list.
- Click Next to apply refactoring.
- If you selected the Find identical items in option and ReSharper finds any matching strings defined within the specified scope, you will be able to choose which of these strings should be replaced with usages of the new resource.
After applying the refactoring, specified occurrences of the string are replaced with
corresponding resource usages:
and the new resource declaration appears in the specified .resx file:
NoteReSharper provides the same functionality for ValidationAttribute and its inheritors. Pay attention, that Access Modifier in .resx file should have Public value, otherwise, the refactoring will not be available.
After the new resource is created you can override its value for other cultures. For more information, see Override Resource Entry.