(我不是以英语为母语的人,所以文字可能不自然)
我正在做 asp.net 项目的本地化。为了提高语言翻译的效率,我将 .aspx 中的字符串提取到全局资源文件中。(我将资源文件命名为“StringTable.resx”。)
在这个过程中,aspx 页面中的字符串变化如下:
前 :
Admin ID
后 :
<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">
'After code' 看起来有点长,所以我想缩短那个代码。(例如,删除 runat="server" 语句、删除资源名称等...) 在 C/C++ 情况下,可以使用 #define 宏。
有没有办法在 .aspx 页面中做到这一点?(不在文件后面的代码中)任何想法将不胜感激。
====== 下面是我自己的回答======================================== =
我使用的是 VS2008,所以我不能<%:
在 .NET 4.0 中使用语法。
我介绍了我的替代解决方案(我不确定这是最好的解决方案)
首先,我在 .aspx 文件的上部添加了这个指令。
<%@ Import Namespace="Resources" %>
(我想设置 Namespace="Resources.StringTable" 来删除重复的 'StringTable',但这是不允许的。)
在那之后,我更换了
<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">
至
<%= StringTable.STR_ADMIN_ID %>
关键字'StringTable'仍然存在,它并不完全干净,但它看起来比原始代码更好。:)
====== 添加=========================================
但是使用这种方法时,Visual Studio 的“设计”预览模式不显示资源字符串。
所以看来我必须回到原来的长代码。:(
(该方法适用于具有“刷新”功能的“设计”模式。)