Computer - Communication - Control. 3C INC

 
Search
Nhiều người quan tâm
Làm sao lập trình TIẾNG VIỆT vỚI “LẬP TRÌNH C TRÊN WINDOWS”
Cách lập trình điều khiển các con số trên máy tính
CRC (Cyclic Redundancy Check)
Lệnh Print và Write trong VB6
Trong Java, làm thế nào để lấy processor ID (CPU)?
Skip List - đối thủ của cây cân bằng

Lập trình


In bài này Gửi bài viết này cho bạn bè
(Thứ Bẩy, 06/09/2008-1:37 PM)
MultiLanguages Website
Hiện nay, một website đa ngôn ngữ luôn là một yêu cầu không thể thiếu trong cuộc cạnh tranh giữa các công ty thiết kế web. Có thể mọi người nghĩ rằng thật khó để có thể làm một website có nhiều ngôn ngữ như vây. Nhưng với Dot Net, bạn có thể tự làm cho riêng mình một website đa ngôn ngữ, thật đơn giản.

Trong bài trước, mình đã giới thiệu cho các bạn một bài về Dynamic Theme. Bây giờ mình sẽ dựa trên mã nguồn lần trước đã làm để xây dựng website đa ngôn ngữ. 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. Mình sẽ giới thiệu cách làm thật đơn giản để cho mọi người cùng tham khảo. Dưới đây là giao diện của ứng dụng:

MultiLanguage Website

MultiLanguages Website

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

Trên đây chỉ là ứng dụng rất cơ bản và đơn giản với mục đích để giới thiệu là chính. Hy vọng các bạn sẽ nghiên cứu chuyên sâu hơn để có thể áp dụng vào thực tế. Các bạn có thể download mã nguồn tại đây.


Nguồn: ngocdv - zensoft

3Cdotcom  
Dịch vụ hosting tốt nhất cho dữ liệu" www.hosting.net.vn

Download các phần mềm miễn phí được ưa dùng nhiều nhất

    [ Các bài mới ]
    [ Các bài đã đăng ]
    Download Unikey - PM gõ tiếng Việt phổ biến nhất
    Chương trình nhỏ gọn, free.
    Thủ thuật hay với Gmail
    Tham khảo các tính năng độc đáo có thể bạn chưa biết
     
     
     
    COMPUTER - COMMUNICATION - CONTROL 3C, INC.
    Số 6 - Láng Hạ - Ba Ðình - Hà Nội; Tel: 84.4.8312695; Fax: 84.4.8311925
    © 2007 3C INC, All rights reserved. Designed and Developed by 3Csoft