banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Ứng dụng đa ngôn ngữ - Việt hóa bằng Reshack  XML
  [Question]   Ứng dụng đa ngôn ngữ - Việt hóa bằng Reshack 14/03/2010 13:04:39 (+0700) | #1 | 206863
tenthamduvahienthi
Member

[Minus]    0    [Plus]
Joined: 24/02/2010 23:11:34
Messages: 1
Offline
[Profile] [PM]
Các anh pro ơi cho em hỏi là tại sao em việt hóa các phần mềm bằng Reshack lại không được .Kô phải là không được mà không thể viết tiếng việt có dấu nếu viết thì nó sẽ hiện ra dáuhoaoawcj cái khác ! Em dùng font Ari.. , Tahoma và các font khác nhưng đều không đc .Ai biết thì chỉ em với nha smilie smilie
[Up] [Print Copy]
  [Question]   Việt hóa =Reshack 14/03/2010 13:40:59 (+0700) | #2 | 206864
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Chương trình Resource Hacker (reshack) dùng để hiệu chỉnh và trích xuất các thông tin trong resource của ứng dụng Windows, không có nghĩa bạn có thể dùng để Việt hóa ứng dụng đó.

Hỗ trợ đa ngôn ngữ trong ứng dụng cần nhiều yếu tố, đặc biệt trong quá trình thiết kế và lập trình để hiển thị ngôn ngữ mong muốn trên giao diện và lúc nhập xuất dữ liệu.
Hibernating
[Up] [Print Copy]
  [Question]   Việt hóa =Reshack 14/03/2010 14:16:37 (+0700) | #3 | 206867
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Anh Z0rr0 ơi, thế hỗ trợ đa ngôn ngữ thế nào là tốt nhất anh? Em đang định thêm ngôn ngữ vào phần mềm đang viết, mà chưa biết thế nào cho tiện. Em có nghĩ tới file INI, XML ...
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Việt hóa =Reshack 14/03/2010 23:28:23 (+0700) | #4 | 206901
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Chào FaL, hỗ trợ đa ngôn ngữ cần thực hiện các việc sau:

- Bảng mã: Một số ngôn ngữ có thể dùng bảng mã MBCS (multibyte character set) hoặc Unicode (2 bytes) để hiện thị (ví dụ Tiếng Việt, Trung, Nhật), một số ngôn ngữ bắt buộc phải dùng Unicode (2 byte) để hiện thị đầy đủ kí tự. Do vậy tùy vào ngôn ngữ cần hỗ trợ mà chọn char set phù hợp khi thiết kế ứng dụng.

- Hiển thị giao diện: Là nơi người dùng nhận thấy đầu tiên, bao gồm các chữ thể hiện trên các control, menu (bar/popup), message box; trong các hình ảnh vẽ vời được thiết kế có yếu tố ngôn ngữ trên đó. Có 1 số nguyên tắc cơ bản sau:
+ Thường khi vẽ hình (logo, banner, ...) cần tránh dùng chữ viết trong đó để không tốn công thiết kế riêng cho từ ngôn ngữ.
+ Các câu chữ ở trên cần đặt trong 1 nguồn dữ liệu riêng (file text - INI/XML bản chất đều là text nên đều được, miễn sao tiện cho việc lập trình - hoặc Resource DLL trong Windows) để tiện việc chuyển ngữ và lập trình để tải các câu chữ này hiển thị ở nơi phù hợp. Dùng file text sẽ tiện ở chổ dễ chuyển ngữ, không phải biên dịch lại ứng dụng hoặc thư viện sau khi chuyển ngữ, nhưng sẽ có nguy cơ dễ bị người dùng can thiệp sửa đổi không phù hợp làm ứng dụng hoạt động không đúng. Dùng Resource DLL chứa toàn bộ tài nguyên của ứng dụng trong 1 thư viên binary giúp bảo vệ khỏi người dùng cuối, nhưng khi chuyển ngữ phức tạp hơn và phải biên dịch lại thư viên cho từng ngôn ngữ.
+ Ngoài ra, giao diện cũng cần quan tâm đến yếu tố đặc thù riêng ví dụ tiếng Trung Quốc, Ả Rập có thể đọc tự phải sang trái (Right to left) mà hiệu chỉnh thuộc tính để hiện thị và xử lý đúng.
+ Chú ý phần Ngữ pháp khi chuyển đổi giữa các ngôn ngữ, đặc biệt khi có nhu cầu ghép nối các chuỗi để hiện thị. Ví dụ chuỗi "Tên đăng nhập '%s' đã tồn tại" khi chuyển sang tiếng khác có thể không đơn thuần dịch riêng đoạn "Tên đăng nhập" và "đã tồn tại" ghép lại là đúng ngữ pháp.
+ Chú ý chiều dài các control bảo đảm đủ chổ chứa các chuỗi sau khi chuyển ngữ, ví dụ tiếng Anh "Nothing" rất ngắn, nhưng khi dịch sang Tiếng Việt là "Không có gì" sẽ cần nhiều chổ hơn để hiển thị đủ.
+ Ngôn ngữ thường được xác định khi ứng dụng bắt đầu chạy, có thể bằng cách xác định ngôn ngữ hiện tại của hệ thống (system language hay locale) mà tải ngôn ngữ phù hợp, hoặc chỉ định bắng chức năng của ứng dụng và cho phép người dùng chuyển đổi lúc đang chạy.

- Nhập xuất dữ liệu: Các dữ liệu hiển thị trên các control có thể do người dùng nhập vào, hoặc tải từ cơ sở dữ liệu hoặc từ nguồn các. Các nguyên tắc cơ bản:
+ Luôn sử dụng các hàm (API) mang tính tổng quát (generic), đặc biệt các hàm xử lý chuỗi. Ví dụ trong C/C++ thay vì dùng "strcpy" thì dùng "_tcscpy", thay vì dùng "atoi" thì dùng "_ttoi", ...
+ Chú ý an toàn dữ liệu, đặc biệt với các kiểu chuỗi và số khi chuyển ngữ. Ví dụ dùng 1 buffer quá ngắn để chứa 1 chuỗi tiếng Anh có thể sẽ không đủ (dẫn đến buffer/stack overflow) sau khi chuyển ngữ.
+ Xác định font của control để hiện thị đúng ngôn ngữ mong muốn: font có thể tự thiết kế hoặc dùng font hệ thống có sẵn
+ Chuyển đổi dữ liệu khi hiển thị và khi lưu xuống cơ sở dữ liệu: cần quan tâm đến các bảng mã và kĩ thuật chuyển đổi phù hợp
+ Hỗ trợ các bộ gõ cho ngôn ngữ mong muốn.

Vài ý kiến chia sẻ.
Hibernating
[Up] [Print Copy]
  [Question]   Việt hóa =Reshack 15/03/2010 00:13:57 (+0700) | #5 | 206907
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Cám ơn anh Z0rr0 rất nhiều. Lúc nào làm xong em sẽ nhờ anh xem qua và góp ý giúp em.

PS: Gửi bạn tenthamduvahienthi, mình sửa lại tiêu đề của bài viết để dễ theo dõi và tìm kiếm.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Ứng dụng đa ngôn ngữ - Việt hóa bằng Reshack 15/03/2010 08:42:53 (+0700) | #6 | 206919
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Không thành vấn đề. Chúc em thành công.
Hibernating
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|