asp.net i18n 支持

来源:互联网 发布:程序员有前途吗 编辑:程序博客网 时间:2024/05/01 05:14

记录防止忘记。

原文地址:Understanding Globalization and Localization in .NET


ASP.net 是支持两种类型的资源文件的:local resource & global resource

1.创建local resource file的方法:

在aspx文件的design 模式下,拖拽控件 ,然后点击菜单选择Tools->Generate Local Resource 则自动生成与aspx文件名一致的resx文件,当然了,也自动创建了App_LocalResource目录,该resx文件就在此目录下面。该目录必须与aspx在同一目录中。


2. 创建global resource file的方法:

vs2013没有提供utility 来自动生成,因此手动创建即可。手动new 一个folder,比如叫App_GlobalResource,然后 add a new item-> resource file 或者是add existing item加入即可。global resource的目录必须在web application的根目录


使用resource的方法:

1.local resource:

<asp:Label ID="label1" runat="server" Text="Local Resource" meta:resourcekey="key_name_label_text"> </asp:Label>
<span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span>
<span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">或</span>
<span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span>

<pre name="code" class="html">label1<span style="font-family: Arial, Helvetica, sans-serif;">.Text = GetLocalResourceObject</span><span style="font-family: Arial, Helvetica, sans-serif;">("label1</span><span style="font-family: Arial, Helvetica, sans-serif;">.Text").ToString();</span>
label1.ToolTip = GetLocalResourceObject("label1.ToolTip").ToString();

2. global resource

<asp:Label ID="label2" runat="server" Text="<%$ Resources:Resource, key_name_label2_text%>" ToolTip="<%$ Resources:Resource, key_name_label2_tooltip%>"> </asp:Label>
Resources:Resource,keyname 结构。Resource是global resource的文件名(或者理解为类名)
label2.Text = GetGlobalResourceObject("Resource", "<span style="font-family: Arial, Helvetica, sans-serif;">key_name_label2_text</span>").ToString(); label2.ToolTip = GetGlobalResourceObject("Resource", "<span style="font-family: Arial, Helvetica, sans-serif;">key_name_label2_tooltip</span>").ToString();

修改UI cultrue 

1.修改成指定locale

1)直接在代码里设置

protected override void InitializeCulture(){ UICulture = "en";}
2)从aspx页面修改

<%@ Page Language="C#" UICulture="en" %>


3)在web.config里面修改

<system.web> <globalization uiCulture="es"/></system.web>

2.修改成auto
set UICulture=”auto”,则locale是随浏览器的locale变化




0 0
原创粉丝点击