JavaScript
Как написать скрипт-переводчик на JS?
Здравствуйте. Хочу сделать перевод НЕсвоей игры на русский (она английская) на JS (в tampermonkey). Пожалуйста, можно скрипт?
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 у ноды.
Всё, что тебе остается, это выбрать какой-нибудь сервис для перевода. К сожалению, они либо полностью платные, либо предоставляют, скажем, 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 у ноды.
в ручную придется заменять текст. А так используйте гугл. хром, там есть встроенный переводчик сайтов
Mai.ru.97
Вдруг у игрока не работает он, вот и хочу написать скрипт
с [русского] на [английский]
или
с [английского] на [русский]
Translate
Here
или
с [английского] на [русский]
Translate
Here
Mai.ru.97
С английского на русский
Похожие вопросы
- Помощь, напишите скрипт заданий
- Помгоите пожалуйста, напишите скрипт
- JS скрипты. Начало работы. csgodouble.(com)
- JS скрипт пожалуйстa
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Помогите, пожалуйста, написать js код для обновления ссылки
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?
- UNITY3D.Пожалуйста помогите, напишите пж мне скрипт для игры.
- Как закрыть вкладку скриптом?