Перейти к содержимому
Zone of Games Forum
Memoric

Автопереводчик для Unity игр XUnity.AutoTranslator

Рекомендованные сообщения

https://github.com/bbepis/XUnity.AutoTranslator

вот типа:baby_tone2:  пример

Скачать видео
Скачать видео

 

Изменено пользователем Memoric

Поделиться сообщением


Ссылка на сообщение

Апну тему скринами из разных игр с использованием autotranslator:

Banner of the Maid (китайский →  русский): https://imgur.com/a/LNHYwsV

Banner of the Maid (китайский → английский): https://imgur.com/a/LDdyhHK

We the Revolution (английский → русский): https://i.imgur.com/D3hJUo1.png

NITE Team 4 (английский → русский):  https://i.imgur.com/K4KPip1.png

Tales of the Neon Sea (английский → русский):  https://imgur.com/a/y7oztQg

 

Поделиться сообщением


Ссылка на сообщение

Чуть обновил тупые сборки в стиле кинул что-нибудь в игру, тупа жмякнул на всё и уже гамаешь.
https://disk.yandex.ru/d/PkI0TPJFlk3IZA

Изменено пользователем DragonZH
что забанили ссылку, теперь другая
  • Лайк (+1) 4

Поделиться сообщением


Ссылка на сообщение

Как изменить параметры скомпилированного TMP SDF шрифта без создания нового TMP шрифта в Unity.

  1. Скачиваем, распаковываем и запускаем утилиту UABEA — UABEA
  1. В меню выбираем File — Open и выбираем bundle-файл шрифта. Утилита скажет, что он  запакован, и его надо распаковать и спросит куда? Выбираем Memory (в память).
  2. Станут доступны кнопки ниже. Нажимаем Info. Откроется окно Assets Info со списком assets.
  3. Чтобы масштабировать шрифт в игре (поменять его размер), нужно выбрать asset с типом MonoBehavior и нажать справа кнопку Edit Data. Откроется окно редактирования ассета.
  4. Находим в группе параметров m_FaceInfo свойство m_Scale = 1, и меняем его значение (в разах) на которое нужно увеличить (или уменьшить) шрифт. Напр., в моей игре мне подошло m_Scale = 1,8. Шрифт увеличился в 1,8 раза.
  5. Дальше нажимаем OK и в меню окна Assets Info выбираем File — Save. Утилита скажет, что сохранены в память, и для того, чтобы сохранить изменения в файл, надо закрыть это окно и сохранить в файл в главном окне Утилиты (bundle window — UABEA). Это и делаем в bundle window выбираем File — Save as и в окне имя нового bundle-файла шрифта и Сохранить.
  6.  Файл сохранится в несжатом виде. Если нужно сжать файл, то нужно сначала закрыть в UABEA текущий файл, выбрав File — Close, а затем открыть новый правленный файл и выбрать в меню File — Compress. Затем сохранить уже сжатый файл через File — Save as
  7. Для получения обводки символов в шрифте, проделываем те же самые процедуры, но только открываем для правки asset с типом Material и там в карте m_Floats в массиве ищем data со строкой first = "_OutlineSoftness" и меняем параметр second = 0 на second = 2 (это размывка обводки). И также включаем саму обводку в first = "_OutlineWidth" меняем параметр second = 0 на second = 1 (это толщина обводки, можно поставить больше).
  8. Сохраняем изменения как описано выше. Также можно и сжать файл шрифта, перегрузив в UABEA новый правленный файл и выбрав сжатие.
  9. В файле шрифта (в ассетах) можно поменять и другие параметры. Их там масса. Поле для экспериментов большое.
Изменено пользователем Amigaser
  • Спасибо (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение
В 07.04.2024 в 11:13, Graftman сказал:

Можно это как то исправить ?  https://postimg.cc/06r9n9nF

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

Пример:  Difficulty=<size%3D12>Сложность</size>

где 12 — это размер шрифта, можно менять на любую другую цифру. 

Изменено пользователем Дмитрий Соснов

Поделиться сообщением


Ссылка на сообщение

Какие переводчики работают кроме гугла? У Яндекса протокол поменялся, плагин не работает, бесплатный DeepL тоже не работает, в логе ошибки взаимодействия сыпятся. Договорился со знакомым, на неделе сделает мне доступ к DeepL API, может там что-то внятное будет.
P.S.
Гугл переводит “Fishing Rod” как “рыбацкий стержень”… Ну и прочие перлы уровня промпта 2003 года...

Поделиться сообщением


Ссылка на сообщение
В 01.01.2024 в 15:00, Dedoz сказал:

Подскажите, можно ли что то сделать если с переводом происходит такое:

“ТЕКСТ
П
ЕР
ЕВОД
ИТ
СЯ
КАК
ТО ТАК”

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

“Текст переводится как то так”
 

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

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

Поделиться сообщением


Ссылка на сообщение
3 часа назад, Svertalf сказал:

Какие переводчики работают кроме гугла? У Яндекса протокол поменялся, плагин не работает, бесплатный DeepL тоже не работает, в логе ошибки взаимодействия сыпятся. Договорился со знакомым, на неделе сделает мне доступ к DeepL API, может там что-то внятное будет.
P.S.
Гугл переводит “Fishing Rod” как “рыбацкий стержень”… Ну и прочие перлы уровня промпта 2003 года...

ГУГЛ фактически сейчас один только и работает стабильно и быстро, но в отместку перевод у него даже с английского  довольно плохого качества.

DeepL быстро отваливаться начинает и довольно медленно переводит, хотя может я его как то не правильно конфигурирую или скорее всего это просто у хозяина Дипла срабатывают ограничения на максимальное  количество запросов с непривязанного к платному аккаунту  айпи  и он начинает их блочить. при этом России нельзя купить платный аккаунт DeepL, так как на сайте  нет  возможности оплаты.

Как вариант можно попробовать подключить оф-лайн переводчик к XUnity.AutoTranslator, читайте как это сделать тут или на сайте программы. Тут я вам не помошник, но если сможете разобраться и подключить, то обязательно тут выложите способ, он многим нужен!

Поделиться сообщением


Ссылка на сообщение

Кто-нибудь разбирается в регулярных выражениях?

В игре есть печатная машинка с запиской. На записке переведённый текст. Но если игрок нажмёт не на записку, а на кнопки печатной машинке, то на следующей строке после текста записки добавляется от 1 до 25 случайных символов.

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

Не пойму как сделать регулярное выражение, чтобы если в конце переведённого куска текста были случайные символы (от 0 до 25, т.к. их может и не быть), то  во всех случаях использовался готовый перевод записки, а случайные символы не переводились и оставлялись в изначальном виде.

Пример

оригинальная записка

Цитата

Hello worldr\r\nMore text\r\r\n=Привет мирr\r\nБольше текста\r\r\n

дубликат, который переводится заново

Цитата

Hello worldr\r\nMore text\r\r\naskdsk=Машинный переводr\r\nЕщё машинный переводt\r\r\nаскдск

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

Изменено пользователем Doom_rulit

Поделиться сообщением


Ссылка на сообщение

@Doom_rulit

 для регулярных вырожений есть сайт https://regex101.com/r/cO8lqs/4

вот пример

Hello worldr\r\nMore text\r\r\naskdsk

sr:"^(Hello worldr\\r\\nMore text\\r\\r\\)([\S\s]+)"=$1$2

так можешь для каждой записки сделать

 

  • Спасибо (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение

Попробовал подключить в качестве переводчика DeepL API. Результат радует глаз, как по качеству, так и по стабильности. На данный момент API есть в бесплатном варианте, только нужна кредитка для подтверждения личности при подписке на API.
 

Поделиться сообщением


Ссылка на сообщение
4 часа назад, Svertalf сказал:

Попробовал подключить в качестве переводчика DeepL API. Результат радует глаз, как по качеству, так и по стабильности. На данный момент API есть в бесплатном варианте, только нужна кредитка для подтверждения личности при подписке на API.
 

Опишите подробнее весь процесс оплаты и подключения пожалуйста DeepL API! Так как я не нашёл на сайте DeepL возможности оплатить подписку для россиянина...

Поделиться сообщением


Ссылка на сообщение
17 часов назад, Memoric сказал:

@Doom_rulit

 для регулярных вырожений есть сайт https://regex101.com/r/cO8lqs/4

вот пример

Hello worldr\r\nMore text\r\r\naskdsk

sr:"^(Hello worldr\\r\\nMore text\\r\\r\\)([\S\s]+)"=$1$2

так можешь для каждой записки сделать

 

Что-то не работает. Всё-так же заново создаётся машинный перевод. Ну или я ничего не понял. Это надо строку с переводом заменить на регулярное выражение или добавить сразу после обычной строки вторую, но уже с регулярным выражением? А куда-то тогда деть переведённый заранее текст?

Вот буквально текст из игры, лежащий в файле _AutoGeneratedTranslations.txt

(переведён мной вручную и подгружается в игре если читать записку не нажимая на кнопки самой печатной машинки)

Цитата

cvSAfalkafgaweivmizoiiowiDJAccnaS\r\r\nThis religious weirdo has been hovering around in the lobby for nearly {{A}} minutes. He came with the other guy who is meeting with the boss.\r\r\nIf I keep typing maybe he'll think I'm busy and leave me alone\r\r\n=cvsafalkafgaweivmizoiiowidjaccnas\nЭтот религиозный придурок слоняется в вестибюле уже почти {{A}} минут.\nОн пришёл с другим парнем, который встречается с боссом.\nЕсли я продолжу печатать, возможно, он подумает, что я занят, и оставит меня в покое\r\r\n

Вот так выглядит записка если не добавлять случайные символы

https://i.postimg.cc/JzX0JWZR/1.jpg

Вот во что превращается записка, если игрок перед тем как прочитать записку пошёлкает по её кнопкам 6 раз

https://i.postimg.cc/k4LXD1G2/2.jpg

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

==========

Что я попытался сделать

  1. Заменил весь текст записки с переводом на эту конструкцию.
Цитата

sr:"^(cvSAfalkafgaweivmizoiiowiDJAccnaS\\r\r\\nThis religious weirdo has been hovering around in the lobby for nearly {{A}} minutes. He came with the other guy who is meeting with the boss.\\r\\r\\nIf I keep typing maybe he'll think I'm busy and leave me alone\\r\\r\\n)([\S\s]+)"=$1$2

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

  1. Попытался сделать так

- Оставить записку целиком, но на след. строке добавить это выражение

Цитата

cvSAfalkafgaweivmizoiiowiDJAccnaS\r\r\nThis religious weirdo has been hovering around in the lobby for nearly {{A}} minutes. He came with the other guy who is meeting with the boss.\r\r\nIf I keep typing maybe he'll think I'm busy and leave me alone\r\r\n=cvsafalkafgaweivmizoiiowidjaccnas\nЭтот религиозный придурок слоняется в вестибюле уже почти {{A}} минут.\nОн пришёл с другим парнем, который встречается с боссом.\nЕсли я продолжу печатать, возможно, он подумает, что я занят, и оставит меня в покое\r\r\n

sr:"^(cvSAfalkafgaweivmizoiiowiDJAccnaS\\r\r\\nThis religious weirdo has been hovering around in the lobby for nearly {{A}} minutes. He came with the other guy who is meeting with the boss.\\r\\r\\nIf I keep typing maybe he'll think I'm busy and leave me alone\\r\\r\\n)([\S\s]+)"=$1$2

Результат такой же. Ничего не работает. Слишком сложно для меня… все эти регулярные выражение. Читал документацию на разные переменные, так и не понял как это работает.

Изменено пользователем Doom_rulit
  • +1 1

Поделиться сообщением


Ссылка на сообщение

@Doom_rulit А время там меняется или остается постоянно “10” минут?
Попробуйте так: r:”^cvSAfalkafgaweivmizoiiowiDJAccnaS(.*[^\d])(\d{1,4})(.*)me alone\\r\\r\\n(.*)”=cvsafalkafgaweivmizoiiowidjaccnas\nЭтот религиозный придурок слоняется в вестибюле уже почти $2 минут.\nОн пришёл с другим парнем, который встречается с боссом.\nЕсли я продолжу печатать, возможно, он подумает, что я занят, и оставит меня в покое\r\r\n$4
***

$2 — вторая группа, где будет число минут
$4 — все, что после “me alone\r\r\n”

Поделиться сообщением


Ссылка на сообщение

Время конкретно в этой записке не меняется. Абсолютно во всех записках меняется только конец записки. Эту букву {{А}} не я добавил, а автопереводчик добавляет везде, где есть цифры. Я специально включил в конфиге автопереводчика функцию замены цифр на переменные, т.к. в этой игре куча текста с динамическими цифрами в конце. (вроде как это параметр TemplateAllNumberAway=True)

Но к тексту записок это не относится. Там все цифры одинаковые и там это никак не мешает. А вот постоянно добавляющиеся к запискам символы — как раз мешают. И проблема именно в том, что они могут добавляться если игрок щёлкает печатной машинкой, а могут и нет, если не щёлкает)

Вот такая хрень получается в файле с переводом. Выделенный фрагмент —  изначальный, переведённый в первый раз текст и исправленный мной. Остальные куски — дубликаты. Буквы на конце всегда разные и их всегда до 25 штук, т.к. после 25 нажатий на печатную машинку возможность щёлкать кнопками пропадет и остаётся только функция чтения. Сколько раз нажмёт игрок я знать не могу. Но точно меньше 25.

1.jpg

Вот как выглядит печатная машинка  в игре

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

Задача заключается в том, чтобы автопереводчик подставлял готовый текст почти целиком, но не трогал случайные символы на конце. Т.е. после последнего перевода строки \n

Чтобы было понятнее приведу пример записки с другим текстом

Цитата

Hey Eddie\r\r\n\r\r\nHope you see this note. I'm asking for a transfer off of the North shaft team.\r\r\n\r\r\nI keep seeing shit down there. I feel like I'm losing my mind. Gotta be some kinda gas down there or somethin'.\r\r\nJust wanted you to know its got nothing to do with our little scuffle the other day.\r\r\n\r\r\nDrop by my cabin for a beer sometime, would ya?\r\r\n=Привет Эдди\nНадеюсь, ты увидишь эту заметку.\nЯ прошу перевести меня из команды северной шахты.\nЯ постоянно вижу там всякую хрень.\nМне кажется, что я схожу с ума.\nДолжно быть, там какой-то газ или что-то в этом роде.\nПросто хочу, чтобы ты знал, что это не имеет никакого отношения к нашей маленькой потасовке на днях.\nЗагляни как-нибудь ко мне на пиво, ладно?\r\r\n

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

Цитата

Hey Eddie\r\r\n\r\r\nHope you see this note. I'm asking for a transfer off of the North shaft team.\r\r\n\r\r\nI keep seeing shit down there. I feel like I'm losing my mind. Gotta be some kinda gas down there or somethin'.\r\r\nJust wanted you to know its got nothing to do with our little scuffle the other day.\r\r\n\r\r\nDrop by my cabin for a beer sometime, would ya?\r\r\nUmaExxlk=Привет Эдди\nНадеюсь, ты увидишь эту заметку.\nЯ прошу перевести меня из команды северной шахты.\nЯ постоянно вижу там всякую хрень.\nМне кажется, что я схожу с ума.\nДолжно быть, там какой-то газ или что-то в этом роде.\nПросто хочу, чтобы ты знал, что это не имеет никакого отношения к нашей маленькой потасовке на днях.\nЗагляни как-нибудь ко мне на пиво, ладно?\r\r\nUmaExxlk

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

А предложенные выше решения ни к чему не привели. Текст всё также переводится заново целиком. Причём даже изначально переведённый текст перестал отображаться.

Изменено пользователем Doom_rulit

Поделиться сообщением


Ссылка на сообщение

В VR  играх при использовании OverrideFontTextMeshPro   текст двоится, есть какая настройка убрать это?

Поделиться сообщением


Ссылка на сообщение
21 час назад, Дмитрий Соснов сказал:

Опишите подробнее весь процесс оплаты и подключения пожалуйста DeepL API! Так как я не нашёл на сайте DeepL возможности оплатить подписку для россиянина...

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

Поделиться сообщением


Ссылка на сообщение
В 02.05.2023 в 17:12, d(3)v сказал:

День добрый.

Ребенок просит поставить Disney Dreamlight Valley https://rutracker.org/forum/viewtopic.php?t=6259808 

Тут автор пытался ее русифицировать, но по его гайду работает только его локальный словарь, с небольшим количеством фраз. https://dzen.ru/a/Y7alElAsKBkGAkj_

Пробовал с нуля накатывать по инструкции в данной теме через MelonLoader для IL2CPP. На выходе сыплет ошибками по подключению к серверам Гугла. Что делаю не так? Подскажите пожалуйста.

Фото лога: https://yapx.ru/album/V9aPf

У меня стоит Disney Dreamlight Valley.v1.9.0-9407 вместе с “Разломом времени”. Рабочую сборку выложу чуть позже. Как только найду способ имена в тексте перевода подставлять.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2024 | Реклама на сайте.

×