[DS] Literal converter (украинский, польский)

Модуль добавляет транскрипцию языков для правильного формирования SEO имени в URL страниц (товаров, категорий, блога и т.п.).

Версия 1.0 (для CS-Cart 4.x.x) Добавлены недостающие символы для украинского и польского языков.

Поддерживаемый украинский алфавит (33 буквы)
а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ь ю я

Обработка украинского алфавита в 2-х режимах:

  • Полный. Заменяет литералы русского языка. Используется при добавлении или изменении контента на украинском языке.
  • Частичный. Добавляет литералы ґ, є, і, ї Используется если добавляется или изменяется контент отличный от украинского (например русский), но текст на украинском.

Поддерживаемый польский алфавит (32 буквы)
a ą b c ć d e ę f g h i j k l ł m n ń o ó p r s ś t u w y z ź ż

ds__literal_converter_1_0.zip (15,5 КБ)

Распаковать архив в корень сайта, установить в разделе управления модулями.

3 лайка

Спасибо за модуль.

@developstores Спасибо за модуль! С последними версиями карта норм работает?

Модуль не дружит с АБ карта сайта и АБ выгрузка.

Сейчас пользуем кривой модуль перевода от Симтек и он не переводит адреса.
По сути ему надо просто урлы с русским транслитом удалить из украинского перевода, чтоб новые сгенерились уже по украинской схеме.
Но он этого не делает. И поддержка морозится.

Контентщики добавляют товар и частенько забывают удалять укр урлы.
Поэтому вбил в БД по расписанию такую команду, удаляющую укр урлы.

DELETE FROM cscart_seo_names WHERE cscart_seo_names.object_id > 1 AND cscart_seo_names.type = ‘p’ AND cscart_seo_names.lang_code = ‘uk’
Чтобы урлы удалялись.

Но оказалось, что если ДО открытия товара модули АБ сгенерят карту/выгрузку, то будут ссылки с русским транслитом и НЕрабочии.

Битые и в карте сайта и в мерчанте.

Себе приколхозил прям в папку /app/schemas/literal_converter
перенес файлы транслита и внес изменения в схему.

use Tygh\Registry;

$files = array(
    'literal_converter/general.php',
    'literal_converter/ru.php',
    'literal_converter/umlauts.php',
);

$schema = array();

foreach ($files as $file) {
    $schema = include(Registry::get('config.dir.schemas') . $file);
}
// Ukrainian language
if (DESCR_SL == 'uk'){
    $files = array(
        'literal_converter/general.php',
        'literal_converter/umlauts.php'
    );

    $schema = array();

    foreach ($files as $file) {
        $schema = include(Registry::get('config.dir.schemas') . $file);
    }
    $schema = include(Registry::get('config.dir.schemas') . 'literal_converter/uk.php');
}else{
    $schema = include(Registry::get('config.dir.schemas') . 'literal_converter/uk_compatible.php');
}

return $schema;

автору сеспект однозначно из Украины.
Может сможете сделать чтоб работало без моего костыля?
@developstores

все написанное выше фигня!!!
Дело не в коде, а в том, что как сгенерируется зависит только от языка админки активного в данный момент.
По этой переменной
DESCR_SL

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