Появилась необходимость реализовать версию сайта на англ. языке. Сайт - самописный, имеет очень много текстовой информации. Изначально, задумка следующая:
- JS парсит все элементы на странице
- Извлекается содержимое каждого элемента (childNodes)
- Если у элемента childNodes.length <= 3 и у него есть text с кириллицей -> записываем в массив
- Собранный массив с тексом передаем с помощью ajax в скрипт, который обрабатывает и возвращает обратно json уже с переведенным текстом
const textNodes = document.querySelectorAll('body *:not(script):not(style)');
textNodes.forEach(element => {
if (element.childNodes.length <= 3) {
element.childNodes.forEach(child => {
if (child.nodeType === Node.TEXT_NODE) {
const text = child.nodeValue.trim();
if (text && /[а-яА-ЯЁё]/.test(text)) {
results.push({
text: text,
// parent: element
});
parents.push(element);
}
}
});
}
});
Есть вопросы к обработчку. Изначально пробовал Яндекс переводчик, но стоимость перевода 1 страницы составила примерно 10-15 рублей. Дороговато, но скорость обработки - удовлетворила.
Решил попробовать подключить Python к данному вопросу. То есть php отправляет на питон json, питон переводит и возвращает обратно json. Пробовал поработать с
deep_translator (GoogleTranslator) - очень медленно обрабатывает перевод. Одна страница занимает +- 30-90 секунд. Сейчас нашел
transformers (MarianMTModel, MarianTokenizer) в целом - качество перевода +- удовлетворительное, но скорость тоже оставляет желать лучшего.
Кто работал в данном направлении, какие есть эффективные и +- не дорогие(лучше бесплатные) сервисы которые интегрируются в Python, PHP или работают по API
UPD:
Какие способы есть быстро и эффективно проштрудировать .php файлы на наличии в нем кириллицы и задать блокам-родителям уникальные идентификаторы(к примеру data-translate="a += 1")