| Có rất nhiều cách để làm ứng
dụng website đã ngôn ngữ, từ đơn giản đến phức tạp. Trong Dot Net FrameWork, có 2 đối tượng giúp ta làm việc này:
- ResourceManager (System.Resources.ResourceManager)
- CultureInfo (System.Globalization.CultureInfo)
Ứng dụng này mình sẽ chỉ làm 2 Ngôn ngữ, đó
là tiếng việt và tiếng anh. Vì vậy, đầu tiên chúng ta sẽ tạo
ra 2 lớp có đuôi .resx. Đó chính là Resource File. Một lớp chúng ta sẽ đặt tên là SiteMap.resx và lớp kia có tên là SiteMap.en-US.resx.
Các bạn hãy để ý tên của 2 file trên nhé. Ở đây, File
SiteMap.resx sẽ là file nguồn mặc định. Các giá trị nhập vào
sẽ như sau:

Bạn chỉ cần quan tâm đến 2 cột: Name và Value. Còn dưới đây là file SiteMap.en-US.resx:

2 File có cùng tên, nhưng về giá trị thì 1 file
mặc định sẽ là tiếng việt, còn file kia sẽ có giá trị là
tiếng anh. Các bạn có thể tham khảo thêm về CultureInfo ở địa chỉ sau: http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx .
Quay trở lại với ứng dụng, sau khi tạo ra 2 lớp trên, chú ý là phải đặt chúng ở trong thư mục App_GlobalResources nhé.
Chúng ta phải sử dụng 3 thư viện sau:
- System.Globalization
- System.Threading
- System.Resources
Trong Trang Page_Load ta chỉ cần viết lệnh sau:
ResourceManager rm;
CultureInfo ci;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN");
rm = new ResourceManager("Resources.SiteMap", System.Reflection.Assembly.Load("App_GlobalResources"));
ci = Thread.CurrentThread.CurrentCulture;
LoadString(ci);
}
else
{
rm = new ResourceManager("Resources.SiteMap", System.Reflection.Assembly.Load("App_GlobalResources"));
ci = Thread.CurrentThread.CurrentCulture;
LoadString(ci);
}
}
Hàm LoadString ở đây có mục đích để thay đổi các giá trị của đối tượng:
public void LoadString(CultureInfo ci)
{
lblHeader1.Text = rm.GetString("Header1", ci);
lblHeader2.Text = rm.GetString("Header2", ci);
lblLang.Text = rm.GetString("Lang",ci);
lnkHome.Text = rm.GetString("Home", ci);
lnkAbout.Text = rm.GetString("About", ci);
lnkLink.Text = rm.GetString("Link", ci);
HyperLink1.Text = rm.GetString("Home", ci); ;
HyperLink2.Text = rm.GetString("About", ci);
HyperLink3.Text = rm.GetString("Link", ci);
Login1.LoginButtonText = rm.GetString("LoginButtonText",ci);
Login1.TitleText = rm.GetString("LoginTitle",ci);
Login1.UserNameLabelText = rm.GetString("LoginUser",ci);
Login1.PasswordLabelText = rm.GetString("LoginPass",ci);
Login1.RememberMeText = rm.GetString("LoginRemember",ci);
}
Ứng dụng đã cơ bản hoàn thành. Chỉ còn viết sự kiện cho các button để thay đổi ngôn ngữ là xong:
protected void ibtEnglish_Click(object sender, ImageClickEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
LoadString(Thread.CurrentThread.CurrentCulture);
}
protected void ibtVietNamese_Click(object sender, ImageClickEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN");
LoadString(Thread.CurrentThread.CurrentCulture);
} Theo
.NET Việt Nam Số lượt đọc:
702
-
Cập nhật lần cuối:
17/04/2008 12:29:28 AM | SharePoint Server 2007 (MOSS 2007) 27/08/2008 06:47' PM Tìm hiểu các đặc điểm nổi bật của MOSS
Working with XML and JavaScript 15/06/2008 01:11' AM As noted previously, Version 6 JavaScript browsers seem to be coming
together over the W3C DOM. Several key methods and properties in JavaScript
can help in getting information from an XML file. In the section, a very
simple XML file is used to demonstrate pulling data from XML into an HTML
page using JavaScript to parse (interpret) the XML file Xem mã của 1 trang aspnet 06/06/2008 07:03' PM Mô tả cấu trúc chung của 1 file aspnet
Giới thiệu ASP.NET 06/06/2008 07:01' PM ASP.NET là Active Server Pages .NET (.NET ở đây là .NET framework). Nói
đơn giản, ngắn và gọn thì ASP.NET là một công nghệ có tính cách mạng
dùng để phát triển các ứng dụng về mạng hiện nay cũng như trong tương
lai (ASP.NET is a revolutionary technology for developing web
applications) Xây dựng ứng dụng tin tức đơn giản bằng ASP.NET 2.0 06/06/2008 04:29' PM xây
dựng một ứng dụng quản lý tin tức đơn giản nhưng được phát triển trên
một mô hình chuẩn 3 lớp logíc. Loạt bài viết sẽ hướng dẫn bạn các bước
cơ bản trong quá trình phát triển một ứng dụng: từ bước phân tích yêu
cầu, phân tích chức năng, thiết kế hệ thống và hiện thực. Tổng quan,
loạt bài viết sẽ gồm các phần sau đây:
Giới thiệu ứng dụng tin tức, phân tích yêu cầu và chức năng Phân tích và thiết kế ứng dụng theo mô hình 3 lớp logíc Phát triển ứng dụng, phần quản lý Phát triển ứng dụng, phần trình bày tin tức Tổng kết và hướng phát triển
Mô hình MVC 01/06/2008 09:45' PM MVC, vấn đề khá trừu tượng, và cũng tương đối khá khó áp dụng. Sẵn có thread post hỏi về MVC tui đi tổng hợp lại 1 số cái, hy vọng có ích cho anh em.
Tăng tốc độ hiển thị web28/04/2008 05:22' PM- Tại server: Giảm thiểu những tính toán trên server, tối ưu CSDL, tạo bộ đệm, tối ưu chương trình...
- Đường truyền: Giảm thiểu dữ liệu truyền trên mạng bằng cách giảm
kích thước các file hình, giảm yêu cầu trao đổi dữ liệu giữa server và
client...
- Tại máy client: tối ưu mã html để trình duyệt hiển thị nhanh.
Với chiến lược trên, dưới đây là 10 thủ thuật có thể giúp tăng tốc độ hiển thị trang web.
Bài đã đăng: Asp.net - Làm nổi bật 1 dòng trong DataGrid 02/04/2008 12:52' AM Đây
là một thủ thuật khá đơn giản và hữu ích khi ta làm việc với DataGrid
của Asp.net. Qua bài viết chúng ta có thể hiểu được cơ bản cách làm
việc của DataGrid cũng như cách dùng javascript trong các trang asp.net
Khởi tạo ứng dụng Linux đầu tiên với Visual Studio .NET 2003 IDE 05/06/2005 08:12' PM Bài viết "Create your first Linux application with the Visual Studio .NET IDE in 10 minutes" của hãng Mainsoft giới thiệu tổng quan chung về công nghệ Grasshopper giúp cho các ứng dụng .NET có thể chạy trên Unix/Linux. Tấn công kiểu SQL Injection và các phòng chống trong ASP.NET 07/05/2005 07:46' PM SQL Injection là một trong những kiểu hack web đang dần trở nên phổ biến hiện nay. Bằng cách inject các mã SQL query/command vào input trước khi chuyển cho ứng dụng web xử lí, bạn có thể login mà không cần username và password, remote execution, dump data và lấy root của SQL server. Công cụ dùng để tấn công là một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape, Lynx, ... Vậy khi lập trình web với ASP.NET, chúng ta cần phòng chống như thế nào?
|