Cyr-To-Lat

Опис

Претвара ћириличне знакове у кратким именима чланака, страница и појмова у латиничне знакове. Корисно за прављење URL-ова читљивих људима.

Могућности

  • Једини додатак са потпуно уредивом табелом пресловљавања. Омогућава додавање/уклањање и уређивање парова као што су ‘Я’ => ‘Ya’, или чак ‘Пиво’ => ‘Beer’
  • Претвара кратка имена чланака, страница, произвољних врста чланака и појмова кроз изричите путање чувања у Вордпресу и REST/Гутенберг
  • Претвара било који број постојећих кратких имена чланака, страница и појмова у позадинским процесима или помоћу WP-CLI
  • Чува целовитост постојећих сталних веза чланака и страница
  • Пресловљава називе датотека прилога
  • Подржава токове кратких имена WooCommerce производа, таксономија производа, глобалних атрибута, локалних атрибута, варијација и корпе у јавном делу, без аутоматског преноса постојећих атрибута
  • Додатак подржава руска, белоруска, украјинска, бугарска, македонска, српска, грчка, јерменска, грузијска, казашка, хебрејска и кинеска слова
  • Има много предности у односу на сличне додатке
  • Званично усаглашен са WPML-ом

Засновано на изворном додатку Rus-To-Lat аутора Anton Skorobogatov.

Спонзор: Blackfire.

Подршка за додатак

Снимци екрана

Постављање

  1. Отпремите фасциклу cyr2lat у фасциклу /wp-content/plugins/.
  2. Укључите додатак преко изборника „Додаци“ у Вордпресу.

Напомене о надоградњи за 7.0

Издање 7.0 је издање усмерено на архитектуру. Задржава постојећу табелу пресловљавања, филтере локалитета, алатке за претварање чланака и појмова и WP-CLI наредбу стабилним, уз премештање обраде кратких имена у изричите услуге.

Постојећи чланци, странице, појмови, називи датотека и подаци WooCommerce производа не преписују се разорно током надоградње додатка. Користите страницу Претварач или wp cyr2lat regenerate када намерно желите поново да направите постојећа кратка имена чланака и појмова.

WooCommerce атрибути направљени пре 7.0 не преносе се аутоматски. Постојеће глобалне таксономије pa_* и постојеће кључеве локалних атрибута или атрибута варијација треба засебно прегледати; сваки будући пренос мора користити посебан ток рада са претходним пробним покретањем.

Cyr-To-Lat 7.0.1 одржава старе локалне WooCommerce атрибуте варијација, укључујући варијације Any, усклађеним између обрасца производа, захтева за додавање у корпу и сесије корпе.

ЧПП

Како могу да дефинишем сопствене замене?

Додајте овај кôд у датотеку 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 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' );

Како могу да дефинишем сопствено пресловљавање наслова?

Додајте сличан кôд у датотеку functions.php своје теме:

/**
 * 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 );

Како могу да управљам старим мостом sanitize_title?

Издање 7.0 користи изричите руковаоце кратким именима за чланке, појмове, WooCommerce атрибуте и друге познате путање чувања. Стари мост sanitize_title остаје као резервно решење ради усаглашености за широке позиве на које се старије интеграције можда још ослањају.

Широко резервно понашање можете искључити овим кодом:

add_filter( 'ctl_enable_legacy_sanitize_title_bridge', '__return_false' );

Филтер прима тренутну подразумевану вредност, $title, $raw_title и $context. Изричито познати контексти, као што је обрада чувања у Вордпресу, и даље користе посебне путање кратких имена из 7.0.

За отклањање грешака непознатих позива моста, дефинишите CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGE као true. Овај дијагностички дневник је подразумевано искључен и не укључује се помоћу WP_DEBUG.

Како могу да дефинишем сопствено пресловљавање назива датотека?

Додајте сличан кôд у датотеку functions.php своје теме:

/**
 * 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 );

Како могу да омогућим рад додатка у јавном делу?

Додајте следећи кôд у главну датотеку свог додатка (или mu-додатка). Овај кôд неће радити ако се дода у датотеку functions.php теме.

/**
 * Filter status allowed Cyr To Lat plugin to work.
 *
 * @param bool $allowed
 *
 * @return bool
 */
function my_ctl_allow( bool $allowed ): bool {
    $uri = isset( $_SERVER['REQUEST_URI'] ) ?
        sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) :
        '';

    if ( 0 === strpos( $uri, '/divi-comments' ) ) {
        return true;
    }

    return $allowed;
}

add_filter( 'ctl_allow', 'my_ctl_allow' );

Како могу да ограничим врсте чланака за позадинско претварање?

Додајте сличан кôд у датотеку functions.php своје теме:

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

Како могу да претворим много чланака/појмова помоћу wp-cli?

Употребите следећу наредбу у конзоли:

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

Где је
-post_type списак врста чланака,
-post_status списак стања чланака.

Које понашање WooCommerce атрибута је подржано у 7.0?

Cyr-To-Lat 7.0 изричито обрађује нова и ажурирана кратка имена WooCommerce производа, кратка имена категорија и ознака производа, кратка имена глобалних атрибута, кратка имена појмова глобалних атрибута, кључеве локалних атрибута производа, кључеве атрибута варијација, захтеве за додавање у корпу у јавном делу, учитавање сесије корпе, чување преко REST/API-ја и токове чувања у администрацији.

Постојећи WooCommerce атрибути се не преносе аутоматски при надоградњи додатка. То значи да постојеће глобалне таксономије pa_*, кључеви локалних атрибута производа и кључеви атрибута варијација задржавају своје тренутне сачуване вредности док их намерно не промените. Будућа алатка за пренос требало би да буде засебна и да прво нуди пробно покретање, како би власници продавница могли да сагледају утицај пре било каквог преписивања.

Како могу безбедно поново да направим сличице?

Поновно прављење сличица наредбом wp media regenerate може покварити везе у старим чланцима јер се називи датотека пресловљавају.

Да бисте то избегли, искључите додатак cyr2lat током поновног прављења:

wp media regenerate --skip-plugins=cyr2lat

Могу ли да допринесем?

Да, можете!

Где да пријавим безбедносне грешке пронађене у овом додатку?

Безбедносне рањивости пријавите е-поштом на:

security@kagg.eu

Приликом пријаве рањивости наведите што више информација како бисте нам помогли да поновимо и истражимо проблем, на пример:

  • Јасан опис рањивости
  • Кораци за понављање
  • Доказ концепта или кôд за искоришћавање (ако је доступан)
  • Погођена издања

Прегледаћемо вашу пријаву и одговорити што је пре могуће.

Рецензије

12. мај 2026. 5 одговора
Cyr-To-Lat Версия 6.7.0 не работает при создании и быстром редактировании категории woocommerce в шаблоне woodmart (тестировалось с 8.3.9 и 8.4.1), при обычном редактировании все корректно. Предыдущая версия Cyr-To-Lat 6.6.0 функционировала без проблем. P.S. в версии 6.8.0 все исправлено.
22. новембар 2024. 1 одговор
Рос мову прибрали в плагіні чи це глюк ? Якщо прибрали то до якої версії вона була?
6. мај 2024. 2 одговора
The plugin supports Russian, Belorussian, Ukrainian, Bulgarian, Macedonian, Serbian and Kazakh characters. Unfortunately, support for other languages (Greek, Armenian, Georgian, Hebrew, and Chinese) does not work at all.
12. фебруар 2024. 1 одговор
С последним обновлением стали корректно работать ранее созданные атрибуты, раньше после выгрузки отключал плагин, сейчас работает как надо. Спасибо!
15. октобар 2023. 3 одговора
Плагин отличный (6.0.5), транслитерировал урлы (слаги для продвинутых) записей, страниц и меню и всего остального.Обратите внимание, что транслитерацию урлов всех меток (/tag/) и категорий (/category/) он тоже сделает, а в настройках нет отдельных пунктов отвечающих за метки и категории.
Прочитај свих 98 рецензија

Сарадници и градитељи

„Cyr-To-Lat“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.

Сарадници

„Cyr-To-Lat“ је преведен на 13 језика. Хвала преводиоцима на њиховим доприносима.

Преведите „Cyr-To-Lat“ на свој језик.

Заинтересовани сте за развој?

Прегледајте кôд, погледајте SVN складиште или се претплатите на дневник развоја преко RSS-а.

Дневник измена

7.1.0 (8. август 2026.)

  • Ојачано пресловљавање назива датотека и подешавања за вишесајтно окружење.
  • Ојачана провера исправности података у администрацији.
  • Исправљено прављење кратких имена за нове нацрте које прави Yoast Duplicate Post када је умножавање изворног кратког имена искључено.
  • Спречена фатална грешка када WooCommerce покрене куку за читање производа без објекта производа.

7.0.2 (24. мај 2026.)

  • Исправљени стари локални WooCommerce атрибути варијација са интерпункцијом у називима атрибута након надоградње са издања старијих од 7.0.

7.0.1 (20. мај 2026.)

  • Дијагностика старог моста sanitize_title промењена тако да користи посебну константу CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGE уместо WP_DEBUG.
  • Исправљени стари локални WooCommerce атрибути варијација, укључујући варијације Any, након надоградње са издања старијих од 7.0.
  • Исправљена двострука кратка имена WooCommerce производа када се постојећи производ ажурира са празним кратким именом.

7.0.0 (18. мај 2026.)

  • Обрада кратких имена преуређена у изричите услуге за чланке, појмове, називе датотека, WooCommerce атрибуте, атрибуте варијација, позадинско претварање и WP-CLI путање.
  • Побољшана покривеност Гутенберга кроз обраду кратких имена преко REST-а/позадинског дела.
  • Побољшана подршка за WooCommerce за токове чувања производа, таксономија, глобалних атрибута, локалних атрибута, варијација, корпе у јавном делу, REST/API-ја и администрације.
  • Додат филтер за усаглашеност ctl_enable_legacy_sanitize_title_bridge за широко старо понашање sanitize_title.
  • Документовано је да се постојећи WooCommerce атрибути не преносе аутоматски у 7.0; будући рад на преносу мора бити засебан ток рада са претходним пробним покретањем.
  • Документована стратегија тестирања са приоритетом на позадинском делу, без обавезних зависности Codeception или Playwright за објављивање.

Погледајте дневник измена за сва издања.