{"id":127787,"date":"2020-08-27T13:03:00","date_gmt":"2020-08-27T13:03:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/serbian-transliteration\/"},"modified":"2026-03-06T15:06:48","modified_gmt":"2026-03-06T15:06:48","slug":"serbian-transliteration","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/serbian-transliteration\/","author":15088096,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.4.4","stable_tag":"2.4.4","tested":"6.9.4","requires":"5.4","requires_php":"7.4","requires_plugins":null,"header_name":"Transliterator \u2013 Multilingual and Multi-script Text Conversion","header_author":"Ivijan-Stefan Stipi\u0107","header_description":"The only Serbian transliteration plugin for WordPress that actually works.","assets_banners_color":"b5b7ba","last_updated":"2026-03-06 15:06:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/serbian-transliteration\/","header_author_uri":"https:\/\/profiles.wordpress.org\/ivijanstefan\/","rating":4.8,"author_block_rating":0,"active_installs":3000,"downloads":151963,"num_ratings":92,"support_threads":3,"support_threads_resolved":2,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"creativform","date":"2024-08-28 07:44:53"},"2.0.1":{"tag":"2.0.1","author":"creativform","date":"2024-08-30 09:44:04"},"2.0.2":{"tag":"2.0.2","author":"creativform","date":"2024-08-30 14:16:21"},"2.0.3":{"tag":"2.0.3","author":"creativform","date":"2024-08-31 11:25:13"},"2.0.4":{"tag":"2.0.4","author":"creativform","date":"2024-09-02 16:30:22"},"2.0.5":{"tag":"2.0.5","author":"creativform","date":"2024-09-04 06:47:22"},"2.0.6":{"tag":"2.0.6","author":"creativform","date":"2024-09-28 15:19:20"},"2.0.7":{"tag":"2.0.7","author":"creativform","date":"2024-10-03 17:12:54"},"2.0.8":{"tag":"2.0.8","author":"creativform","date":"2024-10-30 16:11:03"},"2.0.9":{"tag":"2.0.9","author":"creativform","date":"2024-11-16 17:38:23"},"2.1.0":{"tag":"2.1.0","author":"creativform","date":"2024-12-02 10:35:37"},"2.1.1":{"tag":"2.1.1","author":"creativform","date":"2024-12-04 17:34:45"},"2.1.2":{"tag":"2.1.2","author":"creativform","date":"2024-12-11 20:00:01"},"2.1.3":{"tag":"2.1.3","author":"creativform","date":"2024-12-12 08:15:58"},"2.1.4":{"tag":"2.1.4","author":"creativform","date":"2024-12-29 19:18:33"},"2.1.5":{"tag":"2.1.5","author":"creativform","date":"2025-01-18 19:43:58"},"2.1.6":{"tag":"2.1.6","author":"creativform","date":"2025-01-24 18:46:05"},"2.1.7":{"tag":"2.1.7","author":"creativform","date":"2025-01-27 16:52:43"},"2.1.8":{"tag":"2.1.8","author":"creativform","date":"2025-02-12 21:25:54"},"2.2.0":{"tag":"2.2.0","author":"creativform","date":"2025-02-20 18:29:16"},"2.2.1":{"tag":"2.2.1","author":"creativform","date":"2025-03-07 21:19:16"},"2.2.2":{"tag":"2.2.2","author":"creativform","date":"2025-03-10 06:53:18"},"2.2.3":{"tag":"2.2.3","author":"creativform","date":"2025-03-10 07:10:13"},"2.3.0":{"tag":"2.3.0","author":"creativform","date":"2025-04-09 20:16:41"},"2.3.1":{"tag":"2.3.1","author":"creativform","date":"2025-04-10 16:41:46"},"2.3.10":{"tag":"2.3.10","author":"ivijanstefan","date":"2025-11-19 09:25:37"},"2.3.2":{"tag":"2.3.2","author":"creativform","date":"2025-06-01 20:29:37"},"2.3.3":{"tag":"2.3.3","author":"creativform","date":"2025-06-07 15:42:44"},"2.3.4":{"tag":"2.3.4","author":"creativform","date":"2025-07-18 20:25:29"},"2.3.5":{"tag":"2.3.5","author":"creativform","date":"2025-07-22 10:52:06"},"2.3.6":{"tag":"2.3.6","author":"creativform","date":"2025-07-25 05:28:42"},"2.3.7":{"tag":"2.3.7","author":"creativform","date":"2025-07-25 06:45:21"},"2.3.8":{"tag":"2.3.8","author":"ivijanstefan","date":"2025-11-03 19:11:13"},"2.3.9":{"tag":"2.3.9","author":"ivijanstefan","date":"2025-11-04 13:17:08"},"2.4.0":{"tag":"2.4.0","author":"ivijanstefan","date":"2025-12-03 12:25:35"},"2.4.1":{"tag":"2.4.1","author":"ivijanstefan","date":"2026-02-25 09:10:10"},"2.4.2":{"tag":"2.4.2","author":"ivijanstefan","date":"2026-03-02 15:17:08"},"2.4.3":{"tag":"2.4.3","author":"ivijanstefan","date":"2026-03-03 10:54:43"},"2.4.4":{"tag":"2.4.4","author":"ivijanstefan","date":"2026-03-06 15:06:48"}},"upgrade_notice":{"2.4.4":"<ul>\n<li>Fixed nested plugins_loaded issue<\/li>\n<li>Refactored REST init<\/li>\n<li>Versioned APCu class map<\/li>\n<li>Secured and sanitized AJAX HTML input\/output<\/li>\n<li>Purge autoloader cache on update<\/li>\n<li>UX update<\/li>\n<\/ul>"},"ratings":{"1":5,"2":0,"3":0,"4":0,"5":87},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2374607,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2374607,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1280x640.png":{"filename":"banner-1280x640.png","revision":3469374,"resolution":"1280x640","location":"assets","locale":""},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3469374,"resolution":"1544x500","location":"assets","locale":""},"banner-1880x609.png":{"filename":"banner-1880x609.png","revision":3469374,"resolution":"1880x609","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3469374,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3476504,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/options-general.php?page=transliteration-settings\",\"preferredVersions\":{\"php\":\"7.4\",\"wp\":\"6.8\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"serbian-transliteration\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":{"serbian-transliteration\/script-selector":{"name":"serbian-transliteration\/script-selector","title":"Script Selector"}},"tagged_versions":["2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.10","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.3.9","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3469240,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3469240,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3144093,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2478677,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2445445,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3027001,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3144093,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":2413087,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3144093,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"Cyrillic page before serbian transliteration","2":"Latin page after serbian transliteration","3":"Transliteration settings","4":"Converter for transliterating Cyrillic into Latin and vice versa","5":"Permalink tools","6":"Shortcodes","7":"Available PHP Functions","8":"Language script inside Menus","9":"Automated test"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[22264,6562,22508,190140,8312],"plugin_category":[],"plugin_contributors":[88088,125492,231089],"plugin_business_model":[],"class_list":["post-127787","plugin","type-plugin","status-publish","hentry","plugin_tags-cyr2lat","plugin_tags-cyrillic","plugin_tags-latin","plugin_tags-latinisation","plugin_tags-transliteration","plugin_contributors-creativform","plugin_contributors-ivijanstefan","plugin_contributors-tihi","plugin_committers-creativform","plugin_committers-ivijanstefan"],"banners":{"banner":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/banner-772x250.png?rev=3469374","banner_2x":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/banner-1544x500.png?rev=3469374","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/icon-128x128.png?rev=2374607","icon_2x":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/icon-256x256.png?rev=2374607","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-1.png?rev=3469240","caption":"Cyrillic page before serbian transliteration"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-2.png?rev=3469240","caption":"Latin page after serbian transliteration"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-3.png?rev=3144093","caption":"Transliteration settings"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-4.png?rev=2478677","caption":"Converter for transliterating Cyrillic into Latin and vice versa"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-5.png?rev=2445445","caption":"Permalink tools"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-6.png?rev=3027001","caption":"Shortcodes"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-7.png?rev=3144093","caption":"Available PHP Functions"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-8.png?rev=2413087","caption":"Language script inside Menus"},{"src":"https:\/\/ps.w.org\/serbian-transliteration\/assets\/screenshot-9.png?rev=3144093","caption":"Automated test"}],"raw_content":"<!--section=description-->\n<p>\u2705 <strong>MULTILINGUAL SCRIPT SUPPORT<\/strong>:<br \/>\n<em>Serbian, Bosnian, Montenegrin, Russian, Belarusian, Bulgarian, Macedonian, Kazakh, Ukrainian, Georgian, Greek, Arabic, Armenian, Uzbek, Tajik, Kyrgyz, Mongolian, Bashkir<\/em><\/p>\n\n<p>This plugin provides a modern, modular, and extensible solution for <strong>transliterating WordPress content<\/strong> between <strong>Cyrillic and Latin scripts<\/strong> - with additional support for Arabic-based and other regional alphabets. Originally launched as \"Serbian Transliteration,\" it has evolved into a <strong>general-purpose transliteration tool<\/strong> built to serve a wider multilingual audience.<\/p>\n\n<p>\ud83d\udcdd <a href=\"https:\/\/buymeacoffee.com\/ivijanstefan\/transliterator-wordpress-transforming-language-barriers-bridges\">Discover the evolution of this plugin<\/a><\/p>\n\n<p>You can transliterate entire posts, pages, permalinks, media filenames, usernames, and even selectively control output using built-in shortcodes. Whether you're managing a bilingual site or just want cleaner slugs, <strong>you remain in control<\/strong>.<\/p>\n\n<p>\ud83d\udd01 Features include:<\/p>\n\n<ul>\n<li>Real-time conversion between <strong>Cyrillic and Latin scripts<\/strong><\/li>\n<li>Transliteration of <strong>titles, content, permalinks, filenames, usernames<\/strong><\/li>\n<li>Shortcodes for <strong>partial or conditional transliteration<\/strong><\/li>\n<li>Bilingual search across both script types<\/li>\n<li>Developer API with hooks and filters<\/li>\n<li>No database changes \u2013 safe to enable or disable anytime<\/li>\n<li>Supports Arabic, Greek, Cyrillic, and regional language variants<\/li>\n<\/ul>\n\n<p>All settings are available under <code>Settings \u2192 Transliteration<\/code>.<\/p>\n\n<p>\ud83d\udce6 In terms of functionality, this plugin covers and extends what several popular tools offer individually, such as: <a href=\"https:\/\/wordpress.org\/plugins\/srbtranslatin\/\">SrbTransLatin<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cyr2lat\/\">Cyr-To-Lat<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/allow-cyrillic-usernames\/\">Allow Cyrillic Usernames<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/filenames-to-latin\/\">Filenames to Latin<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cyrillic-slugs\/\">Cyrillic Permalinks<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/latin-now\/\">Latin Now!<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cyrillic2latin\/\">Cyrillic 2 Latin<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/ukr-to-lat\/\">Ukr-To-Lat<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cyr3lat\/\">Cyr to Lat Enhanced<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/hytolat\/\">HyToLat<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cyrlitera\/\">Cyrlitera<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/arabic-to-lat\/\">Arabic to Latin<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/geo-to-lat\/\">Geo to Lat<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/sp-rtl-rus-to-lat\/\">RusToLat<\/a>, and <a href=\"https:\/\/sr.wordpress.org\/files\/2018\/12\/srlatin.zip\">srlatin<\/a>.<\/p>\n\n<p>Instead of relying on multiple separate tools, this all-in-one plugin brings together everything you need in a single, lightweight package - without compromising performance or flexibility.<\/p>\n\n<p>Every feature in this plugin can be selectively enabled or disabled based on your needs. Additionally, developers can make use of available filters and hooks to further customize behavior. We've designed this plugin with flexibility and compatibility in mind.<\/p>\n\n<p>\ud83e\udde9 Fully compatible with popular plugins and page builders, including:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/polylang\/\">Polylang<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/elementor\/\">Elementor<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/cf-geoplugin\/\">CF Geo Plugin<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/wordpress-seo\/\">Yoast SEO<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/data-tables-generator-by-supsystic\/\">Data Tables Generator by Supsystic<\/a><\/li>\n<li><a href=\"https:\/\/www.sliderrevolution.com\/\">Slider Revolution<\/a><\/li>\n<li><a href=\"https:\/\/avada.theme-fusion.com\/\">Avada theme<\/a><\/li>\n<li><a href=\"https:\/\/themify.me\/\">Themify<\/a><\/li>\n<li><a href=\"https:\/\/www.elegantthemes.com\/gallery\/divi\/\">Divi<\/a><\/li>\n<\/ul>\n\n<p>Make your multilingual content readable, searchable, and SEO-friendly - <strong>Transliterate once. Control forever. Latin now!<\/strong><\/p>\n\n<h4>Plugin Updates<\/h4>\n\n<p>We regularly update the Transliterator plugin to improve its functionality, enhance performance, and ensure compatibility with the latest versions of WordPress and PHP. Keep your plugin up to date to benefit from the latest features and fixes. To stay informed about updates, visit our plugin page on WordPress.org or follow us on social media.<\/p>\n\n<h4>Support and Feedback<\/h4>\n\n<p>If you encounter any issues or have suggestions for improving the plugin, please don't hesitate to reach out. You can contact us through the support forum on WordPress.org, or directly via <a href=\"https:\/\/github.com\/InfinitumForm\/serbian-transliteration\">GitHub repository<\/a>. We value your feedback and are committed to providing prompt and effective support.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<p>The Transliterator plugin is compatible with a wide range of WordPress versions and works seamlessly with many popular plugins. However, due to the vast number of available plugins, there's a small chance of encountering conflicts. If you experience any issues, please check for plugin conflicts and update your WordPress installation and all plugins.<\/p>\n\n<h4>Contributing<\/h4>\n\n<p>We welcome contributions from the community! If you're a developer or a user with ideas for improvement, visit our <a href=\"https:\/\/github.com\/InfinitumForm\/serbian-transliteration\">GitHub repository<\/a> to contribute. You can report issues, suggest new features, or submit pull requests.<\/p>\n\n<h4>Credits<\/h4>\n\n<p>Special thanks to all contributors and beta testers who helped in developing and refining this plugin. Your feedback and support are invaluable.<\/p>\n\n<!--section=installation-->\n<ol>\n<li><p><strong>Install via WordPress Admin:<\/strong><\/p>\n\n<ul>\n<li>Navigate to <code>WP-Admin -&gt; Plugins -&gt; Add New<\/code>.<\/li>\n<li>In the search bar, type \"WordPress Transliteration\".<\/li>\n<li>Once you find the plugin, click on the \"Install Now\" button.<\/li>\n<\/ul><\/li>\n<li><p><strong>Install via Upload:<\/strong><\/p>\n\n<ul>\n<li>Download the <strong>serbian-transliteration.zip<\/strong> file.<\/li>\n<li>Go to <code>WP-Admin -&gt; Plugins -&gt; Add New -&gt; Upload Plugin<\/code>.<\/li>\n<li>Click on \"Choose File\", select the downloaded ZIP file, and then click \"Install Now\".<\/li>\n<li>Alternatively, you can manually upload the unzipped plugin folder to the <code>\/wp-content\/plugins<\/code> directory via FTP.<\/li>\n<\/ul><\/li>\n<li><p><strong>Activate the Plugin:<\/strong><\/p>\n\n<ul>\n<li>Once the plugin is installed, go to <code>WP-Admin -&gt; Plugins<\/code>.<\/li>\n<li>Find \"WordPress Transliteration\" in the list and click \"Activate\".<\/li>\n<\/ul><\/li>\n<li><p><strong>Configure the Plugin:<\/strong><\/p>\n\n<ul>\n<li>After activation, go to <code>Settings -&gt; Transliteration<\/code> in your WordPress admin panel.<\/li>\n<li>Adjust the settings according to your needs and save the changes.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20romanization%20or%20latinisation%3F\"><h3>What is Romanization or Latinisation?<\/h3><\/dt>\n<dd><p><strong>Romanisation or Latinisation<\/strong>, in linguistics, is the conversion of writing from a different writing system to the Roman (Latin) script, or a system for doing so. Methods of romanization include transliteration, for representing written text, and transcription, for representing the spoken word, and combinations of both.<\/p><\/dd>\n<dt id=\"which%20romanization%20does%20this%20plugin%20support%3F\"><h3>Which Romanization does this plugin support?<\/h3><\/dt>\n<dd><p>This plugin supports several world letters written in Cyrillic and enables their Romanization<\/p>\n\n<ul>\n<li>Romanization of Serbian what include Bosnian and Montenegrin<\/li>\n<li>Romanization of Russian<\/li>\n<li>Romanization of Belarusian<\/li>\n<li>Romanization of Bulgarian<\/li>\n<li>Romanization of Macedonian<\/li>\n<li>Romanization of Kazakh<\/li>\n<li>Romanization of Ukrainian<\/li>\n<li>Romanization of Greek<\/li>\n<li>Romanization of Arabic (EXPERIMENTAL)<\/li>\n<li>Romanization of Armenian (EXPERIMENTAL)<\/li>\n<\/ul>\n\n<p>Each of these transliterations is created separately and follows the rules of the active language.<\/p><\/dd>\n<dt id=\"what%20is%20the%20best%20practice%20for%20transliteration%3F\"><h3>What is the best practice for transliteration?<\/h3><\/dt>\n<dd><p>Through various experiences, we came to the conclusion that it is best to create the entire site in Cyrillic and enable transliteration for Latin.<\/p>\n\n<p>The reason for this solution lies in the problem of transliteration of Latin into Cyrillic due to encoding and, depending on the server, can create certain problems, especially in communication with the database. Creating a site in Cyrillic bypasses all problems and is very easily translated into Latin.<\/p><\/dd>\n<dt id=\"is%20latin%20better%20for%20seo%20than%20cyrillic%3F\"><h3>Is Latin better for SEO than Cyrillic?<\/h3><\/dt>\n<dd><p>According to Google documentation and discussions on forums and blogs, it is concluded that Latin is much better for SEO and it is necessary to practice Latin at least when permalinks and file names are in Latin, while the text can be in both letters but Latin is always preferred.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20cyrillic%20letters%20into%20latin%20with%20this%20plugin%3F\"><h3>Can I translate Cyrillic letters into Latin with this plugin?<\/h3><\/dt>\n<dd><p>YES! Without any problems or conflicts.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20latin%20into%20cyrillic%20with%20this%20plugin%3F\"><h3>Can I translate Latin into Cyrillic with this plugin?<\/h3><\/dt>\n<dd><p>YES! This plugin can translate a Latin site into Cyrillic, but this is not recommended and often causes problems. It is suggested that this approach be approached experimentally.<\/p>\n\n<p>The best practice is to create a Cyrillic site including all other content and in the end just add transliteration to navigation so that the visitor can choose the desired script.<\/p><\/dd>\n<dt id=\"how%20to%20transliterate%20cyrillic%20permalinks%3F\"><h3>How to transliterate Cyrillic permalinks?<\/h3><\/dt>\n<dd><p>This plugin has a tool that transliterates already recorded permalinks in your database. This option is safe but requires extra effort to satisfy SEO.<\/p>\n\n<p>With this tool, you permanently change the permalinks in your WordPress installation and a 404 error can occur if you visit old Cyrillic paths.<\/p>\n\n<p>Therefore, you must re-asign your sitemap or make additional efforts to redirect old permalinks to new ones, which our plugin does not do.<\/p>\n\n<p>If you are using WP-CLI, this function can also be started with a simple shell command: <code>wp transliterate permalinks<\/code><\/p><\/dd>\n<dt id=\"how%20can%20i%20define%20my%20own%20substitutions%3F\"><h3>How can I define my own substitutions?<\/h3><\/dt>\n<dd><p>You can customize the transliteration process by defining your own substitutions directly in your theme's <code>functions.php<\/code> file. This is done by using filters specific to the language you want to modify.<\/p>\n\n<p>To create custom substitutions, use the following filter:<\/p>\n\n<pre><code>add_filter( 'transliteration_map_{$locale}', 'function_callback', 10, 1 );\n<\/code><\/pre>\n\n<p>Here's an example for Serbian (<code>sr_RS<\/code>) that demonstrates how to modify both single letters and multiple-letter combinations.<\/p>\n\n<pre><code>\/*\n  * Modify conversion table for Serbian language.\n  *\n  * @param array $map Conversion map.\n  *\n  * @return array\n  *\/\nfunction my_transliteration__sr_RS( $map ) {\n\n    \/\/ Example for 2 or more letters\n    $new_map = [\n        '\u040a\u0430' =&gt; 'nja',\n        '\u040a\u0435' =&gt; 'nje',\n        '\u041e\u0431\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0438' =&gt; 'Objedinjeni'\n    ];\n    $map = array_merge($new_map, $map);\n\n    \/\/ Example for one letter\n    $new_map = [\n        '\u0410' =&gt; 'X',\n        '\u0411' =&gt; 'Y',\n        '\u0412' =&gt; 'Z'\n    ];\n    $map = array_merge($map, $new_map);\n\n    return $map;\n}\nadd_filter( 'transliteration_map_sr_RS', 'my_transliteration__sr_RS', 10, 1 );\n<\/code><\/pre>\n\n<p>In this example:\n- The first <code>$new_map<\/code> array defines substitutions for combinations of two or more letters.\n- The second <code>$new_map<\/code> array defines substitutions for individual letters.<\/p>\n\n<p>This custom mapping will override the default transliteration rules for the specified language (<code>sr_RS<\/code> in this case).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.4.4<\/h4>\n\n<ul>\n<li>Fixed nested plugins_loaded issue<\/li>\n<li>Refactored REST init<\/li>\n<li>Versioned APCu class map<\/li>\n<li>Secured and sanitized AJAX HTML input\/output<\/li>\n<li>Purge autoloader cache on update<\/li>\n<li>UX update<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li>Fixing issue with PHP 8.4 + FPM + OPcache<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Fixed PHP 8.4 compatibility issue in autoloader (private method visibility).<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Fixed problem with transition codes<\/li>\n<li>Fixed issue with shortcodes conflicts<\/li>\n<li>Fixed a problem with the transfer algorithm<\/li>\n<li>Improved UX<\/li>\n<li>Removed ads<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Fixed language detection with PLL plugin<\/li>\n<li>Fixed problem with stuck loops<\/li>\n<li>Fixed navigation issue<\/li>\n<li>Fixed gettext problems<\/li>\n<\/ul>","raw_excerpt":"Universal transliteration for permalinks, posts, tags, categories, media, files, search and more, rendering them universally readable.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/127787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=127787"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ivijanstefan"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=127787"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=127787"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=127787"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=127787"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=127787"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=127787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}