对于.NET开发者来说,国际化一直都是一个多余的障碍,因为这涉及将字符串提取到资源文件中以及在许多不同的文化之间维护资源项集合,非常麻烦。
借助针对resx文件和C#与VB.NET代码以及ASP.NET和XAML标记中资源用法的重构、导航、代码检查和快速修复,ReSharper可以节省花在国际化上的时间。
1、高亮显示可以本地化的字符串
ReSharper 能够检测您可以本地化的字符串,高亮显示这些字符串,并帮助您将其移动到资源文件中。
根据您的项目设置的不同,ReSharper可以高亮显示所有硬编码字符串文字,或者仅高亮显示那些使用Localizable(true)显式标记的字符串文字。
2、将字符串移动到资源文件中
在ReSharper发现可以本地化的字符串后,它会尽快帮助您将其移动到资源文件中。 您可以选择搜索相同的字符串,并对它们进行重构以使用新的资源项。
根据您的项目设置的不同,您可以移动到资源文件中的字符串可能会使用波浪下划线高亮显示,也可能不会。 如果字符串未高亮显示,请按Ctrl+Shift+R并选择Move to Resource重构。 如果字符串使用波浪下划线高亮显示(如上面的屏幕截图中所示),您可以按 Alt+Enter,并直接从快速修复的列表中启动重构。
除了C#或VB.NET代码中使用的字符串之外,ReSharper还能处理Web应用程序的标记文件中的字符串和任意的HTML字符串。
3、重构
除了将字符串移动到资源文件中之外,ReSharper还提供了许多其他国际化重构:
(1)Move Resource重构可以在资源文件之间移动现有的资源条目。
(2)Rename Resource可以帮助您在资源条目中更改name特性的值。
(3)Inline Resource可以将某个资源条目从资源文件中删除,并将它的所有用法替换为原始字符串。
(4)Safe Delete Resource会尝试删除某个资源条目及其所有的用法,而不破坏代码。 如果Resharper发现某些用法无法安全地自动删除,它会建议您先手动编辑这些用法,然后再应用重构。
4、资源文件中的代码检查
ReSharper 提供了多个代码检查,这些代码检查可以帮助显示资源条目的常见问题。
具体来讲,如果特定资源值在某个文化中未被重写,或者使用与文化中立的资源文件中的相同名称重写,ReSharper都会向您发出警告。 ReSharper会告知您单个资源文件中的重复资源名称,它甚至能够检测资源值中缺失或冗余的格式字符串占位符。
在检测到此类问题时,ReSharper会在文本编辑中高亮显示。 此外,您还可以使用 ReSharper 的 Find Code Issues 功能浏览(并导航到)资源文件中的所有问题。
最后,ReSharper 还提供了快速修复,您可以使用这些快速修复快速解决资源文件中的问题。
5、查找资源的用法
ReSharper 的 Find Usages 功能非常适合资源。 您可以从代码和资源文件中搜索某个资源条目的实例。
6、在文化和资源之间导航
ReSharper 的 Go to Derived Symbols 和 Go to Base 功能可以帮助您从文化中立的资源文件中的资源条目导航到文化特定的资源文件中的对应条目,反之亦然。
7、资源文件结构
ReSharper 为查看资源文件的结构提供了专用版本的 File Structure 工具窗口。 它可以列出资源文件中的所有条目,可视化资源ID、当前文化中的资源文本和资源注释(如有)。 此外,此工具窗口还可以指定资源条目在其他文化中是否重写,以及它们是否包含格式占位符。