Главная » Статьи » Создание модов с помощью девайса [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калаеуске , с.Мешкова-Пагарелава | |
Просмотров: 5999 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |