当前位置:编程学习 > C#/ASP.NET >>

关于本地化问题,ASP.NET可以本地化,HTML、JS如何本地化呢?以下是我的方式

HTML页面
如htmlpage.html先改成.aspx
内容如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Culture="auto" meta:resourcekey="PageResource1" UICulture="auto" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="<%$ Resources:UserName %>"></asp:Label>
        <br /><%=GetGlobalResourceObject("Resource", "HtmlUserName")%>
    </div>
    </form>
</body>
</html>


js本地化

如jsdemo.js先改成.aspx

<%@ Page Language="C#" AutoEventWireup="true"  Culture="auto"  UICulture="auto" %>
// JScript 文件
function Hello()
{
    alert('<%=HttpContext.GetGlobalResourceObject("Resource", "HtmlHello")%>');
}


这样是可行的,但是总是感觉不妥,各位有什么好的建议?

--------------------编程问答-------------------- 使用资源文件! --------------------编程问答-------------------- 发错
html页面

<%@ Page Language="C#" AutoEventWireup="true"  Culture="auto"  UICulture="auto" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页</title>
    <script type="text/javascript" language="javascript" src="JScript.aspx"></script>
</head>
<body>
    <input id="Button1" type="button" value="<%=HttpContext.GetGlobalResourceObject("Resource", "HtmlHello")%>" onclick="Hello()" /><br />
    <%=HttpContext.GetGlobalResourceObject("Resource", "HtmlHello")%>
</body>
</html>

--------------------编程问答--------------------
引用 1 楼 sunxw18 的回复:
使用资源文件!

大哥,用本地的、全局的都在用哦 --------------------编程问答-------------------- aspx页面的本地化可以采用 自定义控件 如:

<cc:label id="laText1" text="User name:" xpath="resource/user.login/userName" runat="server" />

这个Label控件通过读取xpath属性,自动读取XML文件中某个节点的文本值,并显示在页面。
当然,使用这种方法需要注意IO的性能
通常可以编写一个派生自 System.Web.UI.Page 的类,在这个类中对页面的所有Label控件做统一处理
之后再让所有需要本地化的页面从 这个类 派生
以消除IO带来的性能瓶颈

至于JS文件,没必要本地化,也不存在本地化的说法。可以将需要的字符传入到JS方法中,如

javascript:someJSMethod('<cc:label id="laText1" text="User name:" xpath="resource/user.login/userName" runat="server" />');
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,