{"id":352200,"date":"2026-08-19T16:25:24","date_gmt":"2026-08-19T16:25:24","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/truelang\/"},"modified":"2026-08-20T16:42:30","modified_gmt":"2026-08-20T16:42:30","slug":"vynlang","status":"publish","type":"plugin","link":"https:\/\/xho.wordpress.org\/plugins\/vynlang\/","author":23547160,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.8.3","stable_tag":"2.8.3","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Openlang \u2013 WordPress AI Translation for Multilingual Websites","header_author":"Vynatics","header_description":"A.I-assisted WordPress language translation with persistent caching, instant language switching, language URLs, RTL, and translation management.","assets_banners_color":"fdfdfd","last_updated":"2026-08-20 16:42:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vynatics.corsysltd.com\/vynlang","header_author_uri":"https:\/\/vynatics.corsysltd.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.8.3":{"tag":"2.8.3","author":"vynatics","date":"2026-08-20 16:42:30"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3655017,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3655017,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-rtl.jpg":{"filename":"banner-1544x500-rtl.jpg","revision":3657091,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3657352,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.jpg":{"filename":"banner-772x250-rtl.jpg","revision":3657091,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3657352,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3657639,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"siteOptions\":{\"blogname\":\"OpenLang Multilingual Demo\",\"blogdescription\":\"A multilingual WordPress website powered by OpenLang.\",\"timezone_string\":\"Asia\\\/Jakarta\",\"permalink_structure\":\"\\\/%postname%\\\/\"},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"vynlang\"},\"options\":{\"activate\":true}},{\"step\":\"installTheme\",\"themeData\":{\"resource\":\"wordpress.org\\\/themes\",\"slug\":\"twentytwentyfive\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\n\\n\\\/*\\n * OpenLang Playground Demo Setup\\n *\\n * OpenLang has already been installed and activated at this point,\\n * so its normal activation hooks have had an opportunity to create\\n * its database tables.\\n *\\\/\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Site options\\n\\\/\\\/ ---------------------------------------------------------\\n\\nupdate_option('blogname', 'OpenLang Multilingual Demo');\\nupdate_option(\\n    'blogdescription',\\n    'Experience a multilingual WordPress website powered by OpenLang.'\\n);\\nupdate_option('show_on_front', 'page');\\nupdate_option('permalink_structure', '\\\/%postname%\\\/');\\n\\nflush_rewrite_rules(false);\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Helper: create page only once\\n\\\/\\\/ ---------------------------------------------------------\\n\\nfunction openlang_playground_page($title, $slug, $content) {\\n\\n    $existing = get_page_by_path($slug, OBJECT, 'page');\\n\\n    if ($existing) {\\n        return (int) $existing->ID;\\n    }\\n\\n    $page_id = wp_insert_post(\\n        array(\\n            'post_title'   => $title,\\n            'post_name'    => $slug,\\n            'post_content' => $content,\\n            'post_status'  => 'publish',\\n            'post_type'    => 'page',\\n            'post_author'  => 1\\n        ),\\n        true\\n    );\\n\\n    if (is_wp_error($page_id)) {\\n        return 0;\\n    }\\n\\n    return (int) $page_id;\\n}\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Home page\\n\\\/\\\/ ---------------------------------------------------------\\n\\n$home_id = openlang_playground_page(\\n    'Home',\\n    'home',\\n    '<!-- wp:group {\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->\\n<div class=\\\"wp-block-group\\\">\\n\\n<!-- wp:heading {\\\"level\\\":1} -->\\n<h1>Welcome to OpenLang<\\\/h1>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>OpenLang makes it easy to create multilingual WordPress websites.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>Switch between languages and experience how your website can serve visitors in their preferred language.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:buttons -->\\n<div class=\\\"wp-block-buttons\\\">\\n\\n<!-- wp:button -->\\n<div class=\\\"wp-block-button\\\">\\n<a class=\\\"wp-block-button__link wp-element-button\\\" href=\\\"\\\/features\\\/\\\">Explore OpenLang<\\\/a>\\n<\\\/div>\\n<!-- \\\/wp:button -->\\n\\n<\\\/div>\\n<!-- \\\/wp:buttons -->\\n\\n<\\\/div>\\n<!-- \\\/wp:group -->'\\n);\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Features page\\n\\\/\\\/ ---------------------------------------------------------\\n\\n$features_id = openlang_playground_page(\\n    'Features',\\n    'features',\\n    '<!-- wp:group {\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->\\n<div class=\\\"wp-block-group\\\">\\n\\n<!-- wp:heading -->\\n<h2>OpenLang Features<\\\/h2>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>OpenLang provides powerful tools for building multilingual WordPress websites.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":3} -->\\n<h3>Multilingual Content<\\\/h3>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Translate your website content and manage translations from one place.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":3} -->\\n<h3>Language-Specific Logo<\\\/h3>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Use a different logo for different languages.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":3} -->\\n<h3>Language-Specific Typography<\\\/h3>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Apply different typography and font settings depending on the selected language.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":3} -->\\n<h3>Language-Specific CSS and JavaScript<\\\/h3>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Customize the appearance and behavior of your website for individual languages.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":3} -->\\n<h3>Multilingual URLs<\\\/h3>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Create language-specific URLs for your translated website content.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<\\\/div>\\n<!-- \\\/wp:group -->'\\n);\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ About page\\n\\\/\\\/ ---------------------------------------------------------\\n\\n$about_id = openlang_playground_page(\\n    'About OpenLang',\\n    'about-openlang',\\n    '<!-- wp:group {\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->\\n<div class=\\\"wp-block-group\\\">\\n\\n<!-- wp:heading -->\\n<h2>About OpenLang<\\\/h2>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>OpenLang is a WordPress translation solution designed for websites that need multilingual content without rebuilding their entire website.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>This Playground demonstrates the OpenLang experience inside a real WordPress installation.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>Use the WordPress language switcher or OpenLang settings to explore the multilingual workflow.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<\\\/div>\\n<!-- \\\/wp:group -->'\\n);\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Contact page\\n\\\/\\\/ ---------------------------------------------------------\\n\\n$contact_id = openlang_playground_page(\\n    'Contact',\\n    'contact',\\n    '<!-- wp:group {\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->\\n<div class=\\\"wp-block-group\\\">\\n\\n<!-- wp:heading -->\\n<h2>Contact Us<\\\/h2>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Thank you for trying OpenLang.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>Explore the OpenLang settings in the WordPress administration area to learn how the plugin works.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<\\\/div>\\n<!-- \\\/wp:group -->'\\n);\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Set Home as front page\\n\\\/\\\/ ---------------------------------------------------------\\n\\nif ($home_id) {\\n    update_option('show_on_front', 'page');\\n    update_option('page_on_front', $home_id);\\n}\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Demo blog post\\n\\\/\\\/ ---------------------------------------------------------\\n\\nif (!get_page_by_path('welcome-to-openlang', OBJECT, 'post')) {\\n\\n    wp_insert_post(\\n        array(\\n            'post_title'   => 'Welcome to OpenLang',\\n            'post_name'    => 'welcome-to-openlang',\\n            'post_content' => '<!-- wp:paragraph -->\\n<p>Welcome to the OpenLang Playground demo.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>This demo gives you a quick look at how OpenLang can be used to create a multilingual WordPress website.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:heading {\\\"level\\\":2} -->\\n<h2>Why multilingual websites?<\\\/h2>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Multilingual websites allow businesses, organizations and creators to communicate with visitors in their preferred language.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:paragraph -->\\n<p>OpenLang provides translation management together with language-specific website customization.<\\\/p>\\n<!-- \\\/wp:paragraph -->',\\n            'post_status'  => 'publish',\\n            'post_type'    => 'post',\\n            'post_author'  => 1\\n        )\\n    );\\n}\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Create navigation menu\\n\\\/\\\/ ---------------------------------------------------------\\n\\n$menu_name = 'OpenLang Demo Menu';\\n$menu = wp_get_nav_menu_object($menu_name);\\n\\nif (!$menu) {\\n\\n    $menu_id = wp_create_nav_menu($menu_name);\\n\\n    if (!is_wp_error($menu_id)) {\\n\\n        $items = array(\\n            $home_id,\\n            $features_id,\\n            $about_id,\\n            $contact_id\\n        );\\n\\n        foreach ($items as $page_id) {\\n\\n            if (!$page_id) {\\n                continue;\\n            }\\n\\n            $page = get_post($page_id);\\n\\n            if (!$page) {\\n                continue;\\n            }\\n\\n            wp_update_nav_menu_item(\\n                $menu_id,\\n                0,\\n                array(\\n                    'menu-item-title'     => $page->post_title,\\n                    'menu-item-object'    => 'page',\\n                    'menu-item-object-id' => $page->ID,\\n                    'menu-item-type'      => 'post_type',\\n                    'menu-item-status'    => 'publish'\\n                )\\n            );\\n        }\\n    }\\n}\\n\\n\\\/\\\/ ---------------------------------------------------------\\n\\\/\\\/ Store a marker that the Playground setup has completed.\\n\\\/\\\/ This is intentionally separate from OpenLang's own options.\\n\\\/\\\/ ---------------------------------------------------------\\n\\nupdate_option('openlang_playground_initialized', 1);\\n\\n\\\/\\\/ Flush rewrite rules after creating pages.\\nflush_rewrite_rules(false);\\n\"}]}"}},"all_blocks":[],"tagged_versions":["2.8.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3657091,"resolution":"1","location":"assets","locale":"","width":1488,"height":992},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3657091,"resolution":"2","location":"assets","locale":"","width":1620,"height":1080},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3657091,"resolution":"3","location":"assets","locale":"","width":1620,"height":1080}},"screenshots":[]},"plugin_section":[],"plugin_tags":[220668,12519,22323,99,2333],"plugin_category":[48],"plugin_contributors":[276536],"plugin_business_model":[],"class_list":["post-352200","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-translation","plugin_tags-automatic-translation","plugin_tags-language-switcher","plugin_tags-multilingual","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-vynatics","plugin_committers-vynatics"],"banners":{"banner":"https:\/\/ps.w.org\/vynlang\/assets\/banner-772x250.jpg?rev=3657352","banner_2x":"https:\/\/ps.w.org\/vynlang\/assets\/banner-1544x500.jpg?rev=3657352","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vynlang\/assets\/icon-128x128.png?rev=3655017","icon_2x":"https:\/\/ps.w.org\/vynlang\/assets\/icon-256x256.png?rev=3655017","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vynlang\/assets\/screenshot-1.jpg?rev=3657091","caption":""},{"src":"https:\/\/ps.w.org\/vynlang\/assets\/screenshot-2.jpg?rev=3657091","caption":""},{"src":"https:\/\/ps.w.org\/vynlang\/assets\/screenshot-3.jpg?rev=3657091","caption":""}],"raw_content":"<!--section=description-->\n<p>Openlang is a WordPress translation plugin for creating and managing multilingual websites. It discovers visible frontend strings at runtime, lets you manage manual translations, supports optional hosted AI translation, and serves language-specific URLs with an instant language switcher.<\/p>\n\n<p>Use Openlang when you need a multilingual WordPress plugin that gives you control over translated strings while keeping automatic translation optional. You can enable multiple languages, edit translations manually, switch between RTL and LTR layouts, and use translation caching for faster repeated delivery.<\/p>\n\n<h4>WordPress Translation &amp; Multilingual Features<\/h4>\n\n<ul>\n<li><strong>WordPress translation plugin:<\/strong> Discover visible frontend text and common translatable attributes at runtime.<\/li>\n<li><strong>Manual translation:<\/strong> Review, edit, and manage detected strings from the WordPress admin area.<\/li>\n<li><strong>Multilingual website support:<\/strong> Enable multiple languages and choose a configurable default language.<\/li>\n<li><strong>Optional AI translation:<\/strong> Use the hosted Openlang translation service only when automatic translation is explicitly enabled.<\/li>\n<li><strong>Automatic translation workflow:<\/strong> Translate missing strings through the hosted service when requested.<\/li>\n<li><strong>Language switcher:<\/strong> Give visitors an instant frontend language switcher.<\/li>\n<li><strong>Language-specific URLs:<\/strong> Serve language-aware URLs with browser history handling.<\/li>\n<li><strong>RTL language support:<\/strong> Automatically handle RTL\/LTR direction for multilingual layouts.<\/li>\n<li><strong>Translation cache:<\/strong> Reuse translated content through a persistent translation cache.<\/li>\n<li><strong>Translation analytics:<\/strong> View translation coverage, runtime activity, analytics, and system status.<\/li>\n<li><strong>Elementor integration:<\/strong> Add the Openlang language switcher through Elementor integration.<\/li>\n<\/ul>\n\n<h4>Manual Translation + Auto AI Translation<\/h4>\n\n<p>Openlang supports both manual translation management and optional hosted AI translation. Manual translation works locally and does not require the hosted translation service. If automatic translation is enabled by an administrator, Openlang can request translations for missing strings from the hosted Openlang translation service.<\/p>\n\n<p>This makes Openlang suitable for WordPress site owners who want to manually control important translations while still having an automatic translation option available when needed.<\/p>\n\n<h4>Language Switcher, Language URLs &amp; RTL Support<\/h4>\n\n<p>Visitors can switch between enabled languages using the frontend language switcher. Openlang also supports language-specific URLs, browser history handling, and RTL\/LTR direction so multilingual WordPress websites can present languages in the appropriate reading direction.<\/p>\n\n<h4>Free WordPress Translation Plugin<\/h4>\n\n<p>The WordPress.org Free package contains no license system and does not lock any locally shipped feature behind payment or a key.<\/p>\n\n<p>A separate Openlang Pro plugin is available from the plugin website. Pro adds per-language typography, per-language website-logo overrides, and CSV translation import\/export. The Pro implementation is not included in this WordPress.org Free package.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Openlang can optionally connect to the Openlang hosted translation service at <code>https:\/\/vynatics.corsysltd.com\/<\/code> to translate missing strings. This connection is disabled by default and occurs only after an administrator enables hosted automatic translation in Openlang &gt; Settings and a translation is requested.<\/p>\n\n<p>When used, the plugin sends the source and target language codes, source strings and their MD5 dictionary hashes, the site URL and an MD5 hash of the site URL, the Openlang plugin version, and the WordPress version. The Free version does not send a Openlang license key because it has no license system.<\/p>\n\n<p>Service provider: Vynatics\nPrivacy policy: https:\/\/vynatics.corsysltd.com\/Openlang\/privacy-policy.html\nTerms: https:\/\/vynatics.corsysltd.com\/Openlang\/terms-of-service.html\nSupport: d.laeeq@corsysltd.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>Openlang<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate Openlang.<\/li>\n<li>Open Openlang &gt; Languages and enable the languages you need.<\/li>\n<li>Open Openlang &gt; Translations to review or edit detected strings.<\/li>\n<li>Optionally enable hosted automatic AI translation under Openlang &gt; Settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20openlang%3F\"><h3>What is Openlang?<\/h3><\/dt>\n<dd><p>Openlang is a WordPress translation plugin for creating multilingual websites. It combines runtime string discovery, manual translation management, optional AI translation, language-specific URLs, RTL support, translation caching, and a frontend language switcher.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20my%20wordpress%20website%20manually%3F\"><h3>Can I translate my WordPress website manually?<\/h3><\/dt>\n<dd><p>Yes. Openlang discovers visible frontend strings and lets administrators review and edit translations manually from the WordPress admin area.<\/p><\/dd>\n<dt id=\"does%20openlang%20support%20automatic%20ai%20translation%3F\"><h3>Does Openlang support automatic AI translation?<\/h3><\/dt>\n<dd><p>Yes. Hosted AI translation is available as an optional feature. It is disabled by default and only connects to the Openlang hosted translation service after an administrator explicitly enables automatic translation and a translation is requested.<\/p><\/dd>\n<dt id=\"is%20automatic%20translation%20required%3F\"><h3>Is automatic translation required?<\/h3><\/dt>\n<dd><p>No. Manual translation management works locally. Hosted automatic translation is optional and must be explicitly enabled.<\/p><\/dd>\n<dt id=\"does%20openlang%20include%20a%20wordpress%20language%20switcher%3F\"><h3>Does Openlang include a WordPress language switcher?<\/h3><\/dt>\n<dd><p>Yes. Openlang includes a frontend language switcher so visitors can move between enabled languages.<\/p><\/dd>\n<dt id=\"does%20openlang%20support%20multilingual%20language%20urls%3F\"><h3>Does Openlang support multilingual language URLs?<\/h3><\/dt>\n<dd><p>Yes. Openlang supports language-specific URLs and browser history handling for enabled languages.<\/p><\/dd>\n<dt id=\"does%20openlang%20support%20rtl%20languages%3F\"><h3>Does Openlang support RTL languages?<\/h3><\/dt>\n<dd><p>Yes. Openlang supports RTL\/LTR direction handling for multilingual websites that use right-to-left languages.<\/p><\/dd>\n<dt id=\"does%20openlang%20work%20with%20elementor%3F\"><h3>Does Openlang work with Elementor?<\/h3><\/dt>\n<dd><p>Openlang includes Elementor language switcher integration, allowing the language switcher to be used within Elementor-based websites.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20require%20a%20license%20key%3F\"><h3>Does the Free plugin require a license key?<\/h3><\/dt>\n<dd><p>No. The WordPress.org Free plugin contains no license system and its locally shipped features work without an upgrade.<\/p><\/dd>\n<dt id=\"where%20are%20pro%20features%20provided%3F\"><h3>Where are Pro features provided?<\/h3><\/dt>\n<dd><p>Pro is a separate plugin package distributed outside WordPress.org. The Free plugin only links to the Pro information page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.8.3<\/h4>\n\n<ul>\n<li>Renamed the plugin to Openlang - A.I Language Translator with slug\/text domain <code>vynlang<\/code>.<\/li>\n<li>Split WordPress.org Free and commercial Pro codebases.<\/li>\n<li>Hardened request sanitization, permissions\/nonces, and output escaping.<\/li>\n<li>Reworked runtime output buffering so each buffer is explicitly closed.<\/li>\n<\/ul>","raw_excerpt":"WordPress translation plugin for multilingual sites with manual and optional AI translation, language switcher, RTL support and Elementor integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=352200"}],"author":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vynatics"}],"wp:attachment":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352200"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352200"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352200"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352200"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352200"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}