В этой заметке я хочу расставить все точки в вопросе парсинга сайта с более чем одним языком.
Само понятие парсинг и мультиязычность не совместимы , и проблема лежит глубже чем функционал парсера.
Что мы можем корректно спарсить в нескольких языках.
- Название товар
- Описание товара
- Мета данные товара
- Можем составить URL в разных языках для товара (в opencart 3)
А какие данные мы не можем полноценно спарсить на двух языках.
- Все что связано с категориями
- Все что связано с производителем
- Все что связано с атрибутами товаров
- Все что связано с опциями товара
Что значить не можем полноценно ?
Это значит что мы не можем спарсить атрибут на втором языке так что бы привязать его к атрибуту на первом языке. Приведу пример на Русской и Украинской локализации.
Допустим у нас есть атрибут Цвет (рус) и Колiр (укр)
Сперва мы парсим сайт на русском языке, а затем переключаемся на парсинг на украинском языке.
В первом случаи модуль создаст вам атрибут Цвет, а во втором случаи при обновлении модуль получить слово Колiр
И как модулю понять что это не новый атрибут, а тот же самый только на другом языке?
Ведь Цвет и Колiр это совершенно разные слова не имеющие ничего общего. Это мы понимаем что это одно и тоже, но не компьютер.
И это утверждение справедливо и для других данных в товаре, кроме тех что описаны в первом пункте.
В этом случаи модуль просто будет создавать отдельно атрибуты на Русском языке, и отдельно Атрибуты на украинском языке. (Если вы это захотите конечно)
Но другого решения нет.
Но почему тогда некоторые данные можно заполнить в нескольких языках ?
Все просто, заполнить можно только те данные которые имеют промежуточную связь.
Допустим у нас есть товар с названием Стол красный (рус) и Стiл червоний (укр)
Но так же модуль знает что у данного товара артикул 0001 и модуль просто берет и заполняет второй язык вторым набором слов без прямого сравнения на русском и на украинском языке.
То есть сама связь происходит непосредственно через Идентификатор товара
Вывод.
Мы можем
Полноценно парсить в разные языки
- Название товар
- Описание товара
- Мета данные товара
- Можем составить URL в разных языках для товара (в opencart 3)
Мы можем парсить но с нюансом
- Все что связано с категориями
- Все что связано с производителем
- Все что связано с атрибутами товаров
- Все что связано с опциями товара
Нюанс заключается в том что эти данные не будет записаны как второй язык в уже созданных, а просто будут созданные новые в указанной локализации.
Настройка которая отвечает за заполнение определенных языков в модуле SimplePars находится здесь.