ASP.NET多语言方案

1 查检在页面文件的当前路径下的App_LocalResources文件夹中,是否存在与之对应的资源文件

(其命名规则为: 中文:页面文件名+.resx

          英文:页面文件名+.en-us.resx

   例如:登陆页面FileManageLogin.aspx

其中英文资源文件如下:

FileManageLogin.aspx.resx 中文

FileManageLogin.aspx.en-us.resx 英文

    

注:若无请及时沟通.

2 

在页面文件的Page中添加meta:resourcekey="PageResource1"如下

<%@ Page Language="C#" meta:resourcekey="PageResource1"

3 在分别在与之对应的中英文资源文件中添加标题

PageResource1.Title(资源名称必须是这个,资源值根据实际需要进行修改) 等资源

4修改JS中的中文

//验证是否重复提交

        if (subed == true)

        {

          alert('<%=this.GetLocalResourceObject("资源名称").ToString()%>');

          return false;

        }

 

5 页面上的中文

用户名 修改为(非服务器控件,即没有ASP:控件名)

<%=this.GetLocalResourceObject("UserName").ToString() %> 

 或用(服务器控件,即有ASP:控件名)

<%$ Resources:ST_EmpCount%>

5 后台中的字符串

                Res_SubmitBGImg = this.GetLocalResourceObject("btSubmitImg").ToString();

 

 

 

备注:

1         资源名称的命名规则 以页面文件的单词第一个字母大写为前缀 + “_”

例如:FileManageLogin.aspx页面中的"密码"->”FML_Psw”

 

2         必须检查.aspx以及对应的.cs 文件中的字符串.

 

接下去的问题是怎么通过程序本身的方式来更换语言项。

  1. 可以往web.config中增加<globalization culture="en-US" uiCulture="en-US"/>来改变程序默认使用的语言项。

  2.可以往global全局应用程序中增加如下代码

  void Application_BeginRequest(Object sender, EventArgs e)
  {
  try
  {
  if (Request.Cookies["lang"] != null)
  {
  System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(Request.Cookies["lang"].Value.ToString());
  System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Request.Cookies["lang"].Value.ToString());
  }
  }
  catch (Exception)
  { }
  }


  即可通过设置变换cookie值来达到即时切换语言的目的,轻松的实现了程序的多语言。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值