PDA

View Full Version : Chương trình đa ngôn ngữ.



shinichi_kudo
15-03-2004, 10:44
Chương trình có giao diện đa ngôn ngữ,đơn giản thì bấm 1 cái: Anh sang Việt hay ngược lại.
Cả trên cái menu và tất cả caption của 1 Form (đặc biệt là header của Datagrid, và trên TabPage..).

Bạn nào làm cái này rồi thì “share” đi. Cám ơn.

zhiivn
21-03-2004, 01:56
Mình cũng rất quan tâm đến vấn đề đó nhưng nghĩ hoài cũng chưa ra.
Nếu có gì tụi mình trao đổi với nhau

thehung
24-03-2004, 12:43
Mình có 1 cách làm khá là đơn giản đó là lưu tất cả vào CSDL sau đó khi nào dùng đến cái nào thì load cái đó ra. Ví dụ mình viết 1 chương trình song ngữ thì trong File CSDL của mình cần 3 trường, 1 trường là ID, 1 trường là TiếngViệt, 1 trường là TiếngAnh. Sau đó thì dựa vào ID bạn có thể cho chương trình của mình hiển thị theo tiếng Anh hay tiếng Việt tuỳ thích

novavn
24-03-2004, 13:04
Cách làm của bạn thehung cũng gần giống với cách làm của mình, nhưng mình làm thì sẽ làm một table có có các field: land_id và các thông tin khác cần hiển thị
VD mình qui định 1 là English, 2 là Vietnamese thì mình lưu thành hai record thứ 1 có land_id = 1 và các field khác chứa giá trị EL
record thứ 2 có lang_id = 2 và các field tiếng Việt!

novavn
24-03-2004, 13:07
Cách làm của mình thì query dễ hơn cách của bạn thehung!

tnonline
27-03-2004, 03:25
Đối với .Net, có thể dùng trực tiếp resources file hoặc satellite assembly.
Dùng cơ sở dữ liệu cũng được nhưng sẽ làm ảnh hưởng đến performance.

zhiivn
27-03-2004, 12:07
Bạn nói rõ hơn được không?

dtt_vn
27-03-2004, 22:09
Vô cùng dễ, chúng ta thiết kế một Class, class đó có nhiệm vụ load lang resource từ text file. :d vậy là xong.
Khi cần thì gọi ra.
Tốt nhất là nên dùng Hashtable vì có key và value

KEM_WALL
27-03-2004, 22:19
neo nói đúng đó, lưu tất cả vào file (tốt nhất là xml), mỗi lang 1 file, với name = tên chuẩn (vd: english : en.xml, vietnam : vn.xml ....)
sau đó load lên xài thui

White Rose
28-03-2004, 02:12
Nếu sử dụng text file hay XML file, nên chú ít cache lại trong bộ nhớ. Bản thân XML không phải là cách thức lưu trữ tốt cho công việc tìm kiếm, hơn nữa việc parse từ XML vào trong bộ nhớ tốn rất nhiều time, việc này mà được lặp lại thường xuyên thì không hay lắm đối với performance.

Cách dùng resource là sử dụng các file .resx, biên dịch rồi assemble nó cùng với code thành một assembly (thường là .dll hay .exe). Sau đấy sử dụng resource manager mà .NET cung cấp để lấy dữ liệu ra. Chi tiết có thể xem trong Quick Start hoặc search trên google.com. Bạn sẽ có rất nhiều ví dụ.

tranducmille
07-04-2004, 12:03
Theo ý mình thì các bạn có thể tìm kiềm trên NET đi, nếu có được thì share cho nhau
cùng học. Các bạn có ý kiến gì khác không.

tnonline
08-04-2004, 02:23
Bạn vào SDK Documentation, rồi tìm Global-Ready Application. Có hướng dẫn cụ thể trong đó về cách tạo và sử dụng resources.

KEM_WALL
08-04-2004, 21:42
nếu dùng resource thì user không thể tùy biến được lang. vd lúc họ muốn add thêm 1 lang hay chỉnh sửa 1 câu sai, mà trong tay không có source thì sao ?

White Rose
09-04-2004, 17:34
nếu dùng resource thì user không thể tùy biến được lang. vd lúc họ muốn add thêm 1 lang hay chỉnh sửa 1 câu sai, mà trong tay không có source thì sao ?
Bạn đã coi phần resource mà bảo "không thể tuỳ biến được"?

basic_delphi
10-04-2004, 01:25
Hình như là dùng resource thì phải thay đổi lại ngôn ngữ trong Control Panel. Lúc đó mới đổi được ngôn ngữ không biết có đúng ko?

KEM_WALL
10-04-2004, 02:00
tất nhiên là thay đổi được. resource được đóng gói bên trong dll hay exe muh. không có source anh thay đổi bằng cách nào. mà nếu có được thì newbie users chỉnh sửa ra sao ?

White Rose
10-04-2004, 07:08
Bạn lưu ý cho một điều là resource khôgn nhất thiết nằm trong assembly. Nếu cần thay đổi, .NET cung cấp Reader và Writer để thực hiện việc này.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemResources.asp

tranducmille
10-04-2004, 19:02
Các bạn có nói như vậy thì phải cụ thể một chút được không...., để cho mọi người hiểu chớ.

tranducmille
10-04-2004, 19:42
Mình không nghỉ là làm như vậy được đâu, theo mình thì ý vủa bạn novavn thì hay đó với lại, chúng ta cũng kết hợp với bảng Hashtable và value, để change language thôi. Mình đã có từng xem qua một source như vậy, nhưng mà nó không theo ý mình, nên không quan tâm. Nếu bạn nào cần xem source thì cho mình địa chỉ đi rồi mình gởi cho.

KEM_WALL
11-04-2004, 01:16
Bạn lưu ý cho một điều là resource khôgn nhất thiết nằm trong assembly. Nếu cần thay đổi, .NET cung cấp Reader và Writer để thực hiện việc này.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemResources.asp

ah cái này em chưa biết, cám ơn anh wr chỉ giáo :)