Прасинг в разные языки. Все что связано с парсингом мультиязычных сайтов.

В этой заметке я хочу расставить все точки в вопросе парсинга сайта с более чем одним языком.

Само понятие парсинг и мультиязычность не совместимы , и проблема лежит глубже чем функционал парсера.

Что мы можем корректно спарсить в нескольких языках.

  1. Название товар
  2. Описание товара
  3. Мета данные товара
  4. Можем составить URL в разных языках для товара (в opencart 3)

А какие данные мы не можем полноценно спарсить на двух языках.

  1. Все что связано с категориями
  2. Все что связано с производителем
  3. Все что связано с атрибутами товаров
  4. Все что связано с опциями товара

Что значить не можем полноценно ?

Это значит что мы не можем спарсить атрибут на втором языке так что бы привязать его к атрибуту на первом языке. Приведу пример на Русской и Украинской локализации.

Допустим у нас есть атрибут Цвет (рус) и Колiр (укр)
Сперва мы парсим сайт на русском языке, а затем переключаемся на парсинг на украинском языке.
В первом случаи модуль создаст вам атрибут Цвет, а во втором случаи при обновлении модуль получить слово Колiр
И как модулю понять что это не новый атрибут, а тот же самый только на другом языке? Ведь Цвет и Колiр это совершенно разные слова не имеющие ничего общего. Это мы понимаем что это одно и тоже, но не компьютер.

И это утверждение справедливо и для других данных в товаре, кроме тех что описаны в первом пункте. В этом случаи модуль просто будет создавать отдельно атрибуты на Русском языке, и отдельно Атрибуты на украинском языке. (Если вы это захотите конечно)
Но другого решения нет.

Но почему тогда некоторые данные можно заполнить в нескольких языках ?

Все просто, заполнить можно только те данные которые имеют промежуточную связь. Допустим у нас есть товар с названием Стол красный (рус) и Стiл червоний (укр)
Но так же модуль знает что у данного товара артикул 0001 и модуль просто берет и заполняет второй язык вторым набором слов без прямого сравнения на русском и на украинском языке.
То есть сама связь происходит непосредственно через Идентификатор товара

Вывод.

Мы можем
Полноценно парсить в разные языки

  1. Название товар
  2. Описание товара
  3. Мета данные товара
  4. Можем составить URL в разных языках для товара (в opencart 3)

Мы можем парсить но с нюансом

  1. Все что связано с категориями
  2. Все что связано с производителем
  3. Все что связано с атрибутами товаров
  4. Все что связано с опциями товара

Нюанс заключается в том что эти данные не будет записаны как второй язык в уже созданных, а просто будут созданные новые в указанной локализации.

Настройка которая отвечает за заполнение определенных языков в модуле SimplePars находится здесь.