Как сделать переводчик для игры. Как переводить html игры на русский язык на примере Virtual date games

Инструкция

Если вы хотите пользоваться русским интерфейсом в игре, то при ее установке сразу же настройте инсталляцию соответствующей версии. Если игра у вас уже установлена, откройте пункт меню опций, настроек, конфигурации игрового процесса и поменяйте язык на русский оттуда, если таковой имеется в списке. Зачастую если он имеется в наличии в игре, то запускается автоматически по умолчанию, потому в большинстве случаев смена языка через меню конфигураций подходит не ко всем случаям.

Если в настройках игры не имеется русского языка, скачайте программу-русификатор. Они предназначены для перевода интерфейс а программы или игры, однако, это далеко не лучший вариант, поскольку их использование в какой-то мере «тормозит » работу. Также зачастую эти программы пишутся людьми, которые прописывают перевод на собственное усмотрение, потому он в большинстве случаев бывает некачественным.

Обязательно выполните проверку на вирусы скачанных русификаторов, поскольку они могут представлять угрозу для операционной системы или пользовательских файлов, не говоря уже об утрате данных в игре. Обязательно перед их использованием создайте точку восстановления системы в стандартных служебных программах меню «Пуск», поскольку может потребоваться откат изменений.

Переустановите игру, предварительно скачав русскую версию. Если нужно, сохраните прогресс, чтобы не потерять время на новое прохождение . Обычно папки с файлами сохранений находятся в директориях Programm Files, Application Data или в документах пользователя. Это самый верный способ перевода игры на русский язык.

Обратите внимание на первоначальный экран запуска игры – во многих из них первоначально появляется окно конфигурации для настройки основных параметров. Например, в игре Tony Hawk`s Pro Skater 4 языковые настройки можно изменить, не открывая меню.

Обратите внимание

Некоторые русские версии игр могут содержать некачественный перевод, искажающий реальную информацию.

Полезный совет

Учите иностранные языки.

Источники:

  • как поменять в игре язык

«О великий, могучий, правдивый и свободный русский язык ! Не будь тебя - как не впасть в отчаяние при виде всего, что совершается дома?» Прошло много лет с тех пор, как И.С. Тургенев произнес эти слова, но и ныне есть от чего впасть в отчаянье: то реорганизация образования, то реформа русского язык а, то ЕГЭ провалено. Между тем в виртуале подрастает поколение людей, для которых родной язык - это несогласованные фразы без запятых и грамматических основ. И как защитить от оскудения это вместилище русского духа и генетической памяти?

Инструкция

1. Говорите по-русски.
Международные отношения не стоят на месте, ширятся и множатся язык овые связи в различных сферах деятельности людей, отчего и плодятся заимствования. Их употребления не нужно панически избегать, так как многие явления были впервые обозначены на язык е страны-первооткрывателя (ну не мы изобрели логистику, хип-хоп, джаз), однако злоупотреблять «заморскими дарами» тоже не стоит.
Иностранные слова зачастую имеют русские аналоги, которые оседают за пределами речевой коммуникации, ведь здорово в разговоре прихвастнуть знанием иностранных слов. А между тем для русского уха они имеют гораздо меньше веса, чем родные. Согласитесь «киллер» и «убийца» различаются по эмоциональной окраске: если первое отдает книжно-киношной выдумкой, то от второго пронимает насквозь. Экзотический «карвинг» оказывается родной и знакомой резьбой. Модное слово «хобби» - это душевное русское «увлечение» делом, которое уводит (увлекает) от повседневности.
Подобные язык овые отклонения, называемые варваризмами, легко приживаются в речи, с их помощью говорящий надеется блеснуть эрудицией, произвести впечатление, а иногда пустить пыль в глаза. Но эффект может оказаться до смешного противоположным.

2. Говорите по-русски грамотно.
Будьте хорошим примером для молодого поколения! Практиковать родной язык следует толково, со знанием дела. Существуют нормы и правила, которые необходимо уважать, ибо они – гарантия долговечности русского язык а.
Его лексика многослойна, многозначна. Хорошо, если вы знакомы со всем ее стилистическим богатством. Но это не дает основания в любой речевой ситуации произносить любое слово! Грамотность как раз и заключается в том, чтобы безошибочно определить уместность употребляемых слов: просторечия не следует использовать в докладе о падении численности популяции тушканчика.
Общеизвестные правила школьной программы тоже не стоит нарушать: написанное пером не вырубишь топором. Особенно когда это – резюме на хорошую вакансию.
Несмотря на невиданный либерализм последних реформ русского язык а, все же помните: в слове «баловаться» ударение на третьем слоге, а в «жалюзи» – на последнем.

3. Говорите по-русски за границей .
Даже если вы полиглот и живете за рубежом безвылазно, все равно у вас найдутся хотя бы 1-2 русскоговорящих собеседника. Так не пренебрегайте возможностью лишний раз ощутить вкус родного язык а. Быть может, это последнее, что связывает вас с родиной и памятью предков.
Достойно общаться на иностранном язык е может только тот, кто бойко говорит на русском , осознает принципы функционирования язык а, умеет красиво и непринужденно подыскивать нужные слова.
Не стесняйтесь новых соотечественников, даже если они не понимают, зачем вам за границей русский язык . Отступничество от корней напугало бы их еще больше. Приобщайте их к своей культуре, говорите с ними на разных язык ах и учитесь понимать друг друга. Пусть процветает межъязык овая коммуникация.
Воспитывайте двуязычие у своих детей, у которых с вами разное отечество, чтобы не стать для них олицетворением чуждой, враждебной культуры .
Пока вы бережете и помните русский язык , Россия с вами в любом уголке мира.

Видео по теме

Источники:

  • о русском языке в эмиграции

Практически все действительно хорошие программы для компьютера написаны англоязычными программистами. Естественно, и в России встречаются талантливые разработчики и стоящие программы, однако, проблема русификации все равно остается. Если одна из программ, которой вам нужно воспользоваться, имеет интерфейс на иностранном языке , ее можно русифицировать.



Вам понадобится

  • - компьютер;
  • - интернет.

Инструкция

Введите название программы в поисковую систему в интернете. Вы удивитесь, но, скорее всего, с такой проблемой уже сталкивалось множество людей. Если это множество достигло определенного количества, то вполне реально будет найти русификатор к вашей программе. Как правило, подобные вопросы всегда задаются в специальном сервисе, который называется Mail Ответы.

Узнайте версию программы, зайдя в пункт About основного меню. Загрузите русификатор именно для вашей версии программы, так как другие не подойдут. Чтобы изменение внешнего вида программы прошло успешно, версии должны соответствовать до последней буквы, так как наличие одной лишней кнопки или пункта меню в другой версии вызовет сбой в работе утилиты русификации.

Установите русификатор, пользуясь приложенной инструкцией. Некоторые русификаторы устанавливаются путем копирования нужных файлов во внутренние папки программы, другие - путем стандартной установки, когда указывается место размещения основной программы. Также стоит отметить, что во многие русификаторы интегрируют различные вирусы, поэтому подобные файлы при загрузке внимательно проверяйте при помощи антивирусного программного обеспечения, желательно несколько раз.

Перезагрузите программу , чтобы изменения вступили в силу. Если возникла ошибка при запуске программы или буквенная часть интерфейса отображается неверно, значит вы установили неподходящий русификатор. Загрузите и установите другой вариант русификатора. Если ваша программа не имеет русификатора, не отчаивайтесь. Наиболее проблемные и непонятные места можно перевести с помощью онлайн -переводчика в интернете. Возможно, вам понравится быстродействие переводчика от google.

Видео по теме

Довольно тяжело работать с программами на английском языке, ведь не многие знают его в совершенстве. С другими языками еще сложнее. К тому же, программой гораздо удобнее пользоваться, если она на знакомом русском языке.

Если начали читать этот текст, то возможно вы решили перевести некую игру скажем с английского на русский. В принципе нет разницы английский язык или любой другой европейский. Возможно, данное руководство не применимо если вас угораздило решиться на перевод с японского:-). В данном описании я рассмотрю подходы к переводу только однобайтовых кодировок. Что это за звери такие эти однобайтовые кодировки sbcs (Single Byte Character Set), надеюсь станет понятнее если у вас хватит терпения прочитать еще пару - тройку абзацев.

Для лабораторной работы нам понадобятся следующие инструменты:

  • 1. шестнадцатиричный редактор (я буду приводить в пример GoldFinger)
  • 2. Windows Commander для побайтного сравнения файлов и быстрого HEX просмотра
  • 3. TileLayerPro утилита для поиска и редактирования битмэповых шрифтов в приставочных играх.
  • 4. SnesTool для генерации IPS файлов (спец формат который позволяет выделить только измененные байты и надевать изменения на оригинальный образ ROM)
  • 5. PokePerevod - утилита, смысл которой я постараюсь объяснить в ниже...

Глава Первая - В начале были буквы.

Если вам известно, чем кодовая страница отличается от шрифта, а печатные символы от непечатных, вам лучше продолжить чтение со следующей главы.

Начнем с простого, наверное вы читаете этот текст на PC:-) и соответственно объяснять, что такое IBM PC не надо (это было бы уж слишком для куловых хацкеров решивших ПЕРЕВОДИТЬ игры, а не просто мочить всех монстров до последнего патрона:-).

У персоналки (IBM PC) есть BIOS, в котором кроме всего прочего есть место где нарисованы шрифты, если посмотреть на экран пока машина грузится (русские Win9x нагляднее), то можно увидеть, что сначала выводимый на экран текст русскими буквами не читается, в смысле буквы мы видим, но они какие то не русские:-), потом весь русский тест видимый на экране внезапно становится понятным. Это значит, система загрузила MODE/DISPLAY/COUNTRY.sys которые в определенное место в памяти записывают новые ИЗОБРАЖЕНИЯ символов - шрифты :-). Ура с одним термином разобрались, идем дальше...

А когда мы располагаем, изображения символов в определенном порядке, на пример под номером 65 у нас нарисована заглавная английская буква "А", под номером 66 будет нарисована буква "B" и так далее... значит мы придумали кодовую страницу (code page или character set). Причем обратите внимание, что программе глубоко наплевать что мы увидим на мониторе. Она просто говорит подсистеме ввода/вывода покажи на экране символы с кодами (hex) 66,55,43,4B:-), а что увидит пользователь программу никак не волнует.

Далее, производители персоналок договорились о СТАНДАРТНОЙ кодовой странице, которая состоит из 255 (или 256:-) символов и английские буквы там всегда имеют одинаковые коды, а остальные как захочет производитель:-)...

Поскольку вариантов нумерации изображений символов расплодилось много, то буржуины их пронумеровали и обозвали стандартными кодовыми страницами . Соответственно программа пишется с предположением, что на компьютере будет использована определенная кодовая страница и тогда он увидит на экране текст правильно...

Для русских символов существует несколько СТАНДАРТНЫХ кодовых страниц (мы же блин не американы какие то, нас умом не понять:-)

  • MS DOS codepage - "cp866"
  • MS Windows - "Windows-1251"
  • Unix - "ISO8859-5"
  • Mainframe - "cp1025"

Есть еще одна кодовая страница проталкиваемая основоположниками FIDO в России под названием KOI8-R (ее использование, впрочем не лишено определенного смысла...)

Есть или вернее было еще несколько кодовых страниц на ПК типа Искра1030, Роботрон и т.д. о них читайте в учебниках истории развития компьютеров.

Как вы наверно догадываетесь текст написанный в одной кодировке не читается при использовании другой кодовой страницы (объяснять не буду, если не понятно почитайте спец. литературу для супер-чайников).

Однобайтовая кодировка (кодовая страница) - это когда одному байту соответствует один символ и получается, что всего символов закодированных таким образом может быть 255 (или 256:-). Бывают еще двухбайтовые кодировки (double byte character set), когда одному изображению символа соответствует два байта и соответственно в кодировке может использоваться 65536 символов. Ярким представителем такой кодировки является Unicode. А есть еще смешанные кодировки (multi byte character set) типа UTF-8 когда английские буквы кодируются одним байтом, а все остальные символы двумя...

Глава 2 - Особенности перевода приставочных игр.

Рассмотрим вариант, когда программа работает не персоналке, а на приставке типа GameBoy. Дело в том, что у GB своего BIOS"a нет (в том понимании как это есть у IBM PC), поэтому вся программа (включая подсистему ввода вывода находится в так называемом ROM картридже). И соответственно, имея образ этого картриджа можно поправить как шрифты, так и текст игры. Вообще поправить можно все, что угодно, но мы с вами говорим о переводе а не о ломании игр. Разница между PC и GB лишь в том, что там нет понятия стандартная кодовая страница (кодировка). Каждый производитель игр может сочинить свой charset (кодировку) где, на пример коду 0x00 будет соответствовать изображение английской буквы "A" и сообственно сложность при переводе приставочных игр заключается в том, чтобы догадаться какими кодами кодируются символы выводимые на экран.

  • 1. найти шрифты (изображения символов)
  • 2. написать таблицу соответствия символов (вычислить charset).
  • 3. дорисовать недостающие изображения символов (русские буквы)
  • 4. перевести текстовые строки в игре на другой язык.

Опыты над разными образами игр (для GB) показали, что в случае если игра выпущена для европейских языков (английский и т.д.) то там как правило есть место для 255 символов, но изображения как правило есть только для тех букв, которые выводятся на экран, а изображения других букв кодировки просто оставлены пустыми.

Во многих руководствах и мини туториалах по переводу приставочных игр говорится о ЗАМЕНЕ изображений английских символов русскими и последующем переводе. Однако такой подход приводит к тому, что тот текст который еще НЕ переведен не читаем (вспомните работу русского scandisk при загрузке Win9x) и соответственно у игрока нет никаких шансов догадаться о том, что там ему говорят... Это не дает возможности нормально играть в частично переведенную игру. Поэтому далее я постараюсь объяснить, как можно переводить и оставлять понятным, то, что еще не переведено.

Глава 3 - Перевод в лоб.

Вернемся к нашим баранам. Сначала попробуем разобраться с двоичными файлами (играми) на PC.

Рассмотрим какую нибудь программу в двоичном виде. Картина будет примерно следующая:

То, что мы видим в левой части экрана это коды символов в HEX виде, то, что в правой части - это изображения символов . Соответственно верить можно только левой части, а правая зависит от разных настроек системы. Причем обратите внимание, что мы разглядывая таким образом программу, видим и исполняемый код и текстовые константы. Если вы не знаете, что такое исполняемый(двоичный) код, читайте спец. литературу... :-)

Соответственно, что мы делаем, если хотим перевести этот текст на другой язык. Мы своим зорким глазом отличаем печатные символы от непечатных , (тех что на экране обычно не встретишь). И далее вставляем в левую часть другие коды, которые соответствуют другим печатным символам, и соответственно с правой стороны, увидим скажем английские буквы.

Следует заметить, что если в результате наших изменений мы вдруг забьем несколько позиций "непечатных" символов, то программа может перестать работать (это запросто могут оказаться исполняемые инструкции). С другой стороны часть непечатных символов (с нашей точки зрения) может быть вполне печатными (на пример немецкие умляуты).

Если вы увидите картину типа такой:



То вам не повезло, тут используется двухбайтовая кодировка, и перевод такой игры может сильно усложнится не потому, что тяжело работать с Unicod"ом, а просто мало утилит нормально с ним работают и это значит инструментарий переводчика придется писать самим:-).

Для того, чтобы уже, наконец закрыть вопрос "лобового перевода" следует заметить, что набить в HEX редакторе даже 20-30 килобайт текста под силу только самоотверженным людям:-) а за набивание более 100Kb можно просто памятник ставить (посмертно, поскольку процесс перевода может длиться всю оставшуюся жизнь:-)

Глава 4 - Волшебные поинтеры и с чем их едят.

Идея достаточно проста - как бы вынуть весь текст из файла, перевести его, а потом засунуть обратно в те же места...

Если приглядеться к тому, как переводят в лоб, то можно заметить, что:

  • 1. глазами находят текст и запоминают смещение, где это текст лежит в файле
  • 2. вычисляют, где этот текст оканчивается (каким нибудь непечатным символом типа 0x00)
  • 3. подбирают перевод фразы сходный по длине с оригинальной строкой
  • 4. набивают его в те же места.

Данный процесс вполне поддается описанию, скажем на Visual Basic"e, главный вопрос в том, как программно отличить печатные символы от непечатных. Тут нам на помощь приходят все те же таблицы символов (codepages). Однако в СВОИХ таблицах мы опишем коды ТОЛЬКО печатных символов. Теперь программа может отличить коды печатных символов от непечатных и все, что остается это разобраться в том, как отличить текстовую строку в файле от двоичных инструкций. Для этого опять вернемся в лобовому переводу - там мы глазами читаем весь файл по байтику, пока не встретим последовательность печатных символов. Ура ключевое слово произнесено (кто не догадался я не виноват, в качестве эксперимента могу вам прочитать двоичный образ скажем Winword.exe и найти там текст, думаю к концу чтения все станет понятно:-)

Далее все (или почти все) делает железяка - сканирует файл и вынимает ВСЕ последовательности печатных символов (тех, что есть в таблице, остальные считает непечатными) если встречает 2 или более печатных символа подряд, то такая последовательность записывается в файл отчета (на пример report.txt)

Структура выходного файла может быть проста до безобразия:

Десятичное_смещение_в_двоичном_файле+пробел+последовательность_символов+crlf (признак конца строки)

Следует заметить, что если мы говорим о том, что переводиться будет приставочная игра, со своей кодировкой, то нам такой выходной файл ничего не даст, на персоналке в нашей windows-1251 мы все равно ничего не поймем, значит строка вынутая из файла должна быть перекодирована из кодировки приставки в кодировку PC. Это тоже не проблема просто помимо кодов печатных символов нужно в нашей таблице указать какими кодами этот символ должен отображаться в кодировке PC. Поэтому в итоге таблица имеет структуру типа:

80=A 81=B 82=C 83=D 84=E 85=F

Причем ДО знака равенства пишется HEX код символа, а после знака равенства, каким ОДНИМ символом этот код выглядит на PC. Причем если вы вспомните Главу 1 (если конечно вы ее не пропустили), то скорее всего догадаетесь, что посмотрев на эту таблицу в шестнадцатиричном виде мы можем сделать и обратное преобразование.



Другими словами такая таблица может использоваться для перекодировки в обе стороны.

Вынув таким замысловатым образом текстовые последовательности из двоичного файла можно заняться их переводом в обычном текстовом редакторе. Подойдет даже WinWord, но сохранять перевод нужно в виде текстового файла (Только текст) .

Остается только одна проблема, поскольку в файле такого формата нет указания на длину оригинальной строки, то лучше воспользоваться спец. редактором, который не даст вам вылезти за размеры оригинальной строки и соответственно не позволит забить непечатные символы, следующие за текстовой строкой.

А где же поинтеры? спросите вы - а это есть десятичное_смещение_в_двоичном_файле в файле вынутого текста, которое объяснит программе из какого места файла вынули эту строчку и даст возможность положить перевод в то же самое место.

Несколько общих замечаний:

  • 1. Никто не мешает удлинить строку перевода, просто надо понимать, что вы рискуете забить своим текстом непечатные символы, и соответственно сделать игру неработоспособной.
  • 2. Если перевод получается короче оригинала, нужно понимать, что если вы не нарастите свой укороченный перевод пробелами до оригинальной длины, то при выводе текста игра выведет еще и текст длиннее перевода. Игра ведь не знает, что строка стала короче и выведет то количество символов, которое было в оригинале. Если только в подсистеме вывода текста у игры нет зарезервированного специального кода, который говорит о том, что строка окончена .
  • 3. Спец. символы, которые описаны в пункте 2 мы также можем описать как печатные и следовательно в своем текстовом редакторе сами расставлять концы строк.
  • 4. При создании таблицы перекодировки нужно понимать, что одному коду всегда соответствует один символ (изображение) иначе программа перекодировки не сможет понять, как перекодировать переведенный текст. Иными словами таблица перекодировки должна быть обратимой.
  • 5. Не переводите непонятные строки , скорее всего это исполняемые инструкции, просто оставьте их без изменений.

НЕОБРАТИМАЯ ТАБЛИЦА - это когда нельзя применив одну и ту же таблицу воссоздать первоначальный файл. Проверить обратимость очень просто, нужно ВЫНУТЬ текст из ROM"a затем НЕ изменяя полученный report.txt ВЕРНУТЬ его в ROM и потом сравнить (побайтно) полученные файлы, делать это например умеет WindowsCommander (выделить в одном окне входной файл, выделить в другом окне выходной файл а потом file -> compare by content) если входной и выходной файлы РАЗЛИЧАЮТСЯ то таблица НЕОБРАТИМА, то есть один тот же символ может перекодироваться в разные коды... такой таблицей пользоваться НЕСТОИТ поскольку она будет портить неоднозначные символы...

Собственно теоретическая часть на этом оканчивается, далее следуют суровые будни перевода:-)

Все вышеописанные размышления, легли в основу программульки под названием PokePerevod, которая сейчас находится в состоянии бета тестирования. И далее я постараюсь показать как она облегчит жизнь переводчику интузазисту.

Глава 5 - Переводим Покемонов.

Сперва наперво требуется раздобыть образ американской или европейской версии ROM"a, В другой стране я посоветовал бы купить нормальный картридж, и устройство типа GB Transferer, которое позволит сделать backup картриджа на PC.



теперь переключимся в режим 1bpp View-->Format-->1BPP, что означает 1 Bit Per Point, в таком виде лежат шрифты в данном ROM"e. Как догадаться в каком формате лежат шрифты это отдельная песня и здесь не рассматривается. В худшем случае вам нужно пролистать/просмотреть весь ROM во всех вариантах:-).

Полистав некоторое время вы увидите экран типа этого:

произойдет это примерно по смещению hex(F8200). Теперь мы знаем правую часть таблицы, то есть что сначала заглавные английские буквы, потом несколько символов "();:" потом маленькие английские и т.д. Подсчитав количество квадратиков можно узнать, что шрифт состоит из 128 символов, однако мы не знаем с какого кода начинается отсчет - соответствует ли код hex(00) коду заглавной "A" или нет:-(Если учесть опыт персоналок, то скорее всего нет, проведя ряд экспериментов (это возможно будет описано в будующих версиях этого руководства) мы наконец понимаем, что заглавной "A" имеет код hex(80). Ура половина дела сделана. В результате получим таблицу следующего вида: (это печатные английские символы)

80=A 81=B 82=C 83=D 84=E ...[пропущено] 99=Z 9A=(9B=) 9C=: 9D=; 9E=[ 9F=] A0=a ...[пропущено] B7=x B8=y B9=z F6=0 F7=1 F8=2 F9=3 FA=4 FB=5 FC=6 FD=7 FE=8 FF=9

Таблица перекодировки готова, НО естественно это не все коды которые имеют соответствующие изображения, Полный вариант таблицы можно взять из дистрибутива PokePerevod.



Обратите внимание я нарисовал русские буквы РЯДОМ, а не поверх английских символов, это значит, что игра будет по прежнему работать и показывать английский текст как прежде...

После урока рисования, начинается урок арифметики по вычислению кодов новоявленных русских букв:-) с соответствующим изменением таблицы перекодировки (ведь печатных символов у нас прибавилось). Обратите внимание еще на один момент, поскольку "свободного" места не так уж много, я довольствовался только заглавными русскими буквами. НЕ забудьте что переводить в этом случае можно будет ТОЛЬКО заглавными русскими...впрочем этого вполне достаточно.

Файл будет большой и содержать будет много мусора типа:

Это не должно нас останавливать, теперь это текстовый файл и можно заниматься переводом, правда я посоветовал бы открыть этот документ в notepad и удалить строки с непонятным текстом, тогда работать будет легче и быстрее.

Вынутый и почищенный файл перевода можно открывать в редакторе переводов в PokePerevod.(как работать с редактором перевода, надеюсь, когда нибудь напишет Толик:-)



Самое главное редактор перевода не даст удлинять строку перевода (без специального на то разрешения), чем значительно ускорит работу. В том числе есть возможность "Найти и заменить" по всему переводу... :-) В общем, разберетесь...

Замечание, не пытайтесь сразу перевести весь текст, достаточно перевести пару слов, и вернув текст в ROM а потом запустив поправленный вариант ROM"a убедиться, что вы все сделали правильно. Возможно и даже наверняка выяснится, что можно добавить печатных символов в таблицу (на пример пробел:-)) для таких изысканий очень полезен GoldFinger, экран которого показан ниже:



Формат таблиц описанный в данном руководстве (и используемый в PokePerevod) совместим с форматом таблиц для GoldFinger, но с одним исключением , GoldFinger при показе изображений символов использует досовскую кодировку (cp866) и следовательно, для того, чтобы увидеть, что мы там напереводили нужно открыть нашу виндоусовую таблицу (Windows-1251) в WordPad и сказать Save as --> MS DOS Format и такую вот таблицу подсунуть GoldFinger"у.

<Конец первой части>

Замечания и предложения присылайте по адресу [email protected]

Инструкция

Приготовьте всю нужную информацию. Берясь за перевод какой-либо программы, убедитесь, что все употребленные в ней термины вам знакомы. Сделать это необходимо даже при использовании переводчика, ведь качество машинных переводов всегда оставляет желать лучшего и дорабатывать их вручную просто необходимо. Если вы занимаетесь переводом игры, то необходимо знать сеттинг и сюжетную линию: зачастую реплики персонажей расположены не в хронологическом порядке, а значит догадаться о происходящем по контексту будет достаточно сложно. Крайне желательно иметь хотя бы базовые навыки программирования. Ведь работать вам предстоит напрямую с кодом программы, а потому простым изменением текста обойтись получится далеко не всегда. Диапазон возможных проблем крайне широк, а потому решение каждой предстоит искать индивидуально.

Вам понадобится программа-редактор ресурсов. Ассортимент таковых на рынке достаточно широк: для начинающих пользователей подойдет Resource Hacker или Restorator, более продвинутые могут использовать ResHack. Программы отличаются друг от друга минимально – каждая позволяет «забраться внутрь» программы и отредактировать все содержимое по собственному усмотрению.

При помощи редактора ресурсов методично начинайте перебирать файлы программы. В одном из них вы найдете всю текстовую информацию программы (или ее большую часть). Редактировать все можно прямо в окне поиска, однако бездумно менять все слова на русские вы сможете далеко не всегда. Например, учтите работоспособность кода (нарушение целостности программы может привести к неработоспособности файла), распознавание программой кириллицы (что бывает далеко не всегда) или размер поля с текстом (часто бывает так, что надпись «Сохранить игру» просто не помещается туда, где раньше было Save Game). Вы можете столкнуться также с тем, что программа будет запакована или защищена – решение проблем подобного рода требует серьезной квалификации.

Источники:

  • как самому перевести программу

Для того чтобы игра была более понятной и интересной, необходимо ее русифицировать. В этом случае используются специальные патчи, составленные программистами. Такие программы включают в себя различные поправки и коррекции к игре, в том числе ее русскоязычную версию. Важно найти тот РОМ, версия которого будет полностью совпадать с версией игры .

Вам понадобится

  • Оригинальный РОМ, одна из программ Chief-net IPS, smart-IPS, Lunar IPS, IPS-WIN.

Инструкция

Если РОМ является ips-патчем, то в этом случае примените стороннюю программу, например, smart-IPS, Lunar IPS, Chief-net IPS, IPS-WIN. В такой ситуации запустите сначала внешнюю программу-эмулятор. Затем в ее рабочем окне укажите файл, который станете патчить. После этого определите путь к ips-патчу и запустите его.

Видео по теме

Обратите внимание

Используйте в работе оригинальные РОМы, версия которых идентична варианту самой игры. В противном случае могут возникнуть некоторые осложнения и проблемы при запуске игры, при работе игровой программы.

Полезный совет

Перед началом установки патча рекомендуется сделать его резервную копию на компьютере.
Файлы с расширением txt являются информационными. В них вы найдете всю необходимую информацию по работе с предлагаемым патчем, а также инструкции по его установке.

Источники:

  • Рекомендации специалистов, собранные в одной статье.

Совет 3: Как грамотно сделать морфологический анализ: разбор текста

Схема морфологического разбора слова меняется в зависимости от части речи. Запомнить особенности каждой из них сложно – ведь их больше десятка. Со временем эти алгоритмы надежно закрепятся в памяти, а пока этого не произошло, можно пользоваться подсказками, представленными ниже.

Инструкция

Разбор части речи состоит из трех блоков информации (они обозначаются латинскими цифрами). В первом называется часть речи, во втором указывается начальная форма слова и его морфологические признаки – постоянные и непостоянные. В третьем - синтаксическая функция слова в предложении (т.е. каким членом предложения это слово является).

В разборе существительного (кроме первого и последнего пунктов) напишите его в начальной форме (единственное число, именительный падеж). После этого необходимо перечислить все его постоянные признаки, т.е. определить, нарицательное оно или собственное, одушевленное или неодушевленное, какого рода это слово, к какому склонению относится. В число непостоянных признаков существительного, которые нужно назвать, входят его падеж и число. Отметьте графически, каким членом предложения является слово, или напишите эту информацию словами.

В случае с прилагательным после определения части речи и указания начальной формы слова (мужской род, единственное число, именительный падеж) напишите, к какому разряду оно относится (качественное, относительное или притяжательное). Если прилагательное качественное, нужно определить степень сравнения. Непостоянные признаки этой части речи – род, число и падеж.

Если перед вами глагол, его начальная форма - это неопределенная форма. В разделе «постоянные признаки» укажите, к какому виду относится слово – совершенному или несовершенному, является глагол возвратными или невозвратным, переходным или непереходным, определите его спряжение . Непостоянными признаками являются наклонение глагола (изъявительное, сослагательное/условное, повелительное), если есть – время и лицо, затем указывается число и если есть – род.

Чтобы найти начальную форму причастия , поставьте его в единственное число мужского рода в именительном падеже. Напишите, действительное оно или страдательное, в каком времени представлено в предложении, к какому виду относится – совершенному или несовершенному. Определите, полная или краткая форма причастия перед вами, в каком числе, роде и падеже (в случае полной формы) оно находится.

В первом пункте разбора деепричастия необходимо указать, что это особая форма глагола . Начальной формой будет неопределенная форма глагола, от которого образовано деепричастие . К постоянным признакам относятся вид – совершенный или несовершенный, а также то, что это неизменяемая форма (так и напишите в разборе).

Особенность наречия заключается в том, что это неизменяемое слово. Следовательно, указывайте только постоянные его признаки – разряд, наличие степеней сравнения и неизменяемость.

Постоянными признаками имени числительного являются его разряд по значению, морфологическая структура (простое, сложное, составное), особенности склонения (по принципу какой части речи склоняется). Непостоянными – падеж, род и число (эти признаки могут отсутствовать).

Морфологические признаки местоимения – это разряд по значению, особенности склонения (это постоянные признаки), падеж, род и число (непостоянные).

В разборе предлога упомяните его постоянные признаки – производный или непроизводный, разряд по значению и неизменяемость. Для союза это будут такие признаки, как тип и неизменяемость, для частицы – разряд и неизменяемость, а для междометия – тип по образованию, значение и неизменяемость.

Видео по теме

Пакетные файлы являются популярным средством автоматизации некоторых рутинных операций. Особенно часто ими пользуются системные и сетевые администраторы. Даже простейшие варианты применения бат файлов позволяют сэкономить массу времени. Тем более, что уже готовые наборы команд для каждого конкретного случая легко найти в интернет. Однако, чтобы выполнить эти команды, для них нужно сделать бат файл.



Вам понадобится

  • компьютер

Инструкция

Чтобы сделать бат файл, запустите приложение «Блокнот» Windows. Если значка блокнота нет на рабочем столе, нажмите на кнопку «Пуск», затем «Выполнить» и наберите в окошке строку notepad. Нажмите «Ок».

Чтобы избежать проблем с запуском бат файла, основную часть имени файла делайте длиной не более 8-ми букв. При этом следует ограничиться цифрами и английскими буквами .
Набрав в строке «Имя файла» нужное имя (например, test.bat), запомните в какой папке он будет находиться и нажмите «Ок».

После того как бат файл получит нестандартное расширение, он перестанет открываться по умолчанию текстовым редактором. Чтобы открыть бат файл для редактирования, используйте вместо пункта «Открыть» строку «Изменить» (для вызова списка вариантов просто нажмите правую кнопку мыши, указав курсором на имя файла.).

Если вы попробуете запустить такой (пустой) бат файл, то получите сообщение об ошибке. Чтобы проверить «работоспособность» такого файла необходимо заполнить его простейшими командами.
Например, запишите в бат файл строку
echo off
и попробуйте его выполнить. На экране монитора должно будет промелькнуть черное окошко. Если при этом не выскакивает сообщений об ошибке, то значит бат файл готов к работе.

Чтобы окончательно удостовериться, что бат файл работает , добавьте в него строку
pause
и снова запустите на выполнение. На этот раз должно появиться черное окошко с предложением нажать какую-нибудь клавишу. Нажмите на любую кнопку и отправляйтесь в интернет подыскивать подходящий для решения вашей задачи набор команд. Например на страничку: http://forum.xakep.ru/m_1512627/tm.htm , где рассмотрены практически все основные ситуации использования пакетных файлов .

Видео по теме

Обратите внимание

При использовании бат файлов будьте очень осторожны. Многие команды позволяют, например, удалять информацию без запроса на подтверждение, изменять настройки системного реестра и, даже, форматировать диски.

Источники:

  • как создать bat

Отечественные локализаторы берут на себя большую ответственность, переводя игры на русский. Во многих случаях они делают это из рук вон плохо, что особенно мешает проектам ААА-класса, для которых нанимают профессиональных актеров. Подобное отношение все чаще заставляет игроков удалять русификаторы .



Вам понадобится

  • -Доступ в интернет с возможностью качать файлы более 100 мб.

Инструкция

Уточните встроенные языки. Существует ряд игр, выпущенных пакетом «Multi9», который подразумевает сразу 9 языков при установке (туда входит и русский). Бывает так, что локализаторы отключают возможность сменить язык (зачем - загадка), или же эта возможность с самого начала не доступна пользователю. В подобной ситуации ваша проблема решится, скорее всего, изменением нескольких строк в файлах игры. К сожалению, никакого универсального способа в таком случае нет, и конкретные шаги определяются для каждого продукта индивидуально.

Ищите оригинальные файлы. В большинстве случаев установленный русификатор заменяет первоначальные данные в программе, и восстановить их никак нельзя. Пользователи, зная это, выкладывают в интернет данные, пострадавшие от переводчиков, чтобы желающие могли сделать все «как было». Лучше всего проверить сайты torrent-ов, но если нет такой возможности, воспользуйтесь ссылкой рядом. Будьте готовы к тому, что если вы хотите вернуть оригинальную озвучку, вам придется скачивать файлы размером от 100мб. Замена текста в игре (софте) потребует от 3 до 15 мб, не больше. Архивы большего размера увеличены искусственно.

Проверьте установщик. Вполне вероятно, что, для того чтобы удалить русификатор, вам придется полностью удалить программу , а затем поставить ее снова. Подобный твист локализаторы делают, если в игре не предусмотрена возможность менять язык, а они хотят оставить пользователям право выбора.

Проверьте содержимое диска. Если вы скачали с интернета Re-pack (особую сборку), то, вероятно, в скачанном файле (образе) будет находиться дополнительная информация от авторов архива. Это может быть как файл «прочти меня» с подсказками, так и файлы для замены языка.

Ищите аналогичные варианты. Если замена файлов по каким-то причинам вызывает у вас трудности, попытайтесь найти «англофикатор» - программу, обратную русификатору. Все что от вас потребуется в таком случае – выбрать директорию, куда установлена игра и нажать «установить». Способ самый быстрый и легкий, однако не всегда доступный.

Обратите внимание

Ставя русификатор, создавайте резервные копии файлов. Тогда вам не понадобится ничего скачивать.

Русский не входит в языковой набор "Multi5".

Источники:

  • Сайт с множеством англофикаторов к играм. в 2017

Далеко не каждый пользователь может похвастаться превосхожным знанием английского. И это не так страшно, если вам придется играть в шутер на неизвестном языке – но пройти квест или RPG без вникания в реплики героев решительно невозможно. В таких случаях на помощь приходит русификатор.



Инструкция

Определите версию, на которую должен устанавливаться русификатор. Это весьма важно, так как неверно поставленный, он будет не только работать с ошибками, но может и вовсе повредить данные игры настолько, что она перестанет запускаться. Впрочем, от этой проблемы избавлена официальная отечественная локализация, если таковая имеется – она может быть установлена на практически любую версию игры.

Создайте резервные копии файлов. Установка русификатора , как правило, процесс необратимый, поэтому если вы не позаботились заранее о резервном копировании, то единственным способом вернуть работоспособность игры будет полная ее переустановка. Внимательно проследите, какие файлы отвечают за язык игры, и скопируйте их в отдельную папку. Даже если на первый взгляд все работает верно – не спешите удалять бэкап, т.к. вполне возможно, что ошибка выявится во время прохождения последних уровней.

Ищите русификации с инсталлятором. Наличие грамотно составленного установщика в какой-то степени может гарантировать и работоспособность перевода, поэтому старайтесь скачивать не сомнительные архивы, а цельный софт. Размер текста в игре редко превышает несколько мегабайт, и дополнительных файлов, помимо самого.exe, скачивать не придется. Кроме того, такая установка потребует от вас меньше всего сил – всего лишь откройте файл и укажите путь, куда установлен продукт.

Установка русификатора «вручную» происходит засчет замены файлов. Пользователь скачивает некий архив формата.rar, внутри которого находятся документы, аналогичные неким компонентам игры. Ваша цель – заменить старые файлы новыми. Поищите внутри файл с названием readme, он должен содержать инструкции о том, куда распаковывать архив. Если такового нет, то ищите файлы с аналогичными названиями в директории самостоятельно.

Обратите внимание

Exe - формат инсталлятора, а не архива. Если вы видите значок архива с форматом.exe, то, вероятнее всего, это вирус.

Несмотря на то, что у компьютера системные параметры соответствуют требованиям, игры могут немного притормаживать. Как правило, точной причины выявить нельзя, так как компьютерные системы непредсказуемы.



Вам понадобится

  • - диск с игрой.

Инструкция

Основной причиной является пиратская копия игры. Как правило, подобные игры записываются без специальных программных средств и лицензий, что приводит к ошибкам при процессе игры. Часто в подобных записях не бывает дополнительного программного обеспечения, которое требуется для игры. Например, в игре должен быть установочный файл Dirext, а на пиратском диске его может и не быть. В таком случае зайдите в интернет, и прочитайте, какие дополнительные параметры нужны для той или иной игры. Имеется множество порталов, которые занимаются обзором игр для компьютера .

Другой причиной могут быть системные параметры компьютера. Часто видеокарта компьютера или частота процессора не соответствуют системным требованиям игры. Прочтите на упаковке диска или в интернете системные параметры, которые требуются для корректной работы игры. Если у вас не хватает частоты или слабая видеокарта, то вы не сможете играть даже при минимальных параметрах, так как графика будет тормозить, а звук наоборот бежать впереди. В связи с этим игра начинает тормозить , что может привести к сбою всей операционной системы.

Нельзя с полной уверенностью говорить о том, что лицензионные копии игр не тормозят. Тоже бывают разные ситуации, однако часто они связны с неправильной установкой самой игры. У каждой лицензионной копии имеется свой ключ, который нужно ввести при установке. Не старайтесь обмануть систему генераторами кодов, так как замена установочных файлов и ведет к тормозам и глюкам в игре. Внимательно читайте рекомендации по установке той или иной игры. Как правило, в каждой лицензионной игре есть файл, в котором полностью описывается принцип установки.

Локализация представляет собой адаптацию программного обеспечения, а в частности игры, к культуре какой-либо страны. Например, производится перевод интерфейса пользователя, документов и сопутствующих файлов игры.



Вам понадобится

  • - навыки программирования;
  • - печатное, звуковое оборудование.

Инструкция

Выберите глубину локализации игры. Это то, что именно вы хотите локализовать. Это зависит от бюджета, специфики проекта и других факторов. Традиционно используются такие виды локализации: бумажная, поверхностная, экономичная, углубленная, избыточная и глубокая. При выборе глубины локализации учтите, что предыдущие элементы будут включены в нее.

Выполните бумажную локализацию - данный вариант выбирается компаниями-дилерами после закупки продукта и последующей продажи. В этом случае сделайте коробку, руководство пользователя и маркетинговые материалы для игры на языке, выбранном для локализации игры. Этот тип локализации предпочтителен в том случае, когда в стране высокий уровень знания языка оригинала, к примеру, на Украине – русского.

Используйте поверхностную локализацию, если вы хотите добавить в игру собственный логотип, копирайт и заставку. Также в этом случае вы можете создать свой файл readme и заменить инсталляционное меню. При экономичной локализации выполните перевод всего текста игры, игровых диалогов, статистики, всплывающих подсказок. Это делается большинством крупных издателей игры, которые имеют собственные представительства в странах, где они уверены в продаже игры.

Выполните локализацию звука в игре, это называется «Углубленная локализация». Используйте такой вариант, когда язык игры неприемлем, т.е. им не владеют в стране, для которой вы делаете локализацию; когда компания производит создание имиджа на рынке; когда для понимания смысла игры необходим звук.

В этом случае выполните переозвучку всех голосов (заставки, диалоги персонажей). Избыточная локализация подразумевает изменение графических объектов, к примеру, из-за юридических норм страны. Глубокая локализация подразумевает локализацию игрового сценария, например, если определенная нация представлена в игре в негативном свете.

Практически весь софт для РС создается на английском языке. Но, несмотря на то, что английский язык считается самым распространенным на планете, владеет им далеко не каждый гражданин РФ. Впрочем, проблемой это не является – для любой программы можно подобрать подходящий русификатор, который позволит юзеру комфортно ее использовать.



Инструкция

Найдите подходящий вариант русификатора. Прежде всего, вам нужно удостовериться, что перевод имеет сходную с программой (игрой) версию: если вы попытаетесь установить раннюю локализацию на поздний релиз, то, скорее всего, выведете софт из строя и поправить это сможете только переустановкой. Кроме того, обратите внимание, что, если в состав перевода не включены DLC и плагины, установленные у вас, они сохранят оригинальный язык.

Отдавайте предпочтение официальным переводам. Безусловно, далеко не каждая программа имеет «белую» отечественную локализацию, однако если таковая есть, лучше пользоваться именно ей. Это гарантирует вам определенный уровень качества и, как правило, легкую установку. Кроме того, такая русификация носит гораздо более полный характер: например, вы вряд ли найдете «пиратский» перевод игры со звуком.

Старайтесь находить русификаторы с автоматической установкой. Существует две базовых комплектации переводов, которые вы можете найти в интернете: в форматах.rar и.exe. Последние оформлены в форме инсталляторов - вам всего лишь понадобится запустить их, указать директорию игры/программы и нажать кнопку «установить». Очевидно, что это проще и предпочтительнее.

Файлы русификатора, скачиваемые в формате.rar, нужно устанавливать вручную. Для этого распакуйте архив в любую директорию и проверьте, нет ли внутри инструкции по установке: в ней должно быть подробно указано, куда копировать содержимое архива. Если никаких подсказок нет, откройте корневую директорию игры и попытайтесь найти в ней файлы и папки с названиями, аналогичными скачанным (как правило, они будут располагаться прямо в стартовом каталоге). Ваша цель – заменить существующие данные новыми, что делается простым кликом «копировать» - «вставить с заменой». После этой операции русификатор можно считать активированным. Обратите внимание на то, что вернуть английский язык вы сможете, лишь вернув оригинальные файлы, поэтому при любой замене не забывайте сделать резервные копии.

Полезный совет

Инструкция по ручной установке русификатора может быть на сайте, откуда вы его скачали.

Для того чтобы перевести новую игру на русский или любой другой язык, необходимо достаточно много времени. Для существующих игр в большинстве случаев программы-переводчики уже написаны, в особенности, если это достаточно популярная разработка.



Вам понадобится

  • - доступ к интернету.

Инструкция

Скачайте версию игры, переведенную на язык, при работе с которым у вас не возникает сложностей, и с которым вам было бы предпочтительнее работать. Выполните резервное копирование игровых файлов в директорию, не связанную с ней или ее разработчиком, чтобы в дальнейшем пользоваться сохранениями и не проходить определенный этап игры заново. Также это поможет вам сохранить данные от повреждений, связанных с возникновением конфликтов программ.

В случае если не имеется версии игры с поддерживаемым языком, поищите сайты и форумы, посвященные данной игре, и попробуйте найти дополнительные материалы, устанавливаемые отдельным элементом для перевода.

После того как вы найдете нужную утилиту, ознакомьтесь с отзывами пользователей. Лучше всего выбирать те варианты, которые имеют положительные характеристики, также обращайте внимание на соответствие версии программного обеспечения, для которой предназначена утилита.

После ее загрузки проверьте разархивированные файлы на наличие вирусов и вредоносного кода, выполните инсталляцию, запустив файл установки двойным нажатием левой кнопки мыши. Игра на момент выполнения операции в обязательном порядке должна быть закрыта.

Если же вы не нашли нужную версию интересующей вас игры, выполните ее перевод самостоятельно при помощи специальных программ. Вы можете легко найти их в интернете, их не много, но они достаточно распространены среди пользователей. Выберите одну из них, наиболее соответствующую вашим критериям и воспользуйтесь ею для перевода.

Обратите внимание, что в большинстве случаев данные программы работают на основании покупки вами лицензии на ее использование, поэтому заранее приготовьте один из инструментов расчетов, поддерживаемых продавцом ПО.

Видео по теме

Полезный совет

По возможности переводите программы на русский с французского языка.

Отредактировав java-игру, вы сможете изменить различные ее параметры. Например, можно произвести замену иконки, которая будет отображаться в главном меню телефона, или сделать перевод на русский язык. Чтобы отредактировать нужное приложение, достаточно воспользоваться программой для работы с архивами и любым текстовым редактором.



Вам понадобится

  • Файл Java-игры.

Инструкция

Скачайте jar-файл игры на компьютер. JAR представляет собой архив, который можно открыть с помощью любой программы-архиватора. Откройте файл при помощи утилиты WinRAR, дважды кликнув по нему левой клавишей мыши. Извлеките его в любую удобную для вас папку при помощи кнопки «Извлечь».

Перейдите в директорию с распакованной игрой. Чтобы заменить иконку java-приложения, найдите в папке файл с разрешением png и откройте его при помощи любого графического редактора (например, Paint или Photoshop).

Отредактируйте данное изображение. Также вы можете просто заменить данный любой картинкой такого же размера и разрешения. Для этого достаточно переместить вашу пиктограмму с таким же именем и расширением в распакованную папку и выбрать замену.

Чтобы изменить название игры, отображаемое в меню телефона, перейдите в поддиректорию META-INF. Найдите файл manifest.mf и откройте его при помощи любого текстового редактора или Блокнота. Кликните правой клавишей мыши на файле, а в появившемся контекстном меню перейдите в пункт «Открыть с помощью» - «Блокнот».

За определение названия игры отвечает строчка MIDlet-Name. Введите любое имя, после чего сохраните внесенные изменения («Файл» - «Сохранить»).

Разница есть, и огромная! Если выбрать неправильную область на ягодице, неверно подобрать длину иглы или поставить не под тем углом и не на ту длину, можно сделать из человека инвалида. Для стандартной внутримышечной инъекции в ягодицу длина иглы 40-60 мм, в теле она должна быть поставлена на две трети своей длины под прямым углом. Правильная область, верхний наружный квадрант ягодицы, показана на рисунке.




«Выпускать воздух из шприца не обязательно, я же не в вену делаю »!


Это неверно, воздуха в шприце быть не должно ни при каких обстоятельствах! Есть ещё один важный момент: обязательно нужно убедиться, что игла попала в мышечную область. Когда игла уже вошла на две трети своей длины, необходимо потянуть поршень шприца на себя. Если внутри оказалась кровь, это значит , что всю процедуру с новой стерильной иглой, шприцом и ампулой лекарства нужно выполнить заново. Если крови нет, медленно вводить лекарство, затем лёгким движением извлечь иглу. Кстати, грамотно будет поменять иглу на шприце после забора лекарства и перед постановкой инъекции на новую, стерильную.


Нужно помнить, что самолечением заниматься нельзя, инъекции проводить только по назначению врача и только в той дозировке, которую он указал, соблюдать чистоту и стерильность. Предварительно проверять все ампулы на сроки годности. Обязательно хорошо упаковывать и прятать от детей использованные шприцы и иглы. Для лучшего понимания, как именно ставить уколы , поможет обучающее видео .

Видео по теме

Без использования таблиц указатели будут раскиданы по всему пространству кода в исполняемом файле, и порой далеко не в единичном экземпляре. Если текст складирован в одном месте, эту проблему можно решить, просканировав его и найдя все указатели на начало каждой строки. И в большинстве случаев это не составляет труда - из-за особенностей адресного пространства вероятность коллизии значения указателя с другим значением минимальна (например, память адресуется в диапазоне 0x08000000-0x09FFFFFF или секция данных начинается с адреса 0x00472000).

Но бывает и так, что память адресуется менее удачным для переводчика способом: например, начиная с нулевого адреса. И тогда коллизий уж точно не избежать… Придётся вручную проверять каждое значение, встречающееся более одного раза, на предмет того, является ли оно указателем или же данными с таким же значением. А если ещё и сам текст разбросан по файлу, то автоматизировать процесса поиска указателей можно разве что написав какой-нибудь скрипт или плагин к IDA Pro .

Так или иначе, терпение и труд всё перетрут. Достаточно найти указатели один раз и дальше с этой задачей можно не заморачиваться, переходя к следующему шагу.

Извлечение текста

Способ «выемки» текста по таблицам зависит от уровня организации переводчиков. Так, самые неорганизованные ребята (как правило, новички) вообще не заморачиваются и переводят текст прямо в хекс-редакторах. Чуть посерьёзней - используют для извлечения программы-всёделалки вроде PokePerevod или тот же Translhexion. Люди с более глубокими познаниями используют более специализированные средства автоматизации вроде Kruptar . Самые продвинутые специалисты обычно пишут для этого свои скрипты или инструменты, что и вовсе позволяет им контролировать процесс полностью.

В любом случае, в чаще всего процесс сводится к преобразованию потока байт в пригодный к чтению и редактированию вид, используя информацию о кодировках, бинарных тегах и применяемом игрой байткоде, если он имеет место быть.

Но вовсе не факт, что разработчики изначально хранили текст отдельно и в чистом виде. Очень часто он является лишь частью других данных - карт уровней, сценариев и т.п. Если кто-нибудь знаком с игровыми редакторами вроде TES Construction Set , то он поймёт, о чём речь. В таких случаях, поскольку текст хранится совместно с другими данными, необходимо «распарсить» их структуру и аккуратно извлечь текст и прочую необходимую информацию - например, иногда помимо текста необходимо изменять ещё и такие данные, как координаты его вывода и размеры диалоговых окон. Порой для этого пишутся целые редакторы, которые частично воспроизводят функционал средств, которыми пользовались разработчики.

В целом, к извлечению текста у меня свой подход. Начнём с того, что стандартный формат таблиц кодировки довольно прост и не покрывает все случаи. Например, иногда важно знать, какие последовательности байт служат для индикации конца текста, переноса строки или очистки экрана. Также в игре могут быть использованы, к примеру, коды разметки, где определённая часть битов выступает в качестве параметра. В таком случае пришлось бы записывать всё это дело примерно так:
1E40= 1E41= 1E42= ... 1E4F=

Поэтому существует множество надстроек над этим форматом - я даже разрабатывал своё собственное расширение, которое позволяло описать даже коды разметки и прочие байты с параметрами, а также поддерживало директивы вроде include (удобно, когда есть таблицы для разных языков, но в них есть одинаковые элементы).

Рассмотрим пример таблицы в расширенном формате:
; Включаем поддержку escape-последовательностей (для \n и т.п.) .format ; Аватарка и имя главного героя (вводится игроком) ; Имя берём в скобки, чтобы случайно не склонили C2A5= C2B3={Hero} ; Команды очистки диалогового окна, перед «равно» ставится тильда ("~") ; Бывают разных типов (требуют нажатия кнопки, не требуют и т.п.) C2B7C391~=\n-> C2B7~=\n- ; Перенос строки - чтобы сказать о нём, перед «равно» ставим "^" ; В тексте перенос строки будет являться... переносом строки:) C28E^=\n ; Подключаем другие таблицы.include opcodes.tbl .include avatars.tbl ; Признак конца строки (аналог нуль-терминатора в C string), перед «равно» восклицательный знак; Справа пусто, потому что в тексте нам никак не надо его обозначать, ; но при конвертации надо на нём остановиться 0D!=

Несмотря на некоторую кашу в таблице, на выходе получался довольно опрятный для игрового скрипта текст:

Jenica: I"ve served in this castle for quite
some time. I looked after both Princess
Lenna and Princess Sarisa.
-
{Hero}: Sarisa?
->
Jenica: Princess Lenna"s older sister.
Sarisa was sailing with her father when
a storm hit, and she was lost at sea.

О роли опрятности будет сказано чуть ниже, а сейчас рассмотрим проблему байткода. В некоторых играх используются даже свои скриптовые языки , и хорошо, если текст в них используется в качестве внешних ресурсов. Но порой всё же приходится разгребать мешанину из текста и кода.

Если невозможно отделить код от текста, то обычно для каждой инструкции придумывают мнемонику и форму записи исходя из её назначения. Составив базу с информацией о всех инструкциях, несложно написать транслятор. Но чтобы не писать такие вещи каждый раз, я придумал ещё одно расширение для таблицы кодировки.

Инструкция в байткоде идентифицируется по определённым значениям некоторых битов. Допустим, у нас есть две инструкции размером с байт. У одной инструкции биты с первого по четвёртый равны 0101 , т.е. выглядит она как 0101nnnn ; у другой - первые два бита равны 11 , т.е. запишем её как 11nnnnnn . Самым простым способом идентифицировать инструкцию является сравнение по маске - т.е. надо произвести логическое умножение опознаваемого кода на битовую маску, выделив тем самым нужные биты, и сравнить результат с эталонными данными (далее по тексту будем называть это идентификатором инструкции). Таким образом, для первой инструкции маской будет 11110000 , поскольку мы должны взять только первые 4 бита, а идентификатором, соответственно, будет 01010000 . Для второй инструкции и маска, и идентификатор равны 11000000 .

Суть расширения в том, что для инструкций можно прямо в таблице записать битовые маски и идентификаторы, которые нужны для их определения и чтения параметров. А вместо простой последовательности символов можно использовать специальную строку, которая будет говорить о том, как форматировать и конвертировать текстовое представление инструкции обратно в байткод. Т.е. по таким таблицам можно было бы даже примитивно дизассемблировать исполняемые файлы.

Форма такой записи инструкции в таблице кодировки такова:
?:=
Где OpcodeMask - маска, OpcodeID - идентификатор, ValueMasks - перечисленный через запятую список битовых масок параметров, а FormatString - строка для форматирования текстового представления инструкции и конвертации её обратно в байткод (представляет из себя модифицированный эквивалент форматных строк для функции printf).

Например, у нас есть инструкция вида 1010iiii cccccccc , показывающая во всплывающем окне цвета с предмет с номером i . Назовём её «popup(item, color)». Маска данной инструкции равна 11110000 00000000 , что в шестнадцатеричном представлении будет F000 . Идентификатор инструкции будет равен 10100000 00000000 , т.е. C000 , а маски параметров - 00001111 00000000 и 00000000 11111111 , то бишь 0F00 и 00FF соответственно.

Пусть у нас имеется такой вот закодированный текст:
0000: 4F 62 74 61 69 6E 65 64 20 61 6E 20 69 74 65 6D Obtained an item
0010: 21 C1 0F 0A 4E 6F 77 20 79 6F 75 20 63 61 6E 20 !##\nNow you can
0020: 6F 70 65 6E 20 74 68 65 20 64 6F 6F 72 2E open the door.

Попробуем декодировать его с помощью таблицы, в которой есть такая запись:
F000?C000:0F00,00FF=popup(%d, %d)

Получаем такой результат:

Obtained an item!popup(1, color)
Now you can open the door.

Не совсем удачно сочетается с текстом. Поэтому попробуем прибегнуть к помощи тегов. Пусть это будут XML-теги:
F000?C000:0F00,00FF=
Уже гораздо лучше:
Obtained an item!Now you can open the door.

Но ещё лучше было бы, если бы вместо «магических констант» мы видели текстовое представление параметров. Для этого я ввёл возможность объявления перечислений в виде:
%{[=value],[=value],...}
Допустим, такая инструкция применяется только для трёх предметов: бомбы с номером 0, ключа с номером 1 и монеты с номером 10:
F000?C000:0F00,00FF=
Как видно, заодно и для цвета я применил более привычную запись. Конечно, глупо поступать таким образом с восьмибитным представление цвета, но это лишь пример, взятый из головы для наглядности.

Если семантика инструкций не так важна (т.е. перевод не подразумевает их редактирования), то лучше прибегнуть к более краткой записи, а то в некоторых местах кода может получиться больше, чем текста. Например, так:

Obtained an item!{popup:Key,0F}
Now you can open the door.

Для инструкций с ровно одним параметром я предусмотрел укороченную форму записи. Ниже следует две эквивалентных по смыслу строки:
FF00?3C00:00FF=3C??=
Как видно из записи, вопросительными знаками я выделил биты параметра, остальные биты считаются единичными битами маски, а идентификатор получается путём замены вопросительных знаков на нули. К сожалению, такая запись возможна только для инструкций, где размеры параметра и идентификатора кратны четырём битам, т.е. размеру одного шестнадцатеричного символа.

Представление текста

Это одна из самых важных частей процесса, потому что извлечённый текст попадёт прямиком к переводчикам, и от того, насколько он опрятен, зависит не только продуктивность их работы, но и количество структурных и семантических ошибок, которые они допустят. По сути этот процесс - доработка механизма извлечения текста таким образом, чтобы максимально упростить работу переводчиков.

Если рассматривать описанный в предыдущем пункте текст, то для переводчика достаточно краткого экскурса о назначении тегов и прочей белиберды, особо его напугать ничего не должно. Но, надо заметить, что основной, на мой взгляд, ошибкой в представлении текста является зашкаливающее количество технической информации. У большинства дилетантов такой текст выглядел бы совсем по-другому:

Jenica: I"ve served in this castle for quite^
some time. I looked after both Princess^
Lenna and Princess Sarisa.^{CLS}
[#C2][#A5][#C2][#B3]: Sarisa?^{CLS}[#C3][#91]
Jenica: Princess Lenna"s older sister.^
Sarisa was sailing with her father when^
a storm hit, and she was lost at sea.{END}

На месте переводчика я бы сказал: «и как прикажете это переводить?»

Увы, судя по обрывочным сведениям, такое встречается и в процессе официальных локализаций: вот дадут текст в формате XML или INI с «\n» в качестве переноса строк, и переводи как хочешь. При этом многие люди даже в таких случаях не изменяют Word"у, который какой-нибудь автозаменой способен убить структуру практически любого подобного формата или ещё чего хуже.

Это, конечно же, запросто может быть чревато тотальными ошибками, ибо обычно весь контроль качества производится вручную, несмотря на простор для его автоматизации. Как-то раз у «коллег» в релиз укатился очень крупный перевод без единого тире - все их молча скушал Word, подменив на «правильные», которые конвертору текста были не знакомы.

К сожалению, порой от трудно читаемого текста не спасает ничего. К тому же, в некоторых играх теги не компилируются в байткод, а так и хранятся в текстовом виде, т.е. игра обрабатывает их при выводе текста. Да что там говорить, вот вам пример:

&push;&main-color=#E67E00FF;Energy Cell ID:&pop;
SN-3871S-7

&push;&main-color=#E67E00FF;Status:&pop;
&if=hasitem:Fuse7Used;Used&else;&if=hasitem:Fuse7;Acquired&else;Unknown&endif;&endif;&if=scan:SCAN,0x6479E69556A56AC8;
&if=(hasitem:Fuse7Used)|(hasitem:Fuse7);
&push;&main-color=#E67E00FF;Previous Coordinates:&pop;&else;
&push;&main-color=#E67E00FF;Coordinates:&pop;&endif;
&if=mapped:PirateCommand;04P-MET, Pirate Homeworld&else;04P-MET, Unknown&endif;

&just=left;Data indicates Energy Cell is connected to &push;&main-color=#FF6705B3;processing&pop; containment core.&endif;


Согласитесь, глаза сломать можно, что уж говорить о неустойчивости к ошибкам (легко сделать, трудно заметить). Выходом из ситуации мог бы послужить WYSIWYG-редактор, или, по крайней мере, конвертация текста в формат любого такого редактора и последующая конвертация обратно. Но это довольно дорогостоящее (в плане человекочасов) решение, да и от тегов и инструкций оно не сильно-то и спасает.

Раньше я пытался производить декомпозицию (разделение на две сущности) текста и других данных настолько, насколько позволяет конкретный случай. Например, теги можно группировать, заменяя на один тег вроде «{code}» или «{}», при этом вынося в отдельный файл. Но, поскольку теги тесно связаны с текстом, да и головной боли от такого решения только прибавляется, я впоследствии от этого отказался.

Но какой-никакой выход всё-таки нашёлся, и заключается он в подсветке синтаксиса. Т.к. все технические данные обычно легко обрабатываются автоматически, то и выделить их среди остального текста тоже не проблема.

Для этих целей я использовал возможности всем известного Notepad++ - в нём есть инструмент для создания своего механизма подсветки. Мне повезло с тем, что переводчик, с которым я работал, сам использовал Notepad++, поэтому уговаривать никого не пришлось. Несмотря на ограниченность в создании правил подсветки, этой возможности оказалось вполне достаточно, хоть и приходилось порой прибегать к разнообразным костылям.

С этим уже вполне можно жить. А иногда я заходил ещё дальше и писал визуализаторы - программы, которые отображали текст так же, как бы он выглядел в игре. Ну, или почти так же…

Впрочем, это обычно касалось случаев, когда необходим был жёсткий контроль качества на предмет корректного вывода текста в диалоговых окнах. А гораздо проще контролировать это ещё на этапе перевода, чем потом отлавливать тысячи косяков, связанных с выходом текста за отведённые ему рамки. Хорошо, что во многих играх всё же существует автоперенос.

Продолжение следует

В следующих частях читайте:
  • Разбор алгоритмов - о том, какими методами определяются алгоритмы, производными которых являются исследуемые данные.
  • Перерисовка шрифтов - о разнообразии способов хранения и использования графического представления символов, а также о методах их обработки и редактирования.
  • Перевод графики - про способы кодирования, сжатия и оптимизации графики на различных платформах и о том, как с этим работают.
  • Озвучка - немного информации об особенностях работы со звуком и о том, как некоторые переводчики делают озвучку «на коленке».
  • Перевод видеороликов - секреты любительского видеомонтажа и работы с кодированием видеопотоков в немного нестандартных примерах.
  • Сборка перевода - будут рассмотрены подходы к организации проектов и способы компиляции всех данных в готовый для использования вид.
  • Тестирование - про тяжёлый, но приятный труд исследователей виртуальных миров на фронте контроля качества перевода.
  • Дистрибьюция - в каком виде распространяют переводы, как распространяют, что для этого делают и кому это в итоге нужно.


Понравилась статья? Поделиться с друзьями: