Русификатор

Материал из Minecraft Wiki
Перейти к: навигация, поиск

Русификация[1] — процесс изменения языка интерфейса приложения, в данном случае: игры Minecraft на русский, характеризующийся изменением или увеличением кода программы или языкового пакета.

Русификатор — программное средство или пакет ресурсов направленные на замену языка интерфейса на русский конечным пользователем (игроком) без лишних временных затрат и не требующий от пользователя специальных знаний в информатике и/или лингвистике.

История[править | править код]

Beta — 1.5[править | править код]

Для Minecraft первые русификаторы появились ещё для Beta-версий. Тогда русификация производилась путём непосредственного перевода en_US.lang, перерисовки шрифта (область 80F-F из используемой для латинского шрифта кодовой страницы CP437) и изменения font.txt. Также, начиная с 1.0, в некоторых русификаторах стали переводиться и финальные титры. Всё это затем копировалось в minecraft.jar. Такой способ русификации использовался до версии 1.5.2 включительно, пока в 1.6 не было введено множество языков, пакеты ресурсов и новый способ управления шрифтами, не позволявший достаточно качественно русифицировать игру аналогичным предыдущим версиям образом.

1.6 и редактирование классов[править | править код]

В связи с появлением русского языка необходимость в русификаторе отпала, имело смысл разве что предложить свой перевод (собственный файл ru_RU.lang) и перевод титров. Но пользователи хотели большой и квадратный «классический шрифт», потому что он лучше масштабируется и просто лучше заметен, так как крупнее. И был тогда предложен вариант, который является наименее проблемным и наиболее простым в установке для версий с 1.6 по 1.8[2]. Русификация производилась путём изменения в .jar-файлах некоторых классов, отвечающих за рендеринг символов.

1.7 — 1.8[править | править код]

Когда в 1.7 в достаточной степени развилась система пакетов ресурсов, был предложен ещё один подход[3] — изменение шрифтов, изменение glyph_sizes.bin, отвечающего за ширину символов, и использование хитрой кодировки в файле локализации. Всё это было осуществлено в формате пакета ресурсов. Но данное решение, несмотря на отсутствие необходимости в отдельном клиенте, имело множество проблем с отрисовкой шрифта (большинство которых исправляет модификация OptiFine). Потому, несмотря на высокие трудозатраты для автора и чуть более сложный метод установки для пользователя, наиболее удобным способом русификации для 1.7 и 1.8 является корректировка классов.

1.9 — 1.13.2[править | править код]

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

Также на различных ресурсах можно найти и другие шрифты, например, конвертированные стандартные шрифты Windows (правда, только область 21-7E, то есть латинские основные символы). Единственный недостаток такого вида шрифта — что используемые юникодовые шрифты отображаются без тени в отличие от «стандартного» шрифта. Тень присутствует, но является практически незаметной. Это считается ошибкой MC-2488 на хранилище отчётов об ошибках Mojang AB.

Для 1.11 на данный момент неизвестно русификаторов кроме того, что предлагает команда KoshkBench.

Виды русификаторов[править | править код]

Здесь приведены все способы русификации, упомянутые в разделе «История».

Изменение файлов клиента[править | править код]

Версии игры

С ранних 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.0
  • title/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. Может использоваться установщик.

Есть два основных пути, по которым идут авторы таких русификаторов:

  • Исправление новой отрисовки, по сути рендеринг начинает работать так же, как в версиях 1.9 и более поздние
  • Откат к способу отрисовки, применяемому в старых версиях. В этом случае возможна несовместимость с редкими модами, зато радует глаз опытных игроков. Также существует в виде модификации под названием ClientFixer.
Достоинства
  • Шире возможности для перевода
  • Радует глаз (в случае отката к старому рендерингу)
Недостатки
  • Не всегда возможно использование — для Forge нужен отдельный русификатор
  • Возможны (хотя редки) конфликты с модификациями
Человеческий фактор
  • Так как для установки русификатора нередко используется установщик, под него может быть замаскировано вредоносное ПО. Чтобы избежать подобных угроз, используйте только русификаторы, опубликованные на крупных ресурсах, движимых сообществом, например, RuBukkit.
Достоинства
  • Шире возможности для перевода
  • Радует глаз (в случае отката к старому рендерингу)
Недостатки
  • Не всегда возможно использование — для Forge нужен отдельный русификатор
  • Возможны (хотя редки) конфликты с модификациями
Человеческий фактор
  • Так как для установки русификатора нередко используется установщик, под него может быть замаскировано вредоносное ПО. Чтобы избежать подобных угроз, используйте только русификаторы, опубликованные на крупных ресурсах, движимых сообществом, например, RuBukkit.

Применение пакетов ресурсов[править | править код]

Версии игры

Реализуемо начиная с 1.6, действительно удобно начиная с 1.9.

Принцип русифицирования

Такой русификатор представляет собой пакет ресурсов, в который вложен файл локализации с авторским вариантом перевода. Он может перезаписывать ru_RU.lang и в этом случае не будет проблем с русифицированными модификациями, а может быть выполнен в качестве дополнительной локализации.

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

Достоинства (с 1.9)
  • Полная совместимость с модификациями и пакетами ресурсов (если в пакет не входят изменённые текстуры, например)
  • Лёгкость установки
  • Если не изменены текстуры шрифта: возможность установки/удаления из игры (как и с любым пакетом ресурсов)
Недостатки (с 1.9)
  • Нельзя перевести надписи, не выведенные в файл локализации
Недостатки (ранее)
  • Необходимость использовать OptiFine для исправления отрисовки шрифта
Достоинства (с 1.9)
  • Полная совместимость с модификациями и пакетами ресурсов (если в пакет не входят изменённые текстуры, например)
  • Лёгкость установки
  • Если не изменены текстуры шрифта: возможность установки/удаления из игры (как и с любым пакетом ресурсов)
Недостатки (с 1.9)
  • Нельзя перевести надписи, не выведенные в файл локализации
Недостатки (ранее)
  • Необходимость использовать OptiFine для исправления отрисовки шрифта

См. также[править | править код]

Примечания[править | править код]