Русификатор для любой игры сделанной на движке Unity
Часто, а особенно последнее время, мы встречаем игры, где русский язык отсутствует как класс. Если игра сделана на движке Unity, то это не проблема. Собственно данным способом можно перевести на любой язык эту игру, причем с любого другого. Только одно, но, эти языки должен знать наш любимый Google Translator.
Ну да не буду тянуть, давайте русифицируем игру на Unity.
- Надо скачать архив XUnity.AutoTranslator-BepIn-5x- .zipздесь .
- Затем еще архив BepInEx_x64_5.4.9.0.zipздесь (обратите внимание, в названии архива есть хы 64 или хы 86, это указывает на разрядность вашей ОСь, оперативной системы, для Unix там тоже есть).
- Распаковываем прямо в корень игры.
- Запускаем нашу игру.
- Выходим из игры, не сворачиваем, а именно выходим.
- Идем по пути \BepInEx\config\AutoTranslatorConfig.ini, заходим внутрь, в смысле открываем данный файл на редактирование.
В файле изменяем следующие настройки:
- Language=ru (на какой язык переводить);
- FromLanguage=en (язык в игре или с какого переводить);
Что еще можно поменять в файле:
- MaxCharactersPerTranslation=2500 (максимально можно поставить 2500 отвечает за длину захвата текста);
- IgnoreWhitespaceInDialogue=true (обычно надо смотреть, если с true работает норм, то это айс, если в переводе исчезли пробелы, то ставим false);
- OverrideFont= (тут можно свой шрифт прописать для перевода, он должен быть установлен в вашей ОСь);
- OverrideFontTextMeshPro= (отвечает за замену шрифтов в играх с TextMeshPro, как узнать есть в игре эта загадочная хрень, сделали все как надо, но в игре вместо русского кракозябры, признак наличия этой хрени, а значит этот параметр нам в помощь, подрубаем шрифт с криллицей).
Теперь запускаем игру и наслаждаемся магией перевода от Google Translator, правда он часто на алиэкспресском говорит, но, когда мы занимаемся нехорошим делом нас не остановить!
Еще немного о плагине, что мы поставили, в игре им можно управлять, собственно, вот:
- ALT + 0: включить интерфейс XUnity AutoTranslator. (Это ноль, а не O);
- ALT + T: чередовать переведенные и не переведенные версию всех текстов, предоставляемых этим плагином;
- ALT + R: перезагрузить файлы переводов. Полезно, если вы изменяете текстовые и текстурные файлы на лету. Не гарантируется работа для всех текстур;
- ALT + U: ручной захват. Захват по умолчанию не всегда подхватывает текст. Плагин попытается сделать поиск вручную;
- ALT + F: если настроен OverrideFont, будет переключаться между переопределенным шрифтом и шрифтом по умолчанию;
- ALT + Q: перезагрузите плагин, если он был выключен.
На этом все, ставим и наслаждаемся алиэкспресским от Google Translator. Добра вам и успеха!
Настройка языка
Приветствую всех, хотел спросить совета, верно ли я делаю настройку языка:
1) Делаю статический класс Lang с кодом:
1 2 3 4 5 6 7 8 9 10 11 12
public class Lang : MonoBehaviour { public static string GetStage() { if (Application.systemLanguage == SystemLanguage.Russian) return "Этап "; else if (Application.systemLanguage == SystemLanguage.Ukrainian) return "Етап "; else return "Stage "; } }
2) В скрипте где указываю текст делаю:
StageText.text = Lang.GetStage() + NumberStage.ToString();
Думал делать через геттеры но разницы не вижу, в общем, хотел спросить хороший ли это способ или кто нибудь знает лучше и может ним поделиться?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Настройка меню на 2 языка на qTranslate
А кто сталкивался с настройкой меню на 2 языка на qTranslate ? У меня стоит меню.
Настройка русского языка в JpGraph
Народ кто нить юзал JpGraph ? никак не получается настроить кириллицу ! если кто знает подскажите.
Настройка поля только для одного языка.
Помогите пожалуйста. Какое задать условие на значение, чтобы при вводе данных в записи можно.
По русскому названию языка программирования определить английское название этого языка
Задача на перечисляемый тип P=(ада, бейсик, модула2, лисп, паскаль, пл2, фортран); A=(ada, basic.
![]()
![]()
10385 / 5116 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34

Сообщение было отмечено RostikTawer как решение
Решение
Сообщение от RostikTawer 
Думал делать через геттеры но разницы не вижу, в общем, хотел спросить хороший ли это способ или кто нибудь знает лучше и может ним поделиться?
Есть лучшие способы.
Сначала разберемся, почему приведенный выше код плох. Он плох потому что:
1) На каждое слово/фразу нужно заводить отдельный метод/свойство. Это очень неудобно. Хотелось бы, что бы этого не нужно было делать.
2) Вам придется выдумывать имена для методов, которые будут отражать смысла фразы. А это не так просто и займет время. Кроме того, при использовании нужно еще будет напрягаться и вспоминать что же за фраза имелась ввиду в этом методе.
3) Сам код методов тоже не простой, содержит логику. А при добавлении нового языка — все методы нужно будет переписать.
4) Хорошо если вы сами можете перевести слова, но обычно перевод должен делать переводчик. А для этого нужно что бы файлы были текстовые. Переводчик не будет переводить внутри кода.
Далее опишу в общих чертах как делаю я, что бы не возникало проблем описанных выше.
Во-первых, фразы и их перевод я храню в текстовых файлах (CSV). Каждая строка содержит одну фразу на разных языках.
Фразы разделены через табуляцию, что позволяет открывать и сохранять файл в экселе.
Первая колонка хранит фразу на исходном языке (например английском), остальные колонки — перевод на другие языки.
Первая колонка играет роль ключа.
Далее в коде я не создаю методы на каждую фразу. У меня есть просто метод Phrase, который принимает фразу на англ языке в качестве ключа. В коде это используется так:
var translated = Lang.Phrase("Milestone");
Метод Phrase ищет ключ в словаре, загруженном из файла, который я описал выше. Если строка с ключом Milestone найдена, возвращается перевод слова из соответствующей колонки.
Вот и все. При таком подходе не нужно создавать методы, сразу понятно какая фраза будет выведена, а сам файл можно отдать проф переводчику.
Также есть некоторые дополнительные фичи:
1) Если слова нет в словаре, метод Phrase просто вернет исходную фразу на английском.
2) В классе Lang есть специальный режим, включив который, метод Phrase заносит слово в словарь, если в словаре такого слова нет. А затем сохраняет словарь в CSV. Этот режим позволяет автоматически создавать словарь, что бы не вносить каждую фразу вручную в текстовик.
3) Ключевая фраза может содержать фрагменты типа , а метод Phrase имеет перегрузки, позволяющие указывать параметры. Это позволяет переводить сложные строки, внутри которых есть переменные. Например:
var translated = Lang.Phrase("Milestone is finished.", milestone);
В WebGL приложении пропадает русский язык и видео фон

сделал приложение на Unity и использовал технологию WebGL, хочу загрузить на Яндекс игры, но есть две проблемы.
- На всех серверах на которых запускал приложение исчезает русский язык. Английский язык, цифры и знаки остаются. Пробовал кодировки UTF-8 и UTF-8 со спецификацией, пытался отдельно добавить русский язык в коде HTML, но ничего не помогло. Компилировал под PC всё хорошо.
Unity WebGL Player | Russian-English transliterator
- Не отображается видео фон, который я добавил в Unity. Приложение должно выглядеть так.
Как в unity поставить русский язык
![]()
13 ноя. 2014 в 11:27
Языковые пакеты Unity. English language
Вечер добрый!
Одна большая претензия к Steam: ГДЕ АНГЛИЙСКИЙ ЯЗЫК В AC Unity.
Поясняю, заверено, что игра поддерживает множество языков. В версии для России можно менять только между Русским и Французским, что не есть хорошо. Хотим оригинальную озвучку.
В поддержку Ubi обращались. Говорят, цитирую:
«По всем вопросам, касательно игр Steam, пожалуйста, обратитесь в техническую поддержку Steam.»
Стим же перенаправляет в поддержку Юбисофт. Так вот, как добыть английскую !озвучку!?