Jump to content
Zone of Games Forum
Memoric

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

Recommended Posts

Апну тему скринами из разных игр с использованием 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

 

Share this post


Link to post

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

Edited by DragonZH
что забанили ссылку, теперь другая
  • Like (+1) 4

Share this post


Link to post
1 час назад, Alisa86 сказал:

Привет ктото такое замечал?

При активном

TemplateAllNumberAway=True

иногда начинает хватать почемуто фразы уже переведенные из текста

с русского на корявый русский переводит. как это побороть?

Основное повреждение ротора=Резуля ротора хвоста

Обычно так бывает, когда в уже переведённом на русский  тексте появляется дополнительный ещё не переведённый текст, типа: Двигатель(Good)! что делать не знаю, кроме как отключатьTemplateAllNumberAway=True на TemplateAllNumberAway=False и потом ручками вставлять числовые переменные везде где будет надо. Впрочем сам пока что не могу разобраться с этим. Возможно что придётся  вручную такие строки редактировать, чтобы автопереводчик не спотыкался. 

Share this post


Link to post

Подскажите, пожалуйста, что делать, если шрифт для TMP не заменяется? Менял расширения, шрифты, делал свой атлас, ставил несколько разных версий программы и переустанавливал несколько раз, но заменяется лишь UI текст, в отличии от TMP. Какой бы шрифт я ни ставил, какого бы года, все равно пустые квадраты. В свойствах .exe файла указан 2017 год Unity, игра вышла в 2019. Заранее благодарю!

Share this post


Link to post
В 22.10.2023 в 01:04, Arklight сказал:

@nenavizhu Что за игра?

When The Darkness Comes. Но мне почему-то кажется, что TMP ни в какой игре не работает, но могу ошибаться, потому что особо нигде не проверял. Повторюсь, UI переводится

Share this post


Link to post
В 20.10.2023 в 19:49, nenavizhu сказал:

Подскажите, пожалуйста, что делать, если шрифт для TMP не заменяется?

Так эта функция TextMeshPro появилась в движке где-то в 2018-ом году. В более старых версиях были обычные шрифты. Вроде как. И никакого textmeshpro не поддерживалось. Поэтому этот тип шрифтов и не работает.

 

p.s. заодно установил Unity 2018 и пересобрал те же свои textmesh шрифты на этой старой версии. Кинул ссылку в прошлый коммент, написанный пару страниц назад.

Edited by Doom_rulit

Share this post


Link to post

Автоперевод игры Relic Space на русский язык с помощью  BepInEx_x64_5.4.22+XUnity.AutoTranslator-BepInEx-5.3

https://disk.yandex.ru/d/vXR0o5fBcubYnQ

Установка: извлечь файлы из архива в корневую папку игры.

Файл настроек AutoTranslatorConfig.ini находится в папке игры по пути: \BepInEx\config 

Файл перевода AutoGeneratedTranslations.txt находится в папке игры по пути: \BepInEx\Translation\ru\Text

Переведённый текст можно и даже НУЖНО править! Так как перевод Гуглом довольно кривоватый, да и мои правки могут кому то не понравиться...

Edited by Дмитрий Соснов

Share this post


Link to post
В 24.10.2023 в 00:17, Doom_rulit сказал:

Так эта функция TextMeshPro появилась в движке где-то в 2018-ом году. В более старых версиях были обычные шрифты.

Игра использует TMP, вышла в 2019 году. Я пробовал собирать атласы и в Unity 2017 года (после чего понял, что нужна более поздняя версия), попробовал в Unity 2018 года, а потом по какой-то причине, уже не помню, по какой, скачал Unity 2019, собрал атлас, все нормально, но шрифт просто не заменяется. Не работает вообще любой шрифт, я не пытался только шрифт только с английский языком и заменить текст на английский. Но все равно не уверен, что сработает

Share this post


Link to post

какой он-лайн переводчик, который поддерживает XUnity.AutoTranslator, лучше всего переводит с китайского языка? https://www.deepl.com/translator просто отвратно переводит с китайского?

Edited by Дмитрий Соснов

Share this post


Link to post

Автоперевод игры Floating Life 2 с английского на русский язык с помощью XUnity.AutoTranslator-BepInEx-5.3 

https://disk.yandex.ru/d/PifCPTUSY1fxug

Установка:

Просто скопировать файлы в папку игры...

Файл настроек AutoTranslatorConfig.ini находится в папке игры по пути: \BepInEx\config 

Файл перевода AutoGeneratedTranslations.txt находится в папке игры по пути: \BepInEx\Translation\ru\Text

Переведённый текст можно и даже НУЖНО править! Так как перевод Гуглом довольно кривоватый, да и мои правки могут кому то не понравиться...

Сейчас все он-лайн переводчики, кроме  GoogleTranslateCompat, очень плохо работают с программой XUnity AutoTranslator и быстро отваливаются с ошибками, так что выбирайте в настройках пока что только его. видать хозяева он-лайновых переводчиков заметили, что слишком много к ним запросов приходит от халявных  пользователей XUnity AutoTranslator, вот и прикрыли им эту лавочку... 

Надо вызвать консоль настроек автопереводчика в игре по Alt+ноль и там следить за состоянием проги и перегружать по необходимости.
Или же глючные переводчики заменить на GoogleTranslateCompat переводчик, но тогда качество перевода упадёт…

Править нужно в меню настроек в игре(Alt+ноль) или в файле настроек  AutoTranslatorConfig.ini находящимусяся в папке игры: \BepInEx\config 
[Service]
Endpoint=GoogleTranslateCompat
FallbackEndpoint=GoogleTranslateCompat

Обсуждение игры и рабоат над переводом  ведётся на канале Дискорда: Гора переводчиков”Медные котики" https://discord.gg/ZKGmecWpCh

Edited by Дмитрий Соснов

Share this post


Link to post

Автопереводчик игры Raiders! Forsaken Earth на русский язык с помощью   BepInEx_x64_5.4.22+XUnity.AutoTranslator-BepInEx-5.3

https://disk.yandex.ru/d/Ye5BxiuZI4seQQ

Установка извлечь файлы из архива в корневую папку игры.

Файл настроек AutoTranslatorConfig.ini находится в папке игры по пути BepInExconfig 

Файл перевода AutoGeneratedTranslations.txt находится в папке игры по пути BepInExTranslationruText

Переведённый текст я правил вручную, но его можно и даже НУЖНО править! 
Так как перевод Гуглом довольно кривоватый, да и мои правки могут кому то не понравиться…

Сейчас все он-лайн переводчики, кроме  GoogleTranslateCompat, очень плохо работают с программой XUnity AutoTranslator и быстро отваливаются с ошибками, так что выбирайте в настройках пока что только его. видать хозяева он-лайновых переводчиков заметили, что слишком много к ним запросов приходит от халявных  пользователей XUnity AutoTranslator, вот и прикрыли им эту лавочку... 

Надо вызвать консоль настроек автопереводчика в игре по Alt+ноль и там следить за состоянием проги и перегружать по необходимости.
Или же глючные переводчики заменить на GoogleTranslateCompat переводчик, но тогда качество перевода упадёт…

Править нужно в меню настроек в игре(Alt+ноль) или в файле настроек  AutoTranslatorConfig.ini находящимусяся в папке игры: \BepInEx\config 
[Service]
Endpoint=GoogleTranslateCompat
FallbackEndpoint=GoogleTranslateCompat

Edited by Дмитрий Соснов

Share this post


Link to post

BepInEx Configuration Manager

https://github.com/BepInEx/BepInEx.ConfigurationManager

Менеджер конфигурации плагинов/модов для BepInEx 5

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

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

Скрытый текст

Установите BepInEx v5.4.20 или новее (старые версии v5 работать не будут, v6 также не будет работать без слоя совместимости).
Загрузите последнюю версию с вкладки Releases выше.
Поместите .dll в папку BepInEx\Plugins.
Запустите игру и нажмите F1.
Примечание: Файл .xml полезен для разработчиков плагинов при обращении к ConfigurationManager.dll в вашем плагине, он предоставит описание типов и методов для вашей IDE. Пользователи могут его игнорировать.

Как сделать мой мод совместимым?
ConfigurationManager будет автоматически отображать все настройки из конфига вашего плагина. Все метаданные (например, описание, диапазон значений) будут использованы ConfigurationManager для отображения настроек пользователю.

В большинстве случаев не нужно ссылаться на ConfigurationManager.dll или делать что-то особенное с настройками. Достаточно просто добавить как можно больше метаданных (это поможет всем пользователям, даже если они используют конфигурационные файлы напрямую). Всегда добавляйте описательные названия секций и ключей, описания, а также списки допустимых значений или диапазоны (там, где это возможно).

Как превратить мою настройку в слайдер?
При создании настройки укажите AcceptableValueRange. Если диапазон равен 0f - 1f или 0 - 100, то ползунок будет отображаться в % (это можно переопределить ниже).

public enum MyEnum
{
    // Ввод1 будет отображаться в комбобоксе как Ввод1
    Entry1,
    [Description("Entry2 будет отображаться в комбобоксе как эта строка")].
    Entry2
}

Как разрешить пользователю изменять мои сочетания клавиш / Как легко проверить нажатие клавиш?
Добавьте настройку типа KeyboardShortcut. Используйте значение этой настройки для проверки нажатия клавиш (рекомендуем использовать IsDown) внутри метода Update.

Класс KeyboardShortcut поддерживает клавиши-модификаторы - Shift, Control и Alt. Они обрабатываются должным образом, что позволяет избежать таких распространенных проблем, как срабатывание K+Shift+Control на K+Shift, когда этого делать не следовало.

private ConfigEntry<KeyboardShortcut> ShowCounter { get; set; }

public Constructor()
{
    ShowCounter = Config.Bind("Hotkeys", "Show FPS counter", new KeyboardShortcut(KeyCode.U, KeyCode.LeftShift))
}

private void Update()
{
    if (ShowCounter.Value.IsDown())
    {
        // Обработка нажатия клавиши
    }
}
Переопределение стандартного поведения Configuration Manager
Вы можете изменить способ отображения настройки в окне менеджера конфигурации, передав в качестве тега настройки экземпляр специального класса. Код специального класса можно загрузить здесь. Просто загрузите файл .cs и перетащите его в свой проект.

Для работы этого класса не обязательно ссылаться на ConfigurationManager.dll.
Класс будет работать до тех пор, пока имя класса и объявления его полей остаются неизменными.
Во избежание конфликтов с другими плагинами не делайте класс общедоступным. Если вы хотите использовать его совместно с другими модулями, то либо передайте каждому из них свою копию, либо переместите его в пользовательское пространство имен.
Если в игре не установлен плагин ConfigurationManager, этот класс будет благополучно проигнорирован, и ваш плагин будет работать как обычно.
Вот пример переопределения порядка настроек и пометки одной из настроек как расширенной:

// Переопределить IsAdvanced и Order
Config.Bind("X", "1", 1, new ConfigDescription("", null, new ConfigurationManagerAttributes { IsAdvanced = true, Order = 3 }));
// Переопределяем только Order, IsAdvanced остается значением по умолчанию, присвоенным ConfigManager
Config.Bind("X", "2", 2, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 1 }));
Config.Bind("X", "3", 3, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 2 }));
Как сделать пользовательский редактор для моей настройки?
Если вы используете тип настройки, который не поддерживается ConfigurationManager, вы можете добавить для него рисованный Action. Действие будет выполняться внутри OnGUI, для отрисовки настройки используйте GUILayout, как показано в примере ниже.

Чтобы использовать пользовательский ящик для отдельной настройки, используйте поле CustomDrawer в классе атрибутов. Более подробную информацию о классе атрибутов см. выше.

void Start()
{
    // Добавьте ящик в качестве тега к этой настройке.
    Config.Bind("Section", "Key", "Some value" 
        new ConfigDescription("Desc", null, new ConfigurationManagerAttributes{ CustomDrawer = MyDrawer })
}


static void MyDrawer(BepInEx.Configuration.ConfigEntryBase entry)
{
    // Обязательно используйте GUILayout.ExpandWidth(true), чтобы использовать все доступное пространство
    GUILayout.Label(entry.BoxedValue, GUILayout.ExpandWidth(true))
}
Глобальное добавление пользовательского редактора
Можно указать ящик для всех параметров типа настройки. Для этого используется ConfigurationManager.RegisterCustomSettingDrawer(Type, Action<SettingEntryBase>).

Внимание: Это требует ссылки на ConfigurationManager.dll в проекте и не рекомендуется, если вы не уверены, что она будет установлена у всех пользователей. Обычно лучше использовать описанный выше метод для добавления пользовательского ящика к каждой настройке в отдельности.

void Start()
{
    ConfigurationManager.RegisterCustomSettingDrawer(typeof(MyType), CustomDrawer);
}


static void CustomDrawer(SettingEntryBase entry)
{
    GUILayout.Label((MyType)entry.Get(), GUILayout.ExpandWidth(true));
}

 

Скрытый текст

Plugin / mod configuration manager for BepInEx 5

An easy way to let user configure how a plugin behaves without the need to make your own GUI. The user can change any of the settings you expose, even keyboard shortcuts.

The configuration manager can be accessed in-game by pressing the hotkey (by default F1). Hover over the setting names to see their descriptions, if any.

Configuration manager

How to use

  • Install BepInEx v5.4.20 or newer (older v5 versions won't work, v6 won't work either without a compatibility layer).
  • Download latest release from the Releases tab above.
  • Place the .dll inside your BepInEx\Plugins folder.
  • Start the game and press F1.

Note: The .xml file is useful for plugin developers when referencing ConfigurationManager.dll in your plugin, it will provide descriptions for types and methods to your IDE. Users can ignore it.

How to make my mod compatible?

ConfigurationManager will automatically display all settings from your plugin's Config. All metadata (e.g. description, value range) will be used by ConfigurationManager to display the settings to the user.

In most cases you don't have to reference ConfigurationManager.dll or do anything special with your settings. Simply make sure to add as much metadata as possible (doing so will help all users, even if they use the config files directly). Always add descriptive section and key names, descriptions, and acceptable value lists or ranges (wherever applicable).

How to make my setting into a slider?

Specify AcceptableValueRange when creating your setting. If the range is 0f - 1f or 0 - 100 the slider will be shown as % (this can be overridden below).


CaptureWidth = Config.Bind("Section", "Key", 1, new ConfigDescription("Description", new AcceptableValueRange<int>(0, 100)));
 

How to make my setting into a drop-down list?

Specify AcceptableValueList when creating your setting. If you use an enum you don't need to specify AcceptableValueList, all of the enum values will be shown. If you want to hide some values, you will have to use the attribute.

Note: You can add System.ComponentModel.DescriptionAttribute to your enum's items to override their displayed names. For example:


public enum MyEnum
{
    // Entry1 will be shown in the combo box as Entry1
    Entry1,
    [Description("Entry2 will be shown in the combo box as this string")]
    Entry2
}
 

How to allow user to change my keyboard shorcuts / How to easily check for key presses?

Add a setting of type KeyboardShortcut. Use the value of this setting to check for inputs (recommend using IsDown) inside of your Update method.

The KeyboardShortcut class supports modifier keys - Shift, Control and Alt. They are properly handled, preventing common problems like K+Shift+Control triggering K+Shift when it shouldn't have.


private ConfigEntry<KeyboardShortcut> ShowCounter { get; set; }

public Constructor()
{
    ShowCounter = Config.Bind("Hotkeys", "Show FPS counter", new KeyboardShortcut(KeyCode.U, KeyCode.LeftShift));
}

private void Update()
{
    if (ShowCounter.Value.IsDown())
    {
        // Handle the key press
    }
}
 

Overriding default Configuration Manager behavior

You can change how a setting is shown inside the configuration manager window by passing an instance of a special class as a tag of the setting. The special class code can be downloaded here. Simply download the .cs file and drag it into your project.

  • You do not have to reference ConfigurationManager.dll for this to work.
  • The class will work as long as name of the class and declarations of its fields remain unchanged.
  • Avoid making the class public to prevent conflicts with other plugins. If you want to share it between your plugins either give each a copy, or move it to your custom namespace.
  • If the ConfigurationManager plugin is not installed in the game, this class will be safely ignored and your plugin will work as normal.

Here's an example of overriding order of settings and marking one of the settings as advanced:


// Override IsAdvanced and Order
Config.Bind("X", "1", 1, new ConfigDescription("", null, new ConfigurationManagerAttributes { IsAdvanced = true, Order = 3 }));
// Override only Order, IsAdvanced stays as the default value assigned by ConfigManager
Config.Bind("X", "2", 2, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 1 }));
Config.Bind("X", "3", 3, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 2 }));
 

How to make a custom editor for my setting?

If you are using a setting type that is not supported by ConfigurationManager, you can add a drawer Action for it. The Action will be executed inside OnGUI, use GUILayout to draw your setting as shown in the example below.

To use a custom seting drawer for an individual setting, use the CustomDrawer field in the attribute class. See above for more info on the attribute class.


void Start()
{
    // Add the drawer as a tag to this setting.
    Config.Bind("Section", "Key", "Some value" 
        new ConfigDescription("Desc", null, new ConfigurationManagerAttributes{ CustomDrawer = MyDrawer });
}

static void MyDrawer(BepInEx.Configuration.ConfigEntryBase entry)
{
    // Make sure to use GUILayout.ExpandWidth(true) to use all available space
    GUILayout.Label(entry.BoxedValue, GUILayout.ExpandWidth(true));
}
 

Add a custom editor globally

You can specify a drawer for all settings of a setting type. Do this by using ConfigurationManager.RegisterCustomSettingDrawer(Type, Action<SettingEntryBase>).

Warning: This requires you to reference ConfigurationManager.dll in your project and is not recommended unless you are sure all users will have it installed. It's usually better to use the above method to add the custom drawer to each setting individually instead.


void Start()
{
    ConfigurationManager.RegisterCustomSettingDrawer(typeof(MyType), CustomDrawer);
}

static void CustomDrawer(SettingEntryBase entry)
{
    GUILayout.Label((MyType)entry.Get(), GUILayout.ExpandWidth(true));
}


 

Edited by Дмитрий Соснов

Share this post


Link to post

Доброго времени суток. Извиняюсь за тупой вопрос. Не подскажете что делать? 
https://disk.yandex.ru/i/zw6t53lXSfL_YA (После перевода)

https://disk.yandex.ru/i/JlV50-4Dxzg37A (После перевода)

https://disk.yandex.ru/i/pAZqhWJnv9sypg (Оригинал)

https://disk.yandex.ru/i/fMdH8EliCr_VwA (Оригинал)
 

И так же вопрос, как можно изменить размер переведенного текста?

 

Edited by Erosanin

Share this post


Link to post

https://store.steampowered.com/app/1581800/Slow_living_with_Princess/ 

хочу пока отпуск вот эту переводить, но у меня не получается транслейт прикрутить, чтобы не переводить все, а редактировать, но не получается.

Share this post


Link to post
11 часов назад, elmin59 сказал:

https://store.steampowered.com/app/1581800/Slow_living_with_Princess/ 

хочу пока отпуск вот эту переводить, но у меня не получается транслейт прикрутить, чтобы не переводить все, а редактировать, но не получается.

потому что там движок не Юнити...

Share this post


Link to post

Пробовал перевести игру Her Majesty's Ship https://store.steampowered.com/app/688660/Her_Majestys_Ship/

с помощью: BepInEx_x64_5.4.22+XUnity.AutoTranslator-BepInEx-5.3.   https://disk.yandex.ru/d/msr3RM8r2GQbYg

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

Может кто подскажет, что можно сделать?

 

Edited by Дмитрий Соснов

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



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

×