Компания I-Play, не выпускает и походу не собирается выпускать игры на русском языке.
Давайте вместе рассмотрим базовые знания по переводу игр этой компании. Все они строятся на одном принципе и если у меня получится доступно рассказать как, то впоследствии вы сможете перевести любую их игру, а заодно почерпнёте знания по работе с программами которые пригодятся и для перевода других компаний.
Нужные нам программы:
1. WinRAR - архиватор для распаковки игр
2. WinHex - редактор Hex значений (контрольного кода)
3. Macromedia Fireworks MX или Adobe Photoshop - графический редактор
4. Notepad 2 - текстовый блокнот
5. Text Filter - программа для перевода игр
6. KEmulator - эмулятор телефона
Осуществим и рассмотрим наш перевод на примере игры: Bubble Town 2
Скачиваем игру и нужные нам программы (соответственно всё это устанавливаем)
Создаём папку "Перевод игры" и закидываем туда нашу игру, чтобы потом нам не искать где это у нас всё лежит и все операции будем проделывать в этой папке.
Распаковываем игру архиватором WinRAR и заходим в распакованную папку с файлами которые нам и нужны для редактирования.
И начнём мы с вами с создания русских букв. Отыскиваем среди распакованных файлов графический файл (рисунок) с буквами. В нашем случае это два файла "menufont.png" и "smallfont.png" дорисовывать буквы будем в оба файла.
Начнём с файла "menufont.png", открываем его графическим редактором:
Мы с вами видим что картинка шириной 586 точек и высотой 66 точек. Нам нужна только высота картинки.
На картинке мы видим три строчки букв, то есть высоту 66 делим на 3 строчки и получаем значение что каждая строчка равна 22 высота. Нам на картинке больше буквы рисовать места нет и поэтому мы добавляем новую строчку шириной 22 точки в нижнюю часть картинки. У нас картинка получилась 88 точек.
Начинаем на чистой строке рисовать буквы полностью русский алфавит:
ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеж
зийклмнопрстуфхцчшщъыьэюяё
Начинаем с буквы "Ё" далее по порядку и заканчиваем маленькой "ё" имено так идут буквы в кодировке ЮТФ8.
Похожие буквы можно вырезать из уже нарисованного алфавита английская A = русской А и так далее.
В нашем примере рисовать начинаем от самого края.
(*Примечание: Если в рисунке было пустое место, то рисовать начинаем от последней буквы, перенос на новую строку происходит по истечению пустого места или если последующая буква уже не вмещается в кусок пустоты, тогда этот кусочек оставляем пустым и начинаем новую строку.)
(**Примечание: Чтобы буквы начать рисовать не выше и не ниже в строке, можно наложить нашу букву на верхнюю строку выровняв с соответствующими уже нарисованными буквами и отпустить вниз на 22 (так как у нас строка равна 22) точки и уже следующие буквы рисовать по этой высоте в строке.)
Рисовать надо каждую букву отдельно, то есть если мы зацепим нарисованую букву курсором мышки, то мы сможем её двигать по экрану рисунка.
Буквы в строке должны прилегать друг к другу, если выделить букву то она будет в квадратной рамочке и эти рамочки должны быть квадратик к квадратику.
Если выделить одну букву то она тоже будет в рамочке (это её параметры размера). В нижней части вашего редактора (обычно) при выделении буквы пишутся параметры: Ширина, Высота, Ось Х, Ось У. Выделяем букву и ищем эти параметры, ...ищем, ищем, должны быть. Нам нужен параметр Ширина. Ширина каждой нарисованой нами буквы.
На моём рисунке это выглядит так
Ё=13
А=15
Б=13
В=13
Г=11
Д=17
и так далее.
Нам будут нужны размеры каждой нами нарисованой буквы. Можно на компе создать текстовый документ и записать все размеры букв. Или в обычную тетрадочку.
Эти параметры ширины каждой буквы нам очень нужны.
Ну всё рисуем буквы акуратно записываем ширину и можно сказать мы завершили шаг номер один.
Теперь проделываем такую же операцию с файлом smallfont.png но заметим что ширина строк равна 16, а это значит что и буквы на этом рисунке поменьше размером.
Всё мы дорисовали с вами буквы и записали у себя ширину каждой нарисованной нами буквы.
Сохраняем наши рисунки с прозрачным фоном в формате PNG-8. (фон вырезается, удаляется и делается прозрачным.)
Теперь сделаем так, чтобы нашими нарисоваными буквами можно было писать в игре.
Создаём у себя обычный Текстовый документ и открываем его программой Notepad 2.
И пишем в нём весь русский алфавит (в одну строчку, без пробелов, начиная с Ё и заканчивая ё)
ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдежзийклмнопрстуфхцчшщъыьэюяё
теперь в верхнем трее выбираем / Файл / Кодировка / UTF-8
И сохраняем наш текстовый документ.
Далее открываем нашу распакованную папку с файлами игры и находим в ней файлы:
menufont.font - этот файл отвечает за передачу игре рисованых шрифтов файла "menufont.png" который мы рисовали.
smallfont.font - этот тоже отвечает на те же требования, но к буквам файла "smallfont.png".
Вы заметили что файлы носят одинаковые названия у картинки и файла соответствия. У компании I-Play это распространнёный случай называть одинаково файлы одного направления.
Отыскали два файла "menufont.font" и "smallfont.font"
На втором рисунке этого же файла, я уже выделил вторую часть кода.
Сразу смотрим сколько он занимает в правом нижнем углу. Он равен 150. Это количество букв которые внесены в файл в видимом формате. (Как раз такое же число и нарисованных букв и знаков было у нас изначально на рисунке.)
Все эти точки, не просто точки, а имеют слишком малый числовой код и отображены именно так. Фиолетовым цветом я выделил произвольно несколько таких точек.
Мы видим что каждая точка имеет своё число. Это и есть ширина буквы!!! У каждой из 150 точек есть своё число равное ширине одной из букв.
И если мы с вами будем добавлять буквы то и точки будут прибавляться. одна буква = одна точка. две = две и так далее. И если у буквы Б ширина равна 13 то и точка ответственная за эту букву будет 13.
Далее не закрывая WinHex, мы берём наш текстовый документ в котором писали весь русский алфавит и сохраняли в UTF-8 и закидываем его в ХексРедактор.
Вот так и выглядит весь наш алфавит в формате ЮТФ-8, хотя если открыть его простым блокнотом то он будет по прежнему обычными буквами.
Его размер 132. 33 больших буквы + 33 маленьких = 66 букв. каждая буква 2 символа. 66 Х 2 = 132 блока.
Эти буквы нам надо добавить к уже прописанным буквам файла "menufont.font".
Копируем весь код русских букв Ctrl+C и вставляем Ctrl+V в файл "menufont.font" точно между кодом букв (дополняя буквы) и кодом их ширины. Для этого просто сделайте клик перед кодом букв (на первом блоке который отвечает за ширину) и вставьте текст.
Мы с вами добавили 132 блока, теперь как я и писал выше мы подтвердим это в двух блоках которые отвечают за это добавив им тоже значение +132.
Чтобы прибавить значение в блоках выделите второй отмеченный блок (удерживая левую кнопку мыши поелозьте по нему) и Ctrl+T добавить 132.
Так как значений Хекс всего 256 вместе с 0, то вы заметили что значение стало меньше чем было. В нашем случае оно стало 90 (214 + 132 = 346) значений 256 (346 - 256 = 90) То есть один целый и ещё 90. И это значит что в первый блок нам надо тоже добавить 1. и будет 1 90.
И так мы с вами вставили ЮТФ-8 в наш файл, теперь нам надо вставить значения ШИРИНУ каждой русской буквы.
Мы видим что у нас уже есть 150 точек(значений) то есть это значит что уже есть 150 букв-знаков.
Мы нарисовали 33 большие и 33 маленькие буквы.
Нам надо добавить 66 значений.
Отмечаем последнее значение и кнопки Ctrl+0(ноль) или как на рисунке добавляем 66 нулевых байт. (*заметка Если отметить последнее значение и начать добавлять байты программа спросит "добавить в конец?" отвечаем Да, если ответить Нет то байты добавятся перед последним значением)
Сохраняем проделанную работу.
Теперь такую же операцию проделаем с файлом "smallfont.font" по соответствию к картинке "smallfont.png".
Всё мы создали с вами шрифты, теперь откроем нашу игру архиватором WinRAR и закинем туда наши 4 файла (2 картинки и 2 файла соответствия) которые мы сделали. Закинем файлы с заменой старых на новые.
И приступим непосредственно к переводу игры.
Отыскиваем в распакованной папке файл "text_en.utf8" и переименовываем его "text_ru.utf8". Мы заменили буквы en на ru.
Имено этот файл и содержит весь текст в игре. Закинем наш файл "text_ru.utf8" который ещё содержит английский текст в игру и вернёмся к нему чуть-чуть позднее.
Мы закинули новый созданный файл в игру и теперь нам надо это сообщить игре, что мы создали дополнительный языковой пакет "ru" "text_ru.utf8".
Отыскиваем файл "langs.utf8" этот файл содержит информацию о языковых пакетах в игре и даёт возможность запустить выбранный язык.
Открываем файл langs.utf8 редактором WinHex.
Мы видим название пакетов и запуск пакета ..English..en..Italiano..it и так далее, перед каждым словом видим 2 точки-байта они показывают сколько знаков используется в слове (07)English(02)en - тоесть в слове English = 7 знаков, в en = 2 знака.
Самые первые два байта показывают "0" "10" они говорят о том что в файле написано 10 слов. 5 пакетов языка и 5 пакетов запуска.
Нам надо добавить ещё один пакет и запуск пакета. ..Русский(в формате ЮТФ-8, 14 знаков)..ru(два знака) и дописать в первые 2 байта "+2" тоесть будет равно 12.
Если мы хотим оставить два языка будет примерно так | .0.4 (четыре слова в файле) | .0.14Русский (имя языка) | .0.2ru (имя пакета) | .0.7English (имя языка) | .0.2en (имя пакета) |
Если мы оставим всего оди язык то соответственно первые 2 байта будут = 0 и 2. В этом случае игра запустится без выбора языка и в настройках игры функция ЯЗЫК будет отсутствовать.
Вот мы с вами и разобрались с выборами языковых пакетов, а теперь приступим к самой игре, её переводу.
===
Virusfon (4.5.2010 - 16.5.2010)
Взято с http://blackcats.su