Русификация[1] — процесс изменения языка интерфейса приложения, в данном случае: игры Minecraft на русский, характеризующийся изменением или увеличением кода программы или языкового пакета.
Русификатор — программное средство или пакет ресурсов направленные на замену языка интерфейса на русский конечным пользователем (игроком) без лишних временных затрат и не требующий от пользователя специальных знаний в информатике и/или лингвистике.
Для Minecraft первые русификаторы появились ещё для Beta-версий. Тогда русификация производилась путём непосредственного перевода en_US.lang
, перерисовки шрифта (область 80F-F из используемой для латинского шрифта кодовой страницы CP437) и изменения font.txt
. Также, начиная с 1.0, в некоторых русификаторах стали переводиться и финальные титры. Всё это затем копировалось в minecraft.jar
. Такой способ русификации использовался до версии 1.5.2 включительно, пока в 1.6 не было введено множество языков, пакеты ресурсов и новый способ управления шрифтами, не позволявший достаточно качественно русифицировать игру аналогичным предыдущим версиям образом.
В связи с появлением русского языка необходимость в русификаторе отпала, имело смысл разве что предложить свой перевод (собственный файл ru_RU.lang
) и перевод титров. Но пользователи хотели большой и квадратный «классический шрифт», потому что он лучше масштабируется и просто лучше заметен, так как крупнее. И был тогда предложен вариант, который является наименее проблемным и наиболее простым в установке для версий с 1.6 по 1.8[2]. Русификация производилась путём изменения в .jar
-файлах некоторых классов, отвечающих за рендеринг символов.
Когда в 1.7 в достаточной степени развилась система пакетов ресурсов, был предложен ещё один подход[3] — изменение шрифтов, изменение glyph_sizes.bin
, отвечающего за ширину символов, и использование хитрой кодировки в файле локализации. Всё это было осуществлено в формате пакета ресурсов. Но данное решение, несмотря на отсутствие необходимости в отдельном клиенте, имело множество проблем с отрисовкой шрифта (большинство которых исправляет модификация OptiFine). Потому, несмотря на высокие трудозатраты для автора и чуть более сложный метод установки для пользователя, наиболее удобным способом русификации для 1.7 и 1.8 является корректировка классов.
В версии 1.9 была исправлена критическая ошибка, накладывавшая ограничения по ширине символов в Unicode-шрифте. Таким образом, в случае, когда автор русификатора в формате пакета ресурсов хочет добавить ещё и шрифт, ему больше не нужно перекодировать символы из кириллицы в символы, содержащиеся в CP437, и создаваемый таким образом русификатор стал полностью функционален. Впрочем, шрифты теперь удобнее устанавливать как отдельный пакет ресурсов, никак не связанный с русификатором, так как это освобождает пользователя от необходимости пользоваться сторонним переводом, если ему требуется просто альтернативный шрифт. Классический шрифт можно взять здесь.
Также на различных ресурсах можно найти и другие шрифты, например, конвертированные стандартные шрифты Windows (правда, только область 21-7E, то есть латинские основные символы). Единственный недостаток такого вида шрифта — что используемые юникодовые шрифты отображаются без тени в отличие от «стандартного» шрифта. Тень присутствует, но является практически незаметной. Это считается ошибкой MC-2488 на хранилище отчётов об ошибках Mojang AB
Для 1.11 на данный момент нет русификаторов кроме тех, что предлагает команда KoshkBench.
Начиная с 1.13, стиль русского шрифта совпадает со шрифтом оригинального языка игры.
Для 1.16.3 и более поздних версий появился перевод от KoshkBench, главным отличием которого является иной взгляд на перевод Nether Update, в том числе сохранение некоторых старых названий.
Здесь приведены все способы русификации, упомянутые в разделе «История».
С ранних Beta-версий по 1.5.2 включительно.
Этот способ русификации заключался в извлечении определённых файлов из minecraft.jar
, их изменении и обратной упаковке в архив (также необходимо было удалить файл META-INF
, чтобы не происходили аварийные завершения игр при проверке контрольной суммы).
Изменению подвергались следующие файлы (указаны пути относительно корня .jar
-архива):
font.txt
— здесь указывался порядок символов в графическом файле шрифтаfont/default.png
— текстура шрифта, в более новых версиях это assets/minecraft/textures/font/ascii.png
lang/en_US.lang
— текст локализации. До выхода LWJGL 2.9.1 необходимо было преобразовывать текст из кодировки CP-1251 в CP-1250, с более поздними версиями появилась возможность оставлять в этом файле кириллицу.Также в некоторых русификаторах изменялись:
title/credits.txt
— титры, были добавлены в 1.0title/splashes.txt
— сплэшиtitle/win.txt
— текст поэмы Края, также был добавлен в 1.0В прошедшем времени о данном способе русификации говорится не просто так: он был актуален только до версии 1.5.2 (включительно) и не работает на последующих версиях. При этом нередко можно было встретить такой русификатор опубликованным на многих ресурсах под видом русификатора для 1.6 и 1.7, так что не дайте себя обмануть — читайте инструкцию по установке.
Достоинства и недостатки данного метода перечислять нет смысла, так как это был единственный рабочий метод. Из заметных проблем можно отметить только жертвование рядом символов, так как в игре была всего одна кодовая страница и число символов не могло превышать 256. Пришлось даже пожертвовать буквой «Ё» (на самом деле, с обновлённым LWJGL можно было бы освободить 64 символа, но необходимо было поддерживать совместимость между разными версиями библиотек и русификаторов).
С 1.6 по 1.8, технически возможно и для всех более поздних.
Изменяются программные классы, автор предлагает пользователю скопировать заранее скомпилированные автором классы в minecraft.jar
, либо сразу использовать авторский minecraft.jar
. Может использоваться установщик.
Есть два основных пути, по которым идут авторы таких русификаторов:
|
|
|
ru_RU.lang
и в этом случае не будет проблем с русифицированными модификациями, а может быть выполнен в качестве дополнительной локализации.
|
|
|