Symphony CMS: транслитерация русских символов в строке URL (russian handles)

Symphony CMS: транслитерация русских символов в строке URL (russian handles)

По умолчанию в Symphony CMS нет транслитерации русских символов. Но это легко сделать самому.

Я очень долго негодовал, потому что не знал как научить могучему русскому языку видимо не менее могучую Симфонию. А решение простое.

Все настройки и языковые тоже, Symphony хранит в symphony/lib/lang/lang.en.php , по умолчанию это английский язык. Есть русифицирование - lang_russian.php (можете найти его в расширениях и обсуждениях - разработка Игоря Богданова (a.k.a. bogdanov, ibcico) - https://github.com/ibcico/lang_russian

Установка:

Option 1.

This option allows authors to specify personal preferences for a language and allows you to change the system language in your system preferences through the administration panel.

Download the Localisation Manager and install this extension. This language file is supposed to be included in the Localisation Manager in the near future. If it is not available yet, move the lang.ru.php file to the /extensions/localisationmanager/lang directory in your Symphony CMS installation.

After installing Localisation Manager successfully, you'll find a new setting in your preferences allowing you to switch the system language. Authors can override this global preference with a custom setting in their profiles.

Вариант 1.

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

Необходимо скачать расширение Localisation Manager и установить его. Скорее всего данный языковой файл уже будет включен в расширение Localisation Manager. Если русский язык еще не доступен в Localisation Manager, скопируйте файл 'lang.ru.php' в директорию /extensions/localisationmanager/lang в месте установки Symphony CMS.

После установки Localisation Manager в настройках системы появится возможность изменять язык. Языковые настройки могут быть изменены каждым отдельным пользователем для себя лично по своему усмотрению.

Option 2.

This option works without the Localisation Manager and is less flexible. It only allows you to set the system language manually in the configuration file, and does not allow authors to specify a personal preference for a language.

Move lang.ru.php to the /symphony/lib/lang directory. Open /manifest/config.php and look for 'lang' => 'en'. Replace this line with 'lang' => 'ru'.

Вариант 2.

Данный вариант установки можно использовать без установки расширения Localisation Manager. Однако он позволяет изменить только глобальные языковые настройки без возможности выбора языка каждым отдельным пользователем.

Скопируйте 'lang.ru.php' в директорию '/symphony/lib/lang'. Откройте для редактирования файл '/manifest/config.php' и найдите там строчку 'lang' => 'en'. Замените её на 'lang' => 'ru'.

 

Другой вариант (не устанавливать расширение), а просто дополнить lang.en.php транслитерацией для русских символов. То есть добавить:

    '/А/' => 'A',
    '/а/' => 'a',
    '/Б/' => 'B',
    '/б/' => 'b',
    '/В/' => 'V',
    '/в/' => 'v',
    '/Г/' => 'G',
    '/г/' => 'g',
    '/Д/' => 'D',
    '/д/' => 'd',
    '/Е/' => 'E',
    '/е/' => 'e',
    '/Ё/' => 'E',
    '/ё/' => 'e',
    '/Ж/' => 'ZH',
    '/ж/' => 'zh',
    '/З/' => 'Z',
    '/з/' => 'z',
    '/И/' => 'I',
    '/и/' => 'i',
    '/Й/' => 'J',
    '/й/' => 'j',
    '/К/' => 'K',
    '/к/' => 'k',
    '/Л/' => 'L',
    '/л/' => 'l',
    '/М/' => 'M',
    '/м/' => 'm',
    '/Н/' => 'N',
    '/н/' => 'n',
    '/О/' => 'O',
    '/о/' => 'o',
    '/П/' => 'P',
    '/п/' => 'p',
    '/Р/' => 'R',
    '/р/' => 'r',
    '/С/' => 'S',
    '/с/' => 's',
    '/Т/' => 'T',
    '/т/' => 't',
    '/У/' => 'U',
    '/у/' => 'u',
    '/Ф/' => 'F',
    '/ф/' => 'f',
    '/Х/' => 'H',
    '/х/' => 'h',
    '/Ц/' => 'TS',
    '/ц/' => 'ts',
    '/Ч/' => 'CH',
    '/ч/' => 'ch',
    '/Ш/' => 'SH',
    '/ш/' => 'sh',
    '/Щ/' => 'SCH',
    '/щ/' => 'sch',
    '/Ъ/' => '',
    '/ъ/' => '',
    '/Ы/' => 'Y',
    '/ы/' => 'y',
    '/Ь/' => '',
    '/ь/' => '',
    '/Э/' => 'E',
    '/э/' => 'e',
    '/Ю/' => 'YU',
    '/ю/' => 'yu',
    '/Я/' => 'YA',
    '/я/' => 'ya',


Лучше сделать 2 варианта!!! Вдруг вы решите переключить язык обратно на English; тогда при редактировании контента handles перезапишутся согласно новым установкам и если в системном файле lang.en.php не будет транслитерации для русских символов (а вы уже решили, что она вам нужна), то с сохранением документа обновятся и handles.

Всё должно заработать. Всё таки великая вещь Симфония!!

Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.




Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.