.NET中英文转换的实现

首先定义一个执行中英文转换的类
using System;
using System.Reflection;
using System.Resources;
using System.Text;
using System.Diagnostics;
namespace CommonClass
{
    
/// <summary>
    
/// ResourcesCollection 的摘要说明。
    
/// </summary>

    public class ResourcesCollection
    
{
        
private ResourceManager resourceManager;

        
/// <summary>
        
/// Constructs an instance using the specified Assembly. 
        
/// </summary>
        
/// <param name="assembly">The Assembly to be used.</param>

        public ResourcesCollection(string defaultLanguage,Assembly assembly)
        
{
            resourceManager 
= new ResourceManager(
                assembly.GetName().Name 
+ "." + defaultLanguage, assembly);
        }


        
/// <summary>
        
/// 根据此属性从资源文件中读取信息
        
/// </summary>

        public string this[string name]
        
{
            
get 
            
{
                
return resourceManager.GetString(name);
            }

        }

    }

}


再定义一个Page的基类
using System;
using System.Text;
using System.Globalization;
using System.Reflection;
using System.Web;
using System.Web.UI;
using CommonClass;

public class PageBase : System.Web.UI.Page
{
    
protected static string strDefaultLanguage;
    
protected static ResourcesCollection resources;
    
    
/// <summary>
    
/// 重载 Oninit 方法
    
/// </summary>
    
/// <param name="e"></param>

    protected override void OnInit(EventArgs e)
    
{
        
base.OnInit (e);
                    
        
// 根据不同的语言读取不同的资源文件。
        resources = new ResourcesCollection(
                GetDefaultLanguage(),Assembly.GetExecutingAssembly());

        
// 设置当前请求的原始Url
        strRawUrl = GetRawUrl();

        
//检查页面的权限
            
//Common.CheckAuthority(this,Request);
        }

    
/// <summary>
    
/// 定义一个属性用于页面调用资源文件 该属性是静态属性 
    
/// </summary>

    public static ResourcesCollection Resources
    
{
        
get
        
{
            
return resources;
        }

    }

    
/// <summary>
    
/// 判断默认语言。
    
/// </summary>
    
/// <returns></returns>

    protected string GetDefaultLanguage()
    
{
        
//判断Session 中默认语言的设置。
        if(Session["DEFAULTLANGUAGE"!= null)
        
{
            strDefaultLanguage 
= Session["DEFAULTLANGUAGE"].ToString();
        }

        
else
        
{
            
// 取得用户浏览器默认语言。
            string strLanguage = Request.UserLanguages[0];

            
// 如果默认语言的前两个字符为“en”则为英语。
            if(strLanguage.Substring(02).Equals("en"))
            
{
                strDefaultLanguage 
= "en";
            }

            
else
            
{
                
// 如果前两个字符不为“en”则设置默认语言为中文。
                strDefaultLanguage = "zh-cn";
            }


            
// 将默认语言值写入Session 。
            Session["DEFAULTLANGUAGE"= strDefaultLanguage;
        }


        
return strDefaultLanguage;
        }

}

然后在页面中 页面继承PageBase 类 请注意引用资源文件的方式

  // 引用资源文件
  lblTitle.Text = Resources["ModuleName27"];
  lblRoleNume.Text = Resources["RoleName"];
  lblRemark.Text = Resources["Remark"];
  btnAdd.Text = Resources["Add"];

注:省略了刚进系统时的用户自定义的资源文件引用的判断Session["DEFAULTLANGUAGE"],读者可自行加上

posted @ 2006-06-26 17:21  晓岚  阅读(6299)  评论(49编辑  收藏  举报