Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Tùy chọn ngôn ngữ hiển thị cho ứng dụng trong lập trình C#

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định Tùy chọn ngôn ngữ hiển thị cho ứng dụng trong lập trình C#

    Trong quá trình xây dựng từ điển , tôi đã tìm hiểu cách tạo ra ứng dụng hiển thị nhiều ngôn ngữ giống lạc việt có giao diện Anh - Việt, tôi đã nghĩ rất nhiều giải pháp củ chuối, cuối cùng dot.net lại hỗ trợ luôn chức năng này:
    dot.net hỗ trợ ứng dụng hiển thị nhiều ngộn ngữ. để ứng dụng của bạn có thể hỗ trợ nhiều ngôn ngữ bạn hãy làm như sau:

    bạn click vào form sau đó click vào window property của form, chọn tìm thuộc tính language, sau đó bạn hãy chọn một ngôn ngữ, sau đó bạn hãy cài đặt các thuộc tính Text của các button, checkbox...,
    vd: nếu bạn chon thuộc tính language cho form là: Vietnamese, bạn hãy dùng tiếng việt cho tất cả các control trên form.

    sau đó bạn build lại project.

    tương tự, nếu như bạn muốn ứng dụng của bạn có hỗ trợ thêm tiếng anh, bạn hãy chọn lại thuộc tính language cho form là: English, sau đó hãy dùng tiếng việt cho tất cả các control trên form

    sau đó bạn lại build lại project.

    sau khi build project lai, trong thu muc bin/Debug của ứng dụng, sẽ xuất hiện các thư mục tương ứng với ngôn ngữ bạn chon, có chứa các file .resource.dll


    để ứng dụng hiện thị ngôn ngữ mà bạn chon, bạn hãy thêm dòng code sau trong sự kiện form_load hoặc constructor

    Thread.CurrentThread.CurrentUICulture = new CultureInfo("vi-VN"); //hiển thị ngôn ngữ việt nam
    Nguyễn Thanh Danhbên dot.net.vn
    àh quên, bạn phải thêm dòng code sau

    Thread.CurrentThread.CurrentUICulture = new CultureInfo("vi-VN"); //hiển thị ngôn ngữ việt nam

    trước khi gọi hàm InitializeComponent();
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  2. #2
    Ngày gia nhập
    07 2007
    Bài viết
    41

    cái này mỗi lần muốn đổi lại cần restart lại form, có ai khác có cách change luôn khi runtime mà không load lại form không.

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Mình tạm thời wrap lại thành 1 lớp gọi là UILangChanger. Code cũng khá đơn giản.

    Visual C# Code:
    1.      /// <summary>
    2.     /// Class used for changing user interface : language
    3.     /// </summary>
    4.     public class UILangChanger
    5.     {
    6.         private object[] localizableObj;
    7.         private ComponentResourceManager resourceManager;
    8.  
    9.         public static String Vietnamese = "vi-VN";
    10.         public static String English = "en-US";
    11.  
    12.         public String CultureName
    13.         {
    14.             get { return Thread.CurrentThread.CurrentUICulture.Name; }
    15.             set
    16.             {
    17.                 try
    18.                 {
    19.                     Thread.CurrentThread.CurrentUICulture = new CultureInfo(value);
    20.                 }
    21.                 catch (System.Exception)
    22.                 {
    23.                     // chose English as default language
    24.                     Thread.CurrentThread.CurrentUICulture = new CultureInfo(English);
    25.                 }
    26.             }
    27.         }
    28.  
    29.         public UILangChanger(object[] arrayObj)
    30.         {
    31.             localizableObj = new object[arrayObj.Length];
    32.  
    33.             for (int i = 0; i < arrayObj.Length; ++i)
    34.                 localizableObj[i] = arrayObj[i];
    35.         }
    36.  
    37.          //--------------------------------------------------------------------------
    38.         // - Function:  void ApplyResources(Type targetForm)
    39.         //
    40.         // - Purpose:   apply the resources to the target form
    41.         //--------------------------------------------------------------------------
    42.         public void ApplyResources(Type targetForm)
    43.         {
    44.             resourceManager = new ComponentResourceManager(targetForm);
    45.  
    46.             foreach(object obj in localizableObj)
    47.             {
    48.                 // object is Control
    49.                 Control ctrl = obj as Control;
    50.                 if (ctrl != null)
    51.                 {
    52.                     resourceManager.ApplyResources(ctrl, ctrl.Name);
    53.                     continue;
    54.                 }
    55.  
    56.                 // object is ToolStrip
    57.                 ToolStrip toolStrip = obj as ToolStrip;
    58.                 if(toolStrip != null)
    59.                 {
    60.                     resourceManager.ApplyResources(toolStrip, toolStrip.Name);
    61.                     continue;
    62.                 }
    63.  
    64.                 // object is ToolStripItem
    65.                 ToolStripItem item = obj as ToolStripItem;
    66.                 if(item != null)
    67.                 {
    68.                     resourceManager.ApplyResources(item, item.Name);
    69.                     continue;
    70.                 }
    71.             }
    72.         }
    73.     }


    Về vấn đề này, mình có viết một tut, anh em nào thích thì tham khảo Thân.
    Attached Files Attached Files
    Keep moving forward!

    ... Retired ...

  4. #4
    Ngày gia nhập
    07 2007
    Bài viết
    41

    Cái này cũng xài rùi, nó chỉ áp dụng được cho các control có các giá trị local không đổi, chứ trong quá trình runtime nếu giá trị nào đó bị thay đổi rùi mà lại ApplyResource thì tiêu, giá trị lại trở về giá trị Init mất.

  5. #5
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Cái này cũng xài rùi, nó chỉ áp dụng được cho các control có các giá trị local không đổi, chứ trong quá trình runtime nếu giá trị nào đó bị thay đổi rùi mà lại ApplyResource thì tiêu, giá trị lại trở về giá trị Init mất.
    Uh, thì cách này đâu có hay đâu. Làm chống cháy vậy mà
    Keep moving forward!

    ... Retired ...

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định Tùy chọn ngôn ngữ hiển thị cho ứng dụng trong lập trình C#

    Có cái này , hướng dẫn đầy đủ như cách trên , mở rộng cả context menu ,messenger.. và có source ví dụ , nếu không muốn tắt ứng dụng bật lại thì dùng Application.Restart() nhé chớp phát là xong thôi, mà bác tham vừa thôi, trình độ đã .... rồi mà còn
    Attached Files Attached Files
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  7. #7
    Ngày gia nhập
    05 2009
    Bài viết
    3

    chào bạn nhc1987!hướng dẫn của bạn đúng ngay cái mình đang cần, nhưng khi mình cho chạy thử trực tiếp trên microsoft visual studio thì OK, còn khi mình tạo thành file Setup thì khi click vào nó vẫn không thay đổi gì cả, có phải trong khi tạo setup mình đã thiếu gì rồi phải không!mong bạn có thể giải đáp giúp mình với,mình xin cảm ơn bạn trước..^^

  8. #8
    Ngày gia nhập
    12 2008
    Bài viết
    235

    Thủ công tý xem sao
    Attached Files Attached Files

  9. #9
    Ngày gia nhập
    08 2011
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi tienlbhoc Xem bài viết
    Có cái này , hướng dẫn đầy đủ như cách trên , mở rộng cả context menu ,messenger.. và có source ví dụ , nếu không muốn tắt ứng dụng bật lại thì dùng Application.Restart() nhé chớp phát là xong thôi, mà bác tham vừa thôi, trình độ đã .... rồi mà còn
    Dơnload không được bạn ơi, click dow thì ra file *.gif

Các đề tài tương tự

  1. tùy biến url đa ngôn ngữ trong asp.net
    Gửi bởi trungqn trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 25-02-2012, 03:42 PM
  2. Graphic Cách tùy biến giao diện Winform tùy thuộc vào nhóm người dùng
    Gửi bởi dailuong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 19-12-2011, 08:43 PM
  3. Tùy chọn ngôn ngữ hiển thị trong ứng dụng winform
    Gửi bởi Promise Forever trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 02-10-2011, 10:49 PM
  4. Cách tùy biến ListBox trong C# (giống Render trong Java)?
    Gửi bởi quanghoa trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 02-05-2011, 06:06 PM
  5. Tùy chọn việc mở file trong C#
    Gửi bởi slk_at trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 22-08-2010, 05:58 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn