Здравствуйте!, [Гость]! Регистрация RSS

Главная » Статьи » Создание модов с помощью девайса [mobile] » Некий FAQ по моддингу java игрушек

Руссификация ява-приложений
Руссификация ява-приложений
Частенько бывает такое - имеется интересное ява-приложение (игра), оно вам нравится, но там всё непонятно (на английском или другом иностранном языке), а как хотелось бы по-русски. Иногда поиски бывают успешные и находится русская версия программы. А если нет? Конечно можно поканючить на форуме, вдруг кто переведёт. А ведь ява-приложения переводятся не на небесах и вам самим вполне по силам сделать это.
Рассматриваемый способ не гарантирует 100% возможность перевода, т.к. затрагивает лишь вариант когда все текстовые ресурсы ява-мидлета располагаются в файлах class. Впрочем таковых большинство.
В качестве примера возьмём ява-приложение Compass 4.1(автор Dana Peters, приложение бесплатное, по лицензии GNU General Public License, т.е. его исходный код может изменять любой желающий). В оригинале мидлет английский, переведём это полезное приложение на русский.
1. Инструментарий для работы
Для перевода ява-приложений нам понадобится несколько программ:
- архиватор-разархиватор (например WinRAR, но можно и любой другой, умеющий работать с zip-архивами);
- программа для работы с текстами в файлах class (например InClassTranslator или Mobitrans за авторством [wl],- для непосредственно перевода текстов опционально можно воспользоваться любым переводчиком, в т.ч. и онлайновым, или бумажным словарём.
2. Разархивирование ресурсов ява-приложения
Прежде всего треубется разархивировать все ресурсы ява-приложения. Сейчас я открою великую тайну (шёпотом) - ява-приложение (его основной файл jar) на самом деле является... обыкновенным zip-архивом! Поэтому просто поменяйте расширение jar на zip и открывайте файл в любом архиваторе (да хотя бы в WinRAR). Внутри файла jar вы увидите различные файлы и папки. Разархивируйте их (все) в какую либо папку и изучите содержимое на предмет наличия файлов с расширением class. Чаще всего текстовые ресурсы находятся в них.
Разархивировав compass.jar вы увидете файлы ".timestamp", "a.class", "Compass.png" и папки "henson", "META-INF", "org" (внутри этих папок ещё куча вложенных подпапок и файлов, их перечислять не буду).
3. Перевод текстов
Запускаем In Class Translator. Окно программы разбито на три области. В первой (вертикальная колонка слева) будут отображаться все текстовые строки из файла class, во второй (верхнее окно справа) отбражается краткая справка по работе с программой (после открытия файла class там будет показан полный текст выбранной строки), в третьей (нижнее окно слева) пишем перевод.
Нажимаем "File - Open", выбираем любой файл с расширением class (из разархивированных ресурсов ява приложения). Если в данном файле нет текстовых строк, программа сообщит об этом "Where is no strings in file" (тогда открывайте следующий файл class). В колонке слева вы увидите все текстовые ресурсы, хранящиеся в данном class-файле (для примера на рис. 2 показано содержимое файла a.class из ресурсов compass.jar). Выделяем мышкой любой из них, он появится в правом верхнем окне.
Затем переводим его любым доступным способом и пишем перевод в правом нижнем окне.
Снова тыкаем мышкой в левую колонку и нажимаем значок "Сохранить". Переведённый текст отобразится в колонке слева вместо оригинального.
И так последовательно переводим все тексты из данного файла class. Затем открываем другой файл class и т.д. пока не переберёте все "классы" из ресурсов ява-приложения.
4. Запаковка ресурсов в архив и тестирование
По окончании перевода файлов class запаковываем все файлы ява-приложения обратно в zip-архив (с сохранением структуры файлов, какой она была в оригинале). Меняем расширение с zip на jar. Записываем ява-мидлет в телефон, инсталлируем и проверяем как смотрится ваш перевод. Если всё устраивает, радуемся, если какие-либо надписи "съехали", повторяем процедуру перевода и делаем проблемные надписи короче.
5. Если что-то пошло не так
Переведя указанный Compass я был несколько удивлён тем что мидлет отказывается запускаться. Изучение сообщения об ошибке и метод тыка позволили определить, что это происходит если перевести символ "s" (в файле a.class). Пришлось стороны света "n, s, w, e" оставить без перевода. Почему так произошло я не знаю. Общее правило такое - если после перевода мидлет не работает, значит вы где-то хватили лишнего и перевели то, что переводить было нельзя. Как узнать где переводить не стоило? К сожалению здесь никаких рекомендаций дать невозможно -только метод тыка и изучение сообщений об ошибках (возможно они подскажут в каком class-файле искать проблему). Можно пойти другим путём -после перевода каждого class запаковывать файлы в jar и каждый раз проверять работу мидлета. Это долго, но зато надёжно и вы наверняка будете знать в каком class находится ошибка.
P.S. Просто не означает легко - полноценный перевод приложения это довольно долгая и монотонная работа. Файлов сlass может быть довольно много. Да и по окончании перевода придётся исправлять ошибки, укорачивать неумещающиеся фразы и т.п. Перевод ява-программ можно делать как на телефоне так и на ПК.

Маленькое лирическое отступление. Работа с любыми переводами требует усидчивости, желания добиться конечного результата, наличие свободного времени, знание языка (или помощь перводчиков на ПК или в сети), ну и не мало важно фантазии для подбора слов синонимов. У вас все есть ?

Тогда приступим :

Перевод на ПК :
1) скачиваем программы InClassTranslatorили chinese (последняя с поддержкой работы китайского языка).
2) берм скачанное для перевода jar приложение и открываем его любым архиватором.
3) находим файлы *.class и извлекаем их в любую папку на вашем ПК
4) запускаем InClassTranslator или chinese находим ваши извлеченные *классы* и методично перебираем их на предмет ресурсов на иностранном языке и переводим не забывая сохранять переведенный текст
5) опять открываем архиватором jar, берем переведенные файлы *.class, выделяем все и перетаскиваем их в архив согласившись на замену
Все теперь или перекидываем приложение на флешку или через NokiaPC инсталируем приложение
Перевод на смарте:
смысл тот же что и на ПК только для работы вам потребуется Handy Zip(ссылка с соседнего сайта) для Nokia N70, N72, N90 с кей геном и только он !!! другие не подойдут или альтернатива на питоне jarBOOM, любой файлмен лучше X-Plore и zntxhan1.50 на ветеранов или zntxhan1.50для 9 оси
1) в файл мэне, создаем папку, меняем jar на zip, открываем тут же и смотрим если *классы* лежат в подпапках то значит в вашей созданной папке нужно сделать такие же подпапки с такими же названиями, извлекаем все *классы* в созданное вами дерево
2) переврдим через zntxhan
3) запускам Handy Zip (смотрим чтобы в настройках стояло компрессия - быстро, вложенные папки - да, остальное не так важно) и открываем переименнованный вами jar, удалям старые *классы* и добавляем переведенные вами
4) идем в файл мэн и переименовываем zip на jar
5) инсталируем, если программа после вашего перевода не запустилась, просто значит что то вы накосячили при запаковке, повторяем процесс до удачного результата
Ну вроде в самом кратце все, на 100% у вас будет что то не получаться или возникать вопросы. Помните : Москва не сразу строилась! Все программы можно найти на страничке
http://forum.fonzo.ru/index.php?showtopic=4409

Программы для руссификации ява-игр., Спец-Сборник.
Название программы:
In Class Translator
Краткое описание:
Перевод текста в классах ".class" файлах...пожалуй самая расспостранёная и популярная программа для перевода мобильных игрушек в класс-файлах
1. Распакуйте все классы(*.class) из jar-файла игрушки с помощью WinRAR(или любого другого архиватора).
2. Открывайте с помощью этой программы поочерёдно распакованные файлы, пока слева не появится список строк, в них содержащихся. Если в классе нет текста, программа об этом сообщит.
3. Выбирайте поочерёдно строки из списка слева, и переводите в окошке справа-внизу. В верхнем окошке выводится английский текст.
4. Для удобства перемещения от окна с переводом к списку используйте клавишу [Tab].
5. Переведенные строки помечаются в списке зеленым цветом.
6. При закрытии программы или класса, программа спросит, нужно ли сохранить русские строки. Лучше ответить да, если не хотите потерять результат.
7. Чтобы сгенерировать новый *.class файл с уже переведенными строками, используйте меню File->Save.
8. Меню File->Save As... сохраняет новый класс под другим именем.
Автор и описание:
WL

Программа MobiTrans

MobiTrans - это универсальная программа для перевода игр для сотовых телефонов (j2me).
Позволяет переводить текст, находящийся в class-файлах и в отдельных языковых файлах.
Если шрифт для игры нарисован, то с помощью программы можно перерисовать шрифт на русские буквы, создать таблицу соответствия бывших английских букв получившимся новым и автоматически перекодировать текстовый файл.
В комплекте идут 4плагина: Utf-8 (Allods), ClassPlugin, DoomRPG, Text

Мои плагины: для игр Hitch Hiker Guide To The Galaxy, Mafia Wars 2, OfficeWars, Spyro, Elven Chronicles, а так же для игр от таких компаний как Digital Chocolate, Sumea, Rovio

Название программы:
In Class Translator Сhinese

Краткое описание:
Прототип предыдущей программы "In Class Translator", но в отличие от первой работает с китайскими class файлами.
И создавалась специально для перевода китайских игр.

Почему популярен In Class Translator?
Да потому что работает без сбоев, согласен намного сложнее с ним работать, но и удобнее (пусть даже эта вся работа ручная, но я знаю и вижу что перевожу) и китайский класстранс по тойже технологии. Создатите удобнее что-то (мы только за обеими руками) и простое как инкласстранслятор... да просто удобный пусть даже вся работа в ручную...

Java Editor

Программа для редактирования строк и констант из Constant Pool'а в классе, изначально задумывалось как дизассемблер, но дальше Constant Pool'a я в класс не полез. Программа из раздела "а вдруг кому-нибуть пригодится".


Информация взята с fonzo.ru Если вы уже можете перевести игру то предлагаю вам сделать "гоблинский" перевод. Идей для таких переводов предостаточно, только не стоит считать что перевод с матом кому-то будет интересным- помните в переводе главное идея а не "забористый" мат! 
Как вариант я могу предложить вам переводить на Белорусский язык ,т.к. перевод на таком языке будет выглядеть посолидней чем русский, всем уже надоело видить привычные надписи типа "новая игра", "опции" и т.д.
Вот пример каким можно сделать перевод на Белорусском (это этикетка от яблочного сока): Яблычны нектар асветлены пастерызаваны : массавая доля пладовай часткi 80%.Слад :яблычны сок канцэнтраваны , цукровы сiроп , рэгулятор кiслотнасцi : цытрынавая кислата.Харчовая каштоунасць на 100 г прадукта : вугляводы - 10.3 г , бялки -0.4 г ,клятчатка - 0 г , тлушчау(у т.л. насычаных тлусты кiслот - 0 г .Энергетычная каштоунасць на 100 г прадукта - 44 ккал/184 кДж.Захоуваць пры тэмпературы ад 0 Сда + 25 Сi аднаснай вiльготнасцi не больш за сутак пры тэмпературы +2 Сда +6 С.Перад ужываннем узбоутаць.Дата выраба i тэрмiн прыдатнасцi паказаныя на верхняя панэлi пакета.ТУ У.Адрас вытворцы и магутнасцi вытворчасцi : ТАА "Сандора" , Украiна , Нiкалаеуская вобласть , Жоутневы р-н (А) 57262 , с Нiкалаеуске , с.Мешкова-Пагарелава 

Категория: Некий FAQ по моддингу java игрушек | Добавил: Darkar38 (10.05.19) | Автор: Darkar38
Просмотров: 5999 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]