我的作法为: 
    1.我先作个首页, 
    <form id="form1" runat="server" > 
     <div > 
         <asp:Label ID="lanuage" runat="server" >Label </asp:Label > 
         <asp:DropDownList ID="drp_language" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_language_SelectedIndexChanged" 
            Width="152px" > 
         </asp:DropDownList > 
         <asp:Button ID="btnLogon" runat="server" Text="Button" OnClick="btnLogon_Click" / > </div > 
     </form > 后台: 
     public partial class index : System.Web.UI.Page 
    { 
        public static string strName;         protected void Page_Load(object sender, EventArgs e) 
        { 
            if (!Page.IsPostBack) 
            { 
                init(); 
            }         } 
        private void init() 
        { 
            drp_language.DataSource = TangramMiniWeb.ResourceManager.GetSupportedLanguages(); 
            drp_language.DataTextField = "name"; 
            drp_language.DataValueField = "key"; 
            drp_language.DataBind();             if (drp_language.Items.Count  > 0) 
            { 
                strName = drp_language.SelectedValue; 
                ShowText(drp_language.Items[0].Value); 
            } 
        } 
        private void ShowText(string userlanguage) 
        { 
            btnLogon.Text = TangramMiniWeb.ResourceManager.GetString("GO", userlanguage); 
            //strName = btnLogon.Text = MultLanuage.ResourceManager.GetString("btnLogon", userlanguage); 
            lanuage.Text = TangramMiniWeb.ResourceManager.GetString("lanuage", userlanguage);         } 
        protected void drp_language_SelectedIndexChanged(object sender, EventArgs e) 
        { 
            ShowText(drp_language.SelectedValue); 
            strName = drp_language.SelectedValue; 
        } 
        protected void btnLogon_Click(object sender, EventArgs e) 
        { 
            Session["selectvalue"] = drp_language.SelectedValue.ToString(); 
            Response.Redirect("tan/Default.aspx"); 
        } 
    } 2.还写了个语言的基类: 
    public class ResourceManager 
{ public ResourceManager() 

            // } 
public static string GetString(string name,string userLanguages) 

            //通过指定属性名返回包含此属性名相关信息的hash表 
Hashtable source=LoadSorce(userLanguages); 
            if (source != null) 
            { 
                //不为空就返回其值  
                return source[name].ToString(); 
            } 
            else 
            { 
                //为空 
                return ""; 
            } } 
          //获取语言目录数据,返回一个数据视图 
public static DataView GetSupportedLanguages() 

string cacheKey = "Languages"; 
        //判断当前数据缓存中是否为空 
if(HttpContext.Current.Cache[cacheKey]==null) 

                //获取xml文件存放的物理路径 
string PathFile=System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath+"/Languages/languages.xml"); 
DataSet objDataSet=new DataSet(); 
                // 
objDataSet.ReadXml(PathFile); 
CacheDependency dp = new CacheDependency(PathFile); 
HttpContext.Current.Cache.Insert(cacheKey,objDataSet.Tables[0].DefaultView,dp,DateTime.MaxValue, TimeSpan.Zero); 
             } 
 return (DataView)HttpContext.Current.Cache[cacheKey];          } 
//获取语言语句字典 public  static Hashtable LoadSorce(string userLanguages) 

            //获取xml文件存放的物理路径 
string PathFile=System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath+"/Languages/"+userLanguages+"/Resources.xml"); 
//建一个XML DOCUMENT的实例对象 
            System.Xml.XmlDocument LagXml=new XmlDocument(); 
            //导入要操作的XML文件 
LagXml.Load(PathFile); 
            // 
Hashtable supportedLanguages;  
            //建立HASHTABLE的对象实例 
supportedLanguages = new Hashtable(); 
//遍历XML文件中的所有子节点 
foreach (XmlNode n in LagXml.SelectSingleNode("root").ChildNodes)  

if (n.NodeType != XmlNodeType.Comment)  

                    //把子节点的键/值对添加到hashtable中 
supportedLanguages.Add(n.Attributes["name"].Value,n.InnerText); 
} } 
            //返回hashtable 
return  supportedLanguages; 

} 3.写了个XML的中文和英文的RESOUTCES.XML,当我选择英文时,根据设置读取英文网页的XML资源文件中定义的标签文字就行了吧。我选择英文了,就用那个XML文件 ID相同的英文标识来替换网页中相同的ID标记呀。 
这个小测试是成功的。 
4.我现在要把全站都用中文和英文业显示,那方法为 
就拿一个about.aspx这个网页来说吧,我说我的个人方法 
先作完about.aspx的中文页面,然后调用我那个语言的基类,再写这个about.aspx的XML的2种语言的XML的文件吗。  最后每一个页面都要这样完成吗,方法正确吗请各位老哥,老姐,先生女士 小姐们指出? 谢谢