我有一个国际化的web应用程序,其中所有的文本最终被发送到浏览器是由代码背后生成的,无论是由覆盖Render
的用户控件,还是由设置Label
等控件的Text
的代码。
例如,而不是包含
的aspx
<h2>Subtitle</h2>
<p>Some paragraph</p>
这个应用程序将使用
<h2><asp:Label runat="server" ID="SubTitle" /></h2>
<p><mycontrols:Literal runat="server" ID="Paragraph" /></p>
,实际文本只在运行时提供。
我想确保我没有无意中在标记的任何地方留下任何静态文本。然而,我能想到的方法都有缺陷:
- 我不能使用一个工具,试图解析标记为xml,因为
*.as?x
标记绝对不是有效的xml - 我甚至不能使用html解析器(如htmllagilitypack),因为
*.as?x
标记(记住这是在ASP.NET渲染之前)也不一定是有效的html(考虑如何重复模板可以交错标记) - 仅仅使用Visual Studio Find无法帮助我找到静态文本,而不是CSS类名
除了手动检查每一页,还有其他方法吗?
好吧,如果这是一个支持国际化的网站-指向其中一个免费的网站下载应用程序-并将输出拉到磁盘上。用法语(或你选择的语言)运行它,然后用德语运行。任何硬编码的文本字符串都不会改变。然后你必须找到一个WinMerge工具(我认为WinMerge可以做文件夹)或者写一些可以比较输出文件的东西。然后使用PowerGrep将结果定位到源文件中。