Клиент Хорошопа — интернет-магазин Витамины USA поделился с нами кейсом быстрого перевода товарных карточек.
Запуск многоязычного сайта интернет-магазина предполагает постоянную работу c несколькими языками. В Хорошоп реализована возможность добавления на сайт разных языков и интерфейс переведен на украинский, русский и английский. Нашим клиентам остается перевести исключительно контент — описание и характеристики товаров, статьи в блоге и т.д. В большинстве случаев это самая сложная часть создания многоязычного интернет-магазина.
Клиент Хорошопа, интернет-магазин Витамины USA поделился кейсом быстрого перевода большого количества товарных карточек, при минимальных затратах и максимальной скорости исполнения.
Перевод текста с помощью таблиц Google
Один из первых вариантов, который мы рассмотрели – это использование Google таблиц и встроенной в них функции GOOGLETRANSLATE. Функция для Google Sheet имеет следующую формулу:
GOOGLETRANSLATE("Текст"; "Язык оригинала"; "Язык перевода")
Казалось, этот вариант подойдет нам, но в процессе перевода мы столкнулись с несколькими проблемами. Во-первых, лимиты позволяют осуществлять только 5000 запросов в день в Google Translate API. Во-вторых, в нашем тексте есть html-теги, которые при переводе уничтожаются и результат нам не подошел.
Перевод с помощью фрилансеров
Следующей попыткой было создание задачи на Freelancehunt. Мы получили множество предложений, но большинство исполнителей не понимали суть задачи, хотя она была четко описана в ТЗ. Многие ответы поступили от фрилансеров, готовых вручную переводить текст за условно адекватные деньги. Но было понятно, что на это уйдет очень много времени и возникнет много подводных камней. Мы приняли решение рассмотреть только те предложения, где специалисты предлагали массовый перевод через сервисы API-переводчиков. Но бесплатные API были ограничены лимитами, а платные имели ограничения по количеству символов для перевода.
Далее мы попытались найти несколько компаний, которые занимаются переводом сайтов, и направили к ним запросы с ТЗ для расчета стоимости подобной работы. Два поступивших нам предложения были почти идентичными по стоимости: 1,5 грн за позицию и 1,4 грн за позицию. По предварительным расчетам, нам пришлось бы потратить более 26000 гривен за перевод 20000 позиций.
Предварительно нам это показалось адекватным вариантом, но задача в процессе усложнилась. Некоторые описания в RU версии документа содержали описание на английском или украинском языках. Сначала надо было перевести эту версию, а потом заниматься всем остальным. Исполнители сочли это двойной работой и поэтому стоимость заказа с 26000 гривен выросла до 52000. Увидев сумму, мы расстроились, что придется делать перевод самостоятельно. Как показало время, это оказался наиболее действенный и дешевый способ.
Поиск альтернативных вариантов
Самостоятельную работу над переводом мы начали с изучения подобного опыта других интернет-магазинов. В нашем сегменте мы не встретили обсуждений подобных проблем и кейсов их решения, потому пошли на англоязычные форумы.
На популярном форуме Stack Overflow мы нашли вопрос, касающийся нашей проблемы. Впрочем, варианты решения были неидеальными, поэтому мы попытались адаптировать формулы с помощью ChatGPT. Но ни один из полученных результатов не работал так, как следует: перевод был частичный, переводились теги и т.д.
Решение проблемы
Мы разделили решение проблемы на три этапа и начали постепенно работать над переводом.
Первый этап
Сначала понадобилось привести документ к нормальному виду. Проблему с RU версией данных, где встречались описания не только на русском, но и на украинском или английском, мы решили с помощью функции Google Таблиц: DETECTLANGUAGE. Эта функция определяет язык текста или определенного диапазона.
Второй этап
Дальше нам нужно было понять, как обойти лимит Google в 5000 запросов. Решение было очень простым – мы создали 5 аккаунтов Google. Таблицу создавали в каждом аккаунте по отдельности, а не просто предоставляли доступы из главного аккаунта.
Третий этап
Последний и самый сложный этап – это непосредственно перевод. На поиск вариантов ушло много времени, но решение нашлось с помощью Google Apps Script. Связать Google Apps Script с Google Таблицей несложно. Для этого нужно сделать несколько шагов.
1. Создайте новую таблицу.
2. На вкладке «Разрешение» выберите Apps Script.
3. Добавить скрипт, сохранить и нажать «Запустить». Скрипт будет работать только с этой таблицей.
Дополнительно нам пришлось доработать функцию перевода, чтобы она понимала HTML-теги и не переводила их. Общий вид скрипта имеет следующий вид:
function translateText(text, sourceLanguage, targetLanguage) {
text = text.replace(/ /g, '\u00A0');
var translated = LanguageApp.translate(text, sourceLanguage, targetLanguage, {contentType: 'html'});
translated = translated.replace(/\u00A0/g, ' ');
return translated;
}
Функция перевода, которую мы использовали в Google Таблицах: translateText(text, sourceLanguage, targetLanguage).
Важно: во избежание лимита в 5000 запросов к Google Translate API, нужно создавать новую таблицу в каждом аккаунте и копировать скрипт для нее.
Вывод
Наш вариант быстрого перевода большого количества товарных карт будет отличным решением, если у вас нет много времени, денег и ресурсов. Перевод с помощью Google Translate не всегда удачен и не заменит ручной перевод, но будет хорошим промежуточным решением, пока вы не найдете идеальный метод. Для тех, кто планирует запускать рекламу в Google Shopping, есть предостережение — перевод нужно проверять тщательно, потому что ошибки могут быть причиной бана в Google Merchant и ухудшение качества страницы для других видов рекламы.
Я Це роблю простіше та якісніше - через чат ГПТ, закинув текст - указав мову. Та нюанси по типу Html. І все.
Одна з основних фішок - те що ГПТ розуміє що пише і не буде усілякої фігні, яку видає автоматичний перекладач.
Євген, дякую! Я в цьому новачок))) Якщо можна, поділіться, які саме ньюанси потрібно вказати щодо Html . Дякую