Cyr-To-Lat

Описание

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

Особенности

  • Единственный плагин с полностью редактируемой таблицей транслитерации. Позволяет добавлять/удалять пары, например: ‘Я’ => ‘Ya’, или даже ‘Пиво’ => ‘Beer’
  • Конвертирует любое количество ярлыков существующих постов, страниц и терминов в фоновых процессах
  • Сохраняет целостность постоянных ссылок уже существующих записей и страниц
  • Выполняет транслитерацию названий файлов из вложений
  • Включает русские, белорусские, украинские, болгарские, македонские, сербские, греческие, армянские, грузинские, казахские, идиш и китайские символы
  • Имеет много преимуществ перед аналогичными плагинами
  • Официально совместим с WPML

Основано на оригинальном плагине Rus-To-Lat от Антона Скоробогатова.

Скриншоты

Установка

  1. Загрузите папку cyr2lat в директорию /wp-content/plugins/.
  2. Активируйте плагин на странице «Плагины» в панели управления WordPress.

Часто задаваемые вопросы

Как назначить свои правила для замены?

Добавьте этот код к файлуfunctions.php вашей темы:

/**
 * Modify conversion table.
 *
 * @param array $table Conversion table.
 *
 * @return array
 */
function my_ctl_table( $table ) {
   $table['Ъ'] = 'U';
   $table['ъ'] = 'u';

   return $table;
}
add_filter( 'ctl_table', 'my_ctl_table' );

Как я могу переопределить нестандартную локаль?

Например, если ваша нестандартная локаль uk_UA, вы можете переопределить её в uk добалением следующего кода в function.php вашей темы:

/**
 * Use conversion table for non-standard locale.
 *
 * @param array $table Conversion table.
 *
 * @return array
 */
function my_ctl_table( $table ) {
    if ( 'uk_UA' === get_locale() ) {
        $settings = new Cyr_To_Lat_Settings();
        $table    = $settings->get_option( 'uk' );
    }

    return $table;
}
add_filter( 'ctl_table', 'my_ctl_table' );

Как я могу перевести большое количество постов/терминов, используя wp-cli?

Используйте следующую команду в консоли:

wp cyr2lat regenerate [--post_type=<post_type>] [--post_status=<post_status>]

Где
-post_type список типов постов,
-post_status список статусов постов.

Могу ли я внести свой вклад?

Да, вы можете!

Отзывы

04.06.2020
У плагина похоже проблемы и несовместимость со всем подряд. Рушит индексацию, так как встроенное перенаправление либо работает, либо нет (как повезет). Идея хорошая, но пока перенаправление не поправят, не рекомендую использовать.
31.05.2020
Текущая версия плагина 4.5.0 на последнем 5.4.1–ru_RU переименовала кириллические файлы так, что я на это смотрю и не понимаю, что с этим делать. Сначала понять не мог, куда вообще подевались некоторые (не все) файлы с кириллицей, так как и исходных нет, и соответствующих им транслитерованных. Но потом увидел, что кириллические фрагменты у части файлов были просто удалены из названий файлов... Как это теперь собрать в кучу - неясно. Хоть бы выделяли переименование файлов в отдельную опцию. Нашел в коде запись в лог, обрадовался... но как оказалось, рано: лог писался бы только в том случае, если бы WP_DEBUG был включен... Интересно, что стало с файлами, которые были в одной папке полностью состояли из кириллических символов и имели одно расширение... 1.6 гб картинок...
12.05.2020
Плагин супер. Спасибо, что поддерживаете и развиваете его. Было бы еще здорово добавить возможность удалять ненужные таблицы и добавлять свои. И кромочку добавления нового символа оформить в стиле WP. 🙂 И отцентровать её по колонке. 🙂
Посмотреть все 55 отзывов

Участники и разработчики

«Cyr-To-Lat» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Cyr-To-Lat» переведён на 6 языков. Благодарим переводчиков за их работу.

Перевести «Cyr-To-Lat» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

4.5.0 (18.05.2020)

  • Добавлены греческий и армянский языки
  • Added background conversion of attachments and thumbnails
  • Исправлено фоновое конвертирование существующих слагов

4.4.0 (18.04.2020)

  • Полная гибкость в редактировании таблицы транслитерации: теперь возможно добавлять/удалять пары на странице настроек
  • Возвожность редактирования не только значений, но и ключей в таблице транслитерации
  • Сохранение активной таблицы через ajax
  • Отслеживание изменений в активной таблице
  • Авто-сохранение настроек
  • Информация о текущей локали на странице настроек
  • Активация таблицы текущей локали во время загрузки страницы настроек
  • Добавлен китайский язык
  • Исправлено: ярлык не обновлялся при создании копии товара woocommerce

4.3.5 (28.03.2020)

  • Протестировано с WordPress 5.4
  • Исправлена ошибка с исчезновением атрибутов WooCommerce

4.3.4 (22.02.2020)

  • Исправлено не-преобразование ярлыков с WPML
  • Ограничена конвертация постов: теперь только публичные и nav_menu_item
  • Добавлен фильтр ctl_post_types

4.3.3 (20.02.2020)

  • Переработан основной фильтр плагина
  • Улучшено быстродействие путём минимизации числа вызовов
  • Исправлена таблица грузинского языка
  • Исправлено дублирование ярлыков в таксономиях
  • Исправлено предупреждение с WooCommerce, когда mbstring не загружена
  • Исправлена транслитерация ярлыка черновика поста
  • Таблицы сортированы по локальному алфавиту

4.3.2 (29.12.2019)

  • Исправлена проблема с установкой max_input_vars на некоторых хостингах

4.3.1 (27.12.2019)

  • Добавлено требование иметь max_input_vars >= 5000
  • Добавлена автоматическая деактивация плагина, если требования не соблюдены
  • Добавлена попытка авто-коррекции значения max_input_variable

4.3 (14.12.2019)

  • Добавлена поддержка китайского языка
  • Протестировано до WordPress 5.3
  • Протестировано до PHP 7.4
  • Внешняя библиотека `wp-background-processing` спрятана под неймспейс плагина, чтобы избежать ошибок в некоторых кейсах

4.2.3 (29.08.2019)

  • Полифил Symphony Mbstring перенесён в собственное пространство имён, чтобы избежать проблем с автозагрузкой composer на некоторых сайтах.

4.2.2 (28.08.2019)

  • Добавлена поддержка плагина ACF (Advanced Custom Fields)
  • Добавлена поддержка сербского языка
  • Добавлен новый фильтр ctl_pre_sanitize_filename
  • Исправлена неверная конвертация букв Ё, ё, Й, й в названиях файлов под операционной системой Mac (старая известная проблема Mac’ов)

4.2.1 (23.06.2019)

  • Исправлена проблема с сессиями
  • Исправлена последовательность сообщений при конвертации существующих ярлыков.
  • Добавлена проверка версии PHP для избежания фатальной ошибки при активации на старых сайтах.
  • Добавлены вертикальные табы в настройках плагина.

4.2 (28.05.2019)

  • Минимально необходимая версия php поднята до 5.6
  • Добавлены phpunit-тесты для всех версий php от 5.6 до 7.3
  • Устранено предупреждение php во время конвертации существующих ярлыков
  • Исправлен выбор локали при конвертации существующих ярлыков записей, когда активирован WPML
  • Исправлена ошибка с бесконечной переадресацией некоторых ярлыков после конвертации существующих ярлыков

4.1.2 (22.05.2019)

  • Исправлена фатальная ошибка в Cyr_To_Lat_Converter с php 5.2

4.1.1 (22.05.2019)

  • Исправлена фатальная ошибка в Cyr_To_Lat_Converter с php 5.6

4.1 (21.05.2019)

  • Добавлена таблица he_IL
  • Добавлен перевод плагина на украинский
  • Добавлен перевод плагина на шведский
  • Добавлены phpunit-тесты. Все классы плагина покрыты на 100%
  • Добавлены js-тесты. Весь js-код плагина покрыт на 100%
  • Исправлена ошибка с синхронизацией Jetpack
  • Исправлена ошибка с пустыми слагами при использовании символов вне локали

4.0 (24.04.2019)

  • Добавлена кнопка для конвертации существующих ярлыков, вместо чекбокса
  • Добавлены уведомления в консоли во время конвертации существующих ярлыков
  • Добавлены параметры post_type и post_status в команду wp-cli
  • Исправлен текстовый домен
  • Упрощён package.json, чтобы сделать финальный js ещё меньше
  • Добавлены phpunit-тесты для главного класса плагина
  • Добавлен travis.yml для непрерывной интеграции на GitHub, и улучшения надёжности кода

3.7 (12.04.2019)

  • Добавлены белорусская, македонская и казахская таблицы
  • Исправлена ошибка с MariaDB во время конвертации существующих ярлыков
  • Исправлено: не сохранялись пользовательские правки в дефолтной таблице iso9

3.6.5 (11.02.2019)

  • Добавлены очереди для процесса фоновой ковертации существующих ярлыков

3.6.4 (06.02.2019)

  • Исправлена ошибка с редиректом _wp_old_slug
  • Исправлена ошибка с urldecode в постах.

3.6.3 (04.02.2019)

  • Исправлена ошибка с активацией по сети для мультисайта

3.6.2 (01.02.2019)

  • Меню перемещено в секцию Настройки.
  • Исправлен текстовый домен.

3.6.1 (31.01.2019)

  • Текстовый домен скорректирован.

3.6 (31.01.2019)

  • Добавлена страница настроек плагина.
  • Страница настроек позволяет редактировать таблицы конвертации онлайн.
  • Код сконвертирован в ООП.
  • Произведён рефакторинг кода в соответствии со стандартами кодирования WordPress.
  • JS разработан в соответствии со стандартом ECMA-6.
  • Страница настроек также работает при выключенном JS в браузере.
  • Добавлены composer и yarn.
  • Добавлены ресурсы (баннер, иконка, административная иконка).

3.4 (21.01.2019)

  • Протестировано до WP 5.1
  • Форматирование кода по WPCS.
  • Строгое соответствие.
  • Фигурные скобки {} удалены из оператора MySQL, чтобы разрешить проверку имён таблиц в PhpStorm.
  • Обновлены .gitignore и README.md
  • Добавлен новый фильтр ctl_pre_sanitize_title

3.3 (18.01.2019)

  • wpcs 1.0
  • Исправлено много ошибок
  • Добавлена поддержка Gutenberg

3.2

  • Добавлена транслитерация при публикации через XML-RPC
  • Исправлена ошибка «неправильная таксономия» при просмотре часто используемых тегов

3.1

  • Исправлена транслитерация при сохранении черновика

3.0

  • Добавлена автоматическая конвертация ярлыков существующих постов, страниц и терминов
  • Добавлено сохранение существующих постов и интеграция с постоянными ссылками страниц
  • Добавлена транслитерация имён файлов вложений
  • Таблица транслитерации обновлена в соответствии со стандартом ISO9
  • Включает белорусские, украинские, болгарские и греческие символы
  • Добавлен фильтр для таблицы транслитерации

2.1

  • Оптимизирован вызов фильтра

2.0

  • Добавлены проверки существующих терминов

1.0.1

  • Обновлено описание

1.0

  • Релиз первой версии плагина.