Идея о том, чтобы делать локализацию для разрабатываемых игр при помощи Google Translate, Deepl, или любого другого электронного переводчика, не нова — машинный перевод обходится в разы дешевле, чем работа специалистов, и делается гораздо быстрее. Однако, его слабость очевидна — перевод всегда пестрит изъянами, неточностями, и в целом — углепластиком.  Крылатые выражения, сленговые фразочки — современный Google Translate хоть и может их перевести, но он всё равно не сможет правильно вписать их в контекст вашего сценария/интерфейса игры. И, в свою очередь, из‑за невозможности сделать качественный машинный перевод, множество инди‑разработчиков, и просто низкобюджетных студий, теряют большое количество игроков. Данная статья написана для того чтобы исправить ситуацию, и рассказать о том, как можно получить качественный машинный перевод, используя ChatGPT. Это позволит нам не только лучше сохранить смысл ваших текстов, но и передать контекст для перевода - жанр игры, лор, характеры персонажей, и всё-всё-всё остальное. Содержание статьи: Нам нужна таблица! Устанавливаем расширение и настраиваем OpenAPI ключ Переводим! - Базовая формула Переводим круче - Задаём контекст Стоимость и качество Итог В целом, метод может быть использован с любой системой локализации, или даже без неё — закидывайте фразы в ChatGPT вручную, и спрашивайте перевод — получится неплохо. Но мы здесь говорим об удобном, системном, и не сильно сложном способе — поэтому работать будем с Google Sheets. Большинство движков, поддерживающих локализацию, с большой вероятностью поддерживают и экспорт всех данных перевода в таблицу. Вот ищите эту фичу у своего движка, и закидывайте полученные данные на гуглодиск. В Unity, с пакетом Unity Localization, таблицу можно экспортировать сразу в Google Sheets при помощи специальной опции: Если ваша таблица локализации уже готова, то следующий этап — установка расширения для Google Sheets, которое будет связываться с OpenAI API, и запрашивать перевод ваших данных. Тут ничего сложного — просто переходим по ссылке (Google Workspace Marketplace), и нажимаем — «Установить». После чего идём к нашей таблице в Google Sheets -> Расширения -> GPT for Sheets and Docs -> Set API key Соответственно, делаем себе API ключ на https://platform.openai.com/account/api‑keys. Если у вас нет аккаунта OpenAI — заводим оный. Но понадобится номер телефона не из РФ. Ключ засовываем в предназначенное для него поле: Когда всё будет готово - жмём "Save API key". Дальше идём в Расширения -> GPT for Sheets and Docs -> Enable GPT functions,и на этом менюшку можно закрывать. 😊 Бозовый принцип в следующем — взять клетку, положить в неё формулу, и растянуть до самого низа вашей таблицы. Всё. Сама формула следующая: =GPT_TRANSLATE(<текст или номер ячейки>; <Язык, в который переводить>; <Язык, из которого переводить>; <контекст>) <Язык, в который переводить> — наименование языка в любом формате. Я обычно пишу «en»(Английский), «zh‑CH»(Китайский урощённый) и т. д. <Язык, из которого переводить> — то же самое, что и выше, но здесь указываем наименование языка оригинального текста. <контекст> — контекст запроса на перевод, о нём в следующем блоке. В собранном виде выглядит так: =GPT_TRANSLATE(A1; "zh-CN"; "en"; "Text from medieval Action-RPG game localization table") В результате, в клетке появится перевод нужного вам текста, на нужный вам язык. Сейчас перевод уже будет лучше, чем перевод из Google Translate. Но мы ещё даже не задействовали поле<контекст> нашей формулы. Сделайте отдельную ячейку где‑нибудь на задворках, и напишите туда общий контекст вашей игры. Что‑то вроде "Это таблица локализации игры в жанре Стратегия, в которой игрок - вечно пьяный и злой генерал Иван Иваныч. Он сражается против армии Эдуарда Рафаэлло - добродушного мужчины с итальянским акцентом". И можете скормить адрес этой ячейки в нашу формулу, на место <контекста> — нейросеть начнёт учитывать контекст вашей игры при переводе. Она будет понимать, что опечатки в речи Ивана Иваныча — это не ошибки, а пародирование речи пьяного человека, а Эдуард — итальянец. Если для вашего проекта это важно, то можете дописать "Если в оригинальном тексте есть рифма, то постарайся соблюсти её и в переводе" — но результат будет, конечно, хуже, потому что ChatGPT хоть и хороший инструмент, но не магический. Но и на этом всё не заканчивается, потому что в контекст также можно включить комментарии к ключам. Знаю, что вообще не у всех инди-разработчиков есть колонка с комментариями, но для больших проектов, локализация которых идёт на аутсорс, колонка с комментариями почти всегда присутствует: =GPT_TRANSLATE(<текст или номер ячейки>; <Язык, в который переводить>; <Язык, из которого переводить>; CONCATENATE(<общий контекст, ячейка>; " "; <ячейка с комментарием>)) И теперь, если у строки есть комментарий, нейросеть также будет учитывать и его! Это позволит нам добиться ещё большего качества перевода. Итого, на перевод 3000 строк с английского на упр. китайский с помощью ChatGPT было потрачено не больше 5$, тогда как студия по локализации запросила >500$. На самом деле мы и отдали $500 баксов, потому что на тот момент я не додумался о переводе через ChatGPT 😅 По качеству перевод через нейросеть, безусловно, уступал переводу от студии. Но разница была не на уровне "Небо и земля". Если перевод от студии получился хороший со знаком плюс, то перевод от ChatGPT получился просто приемлимым, а также понадобилась пара часов на довольно банальные правки, которых было штук 30 на весь столбец из 3000 строк. И без которых всё в том числе выглядело бы нормально. Если большие и средние студии разработки могут позволить себе большие траты на перевод, то товарищи индюки, на которых вся индустрия по сути и держится - нет.И я считаю, что получаемое качество перевода с помощью нейронки - очень даже оправдывает затраты на токены OpenAI. $5 против $500 - разница в 100 раз, конечно оправдывает блин! В первую очередь, важно помнить, что каким бы удобным и выгодным не был данный способ — он всё равно не скоро заменит качественный человеческий перевод, сделанный «с заботой о продукте». Надеюсь, что я помог кому‑то с успехом его будущего проекта. 😊  Если у вас есть какие-то вопросы, или нужна помощь - я всегда рад помочь. Обращайтесь! Мой телеграм-канал, в котором могут быть дополнительные материалы и новости по теме статьи.