Транслитерация кириллицы в CMS Drupal и PHP

Транслитерация

Разработчики и пользователи русскоязычного интернета многократно сталкивались с проблемой использования русских символов в URL-адресах и названиях файлов хранящихся на сервере. Использование кириллических название не удобно и влечет за собой множество возможных ошибок и проблем. Необходимость в транслитерации возникла в конце XIX в. при создании научных библиотек единого каталога работ, написанных на языках с латинской, кириллической, арабской, индийскими и другими системами письма. Инструкции по транслитерации послужили и в наше время.

В CMS Drupal проблему русскоязычных URL-адресов и названий файлов решили давно использованием сочетания двух модулей, без которых я не представляю разработку русскоязычного сайта на Drupal:

  • Pathauto - http://drupal.org/project/pathauto
  • Transliteration - http://drupal.org/project/transliteration

Для активации транслитерации названий файлов при загрузке на Drupal сайте необходимо выполнить следующие действия:
Перейти в раздел «Файловая система» настройки сайта http://example.com/admin/settings/file-system, отметить чекбокс с транслитерациею названий файлов при загрузке на сервер
(Желательно так же отметить чекбокс отвечающий за перевод букв верхнего реестра в нижний)

Для активации перевода URL-адресов в формат символов латиницы:
В модуле Pathauto находим файл с названием i18n-ascii.example.txt и переименовываем его в i18n-ascii.txt, после этого в разделе «Автоматических настроек URL-адресов» конструкции сайта http://example.com/admin/build/path/pathauto в пункте «Общие настройки» отмечаем чекбокс отвечающий за транслитерацию русских URL-адресов.

Для транслитерации кириллических имен файлов в PHP можно использовать функцию транслитерации, для получения русской строки в латинице необходимо вызвать функцию и передать в нее строку с названием файла:

function translit($st) {
  $lit = array(
      "а" => "a",
      "б" => "b",
      "в" => "v",
      "г" => "g",
      "д" => "d",
      "е" => "e",
      "ё" => "yo",
      "ж" => "g",
      "з" => "z",
      "и" => "i",
      "й" => "y",
      "к" => "k",
      "л" => "l",
      "м" => "m",
      "н" => "n",
      "о" => "o",
      "п" => "p",
      "р" => "r",
      "с" => "s",
      "т" => "t",
      "у" => "u",
      "ф" => "f",
      "х" => "h",
      "ц" => "ts",
      "ч" => "ch",
      "ш" => "sh",
      "щ" => "shch",
      "ъ" => "",
      "ы" => "i",
      "ь" => "",
      "э" => "e",
      "ю" => "yu",
      "я" => "ya",
 
      "А" => "A",
      "Б" => "B",
      "В" => "V",
      "Г" => "G",
      "Д" => "D",
      "Е" => "E",
      "Ё" => "Yo",
      "Ж" => "G",
      "З" => "Z",
      "И" => "I",
      "Й" => "Y",
      "К" => "K",
      "Л" => "L",
      "М" => "M",
      "Н" => "N",
      "О" => "O",
      "П" => "P",
      "Р" => "R",
      "С" => "S",
      "Т" => "T",
      "У" => "U",
      "Ф" => "F",
      "Х" => "H",
      "Ц" => "Ts",
      "Ч" => "Ch",
      "Ш" => "Sh",
      "Щ" => "Shch",
      "Ъ" => "",
      "Ы" => "I",
      "Ь" => "",
      "Э" => "E",
      "Ю" => "Yu",
      "Я" => "Ya",
    );
  return $st = strtr($st, $lit);
} 

Вышеупомянутые методы помогут вам транслитерировать кириллические названия файлов и URL-адреса - это даст возможность избежать ошибок хранения файлов на хостинге и посодействуют для поисковой оптимизации вашего русскоязычного сайта.

Комментарии

  • КОНТАКТНАЯ ИНФОРМАЦИЯ
  • E-mail: