Type to search.

#537 by installs

Cyr to Lat Enhanced

by Ivijan-Stefan StipicVersion 3.7.5

Converts Cyrillic, European and Georgian characters in post, term slugs and media file names into Latin characters.

Active installs
80,000+
#537 of 1,000
Downloads, all time
713.3K
713,295
Downloads, 30 days
4.9K
1.4K in the last 7
Rating
4.6 / 5
51 reviews
Last updated
2 months ago
Aug 17, 2026
Version
3.7.5
14 releases

Upkeep and compatibility

Last updatedAugust 17, 2026Updated in the last 3 months
Tested up toWordPress 7.1.4Covers WordPress 7.1.4, the current release
Needs WordPress5.0 or newer
Needs PHP7.4 or newer
First publishedJuly 4, 2011
Support, last two monthsNo threads opened

Reviews

4.6 / 5 from 51 reviews

Reviews by star rating
5 stars43
4 stars2
3 stars2
2 stars1
1 star3

Downloads, last 30 days

Low 76 a dayHigh 337 a day

What the author says it does

Cyr to Lat Enhanced automatically converts Cyrillic, European and Georgian characters in post slugs, term slugs and media file names into Latin characters.

It helps maintain clean, readable and consistent URLs on WordPress sites that use non-Latin scripts.

The plugin integrates directly with WordPress core sanitization (sanitize_title and sanitize_file_name) and performs transliteration at the moment slugs and filenames are generated.

It does not modify post content, titles or front-end text. Its scope is strictly limited to URLs and file names.

On activation, existing post and term slugs are converted in the background using safe, batch-based processing via WP-Cron.

WordPress core APIs are used to preserve permalink integrity and existing redirects.

Transliteration is based on an ISO 9-style mapping table with built-in support for:

– Russian

– Belarusian

– Ukrainian

– Bulgarian

– Macedonian

– Georgian

Locale-specific adjustments are applied automatically, and the transliteration table can be customized using a public filter.

Cyr to Lat Enhanced is intentionally lightweight and focused:

– no admin interface

– no settings pages

– no bidirectional conversion

– no data collection or tracking

The plugin continues the cyr2lat / cyr3lat lineage and remains compatible with the original approach introduced by Sergey Biryukov.

Advanced Transliteration

The opening of the plugin's own description. The full text, installation notes and changelog are on its WordPress.org page.

Questions the author answers

How can I define my own substitutions?

You can modify or extend the transliteration table by using the ctl_table filter.

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

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

How can I adjust the background batch size?

By default, the plugin processes slugs in batches to avoid timeouts.

On slower or low-memory servers, you may want to reduce the batch size.

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

function my_ctl_batch_size( $size, $context ) { // Apply the same batch size for posts and terms. return 100; } add_filter( 'ctl_enhanced_batch_size', 'my_ctl_batch_size', 10, 2 );

Can I modify the generated slugs after transliteration?

Yes. You can adjust the final slug value after transliteration and normalization

by using the ctl_enhanced_sanitized_title filter.

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

function my_ctl_modify_slug( $slug, $source, $context ) { // Example: append a suffix to all generated slugs. return $slug . '-custom'; } add_filter( 'ctl_enhanced_sanitized_title', 'my_ctl_modify_slug', 10, 3 );

Can I modify media file names after transliteration?

Yes. You can adjust media file names after transliteration and normalization

by using the ctl_enhanced_sanitized_file_name filter.

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

function my_ctl_modify_filename( $filename, $source ) { // Example: prepend a prefix to all media file names. return 'media-' . $filename; } add_filter( 'ctl_enhanced_sanitized_file_name', 'my_ctl_modify_filename', 10, 2 );

What is the difference between Cyr to Lat Enhanced, cyr2lat and Transliterator?

Cyr to Lat Enhanced is a continuation of the original cyr2lat / cyr3lat lineage.

Its purpose is strictly limited to transliteration of post slugs, term slugs and media file names.

The original cyr2lat plugin by Sergey Biryukov introduced a simple and effective way to generate Latin slugs from Cyrillic titles.

Latest changelog entry

3.7.5

  • WordPress 7.1 compatibility

Tagged

Plugins that share its tags

#200 by installs

Cyr-To-Lat

by Sergey Biryukov

Convert Non-Latin characters in post, page and term slugs to Latin characters.

Installs
300,000+
Rating
4.7 (98)
Updated
3 months ago

Convert Cyrillic and Georgian URLs and file names to Latin. Works for all post types, pages, and terms. Custom characters, URL redirects & more.

Installs
40,000+
Rating
4.6 (62)
Updated
31 days ago

#909 by installs

AutoConvert Greeklish Permalinks

by Dimitris Mavroudis

Convert Greek characters to Latin on all your site's permalinks instantly.

Installs
40,000+
Rating
4.9 (26)
Updated
9 months ago

Where this page's numbers come from

Read from the WordPress.org plugin API on , when WordPress 7.1.4 was the current release. WordPress.org rounds active installs into buckets. These are the directory's figures, not my verdict, and I haven't tested this plugin.