The Binding of Isaac: Rebirth

The Binding of Isaac: Rebirth

Item Descriptions in Russian [Obsolete]
 This topic has been pinned, so it's probably important
XIX The Sunn  [developer] 6 Nov, 2018 @ 5:21am
Хотите помочь? Или если вы разработчик модов...
Если вы хотите самостоятельно перевести описания к любимой модификации, или добавить описание на русском в свою модификацию, то вот вам инструкция, как это сделать.

Перевод оригинальных описаний.

Как правило, большинство разработчиков модификаций добавляют описания к своим предметам для мода External Item Descriptions внутрь своих Lua скриптов. По умолчанию будем считать, что описание есть в модификации. Выглядеть оно будет примерно следующим образом:

if not __eidItemDescriptions then __eidItemDescriptions = {} end __eidItemDescriptions[предмет_1] = "Описание к предмету 1" __eidItemDescriptions[предмет_2] = "Описание к предмету 2" __eidItemDescriptions[предмет_3] = "Описание к предмету 3"

Описания для русской версии работают точно так же, но есть пара нюансов.

Во-первых, таблицы имеют префикс "Rus", дабы исключить конфликт с английской версией и иметь возможность добавлять описания на двух разных языках:

__eidTrinketDescriptions => __eidRusTrinketDescriptions __eidCardDescriptions => __eidRusCardDescriptions __eidPillDescriptions => __eidRusPillDescriptions __eidItemDescriptions => __eidRusItemDescriptions __eidItemTransformations => __eidRusItemTransformations __eidEntityDescriptions =>__eidRusEntityDescriptions

Во-вторых, сами таблицы теперь имеют две линии, первая - для названия предмета, вторая - для описания предмета:

__eidItemDescriptions[предмет_1] = {"Название Предмета 1", "Описание предмета 1"}

Это нужно для того, чтобы можно было переводить названия предметов.

Для примера переведём описание трех условных предметов.
Открываем скрипт мода, где находится описание, любым текстовым редактором, и находим следующие строчки:
if not __eidItemDescriptions then __eidItemDescriptions = {} end __eidItemDescriptions[Isaac.GetItemIdByName("ItemName1")] = "Item Desc 1" __eidItemDescriptions[Isaac.GetItemIdByName("ItemName2")] = "Item Desc 2" __eidItemDescriptions[Isaac.GetItemIdByName("ItemName3")] = "Item Desc 3"

Теперь мы копируем эти строчки в отдельный документ (или вставляем сразу в конец открытого скрипта, как вам будет удобнее) и начинаете редактировать описания.

Сначала ко всем таблицам добавим префикс "Rus":
if not __eidRusItemDescriptions then __eidRusItemDescriptions = {} end __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName1")] = "Item Desc 1" __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName2")] = "Item Desc 2" __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName3")] = "Item Desc 3"

Теперь мы добавляем дополнительную линию, где пишем название предмета, и расставляем дополнительную пунктуацию, вот таким вот образом:
... = "Item Desc 1" -- до ... = {"ItemName1", "Item Desc 1"} -- после

В данном случае во время редактирования вы можете сразу перевести описание на русский:
... = {"ItemName1 / НазваниеПредмета1", "Описание предмета 1"}

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

Также, вы можете использовать особые символы:
# - перенос на другую строку;
© (Alt+0169) - зелёная стрелочка вверх;
® (Alt+0174) - красная стрелочка вниз;
(Alt+0135) - знак умножения;
\" - поставить кавычку (вы не сможете просто поставить кавычки "вот таким образом" - это приведет к программной ошибке, только \"вот таким образом\").

В итоге у нас получится:
if not __eidRusItemDescriptions then __eidRusItemDescriptions = {} end __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName1")] = {"ItemName1 / НазваниеПредмета1", "Описание предмета 1"} __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName2")] = {"ItemName2 / НазваниеПредмета2", "Описание предмета 2"} __eidRusItemDescriptions[Isaac.GetItemIdByName("ItemName3")] = {"ItemName3 / НазваниеПредмета3", "Описание предмета 3"}

Обратите внимание, что мы не меняли название предмета в скобках после Isaac.GetItemIdByName.

Перед сохранением результатов рекомендуется проверить их на наличие программных ошибок, например, при помощи бесплатного онлайн-редактора Lua-скриптов ESP Sky[espsky.com], или другим удобным для вас инструментом. Если редактор нашел ошибку, значит, скорее всего, вы где-то неправильно расставили пунктуацию. Также вы можете сразу производить редактирование и перевод в подобных программах.

Готовые описания вставляем в конец скрипта и сохраняем изменения (или, если вы сразу вставили и редактировали их в конце скрипта, просто сохраните изменения).

Готово!

Добавление нового описания.

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

  1. Находите ID вашего предмета:
    local item = Isaac.GetItemIdByName("My New Item")
  2. Перед описаниями добавляете следующие строчки, чтобы избежать нулевой таблицы:
    if not __eidRusItemDescriptions then __eidRusItemDescriptions = {}; end

    Обратите внимание, что имеется 6 разных видов таблиц для разных типов предметов, проделать данный пункт нужно будет для каждой задействуемой таблицы, если у вас несколько предметов разных видов:

    __eidRusTrinketDescriptions для брелоков __eidRusCardDescriptions для карт __eidRusPillDescriptions для пилюль __eidRusItemDescriptions для артефактов __eidRusItemTransformations для трансформаций __eidRusEntityDescriptions для объектов
  3. Добавляете описания в соответствии с новым шаблоном:
    __eidRusItemDescriptions[item] = {"My New Item / Мой Новый Предмет", "Описание нового предмета"}

Перевод готов. Что дальше?

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

Заранее извиняюсь за возможные неточные и ошибочные формулировки, поскольку я далёк от программирования, но по крайней мере, вы поймёте, как это работает.
Last edited by XIX The Sunn; 6 Nov, 2018 @ 2:23pm