分享

Asp.NET 全球化与本地化

 ThinkTank_引擎 2016-11-24

ASP.NET通过资源文件来实现全球化与本地化。

全球化:就是实现不同语言的显示

本地化:就是一种语言多种版本,比如英式英语与美式英语

资源文件分为全局资源文件(App_GlobalResources)以及局部资源文件(App_LocalResources)

a、如果要创建全局资源文件,则必须有名为 App_GlobalResources 的文件夹。若要创建该文件夹,请在“解决方案资源管理器”中右击网站的名称,然后单击“添加文件夹”,再单击“App_GlobalResources 文件夹”。应用程序中只能有一个这样的文件夹,且它必须位于应用程序的根目录下

b、如果要创建局部资源文件,则必须有名为 App_LocalResources 的文件夹。若要创建该文件夹,请在“解决方案资源管理器”中右击网站的名称,然后单击“添加文件夹”,再单击“App_LocalResources 文件夹”。应用程序中可以有多个这样的文件夹,且它们可以位于应用程序中的任意一级目录中。

 使用局部资源文件:

首先我们创建一个Login.aspx页面,然后在App_LocalResources中创建一个Login.aspx.resx资源文件

Login.aspx部分代码如下:

[csharp] view plain copy
  1. <div>  
  2.         <asp:Label ID="lblName" runat="server" meta:resourcekey="lblName"   
  3.            ></asp:Label>  
  4.     </div>  


 

在Login.aspx.resx中添加如下键值:

 名称                    值

lblName.Text       登录名

 

这样运行lblName的Text值为“登录名”

 

那如何让lblName的Text值显示为英文呢?

我们需要在App_LocalResources中创建一个Login.aspx.en.resx资源文件。并添加如下键值

名称                    值

lblName.Text      LoginName

再在Login.aspx后台页面添加如下代码:

[csharp] view plain copy
  1. protected override void InitializeCulture()  
  2. {  
  3.       
  4.         Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");  
  5. }  

这样lblName的Text值显示为“LoginName”

 

注意事项:aspx页面必须和App_LocalResources文件夹在同一个目录下,也就说如果你把Login.aspx页面放在Account文件夹下,那就必须在Account文件夹下创建App_LocalResources文件夹。

局部资源文件名称规则:

     a、页面或控件名称.扩展名.语言.resx

     b、页面或控件名称.扩展名.语言-区域性.resx

 

从 ASP.NET 网页生成局部资源文件:

      a、打开要创建资源文件的页。

      b、切换到“设计”视图

      c、在“工具”菜单中,单击“生成局部资源文件“

使用全局资源文件:

在Login.aspx页面添加如下代码

[csharp] view plain copy
  1. <asp:Button ID="Button2" runat="server"   
  2.             Text="<%$ Resources:LocalizedText, Msg1 %>"/>  


在App_GlobalResources文件夹下创建LocalizedText.resx,并添加如下键值:

名称               值

Msg1             按钮

那么Button2就会显示“按钮”文字

全局资源的多语言和局部资源的多语言一样的实现。

全局资源命名规则: (名称可以随意命名)

       a、名称.语言.resx

       b、名称.语言-区域性.resx


  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多