viet hoa j2me them

Màu nền
Font chữ
Font size
Chiều cao dòng

Việt hóa J2ME (phần 1) - Đổi tên ứng dụng J2ME Sau đây mình sẽ viết một loạt bài về kỹ thuật Việt hóa các ứng dụng Mobile cơ bản. Mỗi bài sẽ viết riêng ra một 2pic. Các bạn muốn tìm hiểu thì coi nhé, nếu có phần nào không hiểu thì reply ngay trong 2pic của bài viết đó, mình sẽ giải đáp ngay nhé

Phần 1: Đổi tên ứng dụng J2ME

Khi Việt hóa một số ứng dụng, việc chúng ta cần làm đầu tiên là đổi tên cho nó. Ví dụ như khi ta Việt hóa một ứng dụng tiếng Trung thì đương nhiên phải đổi tên cho nó đúng ko nào :->. Hoặc bạn có thể thêm tên mình ở tên các ứng dụng để người dùng biết đến mình. Hì :D

Thực ra đây chỉ là một thủ thuật nhỏ và cách làm khá đơn giản.

+ Trước tiên, các bạn cần lưu ý bản chất của JAR chính là ZIP - một loại file nén:D, thật bất ngờ phải không?? Do đó bạn hoàn toàn có thể dùng bất kỳ một chương trình hỗ trợ giải nén zip nào để xem và sửa nội dung cho các ứng dụng này:->. Kinh nghiệm cho thấy bạn nên cài Winrar vì ứng dụng này hỗ trợ zip rất mạnh, cho xem nội dung file trực tiếp và nếu là file thuộc định dạng binary thì Winrar sẽ hỗ trợ cho chúng ta xem nó dưới dạng ASCII luôn. Quá tiện lợi

+ Sau khi mở được ứng dụng jar, ta sẽ thấy nó chứa rất nhiều file và có cả thư mục. Các bạn tạm thời chú ý đến thư mục META-INF. đây là thư mục cơ bản mà bất kỳ ứng dụng J2ME nào cũng phải có. Hãy mở nó ra, bạn sẽ thấy có file MANIFEST.MF. Nó chính là file lưu trữ thông tin về ứng dụng J2ME của chúng ta. Bạn có thể mở nó bằng Notepad nhưng tốt nhất nên dùng Notepad++, chương trình hoàn toàn miễn phí, bạn có thể download bản mới nhất tại đây:D

Các file MANIFEST.MF thường có nội dung như sau:

Manifest-Version: 1.0

MicroEdition-Configuration: CLDC-1.0

MIDlet-Version: 1.0

MIDlet-Icon: /icon.png

Created-By: 1.3.0_02 (Sun Microsystems Inc.)

MIDlet-Vendor: Cty ABC

MIDlet-1: Ứng dụng ABC, /icon.png, Midlet

MicroEdition-Profile: MIDP-1.0

MIDlet-Name: Ứng dụng ABC

MIDlet-Description: Việt hóa bởi Lord Kaj

Trong đó chúng ta chỉ chú ý đến một số mục như sau:

MIDlet-Vendor: Tên hãng sản xuất, nên giữ nguyên

MIDlet-Icon: Địa chỉ biểu tượng của ứng dụng trong file jar, bạn có thể thay đổi nó sang ảnh khác, lưu ý là chỉ chấp nhận định dạng png thôi nhé

MIDlet-Name: Tên của ứng dụng => đổi tên bằng cách sửa phần này

MIDlet-1: [Tên ứng dụng, sửa giống MIDlet-Name], [địa chỉ biểu tượng, sủa giống MIDlet-Icon], [tên midlet khởi điểm, phải giữ nguyên]

MIDlet-Description: Mô tả cho ứng dụng

Các mục khác không nên thay đổi

Lưu ý: Bạn hoàn toàn có thể sử dụng Unicode để sửa và lưu dưới định dạng UTF-8. Hầu hết các dòng máy hiện nay đều có font hệ thống hỗ trợ unicode nên sẽ hiển được. Bạn không cần quá lo lắng về việc này

Việt hóa J2ME (phần 2) - Giới thiệu các tool cơ bản để Việt hóa game Java

Trong bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng các tool có sẵn và phối hợp các tool này để tự mình có thể Việt hóa các ứng dụng mobile. Sau khi các bạn sử dụng thành thạo tất cả các tool có sẵn này thì bạn đã có thể Việt hóa được khá nhiều các ứng dụng J2ME rồi đấy. Cùng tìm hiểu nhé

Trước tiên, các bạn phải có các tool sau

+ Phầm mềm giả lập Java trên máy tính: KEmulator

+ Một số tools hỗ trợ Việt hóa: MobiTrans, Chinese, Class Editor

Giới thiệu về KEmulator

KEmulator là chương trình giả lập điện thoại dùng để chạy các ứng dụng java trên máy tính. Đây thực sự là một giả lập khá mạnh, nó hỗ trợ giả lập hầu hết các loại điện thoại hỗ trợ Java truyền thống như Samsung, Nokia s40, Motorola, SonyErricson,.... Hỗ trợ MIDP2, và có bộ thư viện khá đầy đủ, cho phép nó chạy tốt hầu hết các ứng dụng J2ME. Khi bắt tay vào Việt hóa ứng dụng mobile thì bạn cần chuẩn bị cho mình phần mềm này để có thể xem kết quả trực tiếp trên máy tính, không cần phải chuyển qua điện thoại...

Giới thiệu về MobiTrans

Đây là một tool của Nga, có khả hỗ trợ translate nội dung của một số các ứng dụng và trò chơi thời cổ.

Nhược điểm của tool là không có kỹ thuật phân tích chuỗi, chỉ hoạt động theo một số quy tắc có sẵn, do đó nó chỉ có thể hỗ trợ được khoảng 10% số ứng dụng Java hiện nay, dễ gây lỗi. Giao diện tiếng Trung khó sử dụng. Tool cũng không hỗ trợ Unicode nên không thể Việt hóa có dấu cho các ứng dụng . Một điều đáng thất vọng nữa là tool chỉ hỗ trợ đọc từng file một nên đối với những ứng dụng có nhiều file thì rất khó để tìm ra được đúng file chứa ngôn ngữ...

Giới thiệu về Chinese Translator

Là sự bổ xung cho MobiTrans, Chinese Translator đã hỗ trợ Unicode, cách sử dụng cũng dễ dàng hơn

Tuy nhiên, nó lại có nhược điểm lớn là chỉ đọc được những file *.class.

Chinese Translator hỗ trợ khá tốt các ứng dụng Trung Quốc nhưng tool này cũng chỉ hỗ trợ đọc từng file một. Theo kinh nghiệm cho thấy thì một ứng dụng Trung Quốc thường có đến hàng trăm file class, trong đó có một số file class chứa ngôn ngữ :-S.... Đương nhiên nó sẽ giúp bạn Việt hóa được các game Trung Quốc nhưng đây thực sự là một chặng đường gian nan

Giới thiệu về Class Editor

Để sử dụng được ứng dụng này, máy tính của bạn phải cài Java SE Runtime trước. Nếu máy bạn chưa cài thì có thể vào trang sau để download bản cài mới nhất tại http://java.sun.com/javase/downloads/index.jsp

Thực ra, đối với việc Việt hóa ứng dụng thì Class Editor có khả năng cao hơn Chinese Translator một chút, nó hỗ trợ tốt hoàn toàn utf-8, thuận lợi cho tất cả các loại ngôn ngữ. Ngoài ra, Class Editor còn có khả năng phân tích nhiều loại dữ liệu khác ngoài dữ liệu chuỗi trong file class, rất thuận tiện trong việc can thiệp sâu vào hoạt động của các ứng dụng Java

Nhưng Class Editor vẫn còn có nhược điểm cố hữu là chỉ đọc được file class, hỗ trợ đọc mỗi lần một file....

Việt hóa J2ME (phần 3) - Việt hóa ứng dụng J2ME đầu tiên

Trước hết khi Việt hóa mỗi ứng dụng, ta đều có hai hướng là Việt hóa có dấu và không dấu :D. Tất nhiên là chúng ta sẽ luôn chọn Việt hóa có dấu bất cứ khi nào có thể. Chỉ có những trường hợp quá khó thực hiện hoặc dòng máy hỗ trợ không hỗ trợ tiếng Việt có dấu thì mới phải chuyển sang hướng Việt hóa không dấu thôi

Vậy làm sao để biết được là ứng dụng nào có thể Việt hóa có dấu?

Rất đơn giản, các hệ máy hỗ trợ java ngày nay (chủ yếu là đã hỗ trợ midp2 trở lên) đều có cài bộ font unicode để hiển thị được hầu hết các ngôn ngữ trong ứng dụng. Do đó, trước khi tiến hành Việt hóa một ứng dụng, bạn nên test thử nó trước. Hãy chú ý đến font chữ của game, font hệ thống bao giờ cũng đơn giản, vì vậy những ứng dụng này có thể Việt hóa có dấu đc . Còn ngược lại là những ứng dụng sử dụng font chữ riêng, những ứng dụng này thực sự là rất khó để Việt hóa có dấu, phải can thiệp được vào sâu cấu trúc ứng dụng, sửa đổi font chữ nữa, nếu làm cũng rất mất thời gian => tốt nhất là nên tránh hoặc Việt hóa không dấu :D. Việc phân biệt này rất dễ, bạn chỉ cần nhìn vài lần là phân biệt được thôi...

Một điều nữa là hầu hết các phần mềm đều sử dụng font hệ thống => rất dễ Việt hóa có dấu. Vì vậy nếu muốn Việt hóa phần mềm thì bạn không cần lo lắng về điều này. Còn với game thì hầu hết game của các hãng nổi tiếng như Gameloft hay DigitalChocolate đều sử dụng font hiển thị riêng và chỉ hỗ trợ một hoặc một số ngôn ngữ định trước (chắc chắn là không có tiếng Việt :D). Còn với game Trung Quốc, Hàn Quốc hay Nhật Bản thì cũng luôn dùng font hệ thống :D (tại họ lắm chữ cái quá mà ). Nếu có ý định Việt hóa game thì nên chú ý đến các loại game này nhé

Việt hóa các ứng dụng có tệp tin ngôn ngữ dạng văn bản

Để dễ hiểu, chúng ta sẽ lấy một ví dụ trên trò chơi là Filppy's Flying Frenzy

Những gì bạn cần là:

+ Trò chơi mẫu (download tại đây)

+ NotePad (của Windows) :D

Trước hết, hãy test qua cái đã. Chạy tệp tin Filppys_Flying_Frenzy.jar bằng giả lập hoặc bằng chính điện thoại của bạn. Trò chơi có giao diện như sau:

Nhìn qua là biết trò chơi sử dụng font hệ thống :D. Ngon rồi, thế là Việt hóa có dấu đượcNhư đã nói, tệp tin .jar là một tệp tin nén. Vậy hãy dùng trình giải nén zip của bạn để xem nội dung của nó.

Sau khi giải nén, bạn sẽ có toàn bộ các tệp tài nguyên của trò chơi, hãy xem qua tất cả các tệp. Bạn sẽ thấy có tệp tin /res/language.txt :D. Theo thói quen thôi, dùng NotePad mở ra đi nào

Start = "Start"

Exit = "Exit"

About = "About"

Items = "Items"

AboutText = "Copyright 2005 by Daydream - Developed by Kiloo ApS. All rights reserved.

(c) 2005 Mondo Media, All Rights Reserved.

Under License by Signatures Network.

Version:"

Highscore = "Highscore"

Instructions = "Instructions"

InstrText = "Flying wild with Flippy!

Flippy goes crazy when the popping balloons remind him of the war.

Flippy takes his victim - either Cuddles, Toothy or Giggles - and ties to his helicopter.

You must steer Flippy's helicopter through his warzone. As you fly through the warzone your goal is to hit obstacles with your victim, damaging them as much as possible. Be aware, most of the obstacles can damage and crash Flippy's helicopter also.

Control the helicopter with the fire-button or the '5' key. When these are pressed down, Flippy's helicopter will move upwards, otherwise the helicopter will loose height on its own.

As an extra bonus you get a 'combo' if you hit 3 or more obstacles in a short period of time. The stars in the top of the screen show the combo score.

Good luck!"

Options = "Options"

Practice = "Practice Mode"

.....................................

............................

Nội dung rất rõ ràng phải không? Vậy còn chờ gì nữa, bạn hãy Translate tất cả các chuỗi nằm trong dấu nháy kép.

Lưu ý là chỉ dịch những chuỗi trong dấu nháy kép thôi nhé, những chữ ở ngoài và đứng đầu mỗi dòng, trước dấu (=) là biến để gán chuỗi, thay đổi nó sẽ làm ứng dụng bị lỗi

Một lưu ý nữa là trong các chuỗi đôi khi xuất hiện nhóm ký tự "

", đây là mã xuống dòng. Khi muốn xuống dòng trong một đoạn văn, thay vì nhần enter thì ta sẽ phải dùng nhóm ký tự này để thể hiện lệnh xuống dòng. Đôi khi chúng ta còn gặp các nhóm "%s", "%d", "%1", "%2",...... đây là phần hiển thị biến trong chuỗi, bạn cần chuyển vị trí các biến này trong câu cho hợp ngữ pháp, không nên xóa nó đi.

Ví dụ:

Start = "Bắt đầu"

Exit = "Thoát"

About = "Thông tin"

Items = "Vật cản"

AboutText = "© 2005 Daydream - Phát triển bởi Kiloo ApS. Mọi quyền được bảo vệ.

© 2005 Mondo Media, Mọi quyền được bảo vệ.

Đăng ký bởi Signatures Network.

Việt hóa: Lord Kaj

Trao đổi kỹ thuật Việt hóa và download các sản phẩm miễn phí tại http:/openitvn.net

Phiên bản :"

Highscore = "Điểm cao"

Instructions = "Hướng dẫn"

InstrText = "Bay cùng Flippy!

Flippy trở lên điên loạn khi tiếng bóng bay vỡ làm anh ta nhớ lại cuộc chiến tranh trước đây.

Anh ta chọn cho mình một nạn nhân - Cuddles, Toothy hoặc Giggles - và treo vào trực thăng.

Bạn phải lái trực thăng của Flippy bay qua bãi chiến trường của anh ta. Mục tiêu của bạn là làm bị thương nạn nhân càng nặng càng tốt. Nhưng hãy cẩn thận, quá chú trọng làm bị thương nạn nhân cũng có thể làm trực thăng va vào các vật cản và rơi xuống.

Điều khiển trực thăng bằng phím chọn hoặc '5'. Khi bấm, trực thăng sẽ bay lên, còn khi nhả, trực thăng sẽ hạ xuống.

Bạn sẽ đạt 'combo' nếu làm nạn nhân bị thương liên tiếp 3 lần hoặc nhiều hơn. Số sao ở cạnh trên màn hình thể hiện điểm combo.

Chúc bạn may mắn!"

.................................................. .

...............................

Sau khi dịch hết toàn bộ tệp tin, hãy lưu nó lại dưới dạng Unicode rồi dùng trình nén zip add file này trở lại tệp jar, đúng vị trí mà ta đã lấy ra.

Vậy là đã xong rồi đó, hưởng thụ thành quả nào:Lưu ý: Nhiều ứng dụng sử dụng tệp tin xml để chứa ngôn ngữ, bạn có thể chuyển ngữ chúng rồi lưu dưới dạng Unicode

Có một số trò chơi tuy có tệp txt chứa ngôn ngữ, có thể dùng notepad để đọc nhưng bạn không thể sửa được. Những loại như vậy cần phải sử dụng kỹ thuật Việt hóa chuyên sâu một chút. Mình sẽ giới thiệu sau

Việt hóa J2ME (phần 4) - Sử dụng MobiTrans Việt hóa một số loại ứng dụng J2ME MobiTrans là một tool của Nga, họ làm ra để Nga hóa (hjx, biết dùng từ gì cho thích hợp đây :D) các ứng dụng Mobile. Vì vậy nó chỉ hỗ trợ tốt cho tiếng Nga, tuy nhiên bạn có thể sử dụng để Việt hóa không dấu cho khá nhiều ứng dụng

Đầu tiên, bạn cần có tool và mẫu thử là game Acient Empires II, các bạn có thể download >>> tại đây <<<

Như thường lệ, sau khi giải nén, dùng Winrar (hay bất kỳ một chương trình nén nào có hỗ trợ định dạng zip) để mở tệp tin đuôi jar và xem nội dung.

Hãy chú ý đến tệp tin lang.dat trong file jar này, cái tên này đã gợi ý cho chúng ta rằng đây chính là nơi chứa ngôn ngữ được hiển thị trong game :D, bạn hãy xuất file này ra ngoài nhé, chúng ta sẽ dùng file này để tiến hành việt hóa cho game

Tiếp theo, hãy mở MobiTrans, đây là một tool của Nga như đã giới thiệu, vì vậy giao diện của nó là tiếng Nga, tuy nhiên do chúng ta chưa cài đặt môi trường tiếng Nga nên Windows không thể hiển thị được, những gì bạn thấy chỉ toàn là dấu (?). Cũng không cần thiết phải để nó hiển thị được vì chúng ta cũng không hiểu tiếng Nga :D, và sau đây bài hướng dẫn sẽ dùng hình ảnh để mô tả

Giao diện chính của chương trình

Từ menu chính, bạn chọn như sau (hoặc nhấn tổ hợp phím Ctrl+O)

Hộp thoại Open hiện ra, tại đây bạn tìm đến vị trí mà ta đã xuất tệp tin lang.dat và mở tệp tin này, sau đó, chương trình sẽ tự động mở ra một bảng chọn như sau

Vì đây là một tool khá thô sơ và kém tính năng, vì vậy bạn cần phải tự chọn loại cấu trúc tệp cho tệp tin được mở. Bạn chọn Macrospace như hình rồi bấm OK

Lưu ý: Nhãn của các tùy chọn ở hộp thoại trên chính là tên của một số hãng game, mỗi hãng game thường có một cấu trúc cho tệp tin ngôn ngữ riêng, và các sản phẩm của cùng một hãng thường có cấu trúc giống nhau. Ở trên, tôi đã xác định đây là game của Macrospace nên tôi chọn Macrospace, với các sản phẩm của hãng khác thì bạn chú ý để chọn cho đúng nhé. Còn với những sản phẩm không rõ của hãng nào thì bạn có thể chọn mục toàn ???????????? đó :D. Với các tệp tin .class thì bạn chọn dòng class-????

Chương trình sẽ liệt kê tất cả các chuỗi như hình sau, rất dễ nhìn phải không?

Tiếp theo là Việt hóa hết các chuỗi này, để Việt hóa một chuỗi, bạn bấm đúp chuột vào dòng tương ứng, hộp thoại hiện ra cho phép bạn sửa chuỗi

Bạn sửa chuỗi trong ô dưới, lưu ý sử dụng tiếng Việt không dấu. Khi sửa xong thì bấm OK

Tiếp tục Việt hóa hết các chuỗi còn lại, sau đó bấm nút Save như hình

Hộp thoại lưu sẽ hiện ra như sau

Đường dẫn lưu mặc định sẽ là đường dẫn của tệp tin ta đã mở. Để đơn giản, ta cứ giữ nguyên như vậy rồi bấm OK

Tiếp theo hãy tìm đến thư mục chứa tệp tin lang.dat ban đầu, bạn sẽ thấy ngoài lang.dat, chúng ta có thêm 3 tệp mới là lang.dat.loc lang.dat.ruslang.dat.txt. Ở đây, hãy chú ý tới tệp tin lang.dat.rus, đây chính là tệp tin chứa ngôn ngữ mới mà chúng ta đã Việt hóa, nó có thể sử dụng trong game mà không gây lỗi. Bạn xóa hết 3 tệp tin lang.dat, lang.dat.txtlang.dat.log đi vì ta không cần đến chúng nữa. Sau đó đổi tên lang.dat.rus thành lang.dat (bỏ phần .rus đằng sau đi).

Dùng Winrar add lại tệp tin lang.dat mới vào tệp tin .jar. Sau đó chạy thử

Thật dễ phải không nào. Tuy nhiên, đây là game hoàn toàn có thể Việt hóa có dấu, nhưng để làm được quả thật là không dễ chút nào. Bạn phải có kỹ năng can thiệp sâu vào cấu trúc và đọc được mã máy của file mới làm được. :D Việt hóa J2ME (phần 5) - Sử dụng Chinese để Việt hóa các trò chơi Trung Quốc Đầu tiên bạn cần có công cụ Chinese và các một game Tàu để làm mẫu, bạn có thể download tại đây

Trước tiên, bạn dùng các chương trình đọc file nén để mở file Audition.jar và xem nội dung của ứng dụng này

Bạn sẽ thấy bên trong có rất nhiều tệp tin và thư mục, có đến hơn 100 tệp tin. Và một vài file trong số đó sẽ chứa ngôn ngữ hiển thị trong game. Nhiệm vụ bây giờ của chúng ta là tìm ra file nào chứa ngôn ngữ và sử dụng công cụ để Việt hóa nó

Đầu tiên, bạn thấy có rất nhiều file .png trong đó, đây là những file ảnh hiển thị trong game, bạn có thể bỏ qua chúng vì ngôn ngữ bạn cần Việt hóa không nằm tại đây

Một điều cần lưu ý là hầu hết các game trung quốc, ngôn ngữ hiển thị thường được chứa trong một số file .class. Vì vậy mỗi khi Việt hóa game trung quốc, bạn nên chú ý đến những file .class, với game này cũng vậy.

Bây giờ bạn chọn ra hết các file class trong game, chúng ta sẽ tiến hành xác định xem file nào chứa ngôn ngữ

Bạn mở chương trình Chinese lên, lần lượt mở từng file class. Chương trình sẽ tìm và liệt kê các chuỗi có trong game, và bạn sẽ dễ dàng xác định được tệp tin nào chứa ngôn ngữ

Sau khi thử hết các tệp tin class, bạn sẽ xác định được ở đây có các file a.class, b.class, d.class, e.class chứa ngôn ngữ. Bây giờ chúng ta sẽ dùng chính Chinese để chuyển các chuỗi này sang tiếng Việt. Bạn double click vào các chuỗi muốn chuyển ngữ, một hộp thoại nhỏ sẽ hiện ra

Ô phía trên chính là ngôn ngữ gốc, bạn dịch lại dòng đó rồi Viết tiếng Việt vào ô phía dưới. Bạn hoàn toàn có thể sử dụng Unicode để gõ tiếng Việt vào đây, sau khi hoàn tất, bấm OK. Tiếp tục Việt hóa hết các chuỗi còn lại

Sau khi Việt hóa hết, bấm nút Save, chương trình sẽ lưu lại những thay đổi về ngôn ngữ mà bạn đã tạo ra cho tệp tin, bạn chỉ cần add những tệp tin này trở lại Audition.jar là được Việt hóa J2ME (phần 6) - Hướng dẫn sử dụng Class Editor 2 Class Editor không phải là một ứng dụng trên nền Windows. Nó được viết trên nền Java nên muốn sử dụng được, trước hết bạn phải cài đặt nền JavaSE cho Windows, nếu máy bạn chưa có nền này, bạn hãy tải về và cài đặt bản mới nhất tại đây

Tiếp theo, nếu chưa có Class Editor thì bạn có thể download tại đây

Đúng như tên gọi, Class Editor chỉ hỗ trợ đọc các tệp tin .class, vì vậy nó chỉ thích hợp dùng để Việt hóa các game có ngôn ngữ chứa trong các file class.

Class Editor có giao diện trình bạy khá đơn giản và dễ hiểu. vì vậy không quá khó khăn để bạn có thể làm quen và làm việc trên nó, ở đây mình sẽ chỉ giới thiệu về cách sử dụng, không đi sâu về các vấn đề khác

Sau một thời gian tìm hiểu cách Việt hóa bằng các tool khác, chắc hẳn các bạn cũng đã tự tìm được cho mình cách thức để xác định được tệp tin nào chứa ngôn ngữ trong ứng dụng. Bây giờ, hãy tìm lấy cho mình một game có ngôn ngữ nằm trong (các) tệp tin .class

Tiến hành trích xuất tệp tin class chứa ngôn ngữ, sau đó mở nó ra bằng Class Editor

Bấm open và chọn tệp tin class cần mở

Sau khi mở tệp tin, từ cửa sổ chính của chương trình, chuyển sang thẻ Constant Pool như hình dưới:

Chương trình sẽ liệt kê ra một bảng rất nhiều các thông số nội dung của tệp tin class được mở. Ở đây chúng ta chỉ chú ý tới các chuỗi, vì vậy bạn chỉ cần quan tâm xem dòng nào có biểu tượng S và Sm

Bạn hãy tìm xem trong đó, những dòng nào là chuỗi, lưu ý rằng trong ứng dụng Java, biến có cấu trúc rất giống chuỗi, vì vậy các chương trình biên dịch ngược thường dễ nhầm biến hoặc khai báo là chuỗi, vì vậy bạn cần phân biệt những dòng nào là chuỗi thực sự. Việc này không khó, rất dễ để phân biệt

Khi đã xác định được một dòng nào đó chính là chuỗi trong trò chơi, bạn có thể Việt hóa nó ngay trong Class Editor. Nhìn sang góc trên bên phải cửa sổ chương trình, bạn sẽ thây một nút màu xanh Modify Mode (Off), điều này cho biết chương trinh đang khóa việc sửa, bạn hãy bật chế độ cho phép sửa bằng cách bấm vào nút đó để nó chuyển sang Modify Mode (On) và tiến hành Việt hóa trong ô văn bản Value. Class Editor có hỗ trợ sử dụng Unicode, vì vậy nếu như game cho phép Unicode, bạn có thể gõ tiếng Việt có dấu. Cuối cùng là bấm Modify để xác nhận thay đổi.

Sau khi làm xong, bạn có thể lưu lại bằng nút Save. Sau đó add tệp tin class đã Việt hóa trở lại ứng dụng. Vậy là xong

Trong quá trình sử dụng, bạn có thể áp dụng các tính năng Tìm kiếm của chương trình để việc phát hiện chuỗi trở lên dễ dàng hơn.

Vậy là mình đã giới thiệu các bạn các cách sử dụng tool để Việt hóa các ứng dụng J2ME. Sau khi sử dụng thành thạo và linh hoạt các tool này, các bạn có thể tự Việt hóa khoảng 50% số ứng dụng và game J2ME trên thị trường hiện nay, và mình xin kết thúc loạt bài hướng dẫn Việt hóa cơ bản tại đây.

Còn rất nhiều ứng dụng J2ME mới hiện nay không thể sử dụng các tool trên để Việt hóa, do đó để Việt hóa chúng, bạn phải hiểu được cấu trúc file trong J2ME, điều này yêu cầu các bạn phải có các kỹ năng cơ bản của việc phân tích file. Mình sẽ giới thiệu kỹ năng này và cách để các bạn có thể Việt hóa đến 98% số ứng dụng và game J2ME trên thị trường hiện nay trong loạt bài Nâng cao sắp tới! Chúc các bạn thành công! Việt hóa J2ME (phần 7) - Cấu trúc chung của chuỗi trong J2ME Bắt đầu từ giờ, các bài viết sẽ đều ở cấp độ nâng cao, nó đòi hỏi bạn phải có kiến thức tốt và sử dụng thành thạo các loại mã thông dụng trong tin học như mã Hex, Binary, Ascii, Char,... bên cạnh đó còn phải có kỹ năng chuyển đổi các loại mã ký tự, đặc biệt là UTF8 và Unicode. Không những thế, bạn còn cần có khả năng tự phân tích cấu trúc file, khả năng suy luận tốt để tìm ra quy luật của các kiểu mã hóa chuỗi. Nếu bạn thực sự muốn tiếp tục Việt hóa thì trước hết hãy chuẩn bị cho mình đầy đủ các yếu tố trên trước khi tiếp tục đọc loạt bài này

Đây là bài đầu tiên của loạt bài hướng dẫn việt hóa các ứng dụng J2ME ở cấp nâng cao. Các bạn sẽ được tìm hiểu bản chất cấu trúc chung của chuỗi trong các ứng dụng J2ME, từ đó có thể việt hóa được hầu hết các ứng dụng hoặc game java mà ko cần đến bất kỳ một tool dựng sãn nào.

1/Các công cụ cần có

- Winrar hay bất kỳ chương trình nén nào hỗ trợ định dạng zip.

- Các chương trình đọc và chỉnh sửa mã Hex, có rất nhiều công cụ có chức năng này. Bạn có thể sử dụng bất kỳ chương trình đọc hex nào mà bạn quen, ở đây tôi dùng A.X.E 3 làm ví dụ. Bạn có thể download AXE3 tại đây (pass unlock mediafire: www.openitvn.net)

- Các chương trình hỗ trợ chuyển mã văn bản (nếu có)

Vậy thôi, ta chỉ cần như thế, tiếp tục nào

2/Cấu trúc quy định chuỗi trong J2ME

Ở đây mình lấy trò chơi Ancient Empires II đã quen thuộc với các bạn làm ví dụ.

Bạn download về và cài AXE3 lên nhé

Như các bạn đã biết, ngôn ngữ trong trò chơi này gói trọn trong tệp tin lang.dat ở bên trong ứng dụng. Dùng chương trình sửa Hex của bạn mở nó ra xem nội dung

Hãy nhìn vào ngăn bên phải, bạn dễ dàng nhìn ra được các chữ có trong game phải không. Tất nhiên là Việt hóa có nghĩa là chúng ta sẽ sửa nó sang tiếng Việt. Nhưng sửa như thế nào cho đúng, khi xen kẽ các chuỗi là các ký tự lạ khó hiểu đây?

Trước tiên, chúng ta hãy thử một chút nhé, bạn sửa chữ 'PLAY' thành 'CHOI', chỉ mỗi chữ này thôi nhé, tuyệt đối không làm thay đổi vị trí hay một ký tự nào khác, rồi lưu lại, add trở lại ứng dụng rồi chạy thử xem kết quả...

Mọi thứ vẫn hoạt động bình thường, ta thấy chữ 'PLAY' đã được chuyển thành 'CHOI' trong trò chơi

Vậy thử tiếp một chữ nữa nhé. thử sửa chữ 'NEW GAME' thành 'TRO CHOI MOI' rồi lại thử lại xem nào...

Hi, lỗi rồi đúng không nào Vậy là việc sửa không đơn giản như vậy phải không. Để ý kĩ nhé, bạn có thể thấy 'PLAY' và 'CHOI' đều có 4 ký tự, và khi sửa xong thì chương trình hoạt động như ý, nhưng còn 'NEW GAME' và 'TRO CHOI MOI' rõ ràng là đã khác nhau về độ dài, khi ta add vào chương trình nó gây lỗi. Vậy rõ ràng phải có quy luật nào đó cho cái độ dài này. Chúng ta sẽ cùng tìm hiểu cái quy luật đó nhé.

Chú ý tới 2 ký tự 'lạ' phía trước chữ 'PLAY' nào, bạn thử select hai ký tự đó, sau khi bạn select, 2 số phía ngăn bên trái của AXE cũng được chọn theo. Và cái bạn chọn chính là ASCII, còn các ký tự bên ngăn trái tương ứng là mã HEX (bạn cần phải biết khái niệm cơ bản về mã hex nhé).

[00|04], thấy gì chưa nhỉ, 4 chính là số chữ trong 'PLAY' đó

Tiếp nhé, xem 2 ký tự trước 'NEW GAME' nào [00|08], đúng 8 là số chữ trong NEW GAME chưa nào

Xem thử một chuỗi khác nữa, chọn 2 ký tự trước 'SELECT LEVEL' xem, [00|0C] ---- 0C từ mã hex đổi sang hệ thập phân là 12. Đếm xem: 12 đúng bằng số chữ trong 'SELECT LEVEL'

OK, vậy bạn đã hiểu quy luật này rồi chứ, cũng khá là đơn giản phải ko nào, vậy muốn chuyển 'NEW GAME' thành 'TRO CHOI MOI' thì chỉ việc thay đổi 2 ký tự đầu của nó đi, 'TRO CHOI MOI' có 12 chữ, chuyển sang hệ hex là 0C, vậy bạn chuyển 2 lý tự đầu thành [00|0C] rồi mới sửa 'NEW GAME' thành 'TRO CHOI MOI' là được. Mọi chuỗi khác cũng làm như vậy hết.... Việt hóa J2ME (phần 8) - Ký tự Tiếng Việt trong J2ME - Tổng quan về bộ mã UTF8 Như đã nói trong các bài viết trước, các ứng dụng Java nói chung và J2ME nói riêng hiển thị các ký tự Unicode (trong đó có cả các ký tự Tiếng Việt) thông qua bộ mã hóa chuẩn UTF8. Vậy UTF8 là gì và quy chuẩn của bộ mã này ra sao. Hôm nay chúng ta sẽ cùng tìm hiểu!

UTF8 là gì?

Trước năm 2000, bộ mã 8 bit (1 byte) là bộ mã chuẩn của thế giới. Tuy nhiên bộ mã này chỉ cho phép mã hóa được 256 loại ký tự (ASCII) khác nhau (vào thời điểm này thì 256 ký tự quá đủ để mã hóa các ký tự latin phục vụ cho ngôn ngữ thịnh hành là Tiếng Anh và bộ số đếm cùng bộ số đếm và các ký tự thông dụng.

Tất nhiên là ngành tin học không dừng lại ở đó , cùng với sự lớn mạnh của tin học trên toàn cầu, nhu cầu sử dụng nhiều ký tự hơn, ít ra là để có thể mã hóa được toàn bộ ký tự của mọi ngôn ngữ và làm thêm một số việc khác nữa, chuẩn Unicode đã được đưa ra. Tuy nhiên, các chương trình lúc đó đa phần các chương trình được viết theo chuẩn 8-bit và không thể sử dụng được Unicode. Và UTF8 ra đời để mô phỏng lại Unicode theo bộ mã 8-bit (số 8 mô tả rằng nó sử dụng 8 bit, ngoài UTF8 còn có UTF7 sử dụng 7 bit, UTF16 sử dụng 16 bit, UTF32 sử dụng 32 bit,...), hay nói cách khác UTF8 là một cách mã hóa để có tác dụng giống như UCS-4

Do được thiết kế với 8-bit và sử dụng linh hoạt từ 1 đến 6 byte (lý thuyết là vậy nhưng thực tế hiện nay thì chỉ sử dụng đến 4 byte thôi :D) để biểu diễn một ký tự, UTF8 tương thích với ASCII và có các lợi thế:

+ Dễ dàng sử dụng để bổ sung hỗ trợ Unicode cho các phần mềm có sẵn, các nhà phát triển hoàn toàn có thể sử dụng các hàm thao tác với Unicode trong các chương trình của mình mà không phải thiết kế lại từ đầu

+ Đối với các văn bản chỉ có một số ít các ký tự ngoài ASCII, UTF8 giúp tiết kiệm không gian lưu trữ đáng kể

+ UTF8 được thiết kế đảm bảo không có chuỗi byte của ký tự nào lại nằm trong một chuỗi của ký tự khác dài hơn. Điều này khiến cho việc tìm kiếm ký tự theo byte trong một văn bản là rất dễ dàng

Còn khá nhiều điều thú vị về UTF8 nữa nhưng để tránh bài viết trở lên quá phức tạp nên chúng ta chỉ tìm hiểu khái niệm đến vậy thôi nhé

Quy chuẩn mã hóa UTF8

(Quy ước các số bắt đầu bằng 0x là các số biểu diễn trong hệ hex)

Các ký tự có giá trị nhỏ hơn 0x80, sử dụng 1 byte có cùng giá trị. ASCII như nào thì UTF8 như vậy Các ký tự có giá trị nhỏ hơn 0x800, sử dụng 2 byte: byte thứ nhất có giá trị 0xC0 cộng với 5 bit từ thứ 7 tới 11, byte thứ hai có giá trị 0x80 cộng với các bit từ thứ 1 tới thứ 6 Các ký tự có giá trị nhỏ hơn 0x10000, sử dụng 3 byte: byte thứ nhất có giá trị 0xE0 cộng với 4 bit từ thứ 13 tới 16; byte thứ hai có giá trị 0x80 cộng với 6 bit từ thứ 7 tới 12; byte thứ ba có giá trị 0x80 cộng với 6 bit từ thứ 1 tới thứ 6. Các ký tự có giá trị nhỏ hơn 0x200000, sử dụng 4 byte: byte thứ nhất có giá trị 0xF0 cộng với 3 bit từ thứ 19 tới 21; byte thứ hai có giá trị 0x80 cộng với 6 bit từ thứ 13 tới 18; byte thứ ba có giá trị 0x80 cộng với 6 bit từ thứ 7 tới thứ 12; byte thứ tư có giá trị 0x80 cộng với 6 bit từ thứ 1 tới thứ 6 Hiện nay, các giá trị khác ngoài các giá trị trên đều chưa được sử dụng. Tuy nhiên, các chuỗi ký tự dài tới 6 byte có thể được dùng trong tương lai.

Mối liên hệ giữa UTF8 và Unicode

Phần này chính là cách chuyển đổi mã hóa giữa UTF8 và Unicode. Dựa vào quy tắc trên ta có thể suy luận ra các chuyển đổi. Với chúng ta chỉ cần cách chuyển đến nhưng ký tự UTF8 sử dụng 3 byte là đã quá đủ dùng rồi . Cụ thể như sau:

Từ Unicode sang UTF8

+ Đổi các ký tự unicode sang hệ thập phân (A)

+ Nếu A nhỏ hơn 128 -> giữ nguyên A và trả nó về ASCII

+ Nếu A lớn hơn 128 thì lấy giá trị đó trừ đi 128, rôi chia lấy nguyên với 64, kết quả được bao nhiêu cộng với 194 (B)

+ Nếu B < 224 thì suy ra ký tự này có 2 byte, byte thứ nhất chính là B, còn byte thứ 2 bằng A chia lấy dư với 64 rồi cộng 128 (Z) (số Z này luôn là ký tự đứng cuối cùng trong

+ Nếu B > 223 suy ra ký tự gồm 3 byte, cách tính 3 byte này hoàn toàn tương tự như trên. Tức là byte cuối tính theo Z, phần còn lại (tạm gọi là C) chia làm 2 byte, byte giữa tính theo Z của C, còn byte đầu tính theo B của C

+ Với 4, 5 hay 6 byte thì cũng làm như vậy hết

Vậy nhé, có cách chuyển xuôi rồi thì chỉ cần lần ngược lại là có cách chuyển từ UTF8 sang Unicode rồi, tự làm nhé :D Việt hóa J2ME (phần 9) - Notepad - Tại sao không? Notepad - Tại sao không?

Qua bài nâng cao 1, chúng ta đã biết về cấu trúc chung của ngôn ngữ trong các ứng dụng được dịch bằng J2ME. Và bài nâng cao 2, mình đã giới thiệu cho các bạn những điều cơ bản nhất về UTF-8, cách chuyển UTF-8 sang ký tự Unicode và ngược lại. Tiếp theo mình sẽ bày cho các bạn cách áp dụng các bài này để Việt hóa BẤT KỲ MỘT ỨNG DỤNG J2ME CHUẨN NÀO

Chú ý: gần đây một số hãng game đã bắt đầu mã hóa ngôn ngữ theo cách riêng của họ để sau này tự chuyển ngữ, mở rộng thị trường, chúng ta ko thể biết cách mã hóa đó nên những game đó thì ko áp dụng được, các bạn nên bỏ qua nhé nhé! Tiêu biểu như EA, Gameloft, trước đây ta có thể việt hóa được nhưng gần đây họ đã mã hóa rồi

Một điều thú vị là sau khi nắm chắc nội dung bài viết này, bạn có thể Việt hóa mà KHÔNG CẦN đến bất kỳ một tool hỗ trợ nào (tất nhiên là trừ Notepad++ nhá). Thậm chí bạn hoàn toàn có thể LÀM TỐT HƠN tất cả những gì các tool đó có thể làm...

Vì bài viết khá dài nên mình sẽ chia ra nhiều phần nhỏ cho tiện theo dõi

1. Trước khi tiếp tục đọc bài viết, bạn cần tối thiểu:

- Công cụ Notepad++, các bạn có thể download miễn phí tại http://notepad-plus-plus.org/

- Nắm vững một ngôn ngữ lập trình. Trong phạm vi bài viết, mình chỉ làm mẫu với ngôn ngữ Visual Basic mà thôi

2. Xem ngôn ngữ J2ME - Công cụ quen thuộc đến bất ngờ

Trước đây ta thường quen sử dụng các công cụ như MobiTrans, Chinese, Class Editor,... để Việt hóa các trò chơi J2ME. Nhưng trên thực tế, mỗi công cụ đều biểu hiện nhiều khiếm khuyết, và nhược điểm lớn nhất khi lệ thuộc vào các công cụ này là: Đối với nhiều trường hợp, cho dù bạn có kết hợp tất cả chúng lại vẫn KHÔNG ĐỦ KHẢ NĂNG để Việt hóa.

Lấy ví dụ như game Hỏa Vân Cuồng Đao mà SinLong (member trong nhóm Việt hóa Openitvn đang thực hiện). Game có ngôn ngữ Tiếng Trung, trong đó có nhiều file chứa ngôn ngữ mà bạn không thể dùng bất kỳ tool nào can thiếp: GeneralWeapon.dat, item_H.dat, item_HA.dat, Magic.dat, ....

- Dùng MobiTrans: Không đọc được Unicode -> vô dụng

- Dùng Chinese, CE: Hai vị này bó tay vì chúng chỉ đọc được file class

Rõ ràng, chúng ta không thể Việt hóa nếu chỉ dừng lại ở việc biết sử dụng Tool như trước đây. Vậy Openitvn đã làm điều này như thế nào? Câu trả lời có lẽ đơn giản đến bất ngờ đối với nhiều bạn: Sử dụng Notepad++

Vậy hãy xem bằng cách nào Notepad++ có thể giúp chúng ta đọc ngôn ngữ game nhé

Lấy ví dụ với file GeneralWeapon.dat của Hỏa Vân Cuồng Đao, bạn trích xuất file này ra khỏi gói nguồn trò chơi, sau đó mở nó bằng Notepad++

Thoạt đầu bạn chỉ thấy một mớ những ký tự loằng ngoằng kỳ lạ. Nhưng thực chất chúng chính là ngôn ngữ trong game đang ở dạng ANSII nguyên thủy. Hãy làm cho nó hiển thị dưới dạng Unicode bằng cách đưa về đúng định dạng của UTF-8. Để làm điều này, bạn hãy chọn menu Encoding -> Encode in UTF-8 Without BOM

Và hãy xem kết quả

Rồi đó, bạn đã nhìn thấy chữ trung quốc chưa nào. Những chữ này chính là những chữ được hiển thị trong game Việt hóa J2ME (phần 10) - Sử dụng kỹ năng lập trình trong việt hóa Soi lại UTF-8, mình đã dành riêng 1 bài dành cho UTF-8 (xem chi tiết), trong đó các bạn đã biết được quy luật chuyển đổi giữa UTF-8 và Unicode. Các bạn hãy chú ý lại một điều, những ký tự thuộc 256 ký tự ANSII sẽ không hề thay đổi khi chuyển chúng giữa ANSII và UTF-8. Hãy ghi nhớ điều này

Tiếp đến, các bạn nên xem lại phần 1 của bài này (xem chi tiết), chúng ta có thể dùng Notepad++ để mã hóa dạng ANSII của văn bản sang mã UTF-8. Như đã nói ở trên, chỉ những ký tự không thuộc ANSII (2 byte trở lên) mới thay đổi khi ta thực hiện mã hóa, còn những ký tự 1 byte sẽ không hề thay đổi khi ta thực hiện thao tác này

Vậy có nghĩa là 2 ký tự "lạ" trước mỗi câu sẽ giữ nguyên giá trị và kích thước của nó. Đến đây bạn đã nhận ra được gì chưa nhỉ. Nếu chưa thì hãy xem lại bài nâng cao đầu tiên của mình (xem chi tiết), bạn sẽ được biết chính 2 ký tự này sẽ quy định độ dài của câu.

Như vậy công việc của chúng ta bây giờ là sửa các câu và hai ký tự quan trọng đứng trước mỗi câu. Giá trị của hai ký tự này tùy thuộc độ dài (số ký tự) của câu đứng ngay sau nó. Nhưng chú ý độ dài của các câu này không phải tính theo số ký tự ở dạng Unicode mà bạn được thấy mà phải ở dạng UTF-8 nguyên thủy.

Bây giờ chúng ta cùng tìm cách để làm sao cho nhanh nhé. Tất nhiên muốn nhanh thì không thể bằng cách tự ngồi đếm số ký tự được mà chúng ta phải nhờ đến máy tính. Muốn vậy chúng ta cần có kiến thức về lập trình - đây chính là nội dung chính của bài viết, cũng là nguyên nhân của cái tiêu đề dài dòng bên trên

Mình đã share một code chuyển đổi mẫu trên diễn đàn rồi (tham khảo tại đây) UTF-8 chuyển thành ký tự Unicode thì Notepad++ làm rồi, ta có thể tạm bỏ qua và chỉ quan tâm đến Unicode -> UTF-8 thôi. Bạn xem đoạn code sau

Code: Public Function Unicode2UTF8(chuoiUnicode As String) As String

'Author: Lord Kaj

'Language: Visual Basic 6

'Object: Module Function

'Level: Advance

'Input: Unicode string

'Output: UTF8 string

'Copyright: wWw.OpenItvn.Net

Dim phan1 As Variant, phan2 As Variant, phan3 As Variant

Dim vitriB As Integer

Dim kytuUnicode As String

vitriB = 1

Unicode2UTF8 = ""

Do While vitriB <= Len(chuoiUnicode)

kytuUnicode = AscW(Mid(chuoiUnicode, vitriB, 1))

If kytuUnicode < 128 Then

Unicode2UTF8 = Unicode2UTF8 & Mid(chuoiUnicode, vitriB, 1)

Else

phan3 = (kytuUnicode Mod 64) + 128

phan1 = ((kytuUnicode - 128) \ 64) + 194

If phan1 > 223 Then

phan2 = ((phan1 - 128) \ 64) + 223

phan1 = (phan1 Mod 64) + 128

Unicode2UTF8 = Unicode2UTF8 & Chr(phan2) & Chr(phan1) & Chr(phan3)

Else

Unicode2UTF8 = Unicode2UTF8 & Chr(phan1) & Chr(phan3)

End If

End If

vitriB = vitriB + 1

Loop

End Function Công dụng của hàm trên là đưa một chuỗi Unicode trở lại thành UTF-8

Đây là cách sử dụng nó. Bạn đưa vào tham số chuỗi Unicode khi gọi hàm này từ chương trình chính

Code: Dim chuoiUFT8 As String

ChuoiUTF8 = Unicode2UTF8("Nội dung chuỗi Unicode") Kết quả trả về sẽ là "Ná»™i dung chuá»-i Unicode"

Như đã nói, vấn đề chỉ còn lại là 2 ký tự đặc biệt đầu tiên sẽ ra sao thôi. Vì vậy ta dùng hàm trên để lấy độ dài của chuỗi Unicode sau khi đã được đưa về UTF-8. Và hàm Len kết hợp hàm trên sẽ đem lại điều mà ta muốn

Code: Len(Unicode2UTF8("Nội dung chuỗi Unicode")) Kết quả trả về sẽ là độ dài của "Ná»™i dung chuá»-i Unicode", tức là bằng 26. Đổi chuỗi này ra hex và nhớ thêm [00] phía trước nếu như kết quả chỉ có 1 byte (luôn nhớ rằng chúng ta có đến 2 ký tự đặc biệt phía trước), Việc này cũng có thể nhờ máy tính làm luôn cho nhanh

Code: Dim dodaicau As Integer

Dim ketqua As Variant

dodaicau = Len(Unicode2UTF8("Nội dung chuỗi Unicode"))

ketqua = Hex(dodaicau)

If dodaicau < 256 Then

ketqua = Chr(0) & Chr(CLng("&H" & ketqua))

Else

ketqua = Chr(CLng("&H" & Left(ketqua, Len(ketqua) - 2))) & Chr(CLng("&H" & Right(ketqua, 2)))

End If

'In kết quả ra textbox rồi copy paste y nguyên vào notepad++ thay thế cho câu và cả 2 ký tự đặc biệt phía trước câu thôi

txtKetqua.Text = ketquacuoicung OK, các bạn copy paste mấy đoạn mã trên vào cho Visual Basic 6 rồi biên dịch ra sài thôi. Đến đây công việc của bạn chỉ còn dịch trong chương trình tự tạo => copy kết quả => Paste vào những chỗ cần thiết trong Notepad++

Vậy thôi....

Chưa có điều kiện làm 1 project lên các bạn làm hộ nhé (mình đã nói rồi, phải có kiến thức lập trình). Nếu không làm được thì chịu khó chờ, mình xin khất thêm vài ngày, khi có thời gian rảnh mình sẽ làm ngay cho các bạn 1 cái :D

Việt hóa J2ME (phần cuối): Việt hóa - Thật đơn giản?

Vậy là sau một loạt bài viết hướng dẫn Việt Hóa từ cơ bản đến nâng cao, nếu như nghiền ngẫm kỹ thì đến giờ các bạn đã có một kỹ năng đủ dùng cho việc chuyển ngữ hầu hết các ứng dụng j2me rồi. Thực chất, bài viết này chỉ là tổng hợp lại toàn bộ những kiến thức từ những bài viết trước, kết hợp chúng với nhau để tạo thành một kỹ năng chứ không hề cung cấp thêm kiến thức mới nào cả...

Nhiều bạn đã đặt câu hỏi rằng phải chăng những thành viên trong nhóm VH Openitvn "giấu làm của riêng" một công cụ đặc biệt nào đó hỗ trợ việc Việt hóa tốt nhất. Vậy chúng ta hãy xem tool đó là gì nhé

1. Chuẩn bị công cụ

- Winrar

- Windows Caculator

- Notepad++

- AXE3 (hoặc chương trình đọc hex mà bạn thích)

Đó là tất cả những gì chúng ta cần. Rất quen thuộc phải không nào, vậy hãy bỏ qua những tool hỗ trợ và ý nghĩ phải có tool hỗ trợ, rồi bắt tay vào Việt Hóa hoàn chỉnh một sản phẩm nào...

2. Việt hóa - Thật đơn giản?

B1: Thử trò chơi, dùng Winrar giải nén toàn bộ file nguồn của ứng dụng nằm trong file jar vào một thư mục

B2: Sử dụng công cụ Notepad++ và tính năng Encoding in UTF8 without BOM để lọc ra những file chứa ngôn ngữ cần việt hóa

B3: Tạo các chuỗi theo đúng quy chuẩn

Để làm được điều này bạn phải lắm vững các kiến thức cần thiết mình đã cung cấp, có thể xem lại nếu cần:

Cấu trúc chung của chuỗi trong J2ME

Ok, nếu đã lắm vững rồi thì có thể bạn cần biết phải làm gì rồi:

- Mình lấy ví dụ với từ "好友" (Hảo Hữu) nhé. Bây giờ nhiệm vụ của ta là phải có cho được 2 ký tự đặc biệt quy định độ dài chuỗi. Xin nhấn mạnh, ký tự này phải phản ánh đúng độ dài của chuỗi trong bộ dạng UTF8

- Chuyển từ "Hảo Hữu sang UTF8" ta được "Hảo Hữu" (xem lại cách đổi tại Ký tự Tiếng Việt trong J2ME - Bí mật về bộ mã UTF8)

- Chiều dài "Hảo Hữu" có cả thảy 11 ký tự. Dùng Caculator chuyển sang hex ta được [0B], như vậy có thể thấy ngay hai ký tự quy định độ dài chuỗi là [00|0B]

- Tạo một file văn bản rồi dùng AXE để chuyển [00|0B] sang Ascii. Để làm việc này, bạn nhập 000B vào cột bên trái. Lưu file văn bản lại rồi mở nó bằng Notepad++ xem ta có gì:

Đúng vậy, đó chính là hình ảnh hiển thị của [00|0B], vậy việc cuối cùng để tạo một chuỗi đúng quy chuẩn của java là thêm "Hảo Hữu" vào sau 2 ký tự đó là được rồi

B4: Dán toàn bộ những thứ ta thu được thay thế cho chuỗi gốc

Vậy là được rồi đó. Giờ bạn có thể yên tâm rằng từ "好友" đã được thay bằng từ "Hảo Hữu" và khi save file lại rồi đưa trở lại game thì chữ này đã được Việt hóa hoàn toàn và không gây ra lỗi gì nhé. Việc của bạn là làm lại tất cả các bước trên cho tất cả các chuỗi còn lại. Vấn đề giờ chỉ còn lại là BẠN CÓ ĐỦ KIÊN NHẪN không thôi nhỉ.

Tổng kết

Như vậy là mình đã giới thiệu cho các bạn các kỹ năng để Việt hóa tốt nhất rồi. Trước tiên bạn có thể sử dụng các tool hỗ trợ đã được giới thiệu để tận dụng hết khả năng của chúng. Những gì mình trình bày trong bài này chỉ áp dụng những khi nào mà toàn bộ các tool kia không thể làm được thôi vì tính phức tạp của nó khá cao.

Trước nay nhiều bạn có ý kiến cho rằng kỹ năng việt hóa chỉ đơn giản. Thực ra có phải vậy không? Nhiều bạn chỉ phụ thuộc vào các công cụ hỗ trợ dịch là Google và các tool hỗ trợ để làm rồi nhầm tưởng rằng Việt hóa là công việc gì đó rất tầm thường. Hãy tách thử các tool ra bạn sẽ thấy: Việt hóa không chỉ dựa vào sự kiên trì, bạn cần có sự sáng tạo, lượng kiến thức rộng về nhiều mặt và cả tư duy phân tích nữa...

Bạn muốn trở thành một người có khả năng Việt hóa đích thực ư? Bạn cần đạt được 2 tiêu chí sau:

- Chỉ khi nào bạn có khả năng tạo ra các tool chứ không phải là biết cách sử dụng tool.

- Chỉ khi nào trong sản phẩm của bạn, toàn bộ các câu văn chính là hành văn của bạn chứ không phải của google hoặc các bộ máy translate vô tri.

Kiến thức việt hóa không bao giờ là đủ, và những gì mình biết cũng không phải là tất cả. Cách đây 1 năm, những gì mình giới thiệu có thể giúp bạn Việt hóa 100% các loại ứng dụng java. Nhưng hiện giờ, nhiều sản phẩm đã được mã hóa chuỗi. Và "giải mã", một tầm cao mới của Việt hóa đang chờ chúng ta cùng khám phá. Hãy chia sẻ những gì bạn tìm hiểu được cho mọi người, và bạn sẽ nhận được nhiều hơn thế!

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

Bạn đang đọc truyện trên: Truyen2U.Pro