Stellaris
Оценок: 44
Перевод модов, исправление текста в модах
От Y'Heetaak Koriik
Руководство посвящено переводу модификаций и восстановлению «поломанного текста» из модификаций в игре, типа «trait_*name*_desc»
Ключевые слова: как перевести моды стелларис перевод модов стелларис моды на стелларис не работает описание исправить текст модов стелларис
2
3
2
   
Наградить
В избранное
В избранном
Удалить
Вступление
Если вы просто хотите «починить» текст модов, то вам необходимо прочесть и первый, и второй пункты, иначе вы рискуете не разобраться в порядке действий. И, пожалуйста, сначала прочтите руководство как минимум в указанном объёме, а после начинайте действовать сверяясь с ним, таким образом, вы умножите свои шансы на успешное решение проблем в разы. И избавите меня от возможных вопросов.

Далее идет большое лирическое отступление, его можно пропустить. Нет, я не шучу.

Вообще, я не супер знаток английского, у меня даже голова закипает, когда я читаю большие тексты на англе. Первый перевод я делал в скайриме на какой-то сабмод для реквиема и улучшенной алхимии. Правда, я после этого как-то забросил игру, удалил все моды на скайрим и саму игру… ну, у меня даже лицензии не было тогда. Да и сейчас пока что нет, хе-хе, ну да ладно. Короче, тогда я понял, что это не так уж сложно. После первого перевода мода для Стеллариса я в этом убедился. Не обязательно даже иметь образование переводчика, как у Слидана какого-то (рекомендую, четкий чел), достаточно иметь средний уровень английского, чтобы понять, о чем говорится в тексте. Но гораздо важнее хорошо знать свой язык и уметь им пользоваться. Собственно, зачем перевод, если за автором ещё на человеческий надо переводить? Но это мое видение. И надо различать локализацию и перевод. Свои работы я отношу к первым. Главной задачей локализации является не только передача информации на понятном языке, но и её адаптация под регион игрока или атмосферу игры. Как Индрих и Генри из Кингдом Кам (♥♥♥) или как-его-там. На мой взгляд, лучшим примером локализации является украи́нская версия Deep Rock Galactic. И где-то когда-то я видел цитату, которую не смог найти в интернете, мол, если вы переводите книгу и там есть название города Коррапшн, то вы обязаны его перевести как Коррупция, но никак не сохранить Коррапшн согласно правилам, а всякие «Горные-Золотые-Дождливые-Реки» и пр. — оставить оригиналом. Вот она является отличным описанием разницы между переводом и локализацией. Мда. В цитате звучало лучше.

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

…\SteamLibrary\steamapps\workshop\content\281990

281990 — очевидно, это id стеллариса. Я бы не рекомендовал переименовывать папки.

Далее, когда мы заходим в папку «281990», мы видим…



Да, это жёстко. Каждая папка является работой в мастерской, а её название — id этой работы. Я сортирую папки по дате изменения, вы же можете оставить по имени, как хотите: сортировка почти ничего не решает. Ниже я опишу, как я разбираюсь где какой мод.

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

Чтобы найти нужный мод, который вы хотите переводить, мы отправляемся обратно в мастерскую Стеллариса. Заходим в наши подписки:



Вверху должна быть выбрана вкладка «Предметы мастерской». В ней находим мод, с которым будем работать. В моем случае это Extended Necroids, заходим на страницу нужного нам мода и жмем ПКМ по свободной области слева или справа, копируем ссылку на мод. Особое внимание уделите именно ЛЕВОЙ части скриншота:


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

И-и-и, вот она, ссылка:
ht tps://steamcommunity. com/sharedfiles/filedetails/?id=2802188203

Я «разрезал» ссылку, чтобы сохранить её именно как текст. Нас она интересует только своим id, а именно числом 2802188203. Чтобы получить id, можете вставить ссылку в блокнот или браузер – короче, куда вам удобно – и скопировать его.

Итак, получив id, мы возвращаемся в папку с файлами мастерской Стеллариса на жестком диске, она же «281990», вставляем id в поиск и находим папку с модом:


Мне почему-то казалось, что можно прямо из мастерской прыгнуть в файлы модификации, но у меня не получилось.
Второй этап: «ремонт» текста и перевод модов
Для начала я оправдаю ту часть названия руководства, где говорится о «ремонте» текста в модах. Возможно, вы когда-то устанавливали моды, которые даже вроде как имеют локализацию, но в них были text_text_desc и так далее. Короче, поломанные названия/описания чего-либо. Это значит, что перевод устарел, а мод обновился и обзавелся новыми фичами. Либо перевода вообще нет, а вы готовы играть с английским текстом, лишь бы не вот это вот:



Для этого вы в оригинальной папке мода (в нашем случае 2802188203) заходите в папку localisation, там будет одна папка english, в ней же содержится файл «MEN_l_english.yml», в котором содержится весь текст модификации. Собственно, отсутствие других папок и файлов локализации (или, при её устаревшей версии, отсутствие в ней нужных строк) и вызывает эту ошибку.

Чтобы это исправить создаем в папке localisation папку russian (если вы играете на другом языке, то и папку называйте соответственно), далее копируем файл «MEN_l_english.yml» и переименовываем его в «MEN_l_russian.yml», кавычки, само собой, не нужны. Далее открываем файл в блокноте (но лучше, конечно, в Notepad++, он же у всех всегда установлен, правда?) и первую строку меняем с «l_ english:» на «l_russian:». Не упустите двоеточие. Сохраняем изменения в файле. Собственно, графически результат будет продемонстрирован далее на скриншоте. Обратите внимание на путь в строке проводника, она вам поможет, если вы запутались в моих описаниях:



Крайне важно!
Название файла с текстом из модификации зависит от того, как его назовет автор мода, «MEN_l_english.yml» возможен лишь в случае мода, ссылка на который оставлена выше. На скриншоте, который демонстрирует ошибку над решением которой мы работает, используется другой мод — Extended Humanoids , но с ним производятся аналогичные манипуляции. Как и с другими модами. Так же в модификациях разных авторов могут различаться «внутренности» папки с локализациями, но общий принцип работы с ними не меняется. Я не буду объяснять, как это работает с точки зрения программы, и так уж очень многА букАв.

Результат наших действий:

Как видите, мы всё отремонтировали, можно играть с русской версией игры и модами без русификатора. А теперь перейдем к части с непосредственно переводами.
Третий этап: перевод!
Если вы прочли прошлый раздел руководства и произвели описанные в нём действия, то у вас уже имеется файл «*название мода*_l_russian.yml». Для удобства копируйте его в папку, где будете хранить свои переводы. Можете сразу скопировать саму папку с модификацией, как-то её отметить и работать в ней, а после скопировать готовый файл перевода и вставить его в оригинальную папку с модификацией, заменив «ремонтный» файл из второго раздела или создав, как описано в том же разделе, папку с вашей локализацией.

Пока я копировал модификации полностью и отмечал их как-то так:


Итак, заходим в наш файл «*название мода*_l_russian.yml». В первой строке, само собой, вписываем «l_russian:» (кавычки не нужны, конечно же). Как я уже писал выше, работать будет удобнее в Notepad++, но тут уж решайте сами. Собственно, слева законченный файл перевода, справа – оригинал:



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


  • В тексте присутствует нечто подобное тегам: L, Y, R, \n и иные. Первые три отвечают за цвет текста, \n является абзацем. Если перед текстом идет какой-либо из этих символов, то начинаем вводить переведенный текст сразу после него, как на левой половине скриншота выше.

  • Обратите внимание на кавычки в файле, они являются своего рода границами текста, потому при их необходимости используйте «‎ёлочки».
    Alt-код символов: Alt+0171 и Alt+0187 («»)

  • Для модификаций, что скачаны из других источников, всё, скорее всего, аналогично: создаем папку (или только файл), называем его правильно, редактируем первую строку, а дальше уже решайте сами, переводить его или нет.

  • Некоторые символы игры имеют специальные "теги" в названиях, как то: £unity£, $VALUE$, их не нужно переводить.

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

  • Так же внимательно смотрите на синтаксис, как рекомендует knon_20, особенно с кавычками ( " ) в начале и конце строк.

  • Очень важный момент, на который необходимо обратить внимание и который указал knon_20: с простым UTF-8 локализация работать не будет, нужен именно UTF-8 с BOM. Так что в процессе удостоверьтесь, что у вас кодировка в Нотпаде именно такая, как на изображении:
Инструментарий
Как уже было отмечено, перевод рекомендуется делать в Notepad++. Коллега под ником knon_20 дал отличный совет, что для него можно использовать плагины, которые в значительной мере упростят вашу работу:

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

DSpellCheck
Проверка наличия ошибок в тексте. Проверяет только орфографию!

Оба этих плагина можно загрузить непосредственно в Notepad++ через "Управление Плагинами...", все упомянутое выделено на изображении ниже:



От 01.04.2025:
Рекомендую к прочтению https://stellaris.paradoxwikis.com/Localisation_modding, это статья официальной вики по Стелларису, где описывается процесс локализации, в ней указаны всяческие команды и коды (увидел я её, кстати, буквально через несколько дней, когда закончил первую версию этого руководства, но ссылку не приложил, надо исправлять);

А ещё рекомендую замечательный веб инструмент для перевода Deepl, переводит лучше переводчика Гугл; ниже в руководстве написано о нём и об использовании ИИ.
Обновление от 01.04.2025 — ИИ, инструменты, дополнения
Давно запланированное обновление. За время, прошедшее с написания оригинала, у нас появилась куча новых инструментов, например ИИ, да ещё и возможность выбрать, какой использовать, их десятки.

Как писал в комментариях наш коллега Red fox200 31-го марта:

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

Deepseek — один из ИИ ассистентов, которые вы можете использовать для перевода модификации. Я попросил комментатора написать руководство, как его использовать, он его прописал в комментарии, а после сделал и "полноразмерную" версию, вот она, рекомендую к ознакомлению:

https://steamcommunity.com/sharedfiles/filedetails/?id=3455470810

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

Red fox200 31 Mar @ 2:19am
Это довольно легкий процесс. Просим ИИ Deepseek Не трогать файлы до строчки :
ИИ сам все поймет, если будет только после первой строчки то указываем что команда не трогать файлы работает с каждой строчки заново.

Например:

l_english:
NAME_M87: "M87"
NAME_PlanetOfLight: "The Planet Of Light"
NAME_IonSparkle: "Ion Sparkle"
NAME_IonSparkleController: "Controller"
NAME_M87_CLUSTER: "M87 Cluster"

И получаем перевод

l_russian:
NAME_M87: "M87"
NAME_PlanetOfLight: "Планета Света"
NAME_IonSparkle: "Ионная Искра"
NAME_IonSparkleController: "Контроллер"
NAME_M87_CLUSTER: "Скопление M87".

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

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

Ремарка: в первом предложении, вероятно, имеется в виду не трогать текст до двоеточия.
Ремарка 2: я попробовал дать ИИ ссылку на https://stellaris.paradoxwikis.com/Localisation_modding. Таким образом, я думал немного "обучить" ИИ, но он не может перейти на страницу. Как вариант, вы можете скопировать всё её содержимое и передать ИИ иными способами. Но, как заявляет Red fox200, Дипсик и без этого справляется с задачами перевода.

Ссылки на ИИ:
https://www.deepseek.com/en
https://chatgpt.com — здесь я бы порекомендовал порыться в "джипитисах" (GPTs) — приложениях на основе ChatGPT. С этим я ещё не разбирался сам, но, возможно, у вас получится найти что-то более подходящее для переводов, чем дефолтный GPT.

Так же для "ручного" перевода и перепроверки себя я бы порекомендовал Deepl — переводчик типа Гугл Транслейт, но, как заявляет описание, "это не просто онлайн-переводчик, а комплексная платформа языкового ИИ, позволяющая компаниям эффективно взаимодействовать, преодолевая языковые барьеры, учитывая культурные нюансы и раскрывая потенциал новых рынков". Он довольно точно переводит тексты, лучше, чем Гуголь воспринимает контекст, в нём удобнее редактировать полученный результат.
Из недостатков: в бесплатной версии есть ограничение на объём текста, а ещё, если внести правки в переводимый текст, то хоть сколь-нибудь изменённый переведённый текст сбросится до перевода ИИ. Всё. Других пока не замечал.
Ссылка: https://www.deepl.com

Grammarly — ещё один ИИ ассистент для работы с текстами, с ним я не знаком, но, по заявлениям экспертов, функционал вполне неплохой:
https://www.grammarly.com/

С ИИшками разобрались. Итак, мы перенесли наш перевод, как это описал Red fox200, в текстовик. Теперь нам необходимо все "english" заменить на "russian". Тут я тоже сошлюсь на один из комментариев, теперь от Evil Grimoire:

Ну и дополю еще раз, как все разом поменять. Для этого нужны две проги: нотепад+ и ReNamer.
Первым выделяем все файлы и открываем нотепадом. Далее f+ctrl и заменяем I_english: на l_russian: Там есть функция заменить во всех открытых файлах.
Второй прогой разница в действиях небольшая. Выделяем все файлы, вставляем, добавляем два правила: добавить после I_ (русский) и убрать english.
Все, готово!

И тут же я напомню слова knon_20: "Очень осторожно нужно пользоваться возможностью "Замены текста", так как можно поломать вообще весь перевод".

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

Теперь можно не ждать «до поздней игры», когда переводчик займется модом, который вы попросили перевести, а самому это сделать за несколько вечеров. Или стать некрофагом и оживить мертвую локализацию, для себя ли или для сообщества. Ну, а если вы и не собираетесь переводить моды, то сможете починить ошибку со сломанным текстом.
На этом все. Лайки, колокольчик, ПРЫЖОК В ДВАМАКСКУЮ ПОХЛЁБКУ, БЫСТРО, ЕДА!!!!!11!1

Благодарности:
knon_20 — за отличные советы по улучшению руководства;

Evil Grimoire — тоже за советы по улучшению;

Cho'Giki — за перепроверку функционирования всего этого добра, что мы тут понаписали;

Red fox200 — за дополнение руководства описанием работы с ИИ, щас это крайней актуально и полезно.

Руководство по работе с сохранёнными гос-вами:

https://steamcommunity.com/sharedfiles/filedetails/?id=2847553821

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

https://steamcommunity.com/sharedfiles/filedetails/?id=2727738845
Комментариев: 31
Y'Heetaak Koriik  [создатель] 3 апр в 1:21 
Ну, "завтра" малёха затянулось, так бывает. Приложил ссылку, спасибо! :cool_seagull:
Y'Heetaak Koriik  [создатель] 1 апр в 11:54 
Мегахарош, спасибо!
Перечитаю уже завтра наверное и приложу ссылку
Red fox200 1 апр в 11:52 
Вот небольшая помощь для deepseek там все написано.
https://steamcommunity.com/sharedfiles/filedetails/?id=3455470810
Y'Heetaak Koriik  [создатель] 1 апр в 11:27 
Обновили руководство. Спасибо всем за комменты, коллеги!
Red fox200 31 мар в 0:10 
Сделал небольшое руководство.
Red fox200 30 мар в 16:29 
И еще он позволяет закидывать маленькие файлы для перевода. И если ИИ поймет общую концепцию перевода, а он поймет довольно быстро. То можно закидывать файлы напрямую. Он будет переводить все сам, нам останется лишь скопировать перевод из deepseek потому что он не умеет передавать файлы, а после переназвать из условного bonus_techs_l_english.yml в bonus_techs_l_russian.yml.
Red fox200 30 мар в 16:19 
Или

Для начала просим ИИ узнать как переводить моды для Стелларис, он будет в курсе контекста и начнет переводить именно названия, а не системные файлы.
К сожалению он иногда делает ошибки, но не в системных файлах, а переводе например если в оригинале будет например Micro-killer то он оставит оригинал я старался это фиксить но видимо это проблема ИИ.
Не знаю как делать руководство так что оставлю на ваше усмотрение как и что сделать.
Red fox200 30 мар в 16:19 
Это довольно легкий процесс. Просим ИИ Deepseek Не трогать файлы до строчки : ИИ сам все поймет, если будет только после первой строчки то указываем что команда не трогать файлы работает с каждой строчки заного.
Например
l_english:
NAME_M87: "M87"
NAME_PlanetOfLight: "The Planet Of Light"
NAME_IonSparkle: "Ion Sparkle"
NAME_IonSparkleController: "Controller"
NAME_M87_CLUSTER: "M87 Cluster"
И получаем перевод
l_russian:
NAME_M87: "M87"
NAME_PlanetOfLight: "Планета Света"
NAME_IonSparkle: "Ионная Искра"
NAME_IonSparkleController: "Контроллер"
NAME_M87_CLUSTER: "Скопление M87".
Y'Heetaak Koriik  [создатель] 28 мар в 19:21 
Кстати, отличное замечание, спасибо! Когда я это всё писал, ещё не так были распространены всякие ИИшки. Я обязательно, О-БЯ-ЗА-ТЕЛЬ-НО малость обновлю это руководство и добавлю рекомендации по ИИ :cool_seagull:
А можете поподробнее написать, как его настроить? Или создайте руководство, я приложу на него ссылку, так даже лучше будет, на мой взгляд
Red fox200 28 мар в 14:45 
Хочу посоветовать deepseek для машинного перевода, он более качественный чем гугол перевод, и если его настроить правильно он не будет трогать файлы мода, а только локализацию.