Сообщество Империал: [Статья] Работа с локализацией в Total War Attila - Сообщество Империал

Стратегии, Игровые Миры, История, Total War


Imperial Уважаемый Гость, Сообщество Империал открывает многофункциональный и глобальный Каталог Модов Imperial
Imperial
СоциоПат

[Статья] Работа с локализацией в Total War Attila

[Статья] Работа с локализацией в Total War Attila
Тема создана: 06 Октябрь 2019, 16:26 · Автор: СоциоПат
СОХРАНИТЬ ИНФОРМАЦИЮ:
Сообщений: 0 · Просмотров: 115
 СоциоПат
  • Imperial
Imperial
Социолог
7
0
0
28
0

Дата: 06 Октябрь 2019, 16:26

Как создать, отредактировать и дополнить русскую локализацию в Total War Attila

Дисклеймер: в данном и последующих гайдах будет описана работа, прежде всего, в Pack File Manager (ПФМ) и Notepad++. Это не значит, что не существует других инструментов (возможно, даже более удобных для вас), но, если вы научитесь работать в ПФМ и блокноте, вы научитесь работать везде. Кроме того, существует возможность править непосредственно пак локализации самой игры - local_ru. Однако я крайне не рекомендую править внутриигровые файлы (точно так же, как в случае моддинга, не стоит лезть в пак data). В любом случае, если вы научитесь работать по этой инструкции, вы научитесь и редактировать непосредственно local_ru, если уж вам так надо.
Специфика ТВА такова, что работа с русской локализацией игры означает работу со сборной таблицей локализации (в то время как оригинальная локализация разделена на тематические таблицы). Проще всего взять уже существуют локализацию - например исправленную локализацию Савромата. В таком случае, вы можете пропускать п. 1 и сразу же переходить к п. 2. Отдельно отмечу, что технически локализация - это тот же мод, подключается точно таким же образом.
1. Создание собственного файла локализации (раскрыть информацию)1.1. Запускаете ПФМ, создаёте новый пак мода: File > New.
1.2. Импортируете таблицу локализации из пака local_ru в папке data игры: Files > Add > From Pack... Появится диалоговое окно, найдите таблицу localisation.loc, кликните по ней дважды. Путь к ней и итоговый результат указаны на скриншоте (loc-таблица не должна находиться в корневой директории вашего пака!):
Imperial
1.3. Сохраняете пак в папке data игры, радуетесь.

2. Редактирование локализации (раскрыть информацию)2.1. Открываете ваш/чужой пак локализации, выбираете таблицу localisation.loc. Там такое окно:
Imperial
Как нетрудно догадаться, первая колонка - это ключ строки, вторая - собственно локализация, третья вас не интересует, там всегда должна быть галочка (ну или в текстовом виде - "True").
2.2. Собственно, вы вполне можете сделать корректуры прямо в этой таблице. Однако обычно это крайне неудобно, потому что она огромная. А если вам понадобится массовая автозамена, то у вас и вовсе ничего не выйдет. Поэтому выгрузим таблицу для работы в блокноте. Вас интересуют, по сути, только две кнопки - Export TSV и Import TSV.
2.3. Нажимаете Export TSV - сохраняете файл куда хотите. Итоговый файл (будем называть его "ТСВ") обычно не имеет расширения, но открывается любым блокнотом. Я рекомендую Notepad++, потому что там можно включить перенос строк и отображение "непечатных" символов - в частности, пробелов и табуляций, что особенно важно. Выглядеть то будет примерно так:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570355204_.jpg
2.4. Собственно, ищете обычным поиском то, что вам нужно, и редактируете. Следите, чтобы между тремя "колонками" локализации, помеченными кавычками (ключ, локализация и параметр True), были табуляции, а не пробелы. Иначе при импорте таблица может заглючить. Сохраняете.
2.5. Снова открываете локализацию ПФМом, выбираете localisation.loc и импортируете ваш отредактированный ТСВ кнопкой Import TSV (никаких новых элементов в древе слева у вас появиться не должно, должна только обновиться сама таблица локализации, она станет красной). Сохраняете.
2.6. Подключаете локализацию, как мод, смотрите изменения в игре.
3. Перевод мода = добавление новых строк в локализацию (раскрыть информацию)3.1. Технически между локализацией самой игры и модов (далее "текстовкой") и её русским переводом (то, что обычно все и называют "локализацией") нет никакой разницы. Просто в оригинале текстовка разбита на разные таблицы, а в локализации мы вынуждены работать с одной большой. Поэтому вам нужно просто открыть пак мода всё тем же ПФМом и найти ветку text и нужную loc-таблицу. Выглядеть это будет точно так же, как и в случае локализации:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570356043_.jpg
3.2. Если строк мало, теоретически вы можете просто открыть параллельно вашу локализацию, скопировать строки из таблицы в таблицу и перевести. На практике лучше снова обратиться к блокноту. Точно так же, как и в предыдущем разделе, экспортируете loc-таблицу мода в ТСВ, переводите её.
3.3. Экспортируете локализацию в другой файл ТСВ, открываете его параллельно в блокноте, копируете строки из ТСВ мода в ТСВ локализации. Можно просто в самый конец или в начало. Порядок строк в локализации никакого значения не имеет (только если у вас не дублируются строки с одинаковыми ключами - в этом случае, если не ошибаюсь, считывается только текст в первой строке).
3.4. Если в моде несколько loc-таблиц, проворачиваете этот трюк, пока не добавите их все в локализацию.
3.5. Сохраняете ТСВ локализации и точно так же, как и в предыдущем разделе, импортируете ТСВ назад в локализации. Дальше, надеюсь, догадаетесь, что делать.

Работа с building_culture_variants
Суть (раскрыть информацию)В игре существует возможность привязать к одному и тому же (технически) зданию разные названия и описания в зависимости от культуры, субкультуры и фракции.
1. Основа делается в таблице db / building_culture_variants. Выглядит интересующее нас примерно так:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570359140_.jpg
Как нетрудно догадаться, для каждого варианта названия здания должна быть своя строка со своей спецификацией культуры/субкультуры/фракции (в зависимости от того ареала, который вы хотите данным названием покрыть). Каждый низший уровень перекрывает предыдущий и, если, например, вы назначили одно название для всех варваров, но другое - конкретно для бургундов, то у бургундов будет именно последнее. Остаётся открытым вопрос, нужно ли прописывать "путь" целиком: т.е. в случае фракции указывать и культуру, и субкультуру, и фракцию. В ванильных таблицах в этом смысле полный разнобой. Однако, поскольку эта таблица - довольно-таки капризная, лучше прописать полный "путь". Сразу предупреждаю, что, если вы правите ваниль, велика вероятность, что вам придётся удалять ванильные строки из основной таблицы, потому что они будут перекрывать ваши изменения в дополнительных таблицах.
Последнее, что нас интересует в данной таблице - колонка short_description. Эта та текстовка, которая отображается над списком эффектов в инфокарточке здания. Соответственно, либо запоминаете ванильный ключ, если хотите его заменить везде, либо вписываете свой новый.
2. Далее переходим к привязке данных ключей непосредственно к текстовке - к созданию/правке loc-таблицы в ветке text.
С короткими описаниями всё просто: ключ должен иметь вид типа building_short_description_texts_short_description_TheuR_ruin_1, где TheuR_ruin_1 - непосредственно ключ короткого описания.
Само же названия здания прописывается чуть хитрее, ключ должен воспроизводить своего рода "путь" к названию:
building_culture_variants_name_att_abandoned_0att_cult_barbarianatt_sub_cult_barbarian_germanic_westatt_fact_burgundii , т.е.:
ключ_таблицы_и_колонкиключ_зданияключ_культурыключ_субкультурыключ_фракции . Соответственно, конечный вид ключа зависит от того, прописывали ли вы культуру, субкультуру или фракцию (форумный редактор почему-то вставляет пробел в середине ключа, его там нет и не должно быть).
В общем-то, всё. Ну, не считая работы уже с русской локализацией, если требуется.

Лайфхак: обработка большого массива данных с помощью Экселя (раскрыть информацию)Я нашёл для себя крайне удобным в ряде случаев создавать локализацию вообще в обыкновенном Экселе, потому что он куда лучше справляется с копированием строк, генерацией числовых ID, поиском и удалением повторяющихся значений и т.п. В частности, ключи для культурных вариантов я создавал именно там, и выглядело это так:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570360516_.jpg
Т.е. вместо того, чтобы сооружать один огромный ключ и копаться в нём, я разбивал его на части и создавал нужные комбинации обычным копипастом.
Во-первых, строки локализации прекрасно копируются из Ноутпада++ в Эксель, поскольку табуляция автоматически делит строки на колонки. Правда, при этом теряются кавычки, но добавить их для всей таблицы - дело 10 секунд.
Во-вторых, при обратном копировании колонки так же автоматически превращаются в табуляции и выглядит это так:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570360920_.jpg
Как нетрудно заметить, табуляций слишком много. Тут нужно провернуть два простых действия:
1) Автозаменой убрать всю табуляцию в файле (тупо заменить табуляцию на ничто)
2) Потом автозаменой заменить последователь символов "" на " ", где вместо пробела - табуляция.
Итоговый вид - стандартное нутро ТСВ-файла, разобранный ключ автоматически собрался в одно целое:
http://imtw.ru/uploads/imperiall/loadst/min_imperial1570361120_.jpg
Всё это может показаться монструозным на первый взгляд, но если вы часто занимаетесь моддингов и должны обрабатывать/создавать огромные массивы данных (конкретно в этом файле почти 5000 строк, а он такой не один), то эта процедура довольно быстро доводится до автоматизма и сэкономит вам кучу времени.


Работа с именами
Собственно редактирование имён отдельно описывать смысла нет - всё это плюс-минус покрывается гайдом по локализации. Далее же я опишу полный процесс внедрения новой именной группы и дополнительных имён. Заранее отмечу, что по меркам моддинга, всё это весьма просто, но муторно. Кроме того, хорошо бы иметь под рукой AssemblyKit для консультаций. Дело в том, что в ПФМ, в самих таблицах db, ни имена, ни названия групп не указываются, только числовые id. Это изрядно осложняет точечные правки. В АКите же приводится и id, и названия, так что поиск заметно ускоряется.
Именные группы (раскрыть информацию)Именные группы создаются непосредственно в db / name_groups. Всё очень просто - задаёте id, которое не совпадает с идентификаторами ванильных групп. Больше ничего. В name_orders к данному id привязываются четыре строки с говорящими названиями:
Цитата

0 forename
1 other
2 family_name
3 clan_name

Разделение этих имён можно показать на примере римского имени: Публий Корнелий Сципион Африканский. Забегая вперёд: нетрудно догадаться, что, если вы будете добавлять личные имена (не только для римлян, но и вообще для всех), вы будете использовать ключ 0; для создания прозвищ я использовал ключ 1.
Затем id именной группы привязывается к каждой конкретной фракции в таблице factions в колонке (внезапно!) name_group.
В общем-то всё, локализовывать это никак не надо - в игре названия групп, вроде бы, нигде не отображаются.

Имена (раскрыть информацию)В таблице db / names вы добавляете: уникальный числовой id имени, id нужной именной группы, ключ type (из name_order), в gender задаёте пол (0 - м, 1 - ж, 2 - для всех), в frequency: 1 - базовая частота, 0 - имя не будет появляться вообще, его можно только в стартпозе/скриптах прописывать (это для Ибора и т.п. товарищей). Насколько я понимаю, если поставить в frequency 3 или 5, имя будет встречаться втрое или впятеро чаще. Собственно имя в текстовом виде в данную таблицу вам вписать некуда. Это делается, как и любая текстовка, в loc-таблице в ветке text. Там всё выглядит вполне привычно, ключ строки имеет вид names_name_<id имени>:
Imperial
Всё, имена добавлены (локализацию, опять же, оставляю за скобками). Добавление имён, как правило, совместимо с сэйвами, но новые имена будут появляться только у вновь сгенерированных персонажей.

NB. Обычно в модах loc-таблицы в ветке text импортируются из local_en, а потому их названия основываются на ванильных, ну и вообще ветка text обрастает кучей мелких таблиц. Насколько могу судить по личному опыту, в этом нет особого смысла, кроме личного удобства. Игре плевать, сколько у вас loc-таблиц и как они называются (только если их названия не совпадают с ванильными), главное, чтобы ключи были в порядке.
NB2. В случае loc-таблиц действует ровно та же правило, что и в случае таблиц из db: таблица с названием, идентичным ванильному, полностью затирает ванильную. Таблица с изменённым названием добавляет новые строки или позволяет точечно менять ванильные строки (последнее - не всегда).

Читать дальше
    Моды Rome: Total War
    Дата: Вчера, 18:18
    Моды Medieval 2: Total War
    Дата: 19 Ноя 2019, 15:50
    Моды Medieval 2: Total War
    Дата: 19 Ноя 2019, 14:25
    Моды Total War: Rome II
    Дата: 19 Ноя 2019, 02:14
    Моды Medieval 2: Total War
    Дата: 19 Ноя 2019, 02:02
    Моды Rome: Total War
    Дата: 19 Ноя 2019, 02:00
    Моды Empire: Total War
    Дата: 19 Ноя 2019, 01:58
    Моды Napoleon: Total War
    Дата: 19 Ноя 2019, 01:53
    Моды Shogun 2: Total War
    Дата: 19 Ноя 2019, 01:52
    Моды Total War: Warhammer
    Дата: 19 Ноя 2019, 01:17
    Моды Paradox Interactive
    Дата: 19 Ноя 2019, 01:16
    Моды Total War: Attila
    Дата: 19 Ноя 2019, 01:10
    Моды Mount & Blade 2: Bannerlord
    Дата: 19 Ноя 2019, 01:03
    Моды Mount & Blade: Warband
    Дата: 19 Ноя 2019, 01:00
    Моды The Elder Scrolls V: Skyrim
    Дата: 19 Ноя 2019, 00:46
    Моды Серии Civilization
    Дата: 19 Ноя 2019, 00:41
    Моды Серии Total War
    Дата: 19 Ноя 2019, 00:30
    У тебя есть вопрос или предложение по этой теме? Или хочешь высказать свою точку зрения?
    Тогда просто нажми ниже на любую кнопку своей социальной сети и сделай это!

     РегистрацияУважаемый Гость, для скрытия рекламы, зарегистрируйтесь на форумеВход на форум 
    © 2019 «Империал» · Условия использования · Ответственность · Визитка Сообщества · 21 Ноя 2019, 03:00 · Счётчики