Skyrim после установки модов некоторые слова на английском
Данный сторонний скрипт может вызвать проблемы с функционалом сайта.
Чтобы избежать ошибок при загрузке, советуем отключить AdBlock в браузере.
Кроме того, вы всегда можете стать Coop-Gamer, чтобы не видеть рекламы.
Статус темы: Тема закрыта, ответ в этой теме невозможен.

А может там ещё изменён смысл тех самых корневых текстов? Я обычно такое встречал. В других же случаях, английский язык видел лишь в наработках.
Если проблему не решить руссификатором, то тогда только руссифицированной версией мода(ов).
Руководство по переводу модов для Skyrim
Я создаю эту тему в помощь переводчикам, которые испытывают различные трудности при переводе модов и скриптов Скайрима.
Полагаю, раз вы состоите в группе переводчиков, то вы обладаете базовыми навыками, необходимыми для перевода модов. Все же я упомяну все эффективные и знакомые мне способы перевода esp и esm файлов модов.
Во многих случаях, мне очень помогал английский и русский экспорт текстов игры. Допустим, при переводе мода вам попались имя, фраза, название, часть текста книги, описание зачарования и т.д, которые автоматически не перевелись, так как имеют отличный от оригинального id, а вы хотите, чтобы их перевод соответствовал официальному переводу, или же таких записей так много, что просто глупо переводить их заново самому, когда их перевод сделали 1С. Но где же взять этот перевод 1С? Не лезть же в игру и не искать. Потому я сделал для себя английский и русский экспорт игровых текстов.
Допустим, при переводе я встретил такое описание зачарования «For seconds you automatically become invisible while sneaking.»
Я открываю текстовый файл с экспортом и с помощью поиска нахожу это описание:
For seconds you automatically become invisible while sneaking.
Подкрадываясь, вы автоматически становитесь невидимы в течение с.
Вот сделанный мной экспорт 



Я выделю лишь следующие особенности программы, которые сделали ее для меня любимой.
1. При переводе вы видите и оригинальный английский текст и переведенный русский. Это сильно помогает в различных ситуациях.
Теперь, когда у нас выбран russian-russian словарь, мы свободно можем загрузить мод на русском языке.
Также программа позволяет создавать словарь для мода (SSTstrings dictionary), эта функция работает в режиме english-russian, но не будет работать в russian->russian, таким образом, вы не сможете создать словарь мода из уже переведенного русского мода. А если попытаться загрузить русский мод в режиме english-russian, то получите кракозябру. Решение простое, вам надо взять английский оригинальный есп и провести сравнение с русским в режиме english-russian, таким образом все строки переведутся и вы сможете создать словарь. Очень полезная функция, всегда создавайте словари переведенных модов, поскольку это сильно поможет упростить перевод модов со схожим текстом в будущем.
Кстати, при выделении какого-либо слова, программа услужливо предложит вам его перевод, встречающийся в официальном переводе игры. Это очень удобно, если вам попадаются имена или названия из оригинальной игры, вы сразу видите, как звали персонажа или еще что-то.
Чуть позже расскажу о переводе скриптов и MCM.
Это довольно обширная тема. Есть масса способов перевести скрипты и масса ситуаций, где подойдет лишь только один способ, а чтобы научиться переводить любые скрипты, вам придется узнать и опробовать все способы.
1. Самый простой и ограниченный способ заключается в том, чтобы перевести сообщения в исходнике скрипта и затем скомпилировать исходник в полноценный скрипт. Сей метод плох тем, что в очень многих случаях у вас не будет исходников скрипта. Но по порядку, давайте сначала обсудим данный способ.
Во множестве модов есть скрипты, бывает так, что скрипты содержат текст, вы бы хотели его перевести, но не знаете как. Этого текста нет внутри есп? Все верно, текст находится внутри скриптов (одного или нескольких), относящихся к моду. Скрипты мода лежат в папке scripts, скомпилированные скрипты имеют формат .pex, просмотреть их в специальной программе можно, но бесполезно. Но как же нам тогда перевести текст?
Тут нам и пригодятся исходники. Внутри папки scripts может находиться (если автор не поленился и положил) папка source. Внутри этой папки вы увидите файлы все с теми же названиями, что и у скриптов, но они будут иметь формат .psc. Такой формат имеют исходники скриптов, и вы сможете их прочесть при помощи Notepad++. Вероятно, вы поначалу растеряетесь и не сможете ничего понять из написанного внутри, но не отчаивайтесь, со временем вы научитесь быстро определять, что именно вам нужно перевести, даже не заглядывая в игру.
Я очень рекомендую вам открывать скрипты программой Notepad++, она обладает множеством полезных и необходимых функций, с ней легко и приятно работать, да и документ она отображает 100% верно, в отличие от стандартного блокнота.
Открыв исходник, вы увидите нечто подобное:
int newDamage = armeModel.getbasedamage()
int newGoldvalue = armeModel.getGoldvalue()
Miscobject Lingot = Rep.Get_Material(armeCasse)
bool IsEnchanted = DegWeaponEnchanted.Hasform(armeCasse)
float IsToPay = Rep.TestPerk(Lingot)
int NbreMarteau = player.GetItemCount(marteau)
int PerkSmithEffect = (Player.GetActorValue(«Smithing») / 10) as int ;
elseif(NbreMarteau == 0) ;
debug.messagebox(«I first need a whetstone. «)
elseif IsEnchanted && (player.hasPerk(arcaneBlacksmith) == false) ;
debug.messagebox(«I do not have the required skill to repair enchanted weapons!»)
menu1()
else
if(armeCasse.getbaseDamage() + PerksmithEffect >= newDamage) ;
;RepSound2.play(PLAYER)
player.removeitem(Lingot,1)
armeCasse.setbasedamage(newDamage)
armeCasse.setgoldvalue(newGoldvalue)
debug.messagebox(«I need the material: » + Lingot.getName())
— Нужные вам сообщения часто имеют приписку messagebox или лишь message, но иногда и не имеют, просто по слову message их легче всего отличить.
— Нужные вам сообщения обычно имеют определенный смысл, по этому смыслу их легко отличить от прочего технического мусора. Глядите, сообщение «I do not have the required skill to repair enchanted weapons!» явно предназначено игроку в отличие от (player.hasPerk(arcaneBlacksmith).
— Нужные вам сообщения заключены в кавычки «I first need a whetstone. » и при переводе вы не должны ни в коем случае убирать эти кавычки. Возьмем, к примеру, debug.messagebox(«I need the material: » + Lingot.getName()). Как мы видим, здесь требуется перевести фразу «I need the material: «.
Вы уже заметили, что между двоеточием и закрывающей кавычкой есть пропуск, так вот при переводе вы обязательно должны сохранить этот пропуск, поскольку после пропуска будет вставлено название некоего материала, а если пропуск убрать, то двоеточие и название сольются вместе. В итоге у вас получится «Мне нужен материал: «, а целиком строка будет выглядеть так:
debug.messagebox(«Мне нужен материал: » + Lingot.getName())
Таким образом, вы просматриваете все исходники и находите в них строки, требующие перевода, после чего вы их аккуратно переводите.
Итак, вы перевели все необходимые сообщения, теперь просто сохраните скрипты.
Я надеюсь, у вас лицензионная копия игра и вы уже установили Creation Kit в стиме, поскольку без CK дело дальше не двинется.
Вы установили CK, и перевели исходники скриптов. Теперь вы должны взять переведенные исходники и положить их в папку Skyrim\Data\Scripts\Source.
Включайте CK, нажимайте вкладку Gameplay и выберите Compile Papyrus Scripts. Программа может зависнуть на несколько минут. Дальше откроется окно «Pick Script to Compile» (окно может открыться, но будет скрыто из виду другими окнами, так что вы можете не заметить его, но если программа отвисла после нажатия кнопки. то значит окно открылось, поищите его).
Помните, что для теста скриптов, вы должны грузить сохранение игры, сделанное без использования модов, поскольку Skyrim кеширует скрипты и хранит их внутри сохранения. Иными словами, если вы сделали сохранение с включенным модом, то чтобы скрипты стали русскими, вам придется полностью удалить мод, сделать сохранение без него, установить уже полностью русскую версию мода и загрузить последнее сохранение
Вот вы и перевели скриптовые сообщения мода. Поздравляю!
Чем плох и опасен этот метод? Исходники могут оказаться недоделанными, старыми, их может не хватать. Авторы частенько кладут их, чтобы поделиться с другими скриптерами информацией, но забывают обновлять и добавлять.
Поговорим о программе. Она имеет 3 функции:
Ассемблер
Дизассемблер
Компилятор
Нас более всего интересуют первые две функции (Ассемблер и Дизассемблер).
Дизассемблированные скрипты выглядят примерно так же, как и исходники:
Если вам требуется выделить нечто в сообщении, то используйте апостроф:
«Эта ‘часть брони’ не требует починки!»
Неправильно делать так:
«Эта «часть брони» не требует починки!»
В этом случае ваш скрипт не скомпилируется. В кавычки должно быть заключено исключительно само сообщение.
Итак, вы просмотрели весь документ, отыскали все сообщения и перевели их. Дизассемблированный скрипт куда больше исходника. Возможно, вам будет сложно просмотреть весь скрипт и отыскать все сообщения, требующие перевода. Лично я поступаю так: открываю дизассемблированный скрипт в notepad++, нажимаю ctrl+f, открывается окошко поиска, в поле «найти» я просто вписываю кавычку » и нажимаю кнопку «найти все в текущем документе», таким образом, мне выдаст окно со всеми строками, содержащими кавычки. Оно все еще может быть большим, но все же информации в нем куда меньше, чем в полном документе. Я сейчас работаю со скриптом, и поиск выдает мне 154 строки вместо 1300 в полном документе, то есть разница в количестве строк, которые надо просмотреть, весьма существенная.
Пример:
Оригинальный скрипт называется
DegRepairBenchScript.pex
Дизасемблированный скрипт
DegRepairBenchScript.disassemble.pas
Теперь мы вновь открываем нашу программу, между этим вы можете убрать из папки с программой оригинальные скрипты, поскольку они нам там только помешают, ведь мы будем превращать наши переведенные в них же с тем же именем, в общем, от греха подальше.
Ура! Вы только что перевели скрипт, не имеющий исходников. Теперь вы способны на перевод большинства модов.
Лично я перевожу данным методом любые скрипты, даже если автор положил исходники. Поскольку с данным методом работать куда быстрее, чем с компилятором, да и скрипты всегда ассемблируются обратно в pex, если конкретно я не допустил никаких ошибок, в отличие от метода компилятора, когда скрипт может не компилироваться по непонятной мне причине.
Чуть позже я расскажу о переводе скриптов MCM меню мода SkyUI. Авторы далеко не всегда создают текстовый файл для перевода и не всегда кладут исходники скриптов, но вот в переводе mcm скриптов посредством дизассемблирования есть своя небольшая хитрость. Я пока что попью чаю, а вы попрактикуйтесь с первыми двумя методами, особенно со вторым, он вам жизненно необходим.
Какие существуют методы перевода MCM меню SkyUI, если мод таковое добавляет?
1. Это когда автор озаботился создать специальный текстовый файл для перевода mcm меню из своего мода. Этот файл находится в папке Interface\Translations
Он называется следующим образом:
Название мода_Название языка.txt
К примеру вот
achievethat_RUSSIAN.txt
Я рекомендую писать название языка капсом, может это и ошибочно, точно не знаю, но парочку раз у меня не работал файл перевода без этого.
Итак, мы открываем этот файл перевода, а если для нашего языка его нет (есть только английский), то создаем его, затем копируем в него информацию из английского
Вот английский achievethat_ENGLISH.txt
$Achievement Points Achievement Points
$Achievements Achievements
$Settings Settings
$Progress Progress
$AT_QN Enable Completed notifications
$AT_DN Enable upper left corner notifications
$Character Character
$Attributes Attributes
Мы копируем данный текст в achievethat_RUSSIAN.txt
и переводим
$Achievement Points Очки достижений
$Achievements Достижения
$Settings Настройки
$Progress Прогресс
$AT_QN Включить уведомления о выполнении
$AT_DN Включить уведомления в верхнем левом углу
$Character Персонаж
$Attributes Характеристики
Как видите, тут все крайне просто. Переводим, сохраняем, проверяем в игре, меню переведено, все счастливы.
$AT_DN Включить уведомления в верхнем левом углу
$Character Персонаж
$Attributes Характеристики
$Cake Торт — это ложь
2. Но предположим, файла перевода нет, и исходника скрипта mcm меню тоже нет. Тогда нам лишь остается обратиться к дизассемблеру и ассемблеру скриптов. Выше я уже объяснял вам, как это делается, так что рассчитываю, что вы уже знаете. Должен однако заранее предупредить, что не существует 100% гарантии, что у вас выйдет целиком перевести MCM меню, поскольку некоторые авторы создают скрипт таким образом, что название страниц перевести невозможно. К счастью, это достаточно редкое явление.
Итак, как и в случае с обычным скриптом, мы дезассемблируем скрипт нашего меню. Создавать файл перевода мы не будем (лично мне лень), так что будем переводить сразу сам скрипт. Перво-наперво надо запомнить, что перед переводом вы должны переключить кодировку документа в UTF-8 (без BOM), вы открываете дизассемблированный скрипт в notepad++ и выбираете закладку «Кодировки», где выбираете указанную кодировку, затем вы начинаете переводить скрипт. Смысл этого я объясню чуть позже.
Должен сказать, что МКМ скрипт содержит куда больше технического мусора, а также ложных сообщений, которые не нуждаются в переводе, но выглядят осмысленно.
Строки
.docString «Called when the user selects a slider option»
.docString «Function that returns the current state»
.docString «Function that switches this object to the specified state»
.docString «Called when a key has been remapped»
Как вы видите, эти сообщения явно не для игрока.
Итак, пользуясь знаниями языка и логикой, мы находим сообщения требующие перевода, помните, кодировка у нас выставлена UTF-8 (без BOM) при этом, мы переводим все эти сообщения как обычны. А затем мы вновь меняем кодировку документа, в этот раз мы кодируем в ANSI. И что же происходит? Все наше переведенные сообщения превращаются в абракадабру. Но это нам и нужно.
Зачем это нам нужно? Посмотрите на следующее изображение
Видите названия страниц в красной рамке? Дело в том, что эти названия являются (как это понимаю я) ссылками, а ссылки не работают, если написаны кириллицой, потому мы используем такую хитрость, мы пишем русское название в utf-8, а потом переводим в ansi, таким образом, ссылки работают, а в игре отображает русское название. Для остальной части документа (зеленые и синие рамки) кодировка utf-8 (без BOM) необязательна, но лично я перевожу весь документ целиком в utf и затем кодирую в ANSI. Если не использовать хитрость с кодировкой, то страницы не будут работать и не будут ничего отображать.
К сожалению, бывает ситуация, когда автор создает меню таким образом, что перевести названия страниц невозможно. К счастью, содержание страниц переводится так же, как написано выше. Но почему названия страниц перевести невозможно? Приведу пример из моей практики, дизассемблированный скрипт содержал строки с названием этих страниц, при их переводе в кодировке utf-8 ничего не произошло, а если говорить точнее, названия остались на английском, а вот страницы работать перестали. Я решил копать глубже и выяснил, что название страниц находится properties скрипта (что это такое я объясню позже), который можно изменить с помощью CK. Но проблема в том, что у нас идет, как бы, ссылка на ссылку, мы не можем использовать в скрипте кириллицу и потому создаем удобоваримую игрой абракадабру, но в properties мы ее создать не в состоянии, мы можем использовать там либо кириллицу, либо латиницу, и в любом случае выходит, что название, оставленное в properties, не соответствует названию в скрипте, так что единственный найденный мною выход, это не переводить в таком случае названия страниц. Хоть это и слегка некрасиво, но главное, что сами настройки мы в состоянии перевести, а они ведь куда важнее.
Вот таким образом, можно переводить скрипты MCM меню. Скрипты бывают разные, временами встречаются весьма нестандартные. В некоторых скриптах есть обманчивые сообщения, которые почти невозможно отличить от тех, которые следует перевести, но если перевести эти обманчивые сообщения, то какая-то часть МКМ меню может перестать работать.
Например, мод TK Combat, в нем есть настройка горячих клавиш в МКМ, когда я открыл скрипт, то увидел следующее
Перевод строк с initialValue привел к поломке скрипта и неработоспособности горячих клавиш. В общем, после перевода не забывайте хорошенько протестировать меню.
Теперь что касается перевода обычных скриптов, то есть не МКМ скриптов, с помощью TESVTranslator. Тут все чуточку сложнее. Видите ли, программа при переводе скриптов кодирует их в UTF-8. В случае MCM скриптов с этим нет никаких проблем. Но вот если закодировать обычные месседж боксы и всплывающие месседжи в UTF-8, то в игре их большая часть будет выглядеть, как абракадабра. Обычные скрипты, переведенные на русский язык, должны быть в ANSI.
Таким образом, есть 2 варианта развития событий:
1. Вы отказываетесь от перевода обычных скриптов с помощью программы.
2. Вы используете программу для перевода, а потом дизассемблирование и преобразование.
Мы, конечно же, рассмотрим второй метод.
Открываем наш скрипт в программе, переводим, эта стадия ничем не отличается от перевода МКМ скрипта, все то же самое, даже замочки. Перевели скрипт, сохранили. Теперь берем переведенный скрипт pex и дизассемблируем его в pas. Открываем скрипт в notepad++, выбираем закладку «Кодировки» и нажимаем «Преобразовать в ANSI», именно преобразовать, а не кодировать.
Теперь наш обычный скрипт с месседжбоксами имеет правильную кодировку. Сохраняем его. Затем ассемблируем обратно в pex.
Вот и все! Скрипт переведен и будет правильно отображаться в игре. Вам лишь остается пробовать, практиковаться и экспериментировать, набираться опыта, а через какое-то время вы начнете щелкать все эти скрипты, как орешки.
Мне осталось рассказать только одно о МКМ меню и скриптах, а конкретно перевод названий мода в списке MCM, да и вообще properties в целом, я же выше обещал. Но это в следующем сообщении.
В этот раз пойдет речь о том, как переводить название мода в списке модов MCM и скриптовые сообщения, появляющиеся при использовании способностей.
Как видите, в списке 4 мода, лишь название одного переведено. Авторы по разному пишут скрипт МКМ. Если вам повезет, то вы сможете перевести название при переводе скрипта меню, но в большинстве случаев не везет, и название находится в другом месте.
Помните, я упоминал properties? Вот и мы дошли до них.
Итак, чтобы перевести название мода в списке, вам понадобится Creation Kit. Открываем CK. Грузим мод. Мод загрузился. Слева выбираем вкладку «Quest», затем сортируем записи, чтобы записи со звездочкой оказались вверху, вам нужна всего одна из этих записей, отвечающая за MCM, в моем случае такая запись только одна, в целом их не бывает много.
Открываем эту запись. Выбираем вкладку «Scripts». Видите, к записи прикреплен скрипт? Он нам и нужен, именно в этом скрипте содержится строка с названием мода.
А теперь самое главное! Если вы попробуете открыть этот скрипт, то получите вот такую ошибку.
Вы будете всегда получать эту ошибку, если не будете следовать определенным правилам. Я специально решил ее показать заранее, чтобы вы запомнили ее. Как избежать этой ошибки? Как заставить скрипт открыться.
Есть 2 ВАЖНЫХ правила, которые необходимо выполнить, чтобы открыть этот скрипт МКМ меню без ошибки:
1. Скрипты мода, который вы переводите, должны лежать в папке Data\Scripts, скрипты в архиве BSA не подходят! Конечно, на самом деле нужны не все скрипты, а конкретно тот, который связан с тем, что мы пытаемся открыть, но легче и надежнее положить ВСЕ скрипты. Запомните, скрипты мода должны лежать в соответствующей папке игры незапакованными.
2. Скрипты SkyUI ТАКЖЕ должны лежать в соответствующей папке игры незапакованными, только соблюдая оба этих правила, вы сможете открыть тот скрипт в CK. Если не будет скриптов SkyUI в папке Scripts, то вы получите приведенную выше ошибку или схожую с ней, но вы не откроете скрипт.
Итак, я получил ошибку и вспомнил о двух вышеописанных правилах, я сделал все, как надо, поместил незапакованные скрипты обоих модов в соответствующую папку (Data\Scripts). Теперь я перезапускаю CK, вновь загружаю мод, дохожу до скрипта, нажимаю на него, и у меня он открывается.
Вот они наши properties скрипта. И как вы уже догадались, наша цель «ModName» тип String. Выбираем данную строку, в правой части окошка есть поле, вписываем туда русское название мода. Стоит учесть, что меню SkyUI весьма ограничено по ширине, а надпись будет в одну строку, так что придумайте моду название покороче, дабы оно уместилось в границах.
Вы ввели название, нажмите ОК, чтобы закрыть все окна. Затем сохраните мод. Обязательно проверьте его на работоспособность в игре. Да и вообще рекомендую делать бэкап файла перед всей этой операцией. Как бы там ни было, а название мода на русский вы перевели. Поздравляю!
Бывает так, что мод дарует нашему герою некоторые способности, а эти способности в свою очередь при использовании выводят сообщение в левом верхнем углу, очень часто этого сообщения нет ни в есп/есм, ни в скриптах. Как вы уже догадались, эти сообщения находятся в properties, подобно названию мода в MCM. Вот пример из мода «Основные потребности»
При активации мода герой получает способность «Проверить потребности», когда герой ее использует, то в левом верхнем углу выводится информация о потребностях. Чтобы перевести такую информацию нам вновь потребуется сделать то же самое, что и выше, но в этом случае скрипты SkyUI не требуются, хотя и рекомендую переводчикам их всегда держать в распакованном виде в папке scripts. А вот распакованные скрипты мода все так же необходимы. Итак, вы распаковали скрипты в соответствующую папку, включили СK, загрузили мод. Теперь вам необходимо найти способность.
В моем случае это вкладка «Magic Effect». Я сортирую способности, чтобы добавленные модов оказались вверху. Нахожу нужную мне (я уже знаю какая мне нужна, но вот вам в первый раз, возможно, придется и поискать ее, это не всегда очевидно, но в большинстве случаев поиски не занимают много времени).
Открываем способность. Видим, что она связана с неким скриптом.
Помните, что для открытия скрипты все скрипты мода должны быть распакованы в папку Data\Scripts. Открываем скрипт и видим
Нам нужны строки типа string, именно они отображаются в игре при использовании способности, и именно их мы будем переводить. Выбираем каждую строку и вписываем перевод в форму String Value справа. Затем кликаем ОК, чтобы закрыть окно properties и снова ОК, чтобы закрыть окно магического эффекта. Сохраняем мод и проверяем в игре. Вот и вся наука.
Сообщение, выводимое при использовании способности, теперь переведено на русский язык. Ура!
На этом я закачиваю. Спасибо всем, кто прочел от начала и до конца. Надеюсь, этот мануал научил вас чему-то новому, и в будущем вам будет легче переводить моды.






