zoukankan      html  css  js  c++  java
  • asp的多国语言构思

    多语言的版本,是个蛮头疼的问题~这个问题已经说过蛮多次了,原理简单,编码麻烦^_^

    简->繁的转换是比较容易的事情,但多国化的问题一般的方法如下
    语言包肯定要有,数据库的内容肯定也要有几份,
    语言包可以用xml,编码用utf-8,当然也可以动态的包含inc文件,但是逻辑上没有xml清淅

    本地化时间,货币等,可以用vbs里提供的一个函数SetLocale(lcid)

    获取http的头部得到browser的语言,从而调用不同的语言包。

    这里示例的是用xml做为语言包
    其实还是蛮简单的,但是实际编码里会有很多节点,这里只是提供一个思路,示例代码如下

    <?xml version="1.0" encoding="utf-8" ?>
    <lang>
    <ch>
       <username>用户名</username>
       <password>密码</password>
       <btnSubmit>提交</btnSubmit>
       <btnReset>重置</btnReset>
    </ch>
    <en>
       <username>username</username>
       <password>password</password>
       <btnSubmit>submit</btnSubmit>
       <btnReset>reset</btnReset>
    </en>
    </lang>

    -----------------------------
    test.asp
    -----------------------------
    <%
    function lang(langType,nodeName)
    set xmlDoc=Server.CreateObject("microsoft.xmldom")
    xmlDoc.load(server.mappath("lang.xml"))
    lang=xmlDoc.documentElement.selectSingleNode("//" & langType & "/" & nodeName).text
    end function
    if request("lang")="ch" then langType="ch" else langType="en"
    %>
    <a href='javascript:location.href="?lang=<%if _fcksavedurl=""?lang=<%if" langType="ch" then response.Write "en" else response.Write "ch"%>"'>切换语言</a>
    <table width="50%" border="0" cellspacing="0" cellpadding="0" align='center'>
    <tr>
        <td><%=lang(langType,"username")%></td>
        <td><input type="text" name="textfield" /></td>
    </tr>
    <tr>
        <td><%=lang(langType,"password")%></td>
        <td><input type="text" name="textfield" /></td>
    </tr>
    <tr align="center" valign="middle">
        <td><input type="submit" name="Submit" value="<%=lang(langType,"btnSubmit")%>" /></td>
        <td><input type="reset" name="Submit" value="<%=lang(langType,"btnReset")%>" /></td>
    </tr>
    </table>

    实际编码中,会多出比较多的编码,第一是为了程序的分健壮,第二是更好的重用代码,程序代码就会多出比较多了,上面只是给出一个示例。

  • 相关阅读:
    java中sleep()和wait()区别
    那些年遇到的坑--------“集合转数组”
    HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历
    java.util.ConcurrentModificationException 异常原因和解决方法
    java.lang.Exception: No tests found matching
    https和http的主要区别
    交换性别sql
    判断奇偶数
    Jmeter安装使用
    java.io.EOFException: Unexpected EOF read on the socket
  • 原文地址:https://www.cnblogs.com/see7di/p/2240009.html
Copyright © 2011-2022 走看看