Cyr-To-Lat

Описание

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

Особенности

  • Конвертирует любое количество ярлыков существующих постов, страниц и терминов в фоновых процессах
  • Сохраняет целостность постоянных ссылок уже существующих записей и страниц
  • Выполняет транслитерацию названий файлов из вложений
  • Включает Russian, Belorussian, Ukrainian, Bulgarian, Macedonian, Serbian, Georgian, Kazakh и Hebrew символы
  • Таблицу транслитерации можно легко настроить без необходимости редактировать файлы самого плагина.
  • Официально совместим с WPML

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

Скриншоты

Установка

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

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

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

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

function my_cyr_to_lat_table( $ctl_table ) {
   $ctl_table['Ъ'] = 'U';
   $ctl_table['ъ'] = 'u';

   return $ctl_table;
}
add_filter( 'ctl_table', 'my_cyr_to_lat_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 список статусов постов.

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

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

Отзывы

24.02.2020
Но что ещё важно - отличная поддержка со стороны разработчиков. Готовы разобраться в вашей проблеме и решить её. Респект. More importantly, there is excellent support from the developers. They are ready to understand your problem with the plugin (and not only with it) and solve it. Respect.
14.02.2020
Это прекрасный инструмент из разряда тех, о которых вспоминаешь только тогда, когда забываешь установить или видишь в обновлениях. В остальное время он просто выполняет свою задачу, ничем о себе не напоминая. Спасибо за это! Отличная работа!
12.02.2020
Нахрена было разделять алфавит для разных языков (похожих между собой), непонятно.. абсолютно ничего не мешат ввести украинские буквы для руссклой локали, и наоборот... но несоответствующие буквы естветсвенно пропусти, ибо не встечается в таблице для транслита. Идиотизм
Посмотреть все 45 отзывов

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

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

Участники

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

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

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

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

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

4.3.5 (28.03.2020)

  • Tested up to WordPress 5.4
  • Fixed bug with disappearing of WooCommerce attributes

4.3.4 (22.02.2020)

  • Fixed non-conversion of slugs with WPML
  • Restricted conversion of post to public and nav_menu_item
  • Introduced ctl_post_types filter

4.3.3 (20.02.2020)

  • Reworked main plugin filter
  • Improved performance by minimizing number of calls
  • Updated Georgian table
  • Fixed slug duplication in taxonomies
  • Fixed warnings with WooCommerce when mbstring is not loaded
  • Fixed transliteration of draft post slug
  • Tables sorted by local alphabets

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

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