PDA

View Full Version : Xây dựng hệ thống ứng dụng đa ngôn ngữ



MichaelTuanAnh
05-06-2006, 14:19
Không biết post bài này ở đây có đúng ko? Nếu ko đúng mong thứ lỗi.
Mọi người có ai đã từng xây dựng một hệ thống ứng dụng đa ngôn ngữ chưa (Giao diện lẫn nội dung khoảng 10 ngôn ngữ)? Nếu rồi xin chia sẻ cho mình. Làm thế nào để tối ưu hóa database? Thiết kế CSDL thế nào để tối ưu việc truy xuất dữ liệu. Mong mọi người giúp đỡ.

Shinichi_haha
26-07-2006, 19:26
Uhm điều này rất là khó bạn nên đọc thêm cuốn sách CSDL phân bố của Nguyễn Trung Trực tại ĐH Bách Khoa có thể giúp ít cho cậu.

hung170872
28-07-2006, 07:50
- Với công nghệ lập trình hiện tại cho phép bạn tích hợp các ngôn ngữ trong một ứng dụng(VB6, C++, delphi, VB.NET, C#, Java...), thông thường để tiết kiệm thời gian và chi phi khi nâng cấp ứng dụng, Vd ứng dụng của bạn viết Foxpro 2.5 for DOS --> Visual Foxpro->Visual Basic->.NET thì bạn có thể sử dụng lại các đoạn code từ Foxpro bằng cách bạn chuyển code đó về các tập tin .DLL(Dynamic Link Library). Để làm được bạn nên xem cách chuyển sang .DLL của từng ngôn ngữ.
- Để thiết kế CSDL tối ưu, bạn cần phải phân tích CSDL về dạng chuẩn nhất (3NF, BCK) nhưng cũng phải tùy thuộc vào tính chất quản lý và mô hình lưu trử mà ta có các cách phân tích khác nhau.
- Để truy xuất DL đạt hiệu suất cao bạn cần phải biết định nghĩa Index phù hợp, Index có tầm ảnh hưởng rất lớn vào việc truy xuất DL.
Thân chào chúc bạn thành công.
IT. Đặng Thanh Hùng

MichaelTuanAnh
03-08-2006, 08:05
Hình như mọi người đã hiểu lầm ý của mình rồi, ngôn ngữ ở đây là Tiếng Anh, tiếng Hoa,... chứ không phải là ngôn ngữ lập trình.

dracubin
09-08-2006, 08:54
Ứng dụng của bạn là dạng ứng dụng gì? Bạn muốn thay đổi ngôn ngữ như thế nào (qua link, locale hay IP).

Trước đây, tôi có làm một số bài tập về đa ngôn ngữ và có áp dụng một số giải pháp như sau:

Ứng dụng dạng Web Application

1. Chọn JAVA để thực hiện. Nếu chọn JAVA thì bạn có thể áp dụng ngay Struts Framework.
2. Trên một số ngôn ngữ khác, ví dụ chọn PHP. Tôi đã thực hiện bài tập của mình như sau.

Tạo DB có 2 table sau:

tbl_language
id, PK
language_name
tbl_language_detail
id, PK
id_language, FK, PK
string_detail

Trong tbl_language, bạn định nghĩa language có trong ứng dụng (bao nhiêu cũng được :)). Trong tbl_language_detail thì có id và id_language làm khóa. string_detail sẽ chứa các string của ứng dụng của bạn.

Nếu ứng dụng của bạn lớn thì nên tách phần string của ứng dụng với phần data của ứng dụng ra các bảng khác nhau. Còn việc truy xuất các string như thế nào chắc tôi không cần phải nói :) .

Chúc thành công

PhongTranT
11-08-2006, 07:17
Nếu là ứng dụng web thì theo mình thì có thể giải quyết như sau (các ứng dụng khác cũng tương tự):

* Về giao diện: với mỗi ngôn ngữ bạn tạo 1 file chứa tên biến và string tương ứng với ngôn ngữ đó.

Ví dụ: file tiếng Việt (vi.inc):
strHome = "Trang chủ"
strContact = "Liên hệ"

File tiếng Anh (en.inc)
strHome = "Home"
strContact = "Contact"

Sau đó bạn xử lý với cookie khi người dùng chọn một ngôn ngữ và include file chứa ngôn ngữ tương ứng vào web.

* Về mặt nội dung:
Bạn tạo 1 table tblLang(lang_id, lang_name, lang_file) chứa thông tin của file ngôn ngữ
Ví dụ:
lang_id = 1
lang_name = English
lang_file = en.inc

Trong các table khác có chứa nội dung của website, bạn tạo thêm một trường là lang_id nữa. Trường này lưu lại id của ngôn ngữ sử dụng. Khi thêm dữ liệu trên form thì chỉ việc chọn id của ngôn ngữ bên bảng tblLang. Khi list dữ liệu ra cũng căn cứ vào cái ID đó mà list.

Bên trên là cách sư dụng cho ứng dụng nhiều ngôn ngữ (>2). Nếu chỉ có 2 ngôn ngữ thì có thể dùng cách khác hay hơn.

Chúc bạn thành công!

phatnq2003
11-08-2006, 09:18
Để xây dựng một ứng dụng đa ngôn ngữ, bạn phải thiết lập một cơ sở dữ liệu thích hợp. CSDL này phải chứa những item có liên quan đến hệ thống menu, các caption của các đối tượng interface, ...
Nhìn chung cũng phải dụng công nhiều.
Hệ thống phải nhất quán, do đó bạn phải có khả năng phân tích tốt mới có thể quản lý được.