Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASP .NET 2.0 Beta Preview - B. Evjen.pdf
Скачиваний:
26
Добавлен:
24.05.2014
Размер:
15.33 Mб
Скачать

Chapter 3

\Themes folder

Themes are a new way of providing a common look and feel to your site across every page. You implement a theme by using .skin file, CSS files, and images used by the server controls of your site. All these elements can make a Theme, which is then stored in the \Themes folder of your solution. By storing these elements within the \Themes folder, you ensure that all the pages within the solution can take advantage of the theme and easily apply its elements to the controls and markup of the page. Themes are discussed in great detail in Chapter 7 of this book.

\Resources folder

Resource files are string tables that can serve as data dictionaries for your applications when these applications require changes to content based on things such as changes in culture. You can add Assembly Resource Files (.resx) to this folder, and they are dynamically compiled and made part of the solution for use by your .aspx pages. When using ASP.NET 1.0/1.1, you were required to use the resgen.exe tool and to compile your resource files to a DLL or EXE for use within your solution. Now it is considerably easier to deal with resource files in ASP.NET 2.0.

In addition to strings, you can also add images and other files to your resource files. For an example of how to use resource files to create a multilingual ASP.NET 2.0 application, first create the \Resources folder in your application. For this example, create two resource files in this folder — Resource.resx and Resource.fi-FI.resx. The first file, Resource.resx is the default language file using American English. The second file is for the same text, but in the Finnish language. Hence, this file uses fi-FI in its name. When someone with a browser culture of fi-FI invokes the page, he sees the information that comes from this file (Resource.fi-FI.resx). Everyone else who comes to the site gets the information that comes from the other file (Resource.resx).

Notice (as shown in Figure 3-11) that you can actually do a lot with .resx files. The idea is to create a table of the items that need to be localized (such as text, images, and files). For this example, you can stick to text.

The Resource.resx file should have the following structure:

Name

Value

Answer

Hello there

PageTitle

Sample Page

Question

What is your name?

For the Resource.fi-FI.resx file, you should use the following structure:

Name

Value

Answer

Hei

PageTitle

Näytesivu

Question

Mikä sinun nimi on?

66

Application and Page Frameworks

Figure 3-11

To use these files, create a simple .aspx page using the code from Listing 3-16.

Listing 3-16: A simple ASP.NET page that uses resource files

VB

<%@ Page Language=”VB” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>

<script runat=”server”>

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

Page.Title = Resources.Resource.PageTitle

End Sub

Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = Resources.Resource.Answer & “ “ & Textbox1.Text

End Sub </script>

(continued)

67

Chapter 3

Listing 3-16: (continued)

<html xmlns=”http://www.w3.org/1999/xhtml” > <head id=”Head1” runat=”server”>

<title></title>

</head>

<body>

<form id=”Form1” runat=”server”>

<p><%= Resources.Resource.Question %></p><br />

<asp:textbox id=”Textbox1” runat=”server”></asp:textbox><br /> <asp:button id=”Button1” runat=”server” text=”Submit” onclick=”Button1_Click” />

<p><asp:label id=”Label1” runat=”server”></asp:label></p> </form>

</body>

</html>

C#

<%@ 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(object sender, System.EventArgs e)

{

Page.Title = Resources.Resource.PageTitle;

}

void Button1_Click(object sender, System.EventArgs e)

{

Label1.Text = Resources.Resource.Answer + “ “ + Textbox1.Text;

}

</script>

When this is run, you get the appropriate text based upon the culture setting in your browser. If this setting is not fi-FI, you get the American English text. The page output is shown in Figure 3-12.

Figure 3-12

68