Транслитерация кириллицы в латиницу в ЧПУ

Тема в разделе "PrestaShop", создана пользователем Maimeri, 27 окт 2015.

  1. Maimeri

    Maimeri

    Регистрация:
    17 окт 2015
    Сообщения:
    53
    Симпатии:
    4
    Всем доброго времени суток.

    Столкнулся с такой проблемой что либо по незнанию, либо по отсутствию возможной функции, но при добавлении нового товара ЧПУ данного товара генерируется на русском языке. Есть ли возможность поправить такое и подогнать транслитерацию кириллицы в латиницу?

    А то постоянно прыгать на сайты с онлайн транслитераторами как то надоело.)
     
  2. bumeralex

    bumeralex

    Регистрация:
    28 июл 2015
    Сообщения:
    123
    Симпатии:
    15
    Странно. Генерация должна быть на латинице. Это по умолчанию установлено. Принудительное обновление URL включено?
     
  3. Riva

    Riva

    Регистрация:
    4 мар 2013
    Сообщения:
    40
    Симпатии:
    19
    Нужно отключить в настройках ЧПУ использование специальных символов
     
  4. Maimeri

    Maimeri

    Регистрация:
    17 окт 2015
    Сообщения:
    53
    Симпатии:
    4
    при отключении "Специальные символы в URL" в юрл идут только цифри. Буквы вообще не проставляет.
    --- Добавлено, 28 окт 2015 ---
    Настройки [​IMG] SEO и URL я не нашел такой функции.
     
  5. bumeralex

    bumeralex

    Регистрация:
    28 июл 2015
    Сообщения:
    123
    Симпатии:
    15
    Настройки-Товары (общее)
     
  6. Maimeri

    Maimeri

    Регистрация:
    17 окт 2015
    Сообщения:
    53
    Симпатии:
    4
    У меня в этом разделе нет ничего, чтобы касалось принудительного обновления URL.

    Все что качается SEO и URL у меня лежит в Настройки > SEO и URL

    ЧПУ
    [​IMG] Да [​IMG] Нет Стоит "ДА"
    Разрешить, только если ваш сервер позволяет перезапись URL (рекомендуется)

    Специальные символы в URL
    [​IMG] Да [​IMG] Нет Стоит "ДА"
    Включите, если хотите использовать специальные (не базовые латинские) символы в адресах страниц вашего магазина Активируйте данную опцию только в случае использования не латинских алфавитов; если Вы используете латинский алфавит, то оставьте эту функцию активированной.

    Автоматически переадресовывать на Канонические URL
    [​IMG] Да [​IMG] Нет Стоит "ДА"
    Рекомендуется, но ваша тема должна быть совместима

    Отключить apache multiviews
    [​IMG] Да [​IMG] Нет Стоит "НЕТ"
    Включите эту опцию, только если у вас есть проблемы с перезаписью URL на некоторых страницах.

    Отключите apache mod security
    [​IMG] Да [​IMG] Нет Стоит "НЕТ"
    Некоторые функции магазина могут работать некорректно в связи с настройками вашего сервера или apache mod security. Мы рекомендуем отключить.
     
  7. bumeralex

    bumeralex

    Регистрация:
    28 июл 2015
    Сообщения:
    123
    Симпатии:
    15
    Не могу понять причину вашей проблемы. Странная однако.
     
  8. Maimeri

    Maimeri

    Регистрация:
    17 окт 2015
    Сообщения:
    53
    Симпатии:
    4
    Мне кажется что проблема скорее всего в локализации. Ну да ладно.
     
  9. bumeralex

    bumeralex

    Регистрация:
    28 июл 2015
    Сообщения:
    123
    Симпатии:
    15
    У меня локализация Беларусь, но все ЧПУ в кирилице. Проблема в чем то другом.
     
  10. Maimeri

    Maimeri

    Регистрация:
    17 окт 2015
    Сообщения:
    53
    Симпатии:
    4
    В целом. Шарился на других форумах по поддержке престы и дали мне такой ответ.

    Откройте файл: /js/admin.js и замените:

    Код:
    str = str.replace(/[\u0105\u0104\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5]/g,'a');
    str = str.replace(/[\u00E7\u010D\u0107\u0106]/g,'c');
    str = str.replace(/[\u010F]/g,'d');
    str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u011B\u0119\u0118\u0117]/g,'e');
    str = str.replace(/[\u00EC\u00ED\u00EE\u00EF\u012F]/g,'i');
    str = str.replace(/[\u0142\u0141]/g,'l');
    str = str.replace(/[\u00F1\u0148]/g,'n');
    str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00D3]/g,'o');
    str = str.replace(/[\u0159]/g,'r');
    str = str.replace(/[\u015B\u015A\u0161]/g,'s');
    str = str.replace(/[\u00DF]/g,'ss');
    str = str.replace(/[\u0165]/g,'t');
    str = str.replace(/[\u00F9\u00FA\u00FB\u00FC\u016F\u016B\u0173]/g,'u');
    str = str.replace(/[\u00FD\u00FF]/g,'y');
    str = str.replace(/[\u017C\u017A\u017B\u0179\u017E]/g,'z');
    str = str.replace(/[\u00E6]/g,'ae');
    str = str.replace(/[\u0153]/g,'oe');
    str = str.replace(/[\u013E\u013A]/g,'l');
    str = str.replace(/[\u0155]/g,'r');

    str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,'');
    на:
    Код:
    str = str.replace(/[\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u0101\u0103\u0105\u0430]/g, 'a');
    str = str.replace(/[\u0431]/g, 'b');
    str = str.replace(/[\u00E7\u0107\u0109\u010D\u0446]/g, 'c');
    str = str.replace(/[\u010F\u0111\u0434]/g, 'd');
    str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u0113\u0115\u0117\u0119\u011B\u0435\u044D]/g, 'e');
    str = str.replace(/[\u0444]/g, 'f');
    str = str.replace(/[\u011F\u0121\u0123\u0433\u0491]/g, 'g');
    str = str.replace(/[\u0125\u0127]/g, 'h');
    str = str.replace(/[\u00EC\u00ED\u00EE\u00EF\u0129\u012B\u012D\u012F\u0131\u0438\u0456]/g, 'i');
    str = str.replace(/[\u0135\u0439]/g, 'j');
    str = str.replace(/[\u0137\u0138\u043A]/g, 'k');
    str = str.replace(/[\u013A\u013C\u013E\u0140\u0142\u043B]/g, 'l');
    str = str.replace(/[\u043C]/g, 'm');
    str = str.replace(/[\u00F1\u0144\u0146\u0148\u0149\u014B\u043D]/g, 'n');
    str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u014D\u014F\u0151\u043E]/g, 'o');
    str = str.replace(/[\u043F]/g, 'p');
    str = str.replace(/[\u0155\u0157\u0159\u0440]/g, 'r');
    str = str.replace(/[\u015B\u015D\u015F\u0161\u0441]/g, 's');
    str = str.replace(/[\u00DF]/g, 'ss');
    str = str.replace(/[\u0163\u0165\u0167\u0442]/g, 't');
    str = str.replace(/[\u00F9\u00FA\u00FB\u00FC\u0169\u016B\u016D\u016F\u0171\u0173\u0443]/g, 'u');
    str = str.replace(/[\u0432]/g, 'v');
    str = str.replace(/[\u0175]/g, 'w');
    str = str.replace(/[\u00FF\u0177\u00FD\u044B]/g, 'y');
    str = str.replace(/[\u017A\u017C\u017E\u0437]/g, 'z');
    str = str.replace(/[\u00E6]/g, 'ae');
    str = str.replace(/[\u0447]/g, 'ch');
    str = str.replace(/[\u0445]/g, 'kh');
    str = str.replace(/[\u0153]/g, 'oe');
    str = str.replace(/[\u0448]/g, 'sh');
    str = str.replace(/[\u0449]/g, 'ssh');
    str = str.replace(/[\u044F]/g, 'ya');
    str = str.replace(/[\u0454]/g, 'ye');
    str = str.replace(/[\u0457]/g, 'yi');
    str = str.replace(/[\u0451]/g, 'yo');
    str = str.replace(/[\u044E]/g, 'yu');
    str = str.replace(/[\u0436]/g, 'zh');

    str = str.toLowerCase();
    str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,'');

    Мне помогло. Всем спасибо кто принимал участие.
     
    kemer нравится это.