JavaScript

Как написать скрипт-переводчик на JS?

Здравствуйте. Хочу сделать перевод НЕсвоей игры на русский (она английская) на JS (в tampermonkey). Пожалуйста, можно скрипт?
Ma
Mai.ru.97
128
https://jsfiddle.net/xkz42onq/

Всё, что тебе остается, это выбрать какой-нибудь сервис для перевода. К сожалению, они либо полностью платные, либо предоставляют, скажем, 20-30 бесплатных запросов на перевод.

И тут либо платить, либо оптимизировать переводы примерно таким образом:
1. на одну страницу посылаем один запрос (или несколько запросов если выходим за лимит длины текста) сразу со всем текстом на странице, при этом обрамляя отрывки каким-нибудь условным обозначением, помечая, какой ноде именно принадлежит отрывок
2. создаем хеш-таблицу, скажем, в localstorage (да, больно, можно и используя воркеры), сохраняем там переводы в виде ORIGINAL_TEXT: TRANSLATED_TEXT
3. когда страницу нужно перевести, итерируемся по всем элементам (как в демке), ищем в хеш-таблице по оригинальному тексту, получаем переведенный вариант; если значения нет, нужно его сохранить (опять же, обрамляя условным обозначением). После того, как мы проитерировались по всем элементам, если были непереведенные, посылаем запрос на перевод, обновляем текст для соответствующих нод и производим суброгацию для хеш-таблицы

А можно поднять свой сервер для перевода. Для этого есть, например, LibreTranslate (см. на Github). Конкретно LibreTranslate — open source and free to use, подробный гайд есть у них в репозитории.

Ещё вариант: эмуляция браузера благодаря Puppeteer, Playwright, etc. Использовать там сервис, а-ля Google Translate или Deepl для получения перевода. Но придётся поднимать свой сервер в любом случае, а тогда разумнее сбилдить у себя LibreTranslate.

Но поскольку 3 последних варианта тебе, исходя из факта постановки оного вопроса, явно не по силам, то, по всей видимости, придётся заплатить за API. Или решить всё исключительно топорно, захардкодив переводы конкретного сайта (тебе же для одного нужно, да?). В таком случае фактическое решение — присланная мною демка, в цикле while просто ищи по textContent в заранее подготовленной хеш-таблице с переводами, а после заменяй этот же textContent у ноды.
ВВ
Вова Власов
6 058
Лучший ответ
в ручную придется заменять текст. А так используйте гугл. хром, там есть встроенный переводчик сайтов
Mai.ru.97 Вдруг у игрока не работает он, вот и хочу написать скрипт
с [русского] на [английский]
или
с [английского] на [русский]


Translate
Here
Aurel Rabei
Aurel Rabei
299
Mai.ru.97 С английского на русский