Транслитерация псевдонимов
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreЧто такое транслитерация¶
Когда MODX строит псевдоним (alias) ресурса из pagetitle (или когда вы вводите alias), он может заменить не-ASCII символы на удобные для URL. Это и есть транслитерация: Кафе станет kafe, Straße может стать Strasse, в зависимости от выбранного метода.
Без транслитерации ограничения по символам могут вырезать буквы и оставить битый или пустой alias. При включённых Friendly URLs чистые псевдонимы дают читаемые адреса.
MODX применяет транслитерацию в modResource::filterPathSegment() при генерации и фильтрации сегментов пути. Тот же пайплайн кормит поле alias в менеджере в реальном времени и output-фильтр filterPathSegment.
Какие настройки участвуют¶
Откройте Системные настройки, область Friendly URL (поиск по friendly_alias):
| Настройка | Назначение |
|---|---|
| friendly_alias_translit | Метод: none, iconv, iconv_ascii или имя таблицы из дополнения |
| friendly_alias_translit_class | Сервисный класс для именованных таблиц (по умолчанию translit.modTransliterate) |
| friendly_alias_translit_class_path | Откуда грузить класс (по умолчанию {core_path}components/) |
| automatic_alias | Генерировать alias из pagetitle при сохранении, если поле пустое |
Связанные фильтры (разделители слов, нижний регистр, длина, ограничение символов) работают после транслитерации. Смотрите остальные friendly_alias_* в той же области.
В стандартной установке friendly_alias_translit равен none (без транслитерации). В коде, если настройка не задана и есть расширение iconv, запасной вариант: iconv. Задайте значение явно, чтобы поведение было понятным.
Встроенный вариант: none¶
Оставьте friendly_alias_translit пустым или поставьте none. Символы не маппятся. Так делают, когда заголовки уже в ASCII или alias вводите вручную.
Встроенный вариант: iconv¶
Поставьте friendly_alias_translit в iconv. Нужно расширение PHP iconv.
MODX конвертирует строку с флагами //TRANSLIT//IGNORE в кодировку сайта (modx_charset, обычно UTF-8). Качество зависит от сборки PHP/iconv и локали. Это быстрый вариант без пакетов, не языковая таблица.
iconv_ascii¶
Значение iconv_ascii гонит строку в ASCII (ASCII//TRANSLIT//IGNORE). Берите его, если нужны только латинские сегменты URL, а обычный iconv всё ещё оставляет не-ASCII.
Именованные таблицы: пакет Translit¶
Для стабильных языковых таблиц (русский и другие) установите пакет Translit через Управление пакетами. Он даёт класс translit.modTransliterate, который уже указан в настройках ядра по умолчанию.
Типичная настройка после установки:
- Установите translit.
-
friendly_alias_translit_class=translit.modTransliterate(обычно уже так). -
friendly_alias_translit_class_path={core_path}components/(по умолчанию). -
friendly_alias_translit= имя таблицы, напримерrussian(неiconv). - Включите
automatic_alias, если alias должен создаваться из pagetitle. - Очистите кэш сайта.
Значение friendly_alias_translit: имя таблицы, которую грузит сервис (имя файла без .php в таблицах Translit). Другие таблицы или своя копия (например custom) работают так же: в настройку пишете имя таблицы.
Другие дополнения (Translitor, yTranslit и похожие) могут ставить свой класс или свои настройки. Следуйте их документации и при необходимости укажите friendly_alias_translit_class / path на их сервис.
Проверка¶
- Включите friendly_urls и настройте rewrite (гайд по Friendly URLs).
- Создайте ресурс с нелатинским pagetitle.
- Сохраните (с
automatic_aliasили подставьте предложенный alias). - Убедитесь, что поле alias и URL на сайте в транслите.
Уже сохранённые ресурсы держат старый alias, пока вы его не перегенерируете. Смена настройки сама по себе дерево не переписывает.
Загрузка файлов¶
В MODX 3.x настройка upload_translit может транслитерировать имена загружаемых файлов по тем же глобальным правилам. Это отдельно от FURL-псевдонимов, но полезно на тех же мультиязычных сайтах.
См. также¶
- Использование дружественных URL
- friendly_alias_translit
- friendly_alias_translit_class
- friendly_alias_translit_class_path
- upload_translit
- Translit на extras.modx.com
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










