Задать вопрос
@glu-dimaz

Какой метод локализации(перевода) сайта более эффектинвый (не фреймворк)?

Появилась необходимость реализовать версию сайта на англ. языке. Сайт - самописный, имеет очень много текстовой информации. Изначально, задумка следующая:
  • 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")
  • Вопрос задан
  • 40 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы