= 7.1.0 (08.08.2026) =
* Hardened filename transliteration and multisite settings.
* Hardened data validation in admin.
* Fixed slug generation for new drafts created by Yoast Duplicate Post when copying the original slug is disabled.
* Prevented a fatal error when WooCommerce fires the product-read hook without a product object.

= 7.0.2 (24.05.2026) =
* Fixed legacy WooCommerce local variation attributes with punctuation in attribute names after upgrading from versions before 7.0.

= 7.0.1 (20.05.2026) =
* Changed legacy sanitize_title bridge diagnostics to use the dedicated CYR_TO_LAT_DEBUG_LEGACY_SANITIZE_TITLE_BRIDGE constant instead of WP_DEBUG.
* Fixed legacy WooCommerce local variation attributes, including `Any` variations, after upgrading from versions before 7.0.
* Fixed duplicate WooCommerce product slugs when an existing product is updated with an empty slug.

= 7.0.0 (18.05.2026) =
* Refactored slug handling into explicit services for posts, terms, filenames, WooCommerce attributes, variation attributes, background conversion, and WP-CLI paths.
* Improved Gutenberg coverage through REST/backend slug handling.
* Improved WooCommerce support for product, taxonomy, global attribute, local attribute, variation, frontend cart, REST/API, and admin save flows.
* Added the `ctl_enable_legacy_sanitize_title_bridge` compatibility filter for broad legacy `sanitize_title` behavior.
* Documented that existing WooCommerce attributes are not automatically migrated in 7.0; future migration work must be a separate dry-run-first workflow.
* Documented the backend-first testing strategy without required Codeception or Playwright release dependencies.

= 6.8.0 (10.05.2026) =
* Fixed returning unexpected results by REST API in some cases.
* Fixed import of WooCommerce products.
* Fixed transliteration of product categories, brands, and tags.

= 6.7.0 (01.04.2026) =
* The minimum required PHP version is now 7.4.
* The minimum required WordPress version is now 6.0.
* Fixed a fatal error occurred with WP-CLI in a rare case.
* Fixed transliteration of WC local attributes.
* Tested with WordPress 7.0.

= 6.6.0 (30.11.2025) =
* Fixed the deprecated function message in Main.php with WordPress 6.9.
* Tested with PHP 8.4.
* Tested with WordPress 6.9.
* Tested with WooCommerce 10.3.

= 6.5.0 (24.10.2025) =
* Fixed transliteration of tags during editing.

= 6.4.1 (03.05.2025) =
* Fixed the layout of messages on the Tables page.
* Tested with WordPress 6.8.
* Tested with WooCommerce 9.8.

= 6.3.0 (22.12.2024) =
* Added a warning message on the Tables page when the active table does not match the site locale.
* Removed fix for translation after WordPress 6.5+ due to performance issues.

= 6.2.3 (24.11.2024) =
* Fixed the deprecation error with PHP 8.4.
* Tested with PHP 8.4.

= 6.2.2 (15.11.2024) =
* Fixed _load_textdomain_just_in_time notice with WordPress 6.7.
* Some translations were empty with WordPress 6.5+.

= 6.2.1 (13.11.2024) =
* Fixed the layout of the Converter page.
* Fixed issues reported by Plugin Check Plugin.

= 6.2.0 (13.11.2024) =
* Dropped support for PHP 7.0 and 7.1. The minimum required PHP version is now 7.2.
* The minimum required WordPress version is now 5.3.
* Fixed the notice about the _load_textdomain_just_in_time function being called incorrectly.
* Tested with WordPress 6.7.
* Tested with WooCommerce 9.4.

= 6.1.0 (09.03.2024) =
* Tested with WordPress 6.5.
* Tested with WooCommerce 8.6.
* Fixed the error on the System Info tab when post types or post statuses are not set.

= 6.0.8 (14.02.2024) =
* Improved detection of the Gutenberg editor.
* Fixed processing of product attributes.

= 6.0.7 (11.02.2024) =
* Tested with WooCommerce 8.5.
* Added redirect from the cyrillic post title when creating a new post.
* Added description of post types and post statuses on the Converter page.
* Fixed displaying all file descriptions in the Theme Editor in the current locale.
* Fixed PHP warning in the SettingsBase.
* Fixed the output of variable product attributes.

= 6.0.6 (14.01.2024) =
* Tested with WordPress 6.4.
* Tested with WooCommerce 8.4.
* Tested with PHP 8.3.
* Fixed documentation on ctl_allow filter.
* Fixed the improper display of the "rate plugin" message on options.php.

= 6.0.5 (09.10.2023) =
* Fixed displaying file descriptions in the Theme Editor; now in the current locale.

= 6.0.4 (23.09.2023) =
* Fixed disappeared file descriptions on the Theme File Editor page.

= 6.0.3 (29.07.2023) =
* Fixed the fatal error with Jetpack sync.

= 6.0.2 (26.07.2023) =
* Fixed the fatal error in admin_footer_text().

= 6.0.1 (26.07.2023) =
* Fixed the fatal error on the System Info page with empty options.

= 6.0.0 (26.07.2023) =
* Dropped support of PHP 5.6. The Minimum required PHP version is 7.0 now.
* Tested with WordPress 6.3.
* Tested with WooCommerce 7.9.
* Added System Info tab.
* Added filter 'ctl_allow'
* Fixed the console error when saving table data.
* Fixed the current table setting on the Tables page with WPML.

= 5.5.3 (15.07.2023) =
* Tested with WooCommerce 7.8.
* Fixed deprecation error "strpos(): Passing null to parameter" appeared in debug.log.

= 5.5.2 (31.03.2023) =
* Fixed transliteration of tags with Polylang and WPML.

= 5.5.1 (21.03.2023) =
* Fixed transliteration of attributes on the WC frontend.

= 5.5.0 (18.03.2023) =
* Tested with WordPress 6.2.
* Tested with WooCommerce 7.5.
* Improved performance of the Tables settings page.
* Fixed showing posts by tags on the frontend.
* Fixed showing non-transliterated cyrillic tags on the backend.

= 5.4.0 (15.12.2022) =
* Tested with WordPress 6.1 and WooCommerce 7.2.
* Added compatibility with WC High-Performance order storage (COT) feature.

= 5.3.0 (23.05.2022) =
* Tested with WordPress 6.0 and WooCommerce 6.5.

= 5.2.7 (14.02.2022) =
* Tested with WooCommerce 6.2.
* Added PHP 8.1 support.

= 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 the issue with Polylang - do not modify admin language when editing a post.
* Fix the issue with JetPack - fatal error on synchronization.
* Fix 404 on archives created with WPML before activation of cyr2lat.

= 5.2.4 (07.09.2021) =
* Fix the 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 a bug with Polylang on REST request.

= 5.2.2 (06.09.2021) =
* Fix the 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 installation.
* 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 a bug creating a tag with the same slug as category.

= 5.0.1 (22.03.2021) =
* Fix a fatal error during a plugin load on some servers.

= 5.0.0 (18.03.2021) =
* Introduce tabs on the option page.
* Add options to select post-types and statuses for background conversion.
* Make colors compatible to WP official palette.
* Fix a 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 the bug with an attachment post type filtered by 'ctl_post_types'.
* Fix a 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 a bug with Polylang.

= 4.6.0 (10.02.2021) =
* Add compatibility with Polylang.
* Add a 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 the 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 a 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 the active table.
* Auto-saving of changed table.
* Info about the current locale on the settings page.
* Making a table with the current locale active at the settings 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 the 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 the 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 the setting of max_input_vars on some hosting.

= 4.3.1 (27.12.2019) =
* Added a requirement to have max_input_vars >= 5000.
* Added automatic plugin deactivation if requirements are not met.
* Added an 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 a 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 the 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) =
* Bumped up the required php version - to 5.6
* Added phpunit tests for all php versions from 5.6 to 7.3.
* Fixed php warning during conversion of existing slugs.
* Fixed locale selection during conversion of existing post slugs when WPML is activated.
* Fixed a bug with infinite redirection of some slugs after conversion of existing slugs.

= 4.1.2 (22.05.2019) =
* Fixed the bug with a fatal error in Cyr_To_Lat_Converter with php 5.2.

= 4.1.1 (22.05.2019) =
* Fixed the bug with a fatal error in Cyr_To_Lat_Converter with php 5.6.

= 4.1 (21.05.2019) =
* Added he_IL Table.
* Added plugin translation to Ukrainian.
* Added plugin translation to Swedish.
* Added phpunit tests. All plugin classes are 100% covered.
* Added js tests. All plugin js code is 100% covered.
* Fixed a bug with Jetpack sync.
* Fixed the empty slug bug while using characters outside of locale.

= 4.0 (24.04.2019) =
* Added a button to convert existing slugs, instead of a checkbox.
* Added admin notices during conversion of existing slugs.
* Added post_type and post_status parameters to the wp-cli command.
* Fixed text domain.
* Simplified package.json to make final js even smaller.
* Added phpunit tests to the plugin main class.
* Added travis.yml for continuous integration on GitHub, and improvement of code reliability.

= 3.7 (12.04.2019) =
* Added Belorussian, Macedonian, Kazakh tables.
* Fixed a bug with MariaDB during old slug conversion.
* Fixed no saving of user modifications in the default ISO9 table.

= 3.6.5 (11.02.2019) =
* Added queues for a background slug conversion process.

= 3.6.4 (06.02.2019) =
* Fixed the bug with `_wp_old_slug` redirect.
* Fixed the bug with `urldecode` in posts.

= 3.6.3 (04.02.2019) =
* Fixed a bug with network activation on multisite.

= 3.6.2 (01.02.2019) =
* Moved the menu in the settings section.
* Text domain fixup.

= 3.6.1 (31.01.2019) =
* Text domain corrected.

= 3.6 (31.01.2019) =
* Plugin settings page added.
* Settings page allows user to edit conversion tables online.
* Code converted to OOP.
* Code refactored to conform to WordPress Coding Standards.
* JS developed according to ECMA-6 script standards.
* The Settings page also works if JS is switched off in the browser.
* Composer and yarn added.
* Assets (banner, icon, admin icon) are added.

= 3.4 (21.01.2019) =
* Tested up to WP 5.1.
* Code formatting to follow WPCS.
* Strict comparisons.
* Braces {} removed from MySQL statements to allow checking of table names in PhpStorm.
* Updated .gitignore and README.md.
* Added a new filter `ctl_pre_sanitize_title`.

= 3.3 (18.01.2019) =
* WPCS 1.0.
* Fixed many bugs.
* Added Gutenberg support.

= 3.2 =
* Added transliteration when publishing via XML-RPC.
* Fixed Invalid Taxonomy error when viewing the most used tags.

= 3.1 =
* Fixed transliteration when saving a draft.

= 3.0 =
* Added automatic conversion of existing post, page, and term slugs.
* Added saving of existing post and page permalinks integrity.
* Added transliteration of attachment file names.
* Adjusted transliteration table in accordance with ISO 9 standard.
* Included Russian, Ukrainian, Bulgarian, and Georgian characters.
* Added filter for the transliteration table.

= 2.1 =
* Optimized filter call.

= 2.0 =
* Added check for existing terms.

= 1.0.1 =
* Updated description.

= 1.0 =
* Initial release.
