查找所有源硬编码字符串

时间:2010-03-22 09:12:05

标签: c# .net visual-studio localization

我需要在.resx文件中移动源代码中的所有硬编码字符串。有没有一个工具可以帮助我找到C#代码中的所有硬编码字符串?

6 个答案:

答案 0 :(得分:60)

ReSharper 5显然是一个选择,但必须设置许多提示以实现您的目标,

  1. 启用解决方案范围的分析。
  2. 转到ReSharper | Options | Code Inspection | Inspection Severity | Potential Code Quality Issues | Element is localizable设置为Show as error
  3. 返回解决方案资源管理器并单击项目(csproj)。
  4. 在“ReSharper”类别下的“属性”面板中,将“Localizable”设置为“Yes”,将“Localizable Inspector”设置为“Pessimistic”。
  5. 然后,您可以在“解决方案”面板中的“错误”中找到所需的全部内容。

    希望这有帮助。

答案 1 :(得分:3)

您始终可以在所有.cs文件中搜索"符号。这应该可以让你进入大部分,没有太多的噪音。

答案 2 :(得分:2)

此工具http://visuallocalizer.codeplex.com/允许批量移动字符串到资源以及其他功能。这是FOSS所以也许你可以尝试一下。 (我参与了)

答案 3 :(得分:1)

Resharper 5.0 (Beta)允许您将字符串移动到资源(它内置了本地化功能)。试试看。 Beta工作正常,我每天都使用它并且没有任何问题。最重要的是它在测试结束前是免费的。我甚至建议使用night builds因为它们看起来很稳定。

  

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

     

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

答案 4 :(得分:1)

或者根据这里讨论的正则表达式进行搜索:

https://vosseburchttechblog.azurewebsites.net/index.php/2014/12/16/find-all-string-literals-in-c-code-files-but-not-the-ones-in-comments/

(?=(^((?!///).)*$)).*((".+?")|('.+?')).*

答案 5 :(得分:0)

有些是由FxCop发现的。不确定它的限制是什么,我认为它取决于参数和属性名称(例如:一个名为“Text”的属性被认为是本地化的。)