查找所有源硬编码字符串


Answers:


63

ReSharper 5是显而易见的选择,但是必须设置许多技巧才能实现您的目标,

  1. 打开解决方案范围的分析。
  2. 转到ReSharper| Options| Code Inspection| Inspection Severity| Potential Code Quality Issues| Element is localizable设置为Show as error
  3. 返回解决方案资源管理器,然后单击项目(csproj)。
  4. 在“ ReSharper”类别下的“属性”面板中,将“可本地化”设置为“是”,将“可本地化检查器”设置为“悲观”。

然后,您可以在“解决方案”面板中的“错误”中找到几乎所有所需的内容。

希望这可以帮助。


1
这也适用于XAML文件吗?R#似乎没有在XAML中看到Content / Text属性,仅在后面的代码中?
罗德尼2010年

1
还没。JetBrains家伙还没有为XAML实现此功能。
Lex Li 2010年

谢谢Lex Li。我发现这个正则表达式可以在xaml文件devnet.jetbrains.com/thread/…中找到所有潜在的可本地化的字符串。正则表达式中缺少的一项是搜索Label属性。
拉米A.13年

对我来说,它不起作用-即使在一个cs文件中,许多字符串仍未标记,而其他则标记为ok。
Vojtěch多纳尔

@VojtěchDohnal,ReSharper方法只是尽力而为,因为它依赖于ReSharper引擎,该引擎可能并非始终都是100%正确的。当然,您可以将此类问题报告给JetBrains,并希望它们可以解决。
Lex Li


3

您始终可以"在所有.cs文件中搜索符号。那应该可以让您接触到大多数声音,而不会产生太多噪音。


2
好吧,举例来说,这有点蛮力。我仍然建议将其与赋值运算符配对以缩小搜索范围-或使用其他过滤-感谢linq :)。使用一些powershell脚本或编写一个简单的CS程序使之适合您。通常做一个reg表达式来查找所有内容
luckyluke 2010年


1

Resharper 5.0(Beta)允许您将字符串移动到资源(它具有内置的本地化功能)。试试看。Beta工作正常,我每天都在使用它,没有任何问题。最重要的是,它一直免费提供测试版。我什至建议您使用夜间构建,因为它们似乎很稳定。

软件本地化和全球化一直很艰难,有时对开发人员来说是不必要的任务。ReSharper 5通过在C#和VB.NET代码以及ASP.NET和XAML标记中为resx文件和资源使用情况提供一整套功能,极大地简化了资源的使用。

专用功能包括将字符串移至资源,查找资源用法和其他导航操作。结合重构支持,检查和修复,您将获得一个方便的本地化环境。


单挑的人很好,但是我认为这并不能帮助您首先找到他们,这是这个问题主要要问的问题。
rohancragg

0

FxCop找到了一些。不确定其限制是什么,我认为它取决于参数和属性名称(例如:称为“文本”的属性被认为是本地化的)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.