О переводе
Работа над локализацией Uplink/UplinkOS велась с 2006 года в качестве хобби одним человеком. За это время проект дважды менял инструментарий и вектор развития, однажды откатывался из-за потери данных.
Состояние проекта
Проект заморожен на финальной стадии. Версия 21.04 (апрель 2021) остаётся актуальной: игра полностью проходима, переведена бóльшая часть текстов. Новые версии не планируются, но по мере сил я читаю сообщения и вношу мелкие правки.
Просто поиграть:
Версия в инсталляторе стабильна и вполне играбельна. При моих тестах за последние 100 часов игры не случилось ни одного вылета. Переведена бóльшая часть игры. Для прохождения рекомендую эту версию.
Установку перевода нужно производить поверх установленной Uplink от издателя GOG.
После установки локализации ОБЯЗАТЕЛЬНО начинать новую игру.
Хочу помочь:
Если тебе не лень разбираться и ты готов к встрече с багами, ты можешь скачать мой промежуточный билд. Он немного свежее версии в инсталляторе и в нем возможны шероховатости. Увидишь что-то странное - сделай скриншот и напиши мне в телегу. Контакты в самом низу страницы. Отвечаю не сразу, но багрепорты по-прежнему читаю и по мере сил исправляю. Тестер по желанию увековечивается в укромном месте внутри локализации игры.
Принято правок от тестеров: 24.
При прохождении игры не желательно обновляться, т.к. сейвы могут работать некорректно.
Чего в переводе так и не появилось:
- Возможности печатать на русской раскладке. Оставил попытки и добавил вписывающееся в лор пояснение в игре.
- Названия корпораций, имена людей, псевдонимы хакеров. Проблемы с поиском, см. п. 1.
- Голоса для голосового анализатора. Нет оборудования и специалиста обработки звука. Смысла в этом тоже нет.
- UplinkOS_RUS для Steam версии игры. Порт не состоялся и уже не планируется. По-прежнему можно купить GOG версию за 3$ или поставить UplinkOS_RUS на пиратку.
Предыстория
В детстве я играл в оригинальную игру в полу-пиратском переводе под названием Сеть. Из-за ошибок перевода она была непроходима, но так запала в душу 14-летнему мне, что во многом определила мой профессиональный жизненный путь. Примерно с того же времени я периодически возвращаюсь к попыткам перевести игру и наконец пройти ее на русском.
Модификация графики Uplink OS просто великолепна, рекомендую всем фанатам оригинальной игры ознакомиться с ней. Очень жаль, что Cpt.McBacon и JesseTG прекратили разработку на версии GOLD. Насколько я могу судить, она местами сыровата. Кроме того, авторы модификации собирались сделать возможность простой локализации через XML файлы, но забросили реализацию этой фичи на полпути. В результате мы имеем часть строк жестко закодированных в EXE, а часть - в XML ресурсах игры.
Я пытался связаться с командой разработчиков Uplink OS для помощи им в разработке и локализации стандартными средствами, но тщетно. Они не отвечают и больше не занимаются проектом.
Инструментарий
В связи с этим было принято решение локализовать “UplinkOS”, но доступными мне средствами. Итак, чем я пользовался:
- Radialix - использовался для перевода жестко закодированных ASCII строк в файле UplinkOS.exe
- IDA - дизассемблер с которым работает Radialix для поиска ссылок на жестко закодированные строки
- Notepad++ - для перевода строк, вынесенных в XML файлы
- Translate my UTF8-HEX - созданный мной скрипт для удобного перевода UTF8 строк (см. сложности перевода)
- Google переводчик - встроен в Translate my UTF8-HEX.
Сложности перевода
Перевод через программу Radialix это более удобная форма редактирования исполняемого файла в HEX-редакторе, где нельзя выходить за рамки отведенного каждой строке места внутри файла. Т.к. при программировании авторы модификации использовали кодировку UTF8 (в ней кириллические символы занимают в 2 раза больше байт чем латинские), то все переводимые жестко закодированные строки приходится сжимать в 2 раза. Чтобы хоть как-то обойти эту особенность, мной был написан скрипт Translate my UTF8-HEX, который автоматически подставляет вместо кириллических букв похожие латинские (А/A, и/u, ь/b, и тд.). А также подсказывает, на сколько байт следует сократить перевод чтобы он влез в отведенное для строки место.
Именно по этой причине многие короткие слова долгое время оставались без перевода (обычно и без перевода понятные). Например слово No занимает всего 2 байта, а слово Нет уже все 6 байт (4 при обработке скриптом). У меня была идея заменить Yes и No на + и -, но оставался десяток других надписей на кнопках, которые перевести уже сложнее, поэтому было решено оставить их как есть. В версии 21.04 большую часть из них (Yes, No, Transfer, Cancel и OK) всё же удалось перевести - с помощью кастомного шрифта с иконками.
Также, английский - язык ситуативный, т.е. в нем слова часто могут иметь разные значения в зависимости от контекста. В русском же языке такие ситуации встречаются значительно реже. Поэтому некоторые вещи приходится оставлять без перевода в угоду проходимости игры.