{"id":285,"date":"2013-07-23T16:08:32","date_gmt":"2013-07-23T16:08:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/loco-translate\/"},"modified":"2026-03-14T11:53:37","modified_gmt":"2026-03-14T11:53:37","slug":"loco-translate","status":"publish","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/loco-translate\/","author":10035318,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.8.3","stable_tag":"2.8.3","tested":"6.9.4","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"Loco Translate","header_author":"Tim Whitlock","header_description":"","assets_banners_color":"bdd2e9","last_updated":"2026-03-14 11:53:37","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/loco-translate\/","header_author_uri":"https:\/\/localise.biz\/wordpress\/plugin","rating":4.8,"author_block_rating":0,"active_installs":1000000,"downloads":34765780,"num_ratings":449,"support_threads":15,"support_threads_resolved":11,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"timwhitlock","date":"2013-07-23 16:13:30"},"1.1.0":{"tag":"1.1.0","author":"timwhitlock","date":"2013-07-31 16:36:23"},"1.1.1":{"tag":"1.1.1","author":"timwhitlock","date":"2013-08-26 21:17:47"},"1.1.2":{"tag":"1.1.2","author":"timwhitlock","date":"2013-08-31 15:18:24"},"1.1.3":{"tag":"1.1.3","author":"timwhitlock","date":"2013-09-19 20:20:04"},"1.2":{"tag":"1.2","author":"timwhitlock","date":"2013-10-28 18:12:59"},"1.2.1":{"tag":"1.2.1","author":"timwhitlock","date":"2013-11-25 10:47:23"},"1.2.2":{"tag":"1.2.2","author":"timwhitlock","date":"2013-11-29 23:00:39"},"1.3":{"tag":"1.3","author":"timwhitlock","date":"2013-12-06 18:44:52"},"1.3.1":{"tag":"1.3.1","author":"timwhitlock","date":"2013-12-12 21:44:12"},"1.4":{"tag":"1.4","author":"timwhitlock","date":"2014-01-05 00:43:31"},"1.4.1":{"tag":"1.4.1","author":"timwhitlock","date":"2014-02-12 16:38:58"},"1.4.2":{"tag":"1.4.2","author":"timwhitlock","date":"2014-03-03 14:04:03"},"1.4.3":{"tag":"1.4.3","author":"timwhitlock","date":"2014-03-27 17:04:36"},"1.4.4":{"tag":"1.4.4","author":"timwhitlock","date":"2014-04-17 10:42:09"},"1.4.5":{"tag":"1.4.5","author":"timwhitlock","date":"2014-07-04 16:58:26"},"1.4.6":{"tag":"1.4.6","author":"timwhitlock","date":"2014-07-29 09:15:22"},"1.4.7":{"tag":"1.4.7","author":"timwhitlock","date":"2014-11-10 12:19:28"},"1.5":{"tag":"1.5","author":"timwhitlock","date":"2015-01-21 18:11:32"},"1.5.1":{"tag":"1.5.1","author":"timwhitlock","date":"2015-02-12 14:51:20"},"1.5.2":{"tag":"1.5.2","author":"timwhitlock","date":"2015-07-24 09:30:39"},"1.5.3":{"tag":"1.5.3","author":"timwhitlock","date":"2015-07-24 18:46:03"},"1.5.4":{"tag":"1.5.4","author":"timwhitlock","date":"2015-09-10 21:33:15"},"1.5.5":{"tag":"1.5.5","author":"timwhitlock","date":"2015-12-20 13:24:21"},"1.5.6":{"tag":"1.5.6","author":"timwhitlock","date":"2016-07-26 15:12:18"},"2.0.0":{"tag":"2.0.0","author":"timwhitlock","date":"2016-08-19 18:23:01"},"2.0.1":{"tag":"2.0.1","author":"timwhitlock","date":"2016-08-19 19:50:13"},"2.0.10":{"tag":"2.0.10","author":"timwhitlock","date":"2016-11-16 11:55:14"},"2.0.11":{"tag":"2.0.11","author":"timwhitlock","date":"2016-12-22 12:24:25"},"2.0.12":{"tag":"2.0.12","author":"timwhitlock","date":"2017-03-14 12:38:45"},"2.0.13":{"tag":"2.0.13","author":"timwhitlock","date":"2017-04-15 08:15:09"},"2.0.14":{"tag":"2.0.14","author":"timwhitlock","date":"2017-05-18 16:29:24"},"2.0.15":{"tag":"2.0.15","author":"timwhitlock","date":"2017-08-03 12:27:46"},"2.0.16":{"tag":"2.0.16","author":"timwhitlock","date":"2017-10-05 18:52:55"},"2.0.17":{"tag":"2.0.17","author":"timwhitlock","date":"2017-11-30 19:15:46"},"2.0.2":{"tag":"2.0.2","author":"timwhitlock","date":"2016-08-20 16:25:05"},"2.0.3":{"tag":"2.0.3","author":"timwhitlock","date":"2016-08-21 17:28:07"},"2.0.4":{"tag":"2.0.4","author":"timwhitlock","date":"2016-08-22 18:45:30"},"2.0.5":{"tag":"2.0.5","author":"timwhitlock","date":"2016-08-24 14:18:59"},"2.0.6":{"tag":"2.0.6","author":"timwhitlock","date":"2016-09-12 17:09:04"},"2.0.7":{"tag":"2.0.7","author":"timwhitlock","date":"2016-09-14 18:49:06"},"2.0.8":{"tag":"2.0.8","author":"timwhitlock","date":"2016-10-23 09:39:49"},"2.0.9":{"tag":"2.0.9","author":"timwhitlock","date":"2016-10-23 09:55:52"},"2.1.0":{"tag":"2.1.0","author":"timwhitlock","date":"2018-02-08 13:06:01"},"2.1.1":{"tag":"2.1.1","author":"timwhitlock","date":"2018-02-16 18:05:15"},"2.1.2":{"tag":"2.1.2","author":"timwhitlock","date":"2018-02-21 15:33:50"},"2.1.3":{"tag":"2.1.3","author":"timwhitlock","date":"2018-04-13 10:33:31"},"2.1.4":{"tag":"2.1.4","author":"timwhitlock","date":"2018-05-25 16:19:05"},"2.1.5":{"tag":"2.1.5","author":"timwhitlock","date":"2018-08-14 09:24:36"},"2.2.0":{"tag":"2.2.0","author":"timwhitlock","date":"2018-11-15 17:04:29"},"2.2.1":{"tag":"2.2.1","author":"timwhitlock","date":"2019-03-08 18:24:33"},"2.2.2":{"tag":"2.2.2","author":"timwhitlock","date":"2019-03-30 17:44:55"},"2.3.0":{"tag":"2.3.0","author":"timwhitlock","date":"2019-05-31 14:23:25"},"2.3.1":{"tag":"2.3.1","author":"timwhitlock","date":"2019-10-18 11:32:35"},"2.3.2":{"tag":"2.3.2","author":"timwhitlock","date":"2020-04-03 11:02:48"},"2.3.3":{"tag":"2.3.3","author":"timwhitlock","date":"2020-04-09 11:09:08"},"2.3.4":{"tag":"2.3.4","author":"timwhitlock","date":"2020-05-14 19:18:19"},"2.4.0":{"tag":"2.4.0","author":"timwhitlock","date":"2020-05-27 09:00:46"},"2.4.1":{"tag":"2.4.1","author":"timwhitlock","date":"2020-08-05 16:19:29"},"2.4.2":{"tag":"2.4.2","author":"timwhitlock","date":"2020-08-10 17:35:19"},"2.4.3":{"tag":"2.4.3","author":"timwhitlock","date":"2020-08-28 09:01:44"},"2.4.4":{"tag":"2.4.4","author":"timwhitlock","date":"2020-10-26 17:48:45"},"2.4.5":{"tag":"2.4.5","author":"timwhitlock","date":"2020-11-19 17:58:14"},"2.4.6":{"tag":"2.4.6","author":"timwhitlock","date":"2020-11-20 18:30:00"},"2.5.0":{"tag":"2.5.0","author":"timwhitlock","date":"2020-12-17 15:21:37"},"2.5.1":{"tag":"2.5.1","author":"timwhitlock","date":"2021-03-01 11:29:13"},"2.5.2":{"tag":"2.5.2","author":"timwhitlock","date":"2021-03-11 09:56:35"},"2.5.3":{"tag":"2.5.3","author":"timwhitlock","date":"2021-06-22 10:57:13"},"2.5.4":{"tag":"2.5.4","author":"timwhitlock","date":"2021-09-28 09:40:01"},"2.5.5":{"tag":"2.5.5","author":"timwhitlock","date":"2021-10-18 12:21:05"},"2.5.6":{"tag":"2.5.6","author":"timwhitlock","date":"2022-01-14 17:08:43"},"2.5.7":{"tag":"2.5.7","author":"timwhitlock","date":"2022-01-17 12:08:51"},"2.5.8":{"tag":"2.5.8","author":"timwhitlock","date":"2022-01-26 16:41:12"},"2.6.0":{"tag":"2.6.0","author":"timwhitlock","date":"2022-03-08 14:04:00"},"2.6.1":{"tag":"2.6.1","author":"timwhitlock","date":"2022-03-16 15:19:53"},"2.6.10":{"tag":"2.6.10","author":"timwhitlock","date":"2024-06-11 07:09:31"},"2.6.11":{"tag":"2.6.11","author":"timwhitlock","date":"2024-07-16 12:50:44"},"2.6.12":{"tag":"2.6.12","author":"timwhitlock","date":"2024-11-15 20:16:57"},"2.6.13":{"tag":"2.6.13","author":"timwhitlock","date":"2024-11-17 13:57:14"},"2.6.14":{"tag":"2.6.14","author":"timwhitlock","date":"2024-11-18 10:19:41"},"2.6.2":{"tag":"2.6.2","author":"timwhitlock","date":"2022-05-24 10:55:40"},"2.6.3":{"tag":"2.6.3","author":"timwhitlock","date":"2022-10-25 19:56:00"},"2.6.4":{"tag":"2.6.4","author":"timwhitlock","date":"2023-03-31 10:10:23"},"2.6.5":{"tag":"2.6.5","author":"timwhitlock","date":"2023-08-31 16:24:09"},"2.6.6":{"tag":"2.6.6","author":"timwhitlock","date":"2023-09-01 12:31:56"},"2.6.7":{"tag":"2.6.7","author":"timwhitlock","date":"2024-03-18 10:42:48"},"2.6.8":{"tag":"2.6.8","author":"timwhitlock","date":"2024-05-08 11:11:58"},"2.6.9":{"tag":"2.6.9","author":"timwhitlock","date":"2024-05-09 09:43:41"},"2.7.0":{"tag":"2.7.0","author":"timwhitlock","date":"2025-01-25 15:21:44"},"2.7.1":{"tag":"2.7.1","author":"timwhitlock","date":"2025-01-26 13:13:01"},"2.7.2":{"tag":"2.7.2","author":"timwhitlock","date":"2025-04-07 15:04:52"},"2.7.3":{"tag":"2.7.3","author":"timwhitlock","date":"2025-05-20 12:24:41"},"2.8.0":{"tag":"2.8.0","author":"timwhitlock","date":"2025-05-21 12:59:13"},"2.8.1":{"tag":"2.8.1","author":"timwhitlock","date":"2026-01-08 10:31:28"},"2.8.2":{"tag":"2.8.2","author":"timwhitlock","date":"2026-03-01 08:03:06"},"2.8.3":{"tag":"2.8.3","author":"timwhitlock","date":"2026-03-14 11:53:37"}},"upgrade_notice":{"2.8.3":"<ul>\n<li>Various improvements and bug fixes<\/li>\n<\/ul>"},"ratings":{"1":16,"2":4,"3":4,"4":5,"5":420},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1000676,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1000676,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":745046,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3507053,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=loco\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"loco-translate\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.2","1.1.3","1.2","1.2.1","1.2.2","1.3","1.3.1","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.5","1.5.1","1.5.2","1.5.3","1.5.4","1.5.5","1.5.6","2.0.0","2.0.1","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","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.2.0","2.2.1","2.2.2","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.5.8","2.6.0","2.6.1","2.6.10","2.6.11","2.6.12","2.6.13","2.6.14","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.7.0","2.7.1","2.7.2","2.7.3","2.8.0","2.8.1","2.8.2","2.8.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2310739,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1478713,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1660312,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":1824083,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":1824083,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":2354566,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Translating strings in the browser with the Loco PO Editor","2":"Showing translation progress for theme language files","3":"PO source view with text filter and clickable file references","4":"Restore tab showing PO diff view with revert function","5":"Showing access to translations by installed language","6":"Suggestion feature showing results from several providers"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[104,1984,1385,99,2333],"plugin_category":[48],"plugin_contributors":[77784],"plugin_business_model":[],"class_list":["post-285","plugin","type-plugin","status-publish","hentry","plugin_tags-i18n","plugin_tags-l10n","plugin_tags-language","plugin_tags-multilingual","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-timwhitlock","plugin_committers-timwhitlock","plugin_support_reps-timwhitlock"],"banners":{"banner":"https:\/\/ps.w.org\/loco-translate\/assets\/banner-772x250.jpg?rev=745046","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/loco-translate\/assets\/icon-128x128.png?rev=1000676","icon_2x":"https:\/\/ps.w.org\/loco-translate\/assets\/icon-256x256.png?rev=1000676","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-1.png?rev=2310739","caption":"Translating strings in the browser with the Loco PO Editor"},{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-2.png?rev=1478713","caption":"Showing translation progress for theme language files"},{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-3.png?rev=1660312","caption":"PO source view with text filter and clickable file references"},{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-4.png?rev=1824083","caption":"Restore tab showing PO diff view with revert function"},{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-5.png?rev=1824083","caption":"Showing access to translations by installed language"},{"src":"https:\/\/ps.w.org\/loco-translate\/assets\/screenshot-6.png?rev=2354566","caption":"Suggestion feature showing results from several providers"}],"raw_content":"<!--section=description-->\n<p>Loco Translate provides in-browser editing of WordPress translation files and integration with automatic translation services.<\/p>\n\n<p>It also provides Gettext\/localization tools for developers, such as extracting strings and generating templates.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Built-in translation editor within WordPress admin<\/li>\n<li>Integration with translation APIs including DeepL, Google, Lecto, Microsoft and OpenAI.<\/li>\n<li>Create and update language files directly in your theme or plugin<\/li>\n<li>Extraction of translatable strings from your source code<\/li>\n<li>Native MO file compilation without the need for Gettext on your system<\/li>\n<li>JSON (Jed) file compilation compatible with WordPress script localization<\/li>\n<li>Support for standard PO features including comments, references and plural forms<\/li>\n<li>PO source view with clickable source code references<\/li>\n<li>Protected language directory for saving custom translations<\/li>\n<li>Configurable PO file backups with diff and restore capability<\/li>\n<li>Built-in WordPress locale codes<\/li>\n<\/ul>\n\n<p>Official <a href=\"https:\/\/localise.biz\/\">Loco<\/a> WordPress plugin by Tim Whitlock. \nFor more information please visit our <a href=\"https:\/\/localise.biz\/wordpress\/plugin\">plugin page<\/a>.<\/p>\n\n<h3>Keyboard shortcuts<\/h3>\n\n<p>The PO file editor supports the following keyboard shortcuts for faster translating:<\/p>\n\n<ul>\n<li>Done and Next: <code>Ctrl \u21b5<\/code><\/li>\n<li>Next string: <code>Ctrl \u2193<\/code><\/li>\n<li>Previous string: <code>Ctrl \u2191<\/code><\/li>\n<li>Next untranslated: <code>Shift Ctrl \u2193<\/code><\/li>\n<li>Previous untranslated: <code>Shift Ctrl \u2191<\/code><\/li>\n<li>Copy from source text: <code>Ctrl B<\/code><\/li>\n<li>Clear translation: <code>Ctrl K<\/code><\/li>\n<li>Toggle Fuzzy: <code>Ctrl U<\/code><\/li>\n<li>Save PO \/ compile MO: <code>Ctrl S<\/code><\/li>\n<li>Toggle invisibles: <code>Shift Ctrl I<\/code><\/li>\n<li>Suggest translation: <code>Ctrl J<\/code><\/li>\n<\/ul>\n\n<p>Mac users can use \u2318 Cmd instead of Ctrl.<\/p>\n\n<!--section=installation-->\n<h4>Basic usage:<\/h4>\n\n<p>Translators: To translate a theme into your language, follow these steps:<\/p>\n\n<ol>\n<li>Create the protected languages directory at <code>wp-content\/languages\/loco\/themes<\/code><\/li>\n<li>Ensure this directory writeable by the web server<\/li>\n<li>Find your theme in the list at <em>Loco Translate &gt; Themes<\/em><\/li>\n<li>Click <code>+ New language<\/code> and follow the on-screen prompts.<\/li>\n<\/ol>\n\n<p>Developers: To translate your own theme or plugin for distribution, follow these steps:<\/p>\n\n<ol>\n<li>Create a <code>languages<\/code> subdirectory in your bundle\u2019s root directory<\/li>\n<li>Ensure this directory writeable by the web server<\/li>\n<li>Find the bundle at either <em>Loco Translate &gt; Themes<\/em> or <em>Loco Translate &gt; Plugins<\/em><\/li>\n<li>Click <code>+ Create template<\/code> and follow the on-screen prompts to extract your strings.<\/li>\n<li>Click <code>+ New language<\/code> and follow the on-screen prompts to add your own translations.<\/li>\n<\/ol>\n\n<h4>Installing manually:<\/h4>\n\n<ol>\n<li>Unzip all files to the <code>wp-content\/plugins\/loco-translate<\/code> directory<\/li>\n<li>Log into WordPress admin and activate the 'Loco Translate' plugin through the 'Plugins' menu<\/li>\n<li>Go to <em>Loco Translate &gt; Home<\/em> in the left-hand menu to start translating<\/li>\n<\/ol>\n\n<p>More information on using the plugin is <a href=\"https:\/\/localise.biz\/wordpress\/plugin\">available here<\/a>.<\/p>\n\n<!--section=faq-->\n<p>Please visit the <a href=\"https:\/\/localise.biz\/wordpress\/plugin\/faqs\">FAQs page<\/a> on our website for the most common issues.<\/p>\n<dl>\n<dt id=\"how%20do%20i%20use%20loco%20translate%3F\"><h3>How do I use Loco Translate?<\/h3><\/dt>\n<dd><p>Try our <a href=\"https:\/\/localise.biz\/wordpress\/plugin#guides\">Guides and Tutorials<\/a>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20more%20help%3F\"><h3>How do I get more help?<\/h3><\/dt>\n<dd><p>If you have a problem using Loco Translate, please try our <a href=\"https:\/\/localise.biz\/wordpress\/plugin\">help pages<\/a>.\nThere's a lot of information there to help you understand how it works and the most common pitfalls to avoid.<\/p>\n\n<p>To report a bug please start a new topic in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/loco-translate\">support forum<\/a>,\nbut please check the <a href=\"https:\/\/localise.biz\/wordpress\/plugin\/faqs\">FAQs<\/a> for similar issues first.\nIf you decide to submit a bug report please post enough <a href=\"https:\/\/localise.biz\/wordpress\/plugin\/faqs\/debug-info\">relevant detail<\/a> for us to reproduce your issue.<\/p><\/dd>\n<dt id=\"is%20my%20data%20protected%3F\"><h3>Is my data protected?<\/h3><\/dt>\n<dd><p>We don't collect your data or track you. See the <a href=\"https:\/\/localise.biz\/wordpress\/plugin\/privacy\">plugin privacy notice<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.8.3<\/h4>\n\n<ul>\n<li>Bumped WordPress compatibility to 6.9.4<\/li>\n<li>Additional restrictions on viewing source code refs<\/li>\n<li>Fix for CVE-2026-4146: Thanks Jack Pas (Dark.)<\/li>\n<\/ul>\n\n<h4>2.8.2<\/h4>\n\n<ul>\n<li>Fix for LLMs retaining escaped forward slashes<\/li>\n<li>Bumped WordPress compatibility to 6.9.1<\/li>\n<li>New security features for viewing source code refs:<\/li>\n<li>\n<ul>\n<li>Access permission via <code>code_view<\/code> setting<\/li>\n<\/ul><\/li>\n<li>\n<ul>\n<li>JSON schemas must validate as blocks|theme.json<\/li>\n<\/ul><\/li>\n<li>\n<ul>\n<li>PHP\/JS sources must contain extractable strings<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>2.8.1<\/h4>\n\n<ul>\n<li>DeepL uses <code>quality_optimized<\/code> with <code>loco_deepl_model<\/code> filter<\/li>\n<li>DeepL beta languages enabled when next-gen model is used<\/li>\n<li><code>http_request_timeout<\/code> filter returns maximum value<\/li>\n<li>Splitting chat completion jobs into maximum 5KB batches<\/li>\n<li>Added support for other chat completion APIs via <code>vendor<\/code> config field<\/li>\n<li>Fixed single colon usage bug during chat completions <\/li>\n<li>Autoloader no longer throws when Loco_ class not found<\/li>\n<li>Refreshing Ajax nonces on WordPress heartbeat <\/li>\n<li>Bumped WordPress compatibility to 6.9<\/li>\n<\/ul>\n\n<h4>2.8.0<\/h4>\n\n<ul>\n<li>Bugfix for PHP 8.0 compatibility<\/li>\n<li>Dropped support for PHP &lt; 7.4<\/li>\n<\/ul>\n\n<h4>2.7.3<\/h4>\n\n<ul>\n<li>PHP 8.4 compatibility<\/li>\n<li>Bumped WordPress compatibility to 6.8.1<\/li>\n<\/ul>\n\n<h4>2.7.2<\/h4>\n\n<ul>\n<li>DeepL client moved to back end, because CORS <\/li>\n<li>Rolled in support for OpenAI \/ ChatGPT translation<\/li>\n<li>Workaround for JSON file references with no line number<\/li>\n<li>Bumped WordPress compatibility to 6.7.2<\/li>\n<\/ul>\n\n<h4>2.7.1<\/h4>\n\n<ul>\n<li>Debug logging of unloaded domains reduced to a summary<\/li>\n<\/ul>\n\n<h4>2.7.0<\/h4>\n\n<ul>\n<li>Raised minimum requirements to WordPress 6.6<\/li>\n<li>Minimum PHP version becomes 7.2.24 as per WordPress 6.6<\/li>\n<li>Locale-filtered bundle list now searches for base language<\/li>\n<li>Loading helper forcefully removes prematurely loaded text domains<\/li>\n<li>Machine translation hooks now have access to message context<\/li>\n<li>Persistent UI state for code view and invisible character modes<\/li>\n<\/ul>\n\n<h4>2.6.14<\/h4>\n\n<ul>\n<li>Critical fix: A relative path passed to <code>load_textdomain<\/code> no longer throws exception.<\/li>\n<\/ul>\n\n<h4>2.6.13<\/h4>\n\n<ul>\n<li>Fix for direct calls to load_textdomain with custom paths<\/li>\n<li>This resolves a regression in 2.6.12<\/li>\n<\/ul>\n\n<h4>2.6.12<\/h4>\n\n<ul>\n<li>Major fix to custom load_textdomain loader. Works when original file is absent<\/li>\n<li>Fixed bug in template comparison when JSON files need to be merged<\/li>\n<li>CSS fixes including reinstating of unsaved \"star\" icon<\/li>\n<li>Domain listener fixed for JIT loading<\/li>\n<li>Bumped WordPress compatibility to 6.7<\/li>\n<\/ul>\n\n<h4>2.6.11<\/h4>\n\n<ul>\n<li>Removed accidental console trace<\/li>\n<li>Bumped WordPress compatibility to 6.6.0<\/li>\n<li>Added lang_dir_for_domain fix to handle system file absence<\/li>\n<\/ul>\n\n<h4>2.6.10<\/h4>\n\n<ul>\n<li>Added loco_api_provider_{id} filter<\/li>\n<li>JSON compiler observes configured .js aliases<\/li>\n<li>Fixed a missing security check - thanks Nosa Shandy<\/li>\n<li>Added .blade.php tokenizer hack<\/li>\n<li>Bumped WordPress compatibility to 6.5.4<\/li>\n<\/ul>\n\n<h4>2.6.9<\/h4>\n\n<ul>\n<li>Rolled back load helper changes<\/li>\n<li>Moved debug messages to action hooks<\/li>\n<li>String debugger improvements<\/li>\n<\/ul>\n\n<h4>2.6.8<\/h4>\n\n<ul>\n<li>Added string debugger<\/li>\n<li>Added Zip download button instead of MO<\/li>\n<li>Added debug messages about premature domain loading<\/li>\n<li>Added warning when system translations not installed<\/li>\n<li>Compiler avoids writing empty JSON translation files<\/li>\n<li>UI promotes PO copy over msginit\/xgettext routes<\/li>\n<li>Populating msginit fields when copying a PO<\/li>\n<li>Bumped WordPress compatibility to 6.5.3<\/li>\n<\/ul>\n\n<h4>2.6.7<\/h4>\n\n<ul>\n<li>WordPress 6.5.0 compatible<\/li>\n<li>Support for performant translation files in PHP format<\/li>\n<li>Added block.json and theme.json extraction<\/li>\n<li>Added theme pattern files to php string extractor<\/li>\n<li>Fixed a bug where unused plural forms were counted as untranslated<\/li>\n<li>Replaced CSS .notice with .panel to mitigate nag-blocker problems<\/li>\n<li>Removed bundle debug screen (deprecated since 2.6.5)<\/li>\n<li>Workaround for absent \"source\" references in JED files<\/li>\n<li>Extension polyfills now restricted to Loco admin screens.<\/li>\n<\/ul>\n\n<h4>2.6.6<\/h4>\n\n<ul>\n<li>Replaced open_basedir check with error capturing<\/li>\n<\/ul>\n\n<h4>2.6.5<\/h4>\n\n<ul>\n<li>Added syntax checking function<\/li>\n<li>Removed deepl_api_url config. Free API detected from :fx key suffix.<\/li>\n<li>Fixed bug in relative path calculations<\/li>\n<li>Fixed API suggestions for plural forms<\/li>\n<li>Fixed bug clearing unsaved state icons<\/li>\n<li>Added total strings count to PO file tables<\/li>\n<li>Sharper flags and spinners (@x2 pixel support)<\/li>\n<li>Handling upload_tmp_dir values outside of open_basedir<\/li>\n<li>Suppressing E_WARNING when testing file is_readable<\/li>\n<li>Bundle debug screen is deprecated (moving into Setup)<\/li>\n<li>Showing System Diagnostics when debug is off<\/li>\n<li>Bumped WordPress compatibility to 6.3.1<\/li>\n<\/ul>\n\n<h4>2.6.4<\/h4>\n\n<ul>\n<li>Bumped WordPress version to 6.1.1<\/li>\n<li>Dropped support for Internet Explorer<\/li>\n<li>Updated JavaScript to ECMAScript 6<\/li>\n<li>Added <code>loco_bundle_configured<\/code> hook<\/li>\n<li>Fixed error icon not clearing after correction<\/li>\n<\/ul>\n\n<h4>2.6.3<\/h4>\n\n<ul>\n<li>Fixed bug in plural forms comparison<\/li>\n<li>Fixed bug generating author theme jsons<\/li>\n<li>Fixed errors in bundle debugger<\/li>\n<li>Extended cli type argument to filter specific bundle<\/li>\n<li>Bumped WordPress version to 6.0.3<\/li>\n<\/ul>\n\n<h4>2.6.2<\/h4>\n\n<ul>\n<li>Bumped WordPress version to 6.0.0<\/li>\n<li>Better labelling of reverse-engineered plural forms<\/li>\n<li>Removed undocumented loco_locale_plurals filter; use loco_po_headers<\/li>\n<li>Added PO folder location indicator in breadcrumb<\/li>\n<li>Added syntax validation for formatted strings<\/li>\n<\/ul>\n\n<h4>2.6.1<\/h4>\n\n<ul>\n<li>Bumped WordPress version to 5.9.2<\/li>\n<li>Fix for CVE-2022-0765 reported by Taurus Omar via wpscan<\/li>\n<\/ul>\n\n<h4>2.6.0<\/h4>\n\n<ul>\n<li>Dropped support for WordPress &lt; 5.2<\/li>\n<li>Code upgrades for &gt;= PHP 5.6.20<\/li>\n<li>Bumped WordPress version to 5.9.1<\/li>\n<li>Removed Yandex API integration<\/li>\n<li>Added loco_compile_script_reference filter<\/li>\n<li>Plural-Forms retained when copying PO to same language<\/li>\n<\/ul>\n\n<h4>2.5.8<\/h4>\n\n<ul>\n<li>Compatible with PHP 8.1<\/li>\n<li>Bumped WordPress version to 5.9<\/li>\n<li>Added deprecation warning prior to v2.6<\/li>\n<\/ul>\n\n<h4>2.5.7<\/h4>\n\n<ul>\n<li>Fixed bug in 2.5.6 where remote APIs could not be used in batch mode<\/li>\n<li>Enforcing 10k character limit per request for Microsoft and Yandex Translators<\/li>\n<li>Style fix for revision\/diff table under restore tab<\/li>\n<\/ul>\n\n<h4>2.5.6<\/h4>\n\n<ul>\n<li>Added loco_api_provider_source filter<\/li>\n<li>Fixed bug loading user preferences saved in older version<\/li>\n<li>Refactored file finder to avoid recursive function calls<\/li>\n<li>Fixed bug displaying two forms for zero plural languages<\/li>\n<li>Added Lecto AI to translation API providers<\/li>\n<li>Bumped WordPress version to 5.8.3<\/li>\n<\/ul>\n\n<h4>2.5.5<\/h4>\n\n<ul>\n<li>Fixed double file extension vulnerability reported by WordFence<\/li>\n<li>Better performance when scanning directories for file types<\/li>\n<\/ul>\n\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Fixed vulnerability reported by Tomi Ashari via wpscan<\/li>\n<li>Added filters loco_po_headers and loco_pot_headers<\/li>\n<li>Bumped WordPress version to 5.8.1<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>Adds option to merge JSON translations when syncing from PO<\/li>\n<li>Adds screen for editing file headers and sync options<\/li>\n<li>Fix for missing responseText in failed Ajax responses<\/li>\n<li>Fix for HTML entities returned from <code>number_format_i18n<\/code><\/li>\n<li>Localized number formatting in JavaScript<\/li>\n<li>Replaced usage of date_i18n with wp_date<\/li>\n<li>Added configurable API endpoint for DeepL<\/li>\n<li>Bumped WordPress version to 5.7.2<\/li>\n<\/ul>\n\n<h4>2.5.2<\/h4>\n\n<ul>\n<li>Added implied formality and loco_locale_formality filter<\/li>\n<li>Added cli fetch command (experimental)<\/li>\n<li>Bumped WordPress version to 5.7<\/li>\n<\/ul>\n\n<h4>2.5.1<\/h4>\n\n<ul>\n<li>Support for new Yandex translate API<\/li>\n<li>Support for DeepL formality parameter<\/li>\n<li>Removed literal \"1\" and \"one\" instances from singular strings<\/li>\n<li>Buffering compiled JSON to support strings from multiple sources<\/li>\n<li>Added <code>loco_compile_single_json<\/code> filter for specifying custom JSON<\/li>\n<li>Added <code>loco_extracted_template<\/code> hook for adding custom strings<\/li>\n<li>Sync no longer removes the editor's current text filter<\/li>\n<li>Bumped WordPress version to 5.6.2<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>PHP 8.0.0 compatibility<\/li>\n<li>Bumped WordPress version to 5.6.0<\/li>\n<li>Added JSON translation file generation<\/li>\n<li>Added custom JSON loading to LoadHelper<\/li>\n<li>Disabled emoji image replacement on our admin screens<\/li>\n<\/ul>\n\n<h4>2.4.6<\/h4>\n\n<ul>\n<li>Fixed critical bug syncing PO directly to source code<\/li>\n<li>Added plugin setting for allowing\/disallowing missing POT<\/li>\n<li>Fixed WP5.5 issue with multiple ID attributes on script tags<\/li>\n<\/ul>\n\n<h4>2.4.5<\/h4>\n\n<ul>\n<li>Added WP-CLI sync and extract commands<\/li>\n<li>Fixed {locale} placeholder bug introduced in 2.4.4<\/li>\n<li>Improved handling of invalid character encodings<\/li>\n<li>Sync (msgmerge) moved to back end <\/li>\n<li>New fuzzy matching with fuzziness setting<\/li>\n<li>Bumped WordPress version to 5.5.3<\/li>\n<\/ul>\n\n<h4>2.4.4<\/h4>\n\n<ul>\n<li>Added PO file upload feature<\/li>\n<li>Added download button to file info page<\/li>\n<li>Fix for extracting plurals also used as singulars<\/li>\n<li>Updating API keys no longer require editor page reload<\/li>\n<li>Catching fatal startup errors in loco.php<\/li>\n<li>Supporting max_php_size=0 to mean no size restriction<\/li>\n<li>Auto-update detection now checks new site options<\/li>\n<li>Bumped WordPress version to 5.5.1<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li>Improved fix for default syncing of msgstr fields<\/li>\n<li>Reverted accidental removal of js debug flag<\/li>\n<li>Minor fixes to API error messages<\/li>\n<li>Removed use of jQuery.browser<\/li>\n<li>Bugfix for new preferences in usermeta<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Added loco_file_written hook<\/li>\n<li>Improved script tampering warning<\/li>\n<li>Added keypress for selecting auto-suggestion<\/li>\n<li>Sync no longer copies msgstr fields by default<\/li>\n<li>Style tweaks for WordPress 5.5<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Fixed mapping of some API languages<\/li>\n<li>Added locale filter to user preferences<\/li>\n<li>Added debugging for credential form failures<\/li>\n<li>Fixed deprecated use of array_key_exists<\/li>\n<li>Added DeepL API service provider<\/li>\n<li>Improved script tampering detection<\/li>\n<li>Bumped WordPress version to 5.5<\/li>\n<li>Added \"modern\" skin styles<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Added support for third party translation APIs<\/li>\n<li>Added file references to editor source pane in code view<\/li>\n<li>Added fuzzy matching during editor Sync operation<\/li>\n<li>Style changes including rearrangement of editor buttons<\/li>\n<li>Elevated warnings when scripts are tampered with<\/li>\n<li>Removed remnants of legacy version 1.x<\/li>\n<\/ul>\n\n<h4>2.3.4<\/h4>\n\n<ul>\n<li>Updated translatable strings<\/li>\n<li>Added missing template recommendation<\/li>\n<li>Alerting in debug mode when scripts are tampered with<\/li>\n<li>Fix for Hello Dolly being installed into a folder<\/li>\n<li>Removed translation column in POT edit mode<\/li>\n<li>Added setting to prevent 'translating' of POT files<\/li>\n<li>Enabled some linkable translations using wp_kses<\/li>\n<li>Bumped WordPress version to 5.4.1<\/li>\n<\/ul>\n\n<h4>2.3.3<\/h4>\n\n<ul>\n<li>Fixed fatal error when class not found<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Removed login\/email from default Last-Translator credit<\/li>\n<li>Bumped WP compatibility to 5.4<\/li>\n<li>Fixed PHP 7.4 deprecations<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Default POT getter now looks in \"lang\" directory<\/li>\n<li>Not calling deprecated magic quotes functions under PHP 7.4<\/li>\n<li>Fixed issue with conflicting page hooks<\/li>\n<li>Ajax file uploads now enabled by default<\/li>\n<li>Removed legacy option migrations from 1.x branch<\/li>\n<li>Bumped WP compatibility to 5.2.4<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Added experimental support for multipart uploads<\/li>\n<li>Added relocation tab for moving translation sets<\/li>\n<li>Creation of missing directories when writing new files<\/li>\n<li>Fixed duplicate file addition when iterating over symlink<\/li>\n<li>Bumped WP compatibility to 5.2.1<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Security fixes as per <a href=\"https:\/\/www.exploit-db.com\/exploits\/46619\">exploit-db 46619<\/a> <\/li>\n<li>Fixed old PHP version error in data files<\/li>\n<li>Bumped WP compatibility to 5.1.1<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Fixed bug where plural tabs not displaying RTL<\/li>\n<li>Various improvements to PO parser incl. better charset handling<\/li>\n<li>Excluding node_modules and vendor directories by default<\/li>\n<li>Transients now have maximum lifespan of 10 days, refreshed after 24h<\/li>\n<li>Symlink fix for followed theme paths detected outside theme<\/li>\n<li>Deprecated config repository lookup<\/li>\n<li>Bumped WP compatibility to 5.1<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Fix for empty language code when getting plural rules<\/li>\n<li>Added X-Loco-Version header to generated Gettext files<\/li>\n<li>Added sanity check for mbstring.func_overload madness<\/li>\n<li>Added \"Assign template\" link on missing template page<\/li>\n<li>Added JavaScript string extraction (experimental)<\/li>\n<li>Editor supports sprintf-js when javascript-format tag present<\/li>\n<li>Fix for duplicate comments when end punctuation differs<\/li>\n<li>Marking msgctxt more clearly in editor views<\/li>\n<li>Added <code>loco_admin_shutdown<\/code> action hook<\/li>\n<li>Bumped WP compatibility to 5.0 (beta)<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>Updated locale data<\/li>\n<li>Minor fix to file reference resolution<\/li>\n<li>Fixed windows paths with trailing backslash<\/li>\n<li>Fixed ssh-keys toggling issue<\/li>\n<li>Rejigged buffer handling during Ajax<\/li>\n<li>Bumped WP compatibility to 4.9.8<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Bumped WP compatibility to 4.9.6<\/li>\n<li>Hooked in privacy policy suggestion<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Added loco_locale_name filter and updated locale data<\/li>\n<li>Fixed editor column sorting to update as values change<\/li>\n<li>Supporting RTL text in editor preview rows<\/li>\n<li>Minor refactor of debug mode routing check <\/li>\n<li>Minor PO parser improvements<\/li>\n<li>Bumped WP compatibility to 4.9.5<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Fixed undeclared property in admin hook<\/li>\n<li>Fixed incompatibility with older WordPress<\/li>\n<li>Fixed incorrect millisecond reporting in footer<\/li>\n<li>Removed locale progress column for en_US locale<\/li>\n<li>Tweaks to debugging and error logging<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Setting <code>Project-Id-Version<\/code> on new POT files<\/li>\n<li>Added source view to quick links in file tables<\/li>\n<li>Supporting only WordPress style locale codes<\/li>\n<li>Editor screen tolerates missing PO headers<\/li>\n<li>Ajax debugging improvements for issue reporting<\/li>\n<li>Added loco_parse_locale action callback<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Add <code>fs_protect<\/code> setting to avoid overwriting system files<\/li>\n<li>Fixed bug in connect dialogue where errors not redisplayed<\/li>\n<li>Minor improvements to inline notices<\/li>\n<li>Removed downgrade notice under version tab<\/li>\n<li>Fixed extraction bug where file header confused with comment<\/li>\n<li>Resolved some inconsistencies between PHP and JS utilities<\/li>\n<li>Added Restore tab with diff display<\/li>\n<li>Added <code>loco_settings<\/code> hook<\/li>\n<li>Prevented editor from changing PO document order<\/li>\n<li>Added default string sorting to extracted strings<\/li>\n<li>Added \"Languages\" section for grouping files by locale<\/li>\n<li>Fixed bug where translations loaded before user profile language set<\/li>\n<li>Added loco_locale_plurals filter for customising plural rules<\/li>\n<li>Allowing PO files to enforce their own Plural-Forms rules<\/li>\n<li>Added <code>loco_allow_remote<\/code> filter for debugging remote problems<\/li>\n<li>Updated plural forms from Unicode CLDR<\/li>\n<li>PHP extractor avoids repeated comments<\/li>\n<li>Bumped WP compatibility to 4.9.4<\/li>\n<\/ul>\n\n<h4>2.0.17<\/h4>\n\n<ul>\n<li>Unofficial languages showing in \u201cInstalled\u201d dropdown<\/li>\n<li>Fixed extraction bug where comment confused with file header<\/li>\n<li>Fixed issue where src attributes requested from server during HTML strip<\/li>\n<li>Added loco_admin_init hook into ajax router for consistency<\/li>\n<li>Added warning on file info page when file is managed by WordPress <\/li>\n<li>Minor help link and layout tweaks<\/li>\n<li>Bumped WP compatibility to 4.9.1<\/li>\n<\/ul>\n\n<h4>2.0.16<\/h4>\n\n<ul>\n<li>File writer observes wp_is_file_mod_allowed<\/li>\n<li>Fixed progress bug in editor for locales with nplurals=1<\/li>\n<li>Made plural form categories translatable for editor UI<\/li>\n<li>Sync-from-source raises warning when files are skipped<\/li>\n<li>Added hack for extracting from .twig as per .php<\/li>\n<li>Added warning when child themes declare parent text domain<\/li>\n<li>Added option to control PO line wrapping<\/li>\n<li>Bumped WP compatibility to 4.8.2<\/li>\n<\/ul>\n\n<h4>2.0.15<\/h4>\n\n<ul>\n<li>Permanently removed legacy version 1.x<\/li>\n<li>Fixed bug where editor code view was not redrawn on resize<\/li>\n<li>Fixed bug where fuzzy flag caused format flag to be ignored<\/li>\n<li>Fixed bug where autoloader responded to very long class names<\/li>\n<li>Purging WP object cache when active plugin list changes<\/li>\n<li>Added experimental source word count into POT info tab<\/li>\n<li>Bumped WP compatibility to 4.8.1<\/li>\n<\/ul>\n\n<h4>2.0.14<\/h4>\n\n<ul>\n<li>Editor improvements inc. column sorting<\/li>\n<li>Added warnings that legacy version will be removed<\/li>\n<li>Added PO source view text filtering<\/li>\n<li>Added _fs_nonce for 4.7.5 compatibility<\/li>\n<li>Migrated to canonical text domain <\/li>\n<li>Removed wp class autoloading<\/li>\n<\/ul>\n\n<h4>2.0.13<\/h4>\n\n<ul>\n<li>CSS conflict fixes<\/li>\n<li>Added option for UTF-8 byte order mark<\/li>\n<li>Printf highlighting observes no-php-format flag<\/li>\n<li>Fixed issue with translator role losing \u201cread\u201d permission<\/li>\n<\/ul>\n\n<h4>2.0.12<\/h4>\n\n<ul>\n<li>Minor fix for root path configs<\/li>\n<li>Added alternative PHP extensions setting<\/li>\n<li>Bumped WP version to 4.7.3<\/li>\n<li>LoadHelper fix for core files<\/li>\n<li>Allow revoking of permissions from translator role<\/li>\n<li>Allow network admins to deny access to site admins<\/li>\n<\/ul>\n\n<h4>2.0.11<\/h4>\n\n<ul>\n<li>Extra debug logging and error diagnostics<\/li>\n<li>Forcefully clear output buffers before Ajax flush<\/li>\n<li>Bumped WordPress version to 4.7<\/li>\n<li>Experimental wildcard text domain support<\/li>\n<\/ul>\n\n<h4>2.0.10<\/h4>\n\n<ul>\n<li>Allows missing domain argument in plugin_locale filter<\/li>\n<li>Reverted editor changes that disabled readonly text<\/li>\n<li>Added invisibles and coding editor switches<\/li>\n<li>Added table filtering via text query<\/li>\n<li>Added Last-Translator user preference<\/li>\n<\/ul>\n\n<h4>2.0.9<\/h4>\n\n<ul>\n<li>Bumped minimum WordPress version to 4.1<\/li>\n<li>Some optimisation of transient caching<\/li>\n<li>Fixed hash table settings bug<\/li>\n<\/ul>\n\n<h4>2.0.8<\/h4>\n\n<ul>\n<li>Source refs fix for files in unknown subsets<\/li>\n<li>Downgrades PO formatting exceptions to PHP warnings<\/li>\n<li>Renamed function prefixes to avoid PHP 7 warnings<\/li>\n<li>Better support for php-format and no-php-format flag<\/li>\n<li>PO source and editor UI tweaks<\/li>\n<li>Localised strings and implemented in js<\/li>\n<\/ul>\n\n<h4>2.0.7<\/h4>\n\n<ul>\n<li>Fixed prototype.js conflict<\/li>\n<li>More Windows file path fixes<\/li>\n<li>Added loco_current_translator filter<\/li>\n<li>Fixed false positive in extra files test<\/li>\n<\/ul>\n\n<h4>2.0.6<\/h4>\n\n<ul>\n<li>PO wrapping bugfix<\/li>\n<li>Downgraded source code bugfix<\/li>\n<li>Tolerating headerless POT files<\/li>\n<li>Core bundle metadata tweaks<\/li>\n<\/ul>\n\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Deferred missing tokenizer warning<\/li>\n<li>Allows editing of files in unconfigured sets<\/li>\n<li>Added maximum PHP file size for string extraction<\/li>\n<li>Display of PHP fatal errors during Ajax<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Reduced session failures to debug notices<\/li>\n<li>Added wp_roles support for WP &lt; 4.3<\/li>\n<li>Fixed domain listener bugs<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Added support for Windows servers<\/li>\n<li>Removed incomplete config warning on bundle overview<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fixed bug when absolute path used to get plugins<\/li>\n<li>Added loco_plugins_data filter<\/li>\n<li>Added theme Template Name header extraction<\/li>\n<li>Minor copy amends<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Added help link in settings page<\/li>\n<li>Fixed opendir warnings in legacy code<\/li>\n<li>Catching session errors during init<\/li>\n<li>Removing meta row link when plugin not found<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>First release of completely rebuilt version 2<\/li>\n<\/ul>","raw_excerpt":"Translate WordPress plugins and themes directly in your browser. Versatile PO file editor with integrated AI translation providers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=285"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/timwhitlock"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=285"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=285"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=285"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=285"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=285"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}