Главное: BIOWARE - дали нам глючный тулсет, х.з. возможно даже специально.
Суть проблемы:
Как задумано разработчиком: Игре изначально необходима была поддержка нескольких языков, при этом желательно чтобы они друг другу не мешали. Потому задуман довольно простой механизм работы, обкатанный на множестве предыдущих проектов. Суть его: любая текстовая переменная имеет свой идентификатор StringID, - который в свою очередь ссылается на языковый файл, раньше это был dialog.tlk сейчас Имя_модуля_(Идентификатор языка) например singleplayer_ru-ru.tlk, соответственно в зависимости от языковых настроек тулсета, при экспорте создаются два тлк файла один базовый на английском, а второй дополнительный скажем на русском. Для установки текстовых переменных в этот самый дополнительный *.тлк задуман некий механизм Translation/localization - его уши торчат во многих местах тулсета. Но всё сводится к вышеупомянутому StringID. Сами номера StringID формируются автоматически, однако значения можно менять через String Editor.
Короче задумано так: Создаёшь скажем плейсибл, забиваешь ему имя по английски, сохраняешь, делаешь Check In (механизм заноса в БД) - а затем через String Editor забиваешь чего душе угодно, на любом нужном языке - экспортишь и в итоге получаешь два файла базовый и локализованый хоть на русском, хоть на китайском.
Как получилось: Все выше описанное, отлично работает у тулсета с которым работали биовар, но по какой-то не совсем понятной причине оказалось в буквальном смысле "кастрированно" у тулсета который нам дали.
И так, первая особенность - SQL база данных сделана на латинице, соответственно никакую иную кодовую страницу не принимает - как вывод невозможно сделать Check In с символами отличными от латиницы, а значит и получить любой отличный от латиницы тлк файл. Плюс ко всему через БД проходят многие функции экспорта - так что язык обрубается и мы видим приятные ???? ??????? ???. Побороть эту особенность нам "простым смертным" вроде удалось, заменой ограниченной кодировкой переменной text, на более широкие варианты вроде nText или ему подобных непосредственно в самой БД. Вроде бы всё хорошо заработало, и русский пишется и тлк-шки создаются, и даже диалоги работают. Однако тут нас ждала.....
Вторая особенность: формат и содержание gff-ок создающихся "данным нам" тулсетом, как выяснилось несколько отличается от тех что сделаны изначально у биовар - в частности помимо простого stringID - туда записывается ещё много чего лишнего, включая и сам текст и иные его языки - в принципе это допустимо в формате gff, - однако как и в случае с БД, саму игру об этом почему-то никто не предупредил. Как итог, диалоги в виду особенностей понимания игрой *.длг файлов у нас работают, а вот названия и описания все в квадратиках. Эту болезнь в помощью внешних редакторов gff - нам то же всё таки удалось победить см. выше упоминающуюся тему.
Итог: Модификация БД - снимает проблемы с Check In и сохранением русского текста (теоретически снимает проблемы с диалогами - но *.длг файлы всё равно остаются несколько неверны), однако работа БД не отменяет проблем в именах и описаниях в самой игре, ибо тулсет экспортит файлы в изначально неверном формате - для этого уже необходима чистка gff-ок через соответствующий редактор ибо встроеный редактор GFF - много чего не показывает.
Описать "конкретно" конечно весь процесс руссификации в подробностях стоило бы, но по идее софтина из данной темы дожна была решить этот вопрос более простым путём ... видимо не получилось
