最近要做个双语的网站,实在不想去写两套同样的代码。研究了下,利用本地xml语言文件实现翻译。本文章只说核心实现。
1、准备语言文件lang.xml;
<?xml version="1.0" encoding="utf-8"?> <lang> <中文>Chinese</中文> <首页>Home</首页> </lang>
2.编写翻译类C.cs
public class C { public XmlDocument xml; public C(XmlDocument x) { this.xml = x; } public string T(string str) { try { XmlNode snXmlNode = xml.SelectSingleNode("/lang/" + str); return snXmlNode.InnerText; } catch { return str; } } }
写了一个构造函数,目的是为了提高效率,我们不可能每次调用T方法都去读取一次xml文件吧,这样太浪费性能了。
3.页面使用
XmlDocument xml = new XmlDocument(); xml.Load(HttpContext.Current.Server.MapPath("lang.xml")); C item = new C(xml); Response.Write(item.T("中国")); Response.Write(item.T("你好"));
我们每个页面读取了xml文件后,直接传给C类,这样整个页面使用T方法就可以了,不用每次都去读取一次,当然这个地方要判断是否存在xml文件,这里没有判断。
这是利用本地xml实现的方法,我之前也百度各个大神的方法,其中有一个可取的是,打开网站的时候读取一次xml文件,然后存入缓存,个人觉得这样全局只读取一次很好,知道有这种方法就行,具体实现很简单,操作缓存百度一下吧。
ps:如果有其他大神有自己的方法或者对本人的想法有见解欢迎留言交流。
留下您的脚步
最近评论