ASP.NET Tutorial/I18N/Resource file
Содержание
Explicit Localization Expressions
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e) { lblMessage.Visible = true; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Simple Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button id="btnSubmit" Text="Click Here!" OnClick="btnSubmit_Click" Runat="server" />
<asp:Label id="lblMessage" Text="Thank You!" Visible="false" Runat="server" />
</form>
</body> </html> A localizable version of the above page. <%@ Page Language="C#" UICulture="auto" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e) { lblMessage.Visible = true; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Localizable Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button id="btnSubmit" Text="<%$ Resources:ClickHere %>" OnClick="btnSubmit_Click" Runat="server" />
<asp:Label id="lblMessage" Text="<%$ Resources:ThankYou %>" Visible="false" Runat="server" />
</form>
</body> </html>
Associate a resource file with the page. All the resource files that you want to associate with a page must be added to a special folder named App_LocalResources. You create the App_LocalResources folder in the same folder as the page that you want to localize. You associate a resource file in the App_LocalResources folder with a particular page by using the following file naming convention: page_name.[culture name].resx For example, all the following resource files are associated with the LocalizablePage.aspx page: LocalizablePage.aspx.resx LocalizablePage.aspx.es-PR.resx LocalizablePage.aspx.es.resx
The first resource file is the default resource file. Finally, the third resource file name includes the neutral culture name es (Spanish). If a user"s preferred language is Spanish, but not Puerto Rican Spanish, then the contents of this resource file are loaded.
File: App_LocalResources\LocalizablePage.aspx.es.resx Name Value ClickHere ccc ThankYou ttt</source>
Implicit Localization Expressions
<source lang="csharp">
File: LocalizablePageImplicit.aspx Always create a default localization file. If you don"t create a default localization file, other culture-specific localization files are ignored.
<%@ Page Language="C#" UICulture="auto" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e) { lblMessage.Visible = true; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Localizable Page Implicit</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button id="btnSubmit" meta:resourceKey="btnSubmit" Text="Click Me!" ToolTip="Click to show message" OnClick="btnSubmit_Click" Runat="server" />
<asp:Label id="lblMessage" meta:resourceKey="lblMessage" Text="Thank You!" Visible="false" Runat="server" />
</form>
</body> </html>
File: App_LocalResources\LocalizablePageImplicit.aspx.es.resx Name Value btnSubmit.Text ttt btnSubmit.ToolTip tt lblMessage.Text t</source>
Retrieving Local Resources Programmatically
<source lang="csharp">
File: ProgramLocal.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
void Page_Load() { string welcomeMessage = (string)GetLocalResourceObject("welcomeMessage"); lblMessage.Text = String.Format(welcomeMessage, "Steve"); }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Program Local Resource</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblMessage" Runat="server" />
</form>
</body> </html> File: App_LocalResources\ProgramLocal.aspx.es.resx Name Value welcomeMessage Welcome {0} to our website!</source>
Using Local Resources with Page Properties
<source lang="csharp">
<%@ Page Language="C#" UICulture="auto" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title><asp:Literal Text="<%$ Resources:Title %>" runat="Server" /></title>
</head> <body>
<form id="form1" runat="server">
Page Explicit Localization
</form>
</body> </html></source>
You also can use implicit resource expressions when setting the page title.
<source lang="csharp">
<%@ Page Language="C#" UICulture="auto" meta:resourceKey="page" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Page Title</title>
</head> <body>
<form id="form1" runat="server">
Page Implicit Localization
</form>
</body> </html></source>