以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML源码及示例(仅原创和转载) 』 (http://bbs.xml.org.cn/list.asp?boardid=32) ---- XML加ASP实现网页“本地化”(一) (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=8366) |
-- 作者:hsower -- 发布时间:6/19/2004 1:44:00 PM -- XML加ASP实现网页“本地化”(一) 想让你的站点能被来自多个国家的冲浪者看明白吗?无疑,这就需要提供多个语言版本的页面内容,也就是所谓的“本地化”功能。最容易想到的方法就是分别编写多种语言的页面内容,然后放置到不同的目录下,再在首页上添加导航到各自语言位置的链接。很明显,这样的处理方式将浪费许多包含公共元素以及设计框架的空间,而且修改、维护也很烦琐。有什么好方法吗?当然,本文就介绍如何结合使用XML与ASP技术实现这个目的。 本文将讨论如下几个方面的内容:创建包含语言资源的XML文档、使用ASP创建Web页面模板、使用XPath语法和MSXML3分析器定位XML文档中的目标内容以及动态地在HTML流中插入语言字符串。 准备条件 功能展示 创建包含语言资源的XML文档 <?xml version="1.0" encoding="UTF-8"?> <languages> <language xml:lang="en" engname="English" langname="English" charset="Windows-1252"> <title>Localize ASP with XML</title> <firstname>First name</firstname> <lastname>Last name</lastname> <prefix>Prefix</prefix> <suffix>Suffix</suffix> <address1>Address</address1> <address2>Address 2</address2> <address3>Address 3</address3> <city>City</city> <region>State/Province</region> <postalcode>Postal code</postalcode> <areacode>Area code</areacode> <telephone>Telephone number</telephone> <submit>OK</submit> <lang>en</lang> <charset>Windows-1252</charset> <langname>English</langname> </language> <language xml:lang="fr" engname="French" langname="franζais" charset="Windows-1252"> <title>Localize ASP with XML - French</title> <firstname>Prénom</firstname> <lastname>Nom</lastname> <prefix>Préfixe (M., Mme, Mlle)</prefix> <suffix>Suffixe/Titre</suffix> <address1>Rue</address1> <address2/> <address3/> <city>Ville</city> <region>Région/Province</region> <postalcode>Code postal</postalcode> <areacode>Indicatif régional</areacode> <telephone>Numéro de téléphone</telephone> <submit>OK</submit> <lang>fr</lang> <charset>Windows-1252</charset> <langname>French</langname> </language> <language xml:lang="sp" engname="Spanish" langname="Espanol" charset="Windows-1252"> <title>Localize ASP with XML - Spanish</title> <firstname>Nombre</firstname> <lastname>Apellido paterno</lastname> <prefix>Prefijo (Sr., Sra., Srta.)</prefix> <suffix>Sufijo o título</suffix> <address1>Línea 1 de dirección</address1> <address2/> <address3/> <city>Ciudad</city> <region>Región, estado o provincia</region> <postalcode>Código postal</postalcode> <areacode>Código de área</areacode> <telephone>Número de teléfono </telephone> <submit>OK</submit> <lang>sp</lang> <charset>iso-8859-1</charset> <langname>Spanish</langname> </language> </languages> xmltrans.xml文件的第一行是XML声明。其中的version属性告诉读者文档符合XML 1.0的标准,encoding属性指示解析器使用压缩版本的Unicode: <?xml version="1.0" encoding="UTF-8"?> 一个XML文档需要一个包含其他元素的根元素。因为这里的例程是包含一些语言,所以就命名根元素为languages: <languages> 作为集合类型,languages元素包含了一个或多个language元素: <language xml:lang="en" engname="English" langname="English" charset="Windows-1252"> 以上language标记包含4个属性。xml:lang属性是其中最重要的,在ASP程序中将通过这个属性值的2字母语言代码搜索字符串组。其他的属性,比如charset,可以为将来的功能扩充而用。 每种语言节点中,我都添加了一个元素作为变量,其中含有显示在HTML页面上的文字。XML允许使用有含义的名字作为自定义标记,比如,我使用<title>元素包含HTML页面的标题。同样,<firstname>元素包含字符串"First name"。 <title>Localize ASP with XML</title> <firstname>First name</firstname> 最后,良好格式的XML文档包含了一整套对应于HTML页面的字符串。下图显示了XML文件中的标记和English语言字符串。注意,现在这里只讨论English版本,以后可以添加更多种语言。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |