Cyr-To-Lat

Опис

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

Особливості

  • The only plugin with fully editable transliteration table. Allows add/remove and edit pairs like ‘Я’ => ‘Ya’, or even ‘Пиво’ => ‘Beer’
  • Конвертує будь-яку кількість посилань існуючих записів, сторінок і термінів в фонових процесах
  • Зберігає цілісність постійних посилань вже існуючих записів і сторінок
  • Виконує транслітерацію назв файлів з вкладень
  • Includes Russian, Belorussian, Ukrainian, Bulgarian, Macedonian, Serbian, Greek, Armenian, Georgian, Kazakh, Hebrew, and Chinese characters
  • Has many advantages over similar plugins
  • Officially compatible with 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. 🙂 И отцентровать её по колонке. 🙂
Прочитати всі 54 відгуки

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

“Cyr-To-Lat” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:

Учасники

“Cyr-To-Lat” було перекладено на 4 локалізації. Дякуємо перекладачам за їх роботу.

Перекладіть “Cyr-To-Lat” на вашу мову.

Цікавитесь розробкою?

Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.

Журнал змін

4.5.0 (18.05.2020)

  • Added Greek and Armenian languages
  • Added background conversion of attachments and thumbnails
  • Fixed background conversion of existing slugs

4.4.0 (18.04.2020)

  • Full flexibility to edit transliteration table: now it is possible to add/remove transliteration pairs on the settings page
  • Ability to edit not only values in the transliteration table, but also keys
  • Saving active table via ajax
  • Watching changes in active table
  • Auto-saving of changed table
  • Info about the current locale on settings page
  • Making table with current locale active at setting page load
  • Chinese language added
  • Fixed: slug not updated at woocommerce product duplication

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)

  • Fixed problems with setting of max_input_vars on some hostings

4.3.1 (27.12.2019)

  • Added requirement to have max_input_vars >= 5000
  • Added automatic plugin deactivation if requirements are not met
  • Added attempt to auto-fix max_input_variable value

4.3 (14.12.2019)

  • Added Chinese table
  • Tested up to WordPress 5.3
  • Tested up to PHP 7.4
  • External library wp-background-processing scoped into own namespace to prevent errors in some cases

4.2.3 (29.08.2019)

  • Scoped Symfony Mbstring polyfill to avoid problems with composer autoloader on some sites.

4.2.2 (28.08.2019)

  • Added ACF (Advanced Custom Fields) plugin support
  • Added Serbian table
  • Added new filter ctl_pre_sanitize_filename
  • Fixed improper encoding of Ё, ё, Й, й characters in file names on some Mac computers (old known problem on Mac’s)

4.2.1 (23.06.2019)

  • Fixed problem with sessions
  • Fixed message sequence for conversion of existing slugs.
  • Added php version check to avoid fatal error on activation on old sites.
  • Added vertical tabs in plugin settings.

4.2 (28.05.2019)

  • Мінімально необхідна версія PHP піднята – до 5.6
  • Додані тести phpunit для всіх версій php від 5.6 до 7.3
  • Виправлено попередження php під час перетворення існуючих частин посилання
  • Fixed locale selection during conversion of existing post slugs when WPML is activated
  • Fixed bug with infinite redirection of some slugs after conversion of existing slugs

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

  • Додано автоматичну конвертацію посилань для існуючих записів, сторінок і термінів таксономій
  • Додано збереження існуючих записів та інтеграція постійних посилань сторінок
  • Додано траслітерацію для імен завантажень
  • Покращено таблицю транслітерацій відповідно до ISO 9 стандартів
  • Включає українські, російські, болгарські і грецькі символи
  • Додано фільтр для таблиці транслітерації

2.1

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

2.0

  • Додано перевірку для існуючих таксономій

1.0.1

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

1.0

  • Реліз першої версії плагіну.