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 від Антона Скоробогатова.

Plugin Support

Скріншоти

  • Tables settings page
  • Converter settings page
  • Block editor with transliterated slug
  • WPML Certificate

Встановлення

  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' );

How can I redefine non-standard locale?

Наприклад, якщо нестандартна мова є uk_UA, її можна перевизначити як uk додавши наступний код до файлу теми function.php:

/**
 * Use non-standard locale.
 *
 * @param string $locale Current locale.
 *
 * @return string
 */
function my_ctl_locale( $locale ) {
    if ( 'uk_UA' === $locale ) {
        return 'uk';
    }

    return $locale;
}
add_filter( 'ctl_locale', 'my_ctl_locale' );

How can I define own transliteration of titles?

Add similar code to your theme’s functions.php file:

/**
 * Filter title before sanitizing.
 *
 * @param string|false $result Sanitized title.
 * @param string       $title  Title.
 *
 * @return string|false
 */
function my_ctl_pre_sanitize_title( $result, $title ) {
    if ( 'пиво' === $title ) {
        return 'beer';
    }

    return $result;
}
add_filter( 'ctl_pre_sanitize_title', 10, 2 );

How can I define own transliteration of filenames?

Add similar code to your theme’s functions.php file:

/**
 * Filter filename before sanitizing.
 *
 * @param string|false $result   Sanitized filename.
 * @param string       $filename Title.
 *
 * @return string|false
 */
function my_ctl_pre_sanitize_filename( $result, $filename ) {
    if ( 'пиво' === $filename ) {
        return 'beer';
    }

    return $result;
}
add_filter( 'ctl_pre_sanitize_filename', 10, 2 );

How can I limit post types for background conversion?

Add similar code to your theme’s functions.php file:

/**
 * Filter post types allowed for background conversion.
 *
 * @param array $post_types Allowed post types.
 *
 * @return array
 */
function my_ctl_post_types( $post_types ) {
    return [
        'post'          => 'post',
        'page'          => 'page',
        'attachment'    => 'attachment',
        'product'       => 'product',
        'nav_menu_item' => 'nav_menu_item',
    ];
}
add_filter( 'ctl_post_types', 'my_ctl_post_types' );

How can I convert many posts/terms using wp-cli?

Use the following command in the console:

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

Де
-post_type список типів записів,
-post_status список статусів записів.

How can I regenerate thumbnails safely?

Regeneration of thumbnails with the command wp media regenerate can break links in old posts as file names become transliterated.

To avoid it, deactivate cyr2lat plugin during regeneration:

wp media regenerate --skip-plugins=cyr2lat

Чи можу я внести свій внесок?

Так, ви можете!

Відгуки

30.09.2021
Использую давно этот плагин, на всех своих и клиентских сайтах. До этого использовал плагин Антона Скоробогатова. Можно настроить под себя, но я сейчас использую по умолчанию настройки. Клиентам нравится еще и то, что можно почти заниматься переводом, а просто транслитером))
Прочитати всі 79 відгуків

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

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

Учасники

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

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

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

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

Журнал змін

5.2.6 (25.12.2021)

  • Revert fix made in 5.2.5 for 404 with WPML, as it created several issues on the frontend.
  • Fix again 404 on archives created with WPML before activation of cyr2lat.

5.2.5 (19.12.2021)

  • Tested up to WordPress 5.9 and WooCommerce 6.0.
  • Fix issue with Polylang – do not modify admin language when editing a post.
  • Fix issue with JetPack – fatal error on synchronisation.
  • Fix 404 on archives created with WPML before activation of cyr2lat.

5.2.4 (07.09.2021)

  • Fix issue with not showing WooCommerce variable product attributes.
  • Fix issue with Elementor and WPML, endless loop.

5.2.3 (07.09.2021)

  • Fix issue with WP Foro plugin – transliterate topic slug when created on frontend.
  • Fix bug with Polylang on REST request.

5.2.2 (06.09.2021)

  • Fix issue caused by the bug in Jetpack sync.
  • Optimize code related to WPML locale filtering.
  • Fix endless loading of a taxonomy page with WPML.
  • Fix ‘nothing found’ on a taxonomy page with WPML.

5.2.1 (29.07.2021)

  • Determine WPML language only once to improve performance.
  • Avoid notice on bad SQL request when taxonomies are empty.

5.2.0 (27.07.2021)

  • Add support for categories and tags in other languages with wpml.

5.1.0 (19.07.2021)

  • Fix issue-95 – 404 on localized terms created before plugin install.
  • Add cache flushing after batch conversion.
  • Tested with WordPress 5.8

5.0.4 (17.04.2021)

  • Fix bug in converter without saved options

5.0.3 (03.04.2021)

  • Add filter ‘ctl_locale’
  • Fix translation of tabs on settings pages
  • Fix registered post types in conversion settings

5.0.2 (27.03.2021)

  • Fix bug creating tag with the same slug as category

5.0.1 (22.03.2021)

  • Fix fatal error during plugin load on some servers

5.0.0 (18.03.2021)

  • Introduce tabs on options page
  • Add options to select post types and statuses for background conversion
  • Make colors compatible to WP official palette
  • Fix bug with Polylang when locale is not equal to language slug

4.6.4 (03.03.2021)

  • Tested up to WordPress 5.7

4.6.3 (21.02.2021)

  • Fix bug with attachment post type filtered by ‘ctl_post_types’
  • Fix bug with background conversion of product attribute terms

4.6.2 (11.02.2021)

  • Fix bug with non-existing function PLL().

4.6.1 (10.02.2021)

  • Fix bug with Polylang

4.6.0 (10.02.2021)

  • Add compatibility with Polylang
  • Add confirmation popup before mass conversion of slugs
  • Improve selection of posts and tags for conversion to avoid selection of excessive items for mass conversion
  • Fix bug with redirection from the old slug to a new one after background slug conversion
  • Fix js to run in old browsers like IE

4.5.2 (08.12.2020)

  • Fix bug with the deployment to wp.org

4.5.1 (07.12.2020)

  • Tested up to WordPress 5.6
  • Tested on PHP 5.6 – 8.0

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

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