Все для DataLife Engine / DLE хаки / Хак для DLE / Хак для DLE Локализация транслита

Хак для DLE Локализация транслита


Представляем на https://dle9.com/ хак для DLE Локализация транслита, делаем ЧПУ (человеко понятный УРЛ) для символов разных языков (Ü %DC и т.д). Хак DLE (дле) решает проблему с URL при публикации новостей с ЧПУ на сайтах с не английским или русским языком, где используется определенный символ для обозначения разных буквы.

К примеру:
Вот так получается, когда имя новостей начинается с русскими символами
Вот так называл пост: "Тест Проверка ЧПУ"
на полной новостей получилось url:
http://ваш домен/test-proverka-chpu.html


Английскими буквами тоже все нормально
например называния поста: "DataLife Engine 11.1"
на полной новостей получилось url:
http://ваш домен/datalife-engine-111.html


Но, если ваш сайт использует Азербайджанский язык и символы, то получается следующее:
например называния пост: "Muёllif" или "Mu?llif"
должна быть url:
вот так http://ваш домен.az/muellif.html


но получилось вот так
http://ваш домен.az/mllif.html

То есть, не существующие символы съедаются, или добавляется знак ?, в результате УРЛ становится не понятным.

Основная причина в том, что в DLE используется не все символы для разных языков, поэтому и происходит такой косяк. Также имеет значение какую кодировку файлов движка вы используете на своем сайте, то есть UTF-8 или WIN-1251 (подробнее об этом можно почитать здесь). Желательность использовать UTF-8 для не русскоязычных ресурсов

Так как пользователь "maxno" не нашел в интернете решение и такой темы на dle9.com, проблему попробовали решить в ПС. Для того, чтобы можно была заменить url в полной новостей так, чтобы символы новостей были на английском было найдено в результате обсуждения.

Так пользователь "maxno" до этого редактировал файлы движка: admincheck.lng, adminpanel.lng, adminlogs.lng, help.lng, website.lng, что находятся в папке language/ (папка вашего языка)/ с целью перевода с русского на азербайджанский, для того, чтобы было понятно справку и подсказки управления панелью движка, то там были замечены символы в одном из файлов.

Итак, сам хак для DLE Локализация транслита
Транслит имени файла, ссылки или название новости сделать с человеко понятным видом (ЧПУ) может сделать любой. Для этого в файле languages/Russian/website.lng вам нужно добавить символы вашего языка, вот с этой страницы
Внимание! У Вас нет прав для просмотра скрытого текста.
в данном блоке кода:

Внимание! Код приведен в качестве примера:
// Локализация транслита

$langtranslit = array(
'ç' => 'ch', 'ə' => 'e', 'ğ' => 'g',
'ı' => 'i', 'ö' => 'o', 'ş' => 'sh',
'ü' => 'u',

'Ç' => 'Ch', 'Ə' => 'E', 'Ğ' => 'G',
'İ' => 'I', 'Ö' => 'O', 'Ş' => 'Sh',
'Ü' => 'U',

'а' => 'a', 'б' => 'b', 'в' => 'v',
'г' => 'g', 'д' => 'd', 'е' => 'e',
'ё' => 'e', 'ж' => 'zh', 'з' => 'z',
'и' => 'i', 'й' => 'y', 'к' => 'k',
'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'у' => 'u',
'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
'ь' => '', 'ы' => 'y', 'ъ' => '',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
"ї" => "yi", "є" => "ye",

'А' => 'A', 'Б' => 'B', 'В' => 'V',
'Г' => 'G', 'Д' => 'D', 'Е' => 'E',
'Ё' => 'E', 'Ж' => 'Zh', 'З' => 'Z',
'И' => 'I', 'Й' => 'Y', 'К' => 'K',
'Л' => 'L', 'М' => 'M', 'Н' => 'N',
'О' => 'O', 'П' => 'P', 'Р' => 'R',
'С' => 'S', 'Т' => 'T', 'У' => 'U',
'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
'Ь' => '', 'Ы' => 'Y', 'Ъ' => '',
'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
"Ї" => "yi", "Є" => "ye",


Часть кода для добавления новых символов в примере выше

'ç' => 'ch', 'ə' => 'e', 'ğ' => 'g',
'ı' => 'i', 'ö' => 'o', 'ş' => 'sh',
'ü' => 'u',

'Ç' => 'Ch', 'Ə' => 'E', 'Ğ' => 'G',
'İ' => 'I', 'Ö' => 'O', 'Ş' => 'Sh',
'Ü' => 'U',


Не будет лишним установить правильный язык для страницы браузера, обозначение (RU, EN и т.д) вы можете посмотреть на странице
Внимание! У Вас нет прав для просмотра скрытого текста.
для вашего языка на сайте.

Код меняется в этой строчке файла вашего шаблона в main.tpl в самом начале
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/EN/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
.....
</html>


К примеру RU (русский) меняем на (EN) английский, код в самом конце:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/EN/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
.....
</html>

Хак для DLE Локализация транслита
Автор: maxno
Хак от сайта dle9.com
  • 80

Комментарии 1

WiseBear от 6 июля 2022 22:14
немного все равно не понял как реализовать
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent