Asp.net网站如果想要实现本地化,有一方案,直接在Website项目项目增加App_GlobalResources相应的资源文件,资源文件默认英文版本,如果添加中文则注意命名规则,网站会根据IE浏览器配置的语言项来自动识别所需的文字内容。
1.GlobalResources命名规则:默认文件GlobalResOthers.resx;想增加一个中文版本GlobalResOthers.zh-CN.resx;保证两个文件的Key一致即可。
如果想知道语言版本的缩写,请IE->Tools->Language->添加中查看。
2.Page前台JS调用:
var alertMsg = "<%=Resources.GlobalResOthers.SELECTPERIODALERT %>";
3.Body的Html控件调用:
<span class="red"><%=Resources.GlobalResOthers.Note%>:<asp:Label runat="server" ID="lblQuarterMessage" ></asp:Label></span>
4.Body的服务器控件调用:
<asp:Button runat="server" ID="btnCreate" Text='<%$Resources:GlobalResOthers,CREATEFORM %>' OnClick="btnCreate_Click" CssClass="button" style="display:none; width: 180px; margin-left: 110px;" />
5.Body的数据控件调用:
<asp:ListView ID="lvFormRecord" runat="server" OnPagePropertiesChanged="lvFormRecord_PagePropertiesChanged" OnItemCommand="lvFormRecord_ItemCommand" >
<LayoutTemplate>
<table id="tblGroupDetail" cellpadding="0" cellspacing="0" border="0" style="width: 850px;">
<thead>
<tr class="header" style="text-align: left">
<th style="width: 30%; text-align: left; padding-left: 5px;">
<asp:Localize ID="Localize1" runat="server" Text="<%$Resources:GlobalResOthers,GROUPNAME %>" />
</th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server">
</tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td style="text-align: left;">
<%# Eval("GroupName")%>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
6.cs后台页面调用:
string str = Resources.GlobalResOthers.SELECTPERIODALERT;
或者
string str = this.GetGlobalResourceObject("GlobalResOthers", "DEFAULTSELECTTEXT").ToString();
[其他] Page的image或者JS 需要加载服务器绝对路径的请加ResolveUrl函数:
1.<img alt="info" src="<%=ResolveUrl("~/Content/Image/info.gif") %>" />
2.<script type="text/javascript" src="<%=ResolveUrl("~/Content/Script/Common.js") %>"></script>