MultiLanguages Website


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:

MultiLanguage Website

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:

MultiLanguages Website

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);
}

Advertisements

7 tiện ích miễn phí cho Windows 7


Tuy Windows 7 vừa mới được phát hành, nhưng điều đó không có nghĩa là bạn không thể tìm thấy những tiện ích miễn phí để tinh chỉnh hệ thống, bổ sung các tính năng hay phần mềm giúp bạn nâng cấp trơn tru từ Windows XP hoặc Vista.

Microsoft Security Essentials

Giống như phiên bản tiền nhiệm của nó, Windows 7 không được trang bị công cụ chống phần mềm độc hại như virus và spyware. Bạn có thể trả tiền đề mua các dịch vụ của McAfee hay Symantec, nhưng tại sao lại phải bận tâm với điều này khi Microsoft Security Essentials cung cấp bảo vệ vững chắc cho máy tính tại nhà, và nó hoàn toàn miễn phí. Nếu bạn thích phần mềm bảo mật của bên thứ ba, bạn cũng có thể dùng AVG Anti-Virus Free Edition để thay thế.

Ninite

Để nâng cấp từ Windows XP lên Windows 7, người dùng phải cài đặt mới hoàn toàn lại hệ thống và sau đó lại phải đối mặt với quá trình cài lại các ứng dụng, tiện ích. Tại sao ta không cài đặt toàn bộ các phần mềm miễn phí hay mã nguồn mở cùng một lúc? Tiện ích Ninite sẽ giúp bạn làm việc này.

Trước tiên, hãy vào trang web Ninite và chọn các chương trình bạn muốn (ví dụ, Firefox, iTunes, và Skype). Tiếp theo, tải Ninite về và Ninite sẽ tự động cài đặt các ứng dụng mà bạn đã chọn.

Windows Live Photo Gallery

Để giữ cho Windows 7 nhẹ và nhanh, tránh các hiện tượng làm chậm hệ thống như Vista – Microsoft đã bỏ bớt một vài tiện ích trong hệ điều hành mới. Một trong những ứng dụng rất nên tải về và cài thêm là Photo Gallery – một trình quản lý, biên tập ảnh miễn phí, dễ sử dụng và cho phép tải lên mạng để chia sẻ như Picasa của Google nhưng với dung lượng lưu trữ cho phép lên tới 25GB của Skydrive (miễn phí).

Windows Easy Transfer

Khi muốn cài đặt Windows 7 mà không nâng cấp trực tiếp được từ XP hoặc Vista thì người dùng sẽ phải đối mặt với việc phải cài lại toàn bộ ứng dụng. Để khắc phục tình trạng này, người dùng nên tải tiện ích Windows Easy Transfer để sao lưu toàn bộ các cấu hình ứng dụng và hệ thống của XP hoặc Vista để cập nhật vào hệ thống Windows 7 sau khi được cài mới. Windows Easy Transfer có thể sao lưu cấu hình, ứng dụng vào một ổ USB, đĩa quang hoặc một ổ đĩa mạng.

Windows Ultimate Tweaker v2

Đây là một công cụ tùy chỉnh hệ thống miễn phí cung cấp hàng chục các tùy chọn cấu hình cho giao diện người dùng, mạng, bảo mật, và thiết lập hệ thống. Nếu bạn muốn cá nhân hóa Windows 7, ứng dụng này là dành cho bạn.

Image Resizer PowerToy Clone

Khi cài đặt tiện ích này, nếu kích chuột phải vào một hoặc nhiều hình ảnh đã chọn trong Windows Explorer, người dùng có thể chỉnh ảnh theo bốn kích cỡ: nhỏ (640 by 480); trung bình (800 by 600); lớn (1024 x 768); hoặc máy tính cầm tay (240 by 320). Người dùng cũng có có thể tạo ra các kích cỡ tùy chỉnh của riêng mình.

Windows 7 Upgrade Advisor

Trước khi nâng cấp lên Windows 7, bạn nên tải và chạy tiện ích này. Tiện ích này sẽ quét máy tính của bạn để xem liệu máy của bạn có sẵn sàng cho Windows 7 không. Nếu phát hiện bất kỳ vấn đề gì như bộ nhớ không đủ, phần cứng không tương thích hay phần mềm đã lỗi thời – phần mềm này sẽ cho bạn biết trong một bản báo cáo tóm tắt.