[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fjKzfNY4iPZi7prlclLweAnKSY9vP7jT766Uyvyltiko":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":7,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":37,"analysis":140,"fingerprints":583},"xlanguage","xLanguage","2.0.4","","https:\u002F\u002Fprofiles.wordpress.org\u002Fsam0737\u002F","\u003Cp>If your want to present your blog in different languages (totally with title, rss, categories working, not just the post) and allows visitors to pick the language they want, this plugin is for you.\u003C\u002Fp>\n\u003Cp>xLanguage is a full featured plugin allows you to blog in different language, and allows user to select which version to read.  It works for blog post, page, tags, categories.  The user language preferences will also select the right theme and plugins MO files.\u003C\u002Fp>\n\u003Cp>Customization is the No. 1 design goal, after all that’s probably the reason why you want to setup a multilingual blog.   The language configuration combination is highly customizable to facilitate multiple fallbacks.  Every UI is extracted out, which could be optionally overridden by theme design without touching the plugin file at all.\u003C\u002Fp>\n\u003Cp>The language preference is detected from browser’s preferences, as well as from Cookie if user visited before. Widget and template functions are also provided to allow user to switch the language easily. The presentation of the template functions can also be customized in your theme folder without touching the code in the plugins.\u003C\u002Fp>\n\u003Cp>See \u003Ccode>Other Notes\u003C\u002Fcode> for the comparisons against similar plugins.\u003C\u002Fp>\n\u003Ch4>Feature Highlights\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Does not touch the WordPress database schema at all. All language text are stored in the same post and hence more friendly to other plugins.\u003C\u002Fli>\n\u003Cli>For post that written in reader’s foreign language. You could hide them, or optionally show them with a notice prepended. Your choice!\u003C\u002Fli>\n\u003Cli>Optionally present a total independent view to the search engine crawlers. So that you can have all languages text being crawled under a single URL. Think of SEO!\u003C\u002Fli>\n\u003Cli>Each language can be presented in a different theme.\u003C\u002Fli>\n\u003Cli>Language composing are done in inline instead of separated side by side posting, see Screenshot 1. The former is like Simplified\u002FTraditional Chinese within Wikipedia-ZH, while latter is like Wikipedia-Zh and -EN version.\u003C\u002Fli>\n\u003Cli>Many-to-many mappings between viewable language and authoring language is possible. Hong Kong-based reader could read Cantonese and Chinese, but average Chinese reader could only read Chinese, xLanguage specifically enables this scenario!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage Guide\u003C\u002Fh4>\n\u003Cp>To fully enjoy the power of customization, please refer to the usage guide hosted on my \u003Ca href=\"http:\u002F\u002Fhellosam.net\u002Fproject\u002Fxlanguage\" rel=\"nofollow ugc\">blog project page\u003C\u002Fa>.  Also see my blog for live demostration.\u003C\u002Fp>\n\u003Cp>There are some \u003Ca href=\"http:\u002F\u002Fhellosam.net\u002Fproject\u002Fxlanguage\" rel=\"nofollow ugc\">known problems and limitations\u003C\u002Fa>, please make sure you are aware of those.\u003C\u002Fp>\n\u003Ch4>Change Log\u003C\u002Fh4>\n\u003Cp>Please refer to my \u003Ca href=\"http:\u002F\u002Fhellosam.net\u002Fproject\u002Fxlanguage\" rel=\"nofollow ugc\">blog page\u003C\u002Fa> for recent changes.\u003C\u002Fp>\n\u003Ch4>Upgrade Notice\u003C\u002Fh4>\n\u003Cp>Permalinks \u003Ccode>Postfix\u003C\u002Fcode> appending position is known to be not working with WordPress 2.7 paged comments mode and potentially causing conflicts with many other plugins.  The mode will be changed to \u003Ccode>Prefix\u003C\u002Fcode> when you upgrade from v1.x. If you are using the \u003Ccode>Postfix\u003C\u002Fcode> mode and want to keep using it, please change the settings manually.\u003C\u002Fp>\n\u003Ch3>Comparisons\u003C\u002Fh3>\n\u003Ch4>Compare to qTranslate v2.0.2 (Jan 2009)\u003C\u002Fh4>\n\u003Cp>The logic behind qTranslate is similar to that of xLanguage – both using HTML tag to differentiate the contents of languages and requires no database modification. qTranslate uses HTML comment tag while xLanguage uses the lang=”..” attribute.\u003C\u002Fp>\n\u003Cp>The major differences lie within the admin interface, qTranslate provides strong Admin UI integration such that user enters the title, the category name and so on in independent textbox. The post is also to be post to an independent editor. While xLanguage, user enters the data in the same input box. For authoring in language that are very similar (like Cantonese and Written Chinese), and that cross-authoring is common, the method that xLanguage use will reduce much duplication work.\u003C\u002Fp>\n\u003Cp>Due to the above restriction, qTranslate supports only one-to-one mapping between authoring and viewable lanugage. while xLanguage does not have this restriction. And hence, xLanguage allows all texts to be presented under one single URL for search engine to crawl with. (Think of SEO)\u003C\u002Fp>\n\u003Cp>Feature-wise, xLanguage currently lacks of Pre-domain URL Permalinks mode, as well as automatic MO file download. (Note: MO does work in xLanguage but just have to be downloaded manually). Contribution would certainly help in accelerate these getting done :).\u003C\u002Fp>\n\u003Ch4>Compare to Gengo v2.5.3 (Jan 2009)\u003C\u002Fh4>\n\u003Cp>Gengo v2.5.3 is not tested with WordPress 2.7 according to the published plugin info.\u003C\u002Fp>\n\u003Cp>In Gengo, each translations is a standalone post, linked to the original post.  It enables you to create maps between different content.  Think of different language version of Wikipedia, basically Gengo is the same – and it helps you to maintain such link table.\u003C\u002Fp>\n\u003Cp>In xLanguage, everything is in the same post.  The xLanguage approaches make no structural changes to the WordPress itself, and hence should be easier maintain.  No extra magic in xLanguage is needed to keep the commenting, searching, popularity counter works.\u003C\u002Fp>\n\u003Ch4>Compare to Language Switcher v1.11 (Jan 2008)\u003C\u002Fh4>\n\u003Cp>This is actually the plugin that inspired me to build the xLanguage.  The Language Switcher and the xLanguage is working in a very similar way — Both enable multilingual post by tagging the it.  The Language Switcher uses square bracket instead of HTML tag, but have no assisting tools when composing the post.  The language code is limited to the length of 2, and offer no fallbacking and overlapping possibility.  The permalink url tag must be placed at the end.\u003C\u002Fp>\n\u003Cp>Same as xLanguage, it allows user to enable multilingual functionality on single line content like tag, title and such.\u003C\u002Fp>\n\u003Ch4>Compare to jLanguage v1.4 (Jan 2008)\u003C\u002Fh4>\n\u003Cp>Almost the same as Language Switcher, both functionality and working principle.  However, jLanguage v1.4 does not have widget for user to select their favorite language.  In addition, It currently offer almost no customization, plus it does not work for single line content.  The language selection could not affect the MO file selection.\u003C\u002Fp>\n\u003Cp>It enables the language tagging by using square brakets instead of standard tag, similar to that of Language Switcher.\u003C\u002Fp>\n\u003Ch4>Compare to Multilingual post v0.2 (Jan 2008)\u003C\u002Fh4>\n\u003Cp>Please be aware that Multilingual post v0.2 does not belong to this category at all.  It does not enable poster to publish mixed language in a post.  The user also cannot selectively view the post in a particular language.\u003C\u002Fp>\n\u003Cp>It only does insert the lang=”..” tag at the HEAD such that browser can render the page better.  xLanguage also does this.\u003C\u002Fp>\n\u003Ch4>Compare to Bunny’s Language Linker v0.2 (Jan 2008)\u003C\u002Fh4>\n\u003Cp>Bunny’s Language Linker’s way to enable multilanguage blog is minimal and simple, yet the integration is very loose.  It works like Gengo, the pros and cons compare to xLanguage is very similar.\u003C\u002Fp>\n\u003Ch4>Compare to Basic Bilingual v0.31 (Jan 2008)\u003C\u002Fh4>\n\u003Cp>Basic Bilingual v0.31 allows you to insert a summaries in a different language.  It is yet another very simple plugin.\u003C\u002Fp>\n","Allows you to blog in multi-language, and users to select which to read.  Works on every blog UI elements, not just the post.",100,79003,80,2,"2009-06-09T17:40:00.000Z","2.7.1","2.3.2",[19,20,21,22,23],"babel","l10n","language","multilanguage","multilingual","http:\u002F\u002Fhellosam.net\u002Fproject\u002Fxlanguage","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fxlanguage.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":32,"profile_url":8,"plugin_count":14,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"sam0737",110,30,84,"2026-04-04T21:56:21.893Z",[38,62,84,102,121],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":57,"download_link":58,"security_score":59,"vuln_count":60,"unpatched_count":27,"last_vuln_date":61,"fetched_at":29},"loco-translate","Loco Translate","2.8.3","Tim W","https:\u002F\u002Fprofiles.wordpress.org\u002Ftimwhitlock\u002F","\u003Cp>Loco Translate provides in-browser editing of WordPress translation files and integration with automatic translation services.\u003C\u002Fp>\n\u003Cp>It also provides Gettext\u002Flocalization tools for developers, such as extracting strings and generating templates.\u003C\u002Fp>\n\u003Cp>Features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Built-in translation editor within WordPress admin\u003C\u002Fli>\n\u003Cli>Integration with translation APIs including DeepL, Google, Lecto, Microsoft and OpenAI.\u003C\u002Fli>\n\u003Cli>Create and update language files directly in your theme or plugin\u003C\u002Fli>\n\u003Cli>Extraction of translatable strings from your source code\u003C\u002Fli>\n\u003Cli>Native MO file compilation without the need for Gettext on your system\u003C\u002Fli>\n\u003Cli>JSON (Jed) file compilation compatible with WordPress script localization\u003C\u002Fli>\n\u003Cli>Support for standard PO features including comments, references and plural forms\u003C\u002Fli>\n\u003Cli>PO source view with clickable source code references\u003C\u002Fli>\n\u003Cli>Protected language directory for saving custom translations\u003C\u002Fli>\n\u003Cli>Configurable PO file backups with diff and restore capability\u003C\u002Fli>\n\u003Cli>Built-in WordPress locale codes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Official \u003Ca href=\"https:\u002F\u002Flocalise.biz\u002F\" rel=\"nofollow ugc\">Loco\u003C\u002Fa> WordPress plugin by Tim Whitlock.\u003Cbr \u002F>\nFor more information please visit our \u003Ca href=\"https:\u002F\u002Flocalise.biz\u002Fwordpress\u002Fplugin\" rel=\"nofollow ugc\">plugin page\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Keyboard shortcuts\u003C\u002Fh3>\n\u003Cp>The PO file editor supports the following keyboard shortcuts for faster translating:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Done and Next: \u003Ccode>Ctrl ↵\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Next string: \u003Ccode>Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↓\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Previous string: \u003Ccode>Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↑\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Next untranslated: \u003Ccode>Shift Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↓\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Previous untranslated: \u003Ccode>Shift Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↑\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Copy from source text: \u003Ccode>Ctrl B\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Clear translation: \u003Ccode>Ctrl K\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Toggle Fuzzy: \u003Ccode>Ctrl U\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Save PO \u002F compile MO: \u003Ccode>Ctrl S\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Toggle invisibles: \u003Ccode>Shift Ctrl I\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Suggest translation: \u003Ccode>Ctrl J\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Mac users can use ⌘ Cmd instead of Ctrl.\u003C\u002Fp>\n","Translate WordPress plugins and themes directly in your browser. Versatile PO file editor with integrated AI translation providers.",1000000,34331592,96,447,"2026-03-14T11:53:00.000Z","6.9.4","6.6","7.4",[55,20,21,23,56],"i18n","translation","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floco-translate\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Floco-translate.2.8.3.zip",95,4,"2026-03-30 15:35:09",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":72,"num_ratings":11,"last_updated":73,"tested_up_to":51,"requires_at_least":74,"requires_php":75,"tags":76,"homepage":79,"download_link":80,"security_score":81,"vuln_count":82,"unpatched_count":27,"last_vuln_date":83,"fetched_at":29},"wp-multilang","WP Multilang – Translation and Multilingual Plugin","2.4.26","Magazine3","https:\u002F\u002Fprofiles.wordpress.org\u002Fmagazine3\u002F","\u003Cp>WP Multilang is a multilingual plugin for WordPress.\u003C\u002Fp>\n\u003Cp>Translations of post types, taxonomies, meta fields, options, text fields in miltimedia files, menus, titles and text fields in widgets.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F#features\" rel=\"nofollow ugc\">Premium Features\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>New Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support full site editor for block based themes\u003C\u002Fli>\n\u003Cli>Support block based widgets\u003C\u002Fli>\n\u003Cli>Support different feature image for each language\u003C\u002Fli>\n\u003Cli>Support Smart Custom Fields Plugin\u003C\u002Fli>\n\u003Cli>Auto Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-auto-translate-your-website-contents-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support Base Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-taxonomy-bases-such-as-categories-and-tags-into-selective-languages-using-the-base-translation-option\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Export and import content in XLIFF or xml format to translate outside\u003C\u002Fli>\n\u003Cli>Activate Multilingual Support for Post Types\u003C\u002Fli>\n\u003Cli>Support Auto URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>100% free.\u003C\u002Fli>\n\u003Cli>Translation at PHP.\u003C\u002Fli>\n\u003Cli>Compatible with REST.\u003C\u002Fli>\n\u003Cli>Support configuration for translate multidimensional arrays in options, meta fields, post content.\u003C\u002Fli>\n\u003Cli>Support multisite.\u003C\u002Fli>\n\u003Cli>Support WordPress in sub-folder.\u003C\u002Fli>\n\u003Cli>Separate menu items, posts, terms, widgets, comments per language.\u003C\u002Fli>\n\u003Cli>Many filters for dynamic applying translation settings.\u003C\u002Fli>\n\u003Cli>No duplicate posts, terms, menus, widgets.\u003C\u002Fli>\n\u003Cli>No sub-domain for each language version.\u003C\u002Fli>\n\u003Cli>No additional tables in database.\u003C\u002Fli>\n\u003Cli>Possibility set many languages with one localization. For example, for localization in the region.\u003C\u002Fli>\n\u003Cli>Possibility to set custom locale for html(If installed locale is en_US, you can set locale like: en, en-UK, en-AU etc. Without installation another localization)\u003C\u002Fli>\n\u003Cli>Possibility for add new languages for any user with capability \u003Ccode>manage_options\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Exist the role “Translator” for editing posts, terms. It can not publish or delete.\u003C\u002Fli>\n\u003Cli>No limits by languages or by possibilities.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WP Multilang compatible with plugins\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Elementor ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-elementor-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Divi Builder ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-divi-builder-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>ACF, ACF Pro\u003C\u002Fli>\n\u003Cli>WooCommerce\u003C\u002Fli>\n\u003Cli>WooCommerce Customizer\u003C\u002Fli>\n\u003Cli>Gutenberg\u003C\u002Fli>\n\u003Cli>Yoast Seo\u003C\u002Fli>\n\u003Cli>SEOPress \u003C\u002Fli>\n\u003Cli>Contact Form 7 (added mail tag [_language] for send user language in mail)\u003C\u002Fli>\n\u003Cli>WPBakery Visual Composer\u003C\u002Fli>\n\u003Cli>Page Builder by SiteOrigin\u003C\u002Fli>\n\u003Cli>NextGEN Gallery\u003C\u002Fli>\n\u003Cli>All in One SEO Pack\u003C\u002Fli>\n\u003Cli>MailChimp for WordPress\u003C\u002Fli>\n\u003Cli>Newsletter\u003C\u002Fli>\n\u003Cli>Maps Builder\u003C\u002Fli>\n\u003Cli>Max Mega Menu\u003C\u002Fli>\n\u003Cli>MasterSlider\u003C\u002Fli>\n\u003Cli>WP-PageNavi\u003C\u002Fli>\n\u003Cli>BuddyPress\u003C\u002Fli>\n\u003Cli>Meta Slider\u003C\u002Fli>\n\u003Cli>TablePress\u003C\u002Fli>\n\u003Cli>Download Monitor (Redefine templates for links in your theme and translate link texts)\u003C\u002Fli>\n\u003Cli>Better Search\u003C\u002Fli>\n\u003Cli>Rank Math SEO (thanks for @pratikmts)\u003C\u002Fli>\n\u003Cli>WPGraphQL (Add lang to the query parameters in URL. Eg: lang=en)\u003C\u002Fli>\n\u003Cli>Smart Custom Fields\u003C\u002Fli>\n\u003Cli>Team – Team Members Showcase Plugin\u003C\u002Fli>\n\u003Cli>Schema & Structured Data for WP & AMP\u003C\u002Fli>\n\u003Cli>Forminator Forms\u003C\u002Fli>\n\u003Cli>Gravity Forms\u003C\u002Fli>\n\u003Cli>Ultimate Member Form\u003C\u002Fli>\n\u003Cli>Oxygen Builder\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advance Woocommerce Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Send emails in customer’s selected language\u003C\u002Fli>\n\u003Cli>REST API Support\u003C\u002Fli>\n\u003Cli>Import and export products in customer’s selected language\u003C\u002Fli>\n\u003Cli>Translate products (simple products, variable products, grouped products), categories, tags, global attributes\u003C\u002Fli>\n\u003Cli>Cart synchronization across multiple languages \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Manage translation settings via json.\u003C\u002Fp>\n\u003Cp>Add in the root of your theme or plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Sample configurations can be viewed in config files in folder ‘configs’ in root the plugin.\u003C\u002Fp>\n\u003Cp>Configuration is updated after switching theme, enable or update any plugins.\u003C\u002Fp>\n\u003Cp>The plugin has filters for dynamic application configuration for translate.\u003C\u002Fp>\n\u003Cp>For turn off translation, set \u003Ccode>null\u003C\u002Fcode> into the desired configuration.\u003Cbr \u002F>\nFor example, you must turn off translation for a post type \u003Ccode>post\u003C\u002Fcode>.\u003Cbr \u002F>\nThere are two ways:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>In json.\u003Cbr \u002F>\nCreate in root of a theme or a plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode> with:\u003Cbr \u002F>\n    {\u003Cbr \u002F>\n           “post_types”: {\u003Cbr \u002F>\n             “post”: null\u003Cbr \u002F>\n           }\u003Cbr \u002F>\n         }\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Through the filter.\u003Cbr \u002F>\nAdd in functions.php\u003Cbr \u002F>\n    add_filter( ‘wpm_post_post_config’, ‘__return_null’ );\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>To enable translation pass an empty array in php \u003Ccode>array()\u003C\u002Fcode> or empty object in json \u003Ccode>{}\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Supports translation multidimensional array of options, meta fields and post_content.\u003Cbr \u002F>\nSupports the removal of established localizations.\u003Cbr \u002F>\nSupports translation via GET parameter. Add in the GET parameter \u003Ccode>lang\u003C\u002Fcode> code desired language.\u003Cbr \u002F>\nSupports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.\u003Cbr \u002F>\nSupports import term translations from qTranslate(by Soft79).\u003Cbr \u002F>\nSupports automatically redirect to the user’s browser language, if he visits for the first time.\u003C\u002Fp>\n\u003Cp>Ideal for developers.\u003C\u002Fp>\n\u003Cp>For display language switcher in any place add the code to your template \u003Ccode>if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();\u003C\u002Fcode>\u003Cbr \u002F>\nFunction accepts two parameters:\u003Cbr \u002F>\n$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.\u003Cbr \u002F>\n$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.\u003C\u002Fp>\n\u003Cp>Or using the shortcode \u003Ccode>wpm_lang_switcher\u003C\u002Fcode>. It accept two not necessary parameters ‘type’ and ‘show’.\u003C\u002Fp>\n\u003Cp>Available features for translation:\u003Cbr \u002F>\n    wpm_translate_url( $url, $language = ” ); – translate url\u003Cbr \u002F>\n    wpm_translate_string( $string, $language = ” ); – translate multilingual string\u003Cbr \u002F>\n    wpm_translate_value( $value, $language = ” ); – translate multidimensional array with multilingual strings\u003C\u002Fp>\n\u003Cp>Update translation occurs at PHP. Therefore plugin has high adaptability, compatibility and easily integrates with other plugins. This is what distinguishes it among similar.\u003C\u002Fp>\n\u003Cp>Available translation html tags by JS for strings what do not have WP filters before output.\u003C\u002Fp>\n\u003Cp>Add your tags in config:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"admin_html_tags\": {\n    \"admin_screen_id\": {\n      \"attribute\": [\n        \"selector\"\n      ]\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Where:\u003Cbr \u002F>\n    admin_screen_id – admin screen id.\u003Cbr \u002F>\n    attribute – attribute what need to translate. Available ‘text’ – for translate text node, ‘value’ – for translate form values. Or other tag attribute, like ‘title’, ‘alt’.\u003Cbr \u002F>\n    selector – css selector for search needed tag. Each selector is a new array item.\u003C\u002Fp>\n\u003Cp>If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.\u003Cbr \u002F>\nExample, add config for each item ‘title’ in custom post field array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"post_fields\": {\n    \"custom_field\": {\n      \"wpm_each\": {\n        \"title\": {}\n      }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For set translation uses the syntax:\u003Cbr \u002F>\n    [:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]\u003C\u002Fp>\n\u003Cp>Added shortcode for translate text in any place:\u003Cbr \u002F>\n    [wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>If You translate text in established language, add lang parameter:\u003Cbr \u002F>\n    [wpm_translate lang=”de”][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.\u003C\u002Fp>\n\u003Cp>Compatible with REST-API.\u003Cbr \u002F>\nSupport transfer the required translation through option \u003Ccode>lang\u003C\u002Fcode> in the GET request to REST.\u003Cbr \u002F>\nHas the ability to keep recording the target language through the transmission parameter \u003Ccode>lang\u003C\u002Fcode> in the request.\u003C\u002Fp>\n\u003Ch3>Migration from qTranslate-X\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Before installing\u002Funinstalling, make database backup.\u003C\u002Fli>\n\u003Cli>Deactivate qTranslate-X.\u003C\u002Fli>\n\u003Cli>Install and activate WP Multilang.\u003C\u002Fli>\n\u003Cli>Create in root of your theme file ‘wpm-config.json’.\u003C\u002Fli>\n\u003Cli>Add all needed post types, taxonomies, options, fields to ‘wpm-config.json’. Setting from qTranslate-X not importing.\u003C\u002Fli>\n\u003Cli>Import term names from qTranslate.\u003C\u002Fli>\n\u003Cli>Check that everything is okay.\u003C\u002Fli>\n\u003Cli>If everything is okay, remove qTranslate-X. If not, make screenshots of errors, restore database from backup and add support issue with your screenshots and description of errors.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Warning\u003C\u002Fh3>\n\u003Cp>Not compatible with:\u003Cbr \u002F>\n– WP Maintenance\u003C\u002Fp>\n\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cp>Function ‘get_page_by_title’ not working, because in title field are stored titles for all languages. Use function ‘wpm_get_page_by_title( $title )’ as solution.\u003C\u002Fp>\n\u003Cp>NOTE: Because plugins have different ways of storing data, WP Multilang is not compatible with every single plugin out-of-the-box (mostly page builders). This may result in texts not being translatable or translations not being saved. Most of these issues can be resolved using the integration options (wpm-config.json or filters) of WP Multilang.\u003C\u002Fp>\n\u003Cp>Please try WP Multilang in a test-environment before activating it on an existing production site and always make a backup before activating!\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Premium\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We try our best to provide support on WordPress.org forums. However, We have a special \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">community support\u003C\u002Fa> where you can ask us questions and get help about your WP Multilang related questions. Delivering a good user experience means a lot to us and so we try our best to reply each and every question that gets asked.\u003C\u002Fp>\n\u003Ch3>Bug Reports\u003C\u002Fh3>\n\u003Cp>Bug reports for WP Multilang are \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang\u002Fissues\" rel=\"nofollow ugc\">welcomed on GitHub\u003C\u002Fa>. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.\u003C\u002Fp>\n","Multilingual plugin for WordPress. Go Multilingual in minutes with full WordPress support. Translate your site easily with this localization plugin.",10000,249839,86,"2026-02-18T13:52:00.000Z","4.7","5.6.20",[77,22,23,78,56],"localization","translate","https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-multilang.2.4.26.zip",98,1,"2025-06-05 00:00:00",{"slug":85,"name":86,"version":87,"author":88,"author_profile":89,"description":90,"short_description":91,"active_installs":70,"downloaded":92,"rating":93,"num_ratings":94,"last_updated":95,"tested_up_to":51,"requires_at_least":96,"requires_php":53,"tags":97,"homepage":98,"download_link":99,"security_score":81,"vuln_count":100,"unpatched_count":27,"last_vuln_date":101,"fetched_at":29},"wpglobus","WPGlobus","3.0.2","Gregory Karpinsky (@tivnet)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftivnet\u002F","\u003Cp>\u003Cstrong>WPGlobus\u003C\u002Fstrong> is a family of WordPress plugins assisting you in translating and maintaining bilingual\u002Fmultilingual WordPress blogs and sites.\u003C\u002Fp>\n\u003Ch4>Quick Start Video\u003C\u002Fh4>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FzoTWY9JrXLs?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Please also read the \u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fquick-start\u002F\" rel=\"nofollow ugc\">Quick Start Guide\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Important Notes: please read before using WPGlobus!\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>NO AUTOMATIC TRANSLATION:\n\u003Cul>\n\u003Cli>WPGlobus does NOT translate texts automatically! You will \u003Cstrong>translate texts manually\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>PAGE BUILDERS \u002F COMPOSERS:\n\u003Cul>\n\u003Cli>WPGlobus supports blocks (“Gutenberg”) and WPBakery Page Builder. Other builders, such as “Page Builder by SiteOrigin”, “Beaver Builder”, Fusion (“Avada”), Elegant (“Divi”), Elementor, etc. have limited or no support.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>IF YOU UNINSTALL, YOU LOSE TRANSLATIONS:\n\u003Cul>\n\u003Cli>WPGlobus stores all translations using a special format: \u003Ccode>{:en}English{:}{:fr}French{:}{:es}Spanish{:}\u003C\u002Fcode>. If you decide to \u003Cstrong>deactivate and uninstall WPGlobus\u003C\u002Fstrong>, you \u003Cstrong>must run the cleanup tool\u003C\u002Fstrong> to keep only one language. See the details on the “Welcome” tab in the WPGlobus Settings.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>COOKIES:\n\u003Cul>\n\u003Cli>WPGlobus use browser cookies to store the selected language in the form \u003Ccode>wpglobus-language=xx\u003C\u002Fcode> where \u003Ccode>xx\u003C\u002Fcode> is a two-letter language code: \u003Ccode>en\u003C\u002Fcode>, \u003Ccode>de\u003C\u002Fcode>, \u003Ccode>fr\u003C\u002Fcode>, etc.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>NO MULTISITE:\n\u003Cul>\n\u003Cli>The \u003Cstrong>multisite\u003C\u002Fstrong> mode (multiple virtual sites sharing a single WordPress installation) is \u003Cstrong>not tested and not supported\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>FREE PLUGIN with PAID EXTENSIONS:\n\u003Cul>\n\u003Cli>Some functionality is available only with our \u003Cstrong>premium add-ons\u003C\u002Fstrong>. Details below.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>OLD PHP \u002F OLD WORDPRESS:\n\u003Cul>\n\u003Cli>We develop and test our software using the \u003Cstrong>latest versions of PHP, WordPress, and all plugins\u003C\u002Fstrong>. If you have an older version and something is not working properly – please upgrade before contacting us.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>MBSTRING:\n\u003Cul>\n\u003Cli>For the full UTF-8 compatibility and better performance, please make sure that the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fintro.mbstring.php\" rel=\"nofollow ugc\">Multibyte String\u003C\u002Fa> PHP extension is enabled.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What is in the FREE version of WPGlobus?\u003C\u002Fh4>\n\u003Cp>The WPGlobus plugin provides you with the general multilingual tools.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Manually translate\u003C\u002Fstrong> posts, pages, categories, tags, menus, and widgets;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add one or several languages\u003C\u002Fstrong> to your WP blog\u002Fsite using custom combinations of country flags, locales and language names;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Switch the languages at the front-end\u003C\u002Fstrong> using: a drop-down menu extension and\u002For a customizable widget with various display options;\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Switch the Administrator interface language\u003C\u002Fstrong> using a top bar selector;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The WPGlobus plugin serves as the \u003Cstrong>foundation\u003C\u002Fstrong> to other plugins in the family.\u003C\u002Fp>\n\u003Ch4>When do I need WPGlobus Extensions?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>To translate URLs (\u003Ccode>\u002Fmy-page\u002F\u003C\u002Fcode> translates to \u003Ccode>\u002Ffr\u002Fma-page\u003C\u002Fcode>, \u003Ccode>\u002Fes\u002Fmi-pagina\u003C\u002Fcode> and so on);\u003C\u002Fli>\n\u003Cli>To “postpone” translation to all languages and publish only those that are ready;\u003C\u002Fli>\n\u003Cli>To have completely separate menus for each language;\u003C\u002Fli>\n\u003Cli>To translate WooCommerce products and taxonomies;\u003C\u002Fli>\n\u003Cli>…and more.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more details, please check out the extension descriptions on our website:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fproduct\u002Fwoocommerce-wpglobus\u002F\" rel=\"nofollow ugc\">WooCommerce WPGlobus\u003C\u002Fa>: adds multilingual capabilities to WooCommerce-based online stores.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fproduct\u002Fwpglobus-plus\u002F\" rel=\"nofollow ugc\">WPGlobus Plus\u003C\u002Fa>: adds URL fine-tuning, publishing status per translation, and more.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fproduct\u002Fwpglobus-mobile-menu\u002F\" rel=\"nofollow ugc\">WPGlobus – Mobile Menu\u003C\u002Fa>: makes the WPGlobus language switcher menu compatible with mobile devices and narrow screens.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fproduct\u002Fwpglobus-featured-images\u002F\" rel=\"nofollow ugc\">WPGlobus – Featured Images\u003C\u002Fa>: Set featured image separately for each language defined in WPGlobus.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fproduct\u002Fwpglobus-translate-options\u002F\" rel=\"nofollow ugc\">WPGlobus – Translate Options\u003C\u002Fa>: Selective translation of the texts stored in the \u003Ccode>wp_options\u003C\u002Fcode> database table.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility with WordPress Themes\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WPGlobus works correctly with all themes that apply proper filtering before outputting content.\u003C\u002Fli>\n\u003Cli>Some themes incorporate 3rd party plugins (e.g., sliders, forms, composers) – not all of them are 100% multilingual-ready. When you see elements that cannot be translated, please \u003Cstrong>tell the theme\u002Fplugin authors\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Read more on the topic \u003Ca href=\"https:\u002F\u002Fwpglobus.com\u002Fdocumentation\u002Fwpglobus-compatibility-with-themes-and-plugins\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility with WordPress Plugins\u003C\u002Fh4>\n\u003Cp>We have tested WPGlobus with many plugins. However, since plugins are frequently updated, some adjustments may be required after a new update. We will do our best to monitor and make the necessary changes on our end.\u003C\u002Fp>\n\u003Ch4>Permalinks\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>IMPORTANT:\u003C\u002Fstrong> WPGlobus will not work if your URLs look like \u003Ccode>example.com?p=123\u003C\u002Fcode> or \u003Ccode>example.com\u002Findex.php\u002Fcategory\u002Fpost\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Please go to \u003Ccode>Settings->Permalinks\u003C\u002Fcode> and change the permalink structure to non-default and with no \u003Ccode>index.php\u003C\u002Fcode> in it. If you are unable to do that for some reason, please talk to your hosting provider or systems administrator.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> WooCommerce adds their own section to the Permalinks. It is important to fill in all the information. For example, you need to specify your Shop Base, for example, \u003Ccode>\u002Fproduct\u002F\u003C\u002Fcode>. If you leave it blank, WooCommerce will try to translate the base (eg \u003Ccode>\u002Fprodukt\u002F\u003C\u002Fcode> for German), which will result in a 404 error.\u003C\u002Fp>\n\u003Ch4>Developing on `localhost` or custom ports\u003C\u002Fh4>\n\u003Cp>WPGlobus may not work correctly on development servers having URLs like \u003Ccode>\u002F\u002Flocalhost\u002Fmysite\u003C\u002Fcode> or on custom ports like \u003Ccode>\u002F\u002Fmyserver.dev:3000\u003C\u002Fcode>. Please use a proper domain name (a fake one from \u003Ccode>\u002Fetc\u002Fhosts\u003C\u002Fcode> is OK), and port 80.\u003C\u002Fp>\n","Multilingual\u002FGlobalization: URL-based multilanguage with an easy translation interface.",1091142,90,228,"2026-02-01T20:20:00.000Z","6.2",[77,22,23,78,85],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpglobus\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpglobus.3.0.2.zip",7,"2018-01-11 00:00:00",{"slug":103,"name":104,"version":105,"author":106,"author_profile":107,"description":108,"short_description":109,"active_installs":110,"downloaded":111,"rating":112,"num_ratings":113,"last_updated":114,"tested_up_to":115,"requires_at_least":116,"requires_php":7,"tags":117,"homepage":119,"download_link":120,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"js-composer-qtranslate-x","WPBakery Visual Composer & qTranslate-X","1.0","John Clause","https:\u002F\u002Fprofiles.wordpress.org\u002Fjohnclause\u002F","\u003Cp>Enables \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> multilingual framework for plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\" rel=\"ugc\">WPBakery Visual Composer\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>At least version 3.3 of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FqTranslate-Team\u002Fqtranslate-x\u002Farchive\u002F3.2.9.9.4.zip\" rel=\"nofollow ugc\">alpha pre-release\u003C\u002Fa> is required.\u003C\u002Fp>\n\u003Cp>This plugin is currently a work in progress, please review the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\u002Fother_notes\u002F\" rel=\"ugc\">Known Issues\u003C\u002Fa> and report the features, which did not work for you.\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n","Enables multilingual framework for plugin \"WPBakery Visual Composer\".",8000,149576,64,11,"2017-11-28T08:32:00.000Z","4.1.42","4.0",[118,55,20,21,23],"bilingual","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-composer-qtranslate-x.1.0.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":131,"num_ratings":132,"last_updated":133,"tested_up_to":134,"requires_at_least":135,"requires_php":7,"tags":136,"homepage":137,"download_link":138,"security_score":11,"vuln_count":82,"unpatched_count":27,"last_vuln_date":139,"fetched_at":29},"sublanguage","Sublanguage","2.12","maximeschoeni","https:\u002F\u002Fprofiles.wordpress.org\u002Fmaximeschoeni\u002F","\u003Cp>Sublanguage is a multilanguage plugin for wordpress.\u003C\u002Fp>\n\u003Ch4>Concept\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>no duplicated content (untranslated or untranslatable data inherits main language value)\u003C\u002Fli>\n\u003Cli>no additional database table (translation data is stored in post_meta)\u003C\u002Fli>\n\u003Cli>no markup added into content (unlike q-translate)\u003C\u002Fli>\n\u003Cli>no cookies (language is defined solely by URLs, better for SEO)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>[NEW] support for Gutenberg (beta feature)\u003C\u002Fli>\n\u003Cli>translation UI for posts content, title, permalink, excerpt and meta (for posts, pages and custom posts)\u003C\u002Fli>\n\u003Cli>translation UI for terms name, slug and description\u003C\u002Fli>\n\u003Cli>translation UI for attachments title, caption, description, alt and meta\u003C\u002Fli>\n\u003Cli>translation UI for nav menus\u003C\u002Fli>\n\u003Cli>translate localized text\u003C\u002Fli>\n\u003Cli>translate login, password change, etc.\u003C\u002Fli>\n\u003Cli>translatability: define which content is translatable or not\u003C\u002Fli>\n\u003Cli>URL rewrite: translate posts and terms permalinks and child pages path\u003C\u002Fli>\n\u003Cli>support revisions\u003C\u002Fli>\n\u003Cli>support multisite\u003C\u002Fli>\n\u003Cli>extendable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Notes\u003C\u002Fh4>\n\u003Cp>In version 2.9, a security vulnerability (“The plugin settings can be executed by lower privilleged (sic) user”) was reported for Sublanguage. In order to ease the fixing, we chose to permanently remove a few under-used features concerned by this exploit in v 2.10. Please write in the forum if you disagree with this choice.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>remove automatic upgrade from version 1.x (version 2.0 is now about 10 years old).\u003C\u002Fli>\n\u003Cli>remove a quick edit button in classic editor that was available width Tinymce Advanced plugin.\u003C\u002Fli>\n\u003Cli>remove the possibility to translate options (Options translated so far will still works as usual in the front-end, you just no longer can edit translations in the back-end).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Documentation\u003C\u002Fh4>\n\u003Cp>Plugin documentation is available on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmaximeschoeni\u002Fsublanguage\" rel=\"nofollow ugc\">github\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Extensions\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsublanguage-switcher-widget\u002F\" rel=\"ugc\">Sublanguage Switcher Widget\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fgeschke\" rel=\"nofollow ugc\">Ralf Geschke\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Thanks\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fuggur\" rel=\"nofollow ugc\">uggur\u003C\u002Fa> for Turkish translation\u003C\u002Fli>\n\u003C\u002Ful>\n","Sublanguage is a lightweight multilanguage plugin for wordpress.",700,27420,92,31,"2025-12-08T10:11:00.000Z","6.6.5","4.5",[21,22,23,56],"http:\u002F\u002Fsublanguageplugin.wordpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsublanguage.2.13.zip","2023-07-04 00:00:00",{"attackSurface":141,"codeSignals":230,"taintFlows":477,"riskAssessment":571,"analyzedAt":582},{"hooks":142,"ajaxHandlers":226,"restRoutes":227,"shortcodes":228,"cronEvents":229,"entryPointCount":27,"unprotectedCount":27},[143,149,152,156,160,163,168,172,176,180,184,187,190,193,196,199,202,205,209,213,217,220,223],{"type":144,"name":145,"callback":146,"file":147,"line":148},"action","admin_head","admin_head_post","admin.php",122,{"type":144,"name":145,"callback":150,"file":147,"line":151},"anonymous",145,{"type":153,"name":154,"callback":150,"file":147,"line":155},"filter","admin_menu",148,{"type":153,"name":157,"callback":157,"priority":158,"file":147,"line":159},"contextual_help",10,149,{"type":144,"name":161,"callback":161,"priority":158,"file":147,"line":162},"save_post",174,{"type":144,"name":164,"callback":165,"file":166,"line":167},"init","load_locale","plugin.php",130,{"type":144,"name":169,"callback":170,"file":166,"line":171},"widgets_init","initialize",518,{"type":144,"name":173,"callback":174,"file":166,"line":175},"sidebar_admin_setup","setup_save",544,{"type":144,"name":177,"callback":178,"file":166,"line":179},"sidebar_admin_page","setup_display",545,{"type":144,"name":181,"callback":150,"file":182,"line":183},"plugins_loaded","xlanguage.php",165,{"type":153,"name":185,"callback":150,"file":182,"line":186},"rewrite_rules_array",168,{"type":153,"name":188,"callback":150,"file":182,"line":189},"mce_plugins",208,{"type":153,"name":191,"callback":150,"file":182,"line":192},"mce_external_plugins",209,{"type":153,"name":194,"callback":150,"file":182,"line":195},"mce_buttons",210,{"type":153,"name":197,"callback":150,"file":182,"line":198},"mce_css",211,{"type":144,"name":200,"callback":150,"file":182,"line":201},"parse_request",218,{"type":153,"name":203,"callback":150,"file":182,"line":204},"query_vars",219,{"type":144,"name":206,"callback":207,"priority":158,"file":182,"line":208},"get_pages","get_pages_in_current_lang",221,{"type":153,"name":210,"callback":211,"file":182,"line":212},"posts_join","filter_posts_join",222,{"type":153,"name":214,"callback":215,"file":182,"line":216},"posts_where","filter_posts_where",223,{"type":153,"name":218,"callback":150,"file":182,"line":219},"template",244,{"type":153,"name":221,"callback":218,"file":182,"line":222},"stylesheet",245,{"type":144,"name":181,"callback":224,"priority":82,"file":182,"line":225},"xLanguage_unload_init",1398,[],[],[],[],{"dangerousFunctions":231,"sqlUsage":237,"outputEscaping":240,"fileOperations":344,"externalRequests":27,"nonceChecks":347,"capabilityChecks":14,"bundledLibraries":472},[232],{"fn":233,"file":234,"line":235,"context":236},"create_function","view\\admin\\head_post.php",5,"var xlanguage_language = [ \u003C?php echo implode(',', array_map( create_function('$v', 'return \"\\'${v[\\",{"prepared":238,"raw":27,"locations":239},3,[],{"escaped":60,"rawEcho":241,"locations":242},144,[243,246,248,250,251,252,254,256,258,260,262,264,266,267,269,270,272,273,276,278,280,282,284,286,288,289,290,292,293,294,295,297,298,299,301,302,304,306,308,309,310,312,313,315,316,318,319,321,322,324,325,327,328,330,332,334,336,337,339,340,341,342,343,345,348,350,351,353,354,356,357,358,359,361,362,363,364,365,367,368,370,371,372,373,374,375,377,378,379,380,382,384,386,388,389,391,392,394,395,396,398,400,401,402,404,406,408,410,412,414,415,416,417,419,421,423,425,426,428,429,430,432,434,436,437,438,439,441,443,444,446,448,451,452,454,455,457,458,461,463,465,467,468,470],{"file":147,"line":244,"context":245},944,"raw output",{"file":247,"line":167,"context":245},"parser.php",{"file":247,"line":249,"context":245},131,{"file":166,"line":212,"context":245},{"file":166,"line":222,"context":245},{"file":166,"line":253,"context":245},313,{"file":166,"line":255,"context":245},333,{"file":166,"line":257,"context":245},334,{"file":166,"line":259,"context":245},491,{"file":166,"line":261,"context":245},615,{"file":166,"line":263,"context":245},650,{"file":166,"line":265,"context":245},652,{"file":166,"line":265,"context":245},{"file":166,"line":268,"context":245},654,{"file":166,"line":268,"context":245},{"file":166,"line":271,"context":245},658,{"file":166,"line":271,"context":245},{"file":274,"line":275,"context":245},"view\\admin\\advanced.php",6,{"file":274,"line":277,"context":245},12,{"file":274,"line":279,"context":245},62,{"file":274,"line":281,"context":245},65,{"file":274,"line":283,"context":245},91,{"file":274,"line":285,"context":245},97,{"file":274,"line":287,"context":245},111,{"file":274,"line":287,"context":245},{"file":274,"line":287,"context":245},{"file":274,"line":291,"context":245},114,{"file":274,"line":291,"context":245},{"file":274,"line":291,"context":245},{"file":274,"line":291,"context":245},{"file":274,"line":296,"context":245},115,{"file":274,"line":296,"context":245},{"file":274,"line":296,"context":245},{"file":274,"line":300,"context":245},118,{"file":274,"line":300,"context":245},{"file":274,"line":303,"context":245},142,{"file":274,"line":305,"context":245},160,{"file":274,"line":307,"context":245},178,{"file":274,"line":307,"context":245},{"file":274,"line":307,"context":245},{"file":274,"line":311,"context":245},179,{"file":274,"line":311,"context":245},{"file":274,"line":314,"context":245},180,{"file":274,"line":314,"context":245},{"file":274,"line":317,"context":245},181,{"file":274,"line":317,"context":245},{"file":274,"line":320,"context":245},182,{"file":274,"line":320,"context":245},{"file":274,"line":323,"context":245},186,{"file":274,"line":323,"context":245},{"file":274,"line":326,"context":245},187,{"file":274,"line":326,"context":245},{"file":274,"line":329,"context":245},189,{"file":274,"line":331,"context":245},190,{"file":274,"line":333,"context":245},191,{"file":274,"line":335,"context":245},192,{"file":274,"line":335,"context":245},{"file":338,"line":82,"context":245},"view\\admin\\head.php",{"file":234,"line":14,"context":245},{"file":234,"line":238,"context":245},{"file":234,"line":60,"context":245},{"file":234,"line":235,"context":245},{"file":234,"line":344,"context":245},8,{"file":346,"line":347,"context":245},"view\\admin\\language.php",9,{"file":346,"line":349,"context":245},24,{"file":346,"line":34,"context":245},{"file":346,"line":352,"context":245},81,{"file":346,"line":72,"context":245},{"file":346,"line":355,"context":245},107,{"file":346,"line":355,"context":245},{"file":346,"line":355,"context":245},{"file":346,"line":355,"context":245},{"file":346,"line":360,"context":245},108,{"file":346,"line":360,"context":245},{"file":346,"line":360,"context":245},{"file":346,"line":287,"context":245},{"file":346,"line":287,"context":245},{"file":346,"line":366,"context":245},112,{"file":346,"line":366,"context":245},{"file":346,"line":369,"context":245},113,{"file":346,"line":369,"context":245},{"file":346,"line":291,"context":245},{"file":346,"line":291,"context":245},{"file":346,"line":296,"context":245},{"file":346,"line":296,"context":245},{"file":346,"line":376,"context":245},116,{"file":346,"line":376,"context":245},{"file":346,"line":300,"context":245},{"file":346,"line":300,"context":245},{"file":346,"line":381,"context":245},143,{"file":346,"line":383,"context":245},147,{"file":346,"line":385,"context":245},154,{"file":346,"line":387,"context":245},161,{"file":346,"line":320,"context":245},{"file":390,"line":275,"context":245},"view\\admin\\options.php",{"file":390,"line":158,"context":245},{"file":390,"line":393,"context":245},79,{"file":390,"line":59,"context":245},{"file":390,"line":48,"context":245},{"file":390,"line":397,"context":245},134,{"file":390,"line":399,"context":245},140,{"file":390,"line":383,"context":245},{"file":390,"line":155,"context":245},{"file":390,"line":403,"context":245},155,{"file":390,"line":405,"context":245},156,{"file":390,"line":407,"context":245},163,{"file":390,"line":409,"context":245},164,{"file":390,"line":411,"context":245},171,{"file":390,"line":413,"context":245},172,{"file":390,"line":311,"context":245},{"file":390,"line":314,"context":245},{"file":390,"line":326,"context":245},{"file":390,"line":418,"context":245},188,{"file":390,"line":420,"context":245},195,{"file":390,"line":422,"context":245},196,{"file":390,"line":424,"context":245},214,{"file":390,"line":201,"context":245},{"file":427,"line":14,"context":245},"view\\admin\\parserlog.php",{"file":427,"line":238,"context":245},{"file":427,"line":113,"context":245},{"file":427,"line":431,"context":245},14,{"file":433,"line":344,"context":245},"view\\admin\\parserlog_xslt.php",{"file":435,"line":60,"context":245},"view\\admin\\submenu.php",{"file":435,"line":235,"context":245},{"file":435,"line":275,"context":245},{"file":435,"line":100,"context":245},{"file":440,"line":235,"context":245},"view\\admin\\tinymce_css.php",{"file":442,"line":14,"context":245},"view\\admin\\update_filtering_metadata.php",{"file":442,"line":113,"context":245},{"file":442,"line":445,"context":245},15,{"file":442,"line":447,"context":245},18,{"file":449,"line":450,"context":245},"view\\xlanguage\\list_langs.php",23,{"file":449,"line":450,"context":245},{"file":449,"line":453,"context":245},25,{"file":449,"line":453,"context":245},{"file":456,"line":445,"context":245},"view\\xlanguage\\post_other_langs.php",{"file":456,"line":445,"context":245},{"file":459,"line":460,"context":245},"widget.php",45,{"file":459,"line":462,"context":245},47,{"file":459,"line":464,"context":245},50,{"file":459,"line":466,"context":245},59,{"file":459,"line":466,"context":245},{"file":182,"line":469,"context":245},1031,{"file":182,"line":471,"context":245},1036,[473],{"name":474,"version":475,"knownCves":476},"TinyMCE","2.0",[],[478,496,506,519,527,536,545,553,562],{"entryPoint":479,"graph":480,"unsanitizedCount":82,"severity":495},"admin_screen_parserlog_file (admin.php:936)",{"nodes":481,"edges":492},[482,487],{"id":483,"type":484,"label":485,"file":147,"line":486},"n0","source","$_GET",940,{"id":488,"type":489,"label":490,"file":147,"line":244,"wp_function":491},"n1","sink","echo() [XSS]","echo",[493],{"from":483,"to":488,"sanitized":494},false,"medium",{"entryPoint":497,"graph":498,"unsanitizedCount":27,"severity":505},"\u003Cadmin> (admin.php:0)",{"nodes":499,"edges":502},[500,501],{"id":483,"type":484,"label":485,"file":147,"line":486},{"id":488,"type":489,"label":490,"file":147,"line":244,"wp_function":491},[503],{"from":483,"to":488,"sanitized":504},true,"low",{"entryPoint":507,"graph":508,"unsanitizedCount":82,"severity":505},"show_config (plugin.php:594)",{"nodes":509,"edges":517},[510,513],{"id":483,"type":484,"label":511,"file":166,"line":512},"$_POST",598,{"id":488,"type":489,"label":514,"file":166,"line":515,"wp_function":516},"update_option() [Settings Manipulation]",607,"update_option",[518],{"from":483,"to":488,"sanitized":494},{"entryPoint":520,"graph":521,"unsanitizedCount":82,"severity":505},"\u003Cplugin> (plugin.php:0)",{"nodes":522,"edges":525},[523,524],{"id":483,"type":484,"label":511,"file":166,"line":512},{"id":488,"type":489,"label":514,"file":166,"line":515,"wp_function":516},[526],{"from":483,"to":488,"sanitized":494},{"entryPoint":528,"graph":529,"unsanitizedCount":60,"severity":505},"\u003Cadvanced> (view\\admin\\advanced.php:0)",{"nodes":530,"edges":534},[531,533],{"id":483,"type":484,"label":532,"file":274,"line":277},"$_SERVER['REQUEST_URI'] (x4)",{"id":488,"type":489,"label":490,"file":274,"line":277,"wp_function":491},[535],{"from":483,"to":488,"sanitized":494},{"entryPoint":537,"graph":538,"unsanitizedCount":238,"severity":505},"\u003Clanguage> (view\\admin\\language.php:0)",{"nodes":539,"edges":543},[540,542],{"id":483,"type":484,"label":541,"file":346,"line":34},"$_SERVER['REQUEST_URI'] (x3)",{"id":488,"type":489,"label":490,"file":346,"line":34,"wp_function":491},[544],{"from":483,"to":488,"sanitized":494},{"entryPoint":546,"graph":547,"unsanitizedCount":238,"severity":505},"\u003Coptions> (view\\admin\\options.php:0)",{"nodes":548,"edges":551},[549,550],{"id":483,"type":484,"label":541,"file":390,"line":158},{"id":488,"type":489,"label":490,"file":390,"line":158,"wp_function":491},[552],{"from":483,"to":488,"sanitized":494},{"entryPoint":554,"graph":555,"unsanitizedCount":14,"severity":505},"\u003Cparserlog> (view\\admin\\parserlog.php:0)",{"nodes":556,"edges":560},[557,559],{"id":483,"type":484,"label":558,"file":427,"line":113},"$_SERVER['REQUEST_URI'] (x2)",{"id":488,"type":489,"label":490,"file":427,"line":113,"wp_function":491},[561],{"from":483,"to":488,"sanitized":494},{"entryPoint":563,"graph":564,"unsanitizedCount":82,"severity":505},"\u003Cupdate_filtering_metadata> (view\\admin\\update_filtering_metadata.php:0)",{"nodes":565,"edges":569},[566,568],{"id":483,"type":484,"label":567,"file":442,"line":445},"$_SERVER['REQUEST_URI']",{"id":488,"type":489,"label":490,"file":442,"line":445,"wp_function":491},[570],{"from":483,"to":488,"sanitized":494},{"summary":572,"deductions":573},"The plugin \"xlanguage\" v2.0.4 exhibits a mixed security posture. On the positive side, there are no recorded vulnerabilities (CVEs) in its history, suggesting a generally stable and secure codebase or a lack of extensive security auditing. Furthermore, all SQL queries utilize prepared statements, and there are a reasonable number of nonce and capability checks, indicating some awareness of security best practices. However, significant concerns arise from the static code analysis. The presence of the `create_function` dangerous function is a major red flag, as it can lead to code injection vulnerabilities if used with user-supplied input. Additionally, a very low percentage of output is properly escaped (3%), implying a high risk of Cross-Site Scripting (XSS) vulnerabilities. The taint analysis reveals that 8 out of 9 analyzed flows have unsanitized paths, which is a critical indicator of potential security flaws, even though no critical or high severity issues were explicitly flagged in the taint results themselves. The combination of these factors, particularly the high rate of unsanitized paths and poor output escaping, presents a substantial risk despite the clean vulnerability history.",[574,576,578,580],{"reason":575,"points":445},"Dangerous function used (create_function)",{"reason":577,"points":344},"Very low output escaping percentage",{"reason":579,"points":277},"High number of unsanitized paths in taint analysis",{"reason":581,"points":238},"Bundled outdated library (TinyMCE v2.0)","2026-03-16T21:03:56.144Z",{"wat":584,"direct":600},{"assetPaths":585,"generatorPatterns":592,"scriptPaths":593,"versionParams":594},[586,587,588,589,590,591],"\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fadmin\u002Fcss\u002Fxlanguage.css","\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fadmin\u002Fcss\u002Fjquery.css","\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fadmin\u002Fjs\u002Fjquery.js","\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fadmin\u002Fjs\u002Fxlanguage.js","\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fjs\u002Fxlanguage.js","\u002Fwp-content\u002Fplugins\u002Fxlanguage\u002Fwidget.php",[],[589,590],[595,596,597,598,599],"xlanguage\u002Fadmin\u002Fcss\u002Fxlanguage.css?ver=","xlanguage\u002Fadmin\u002Fcss\u002Fjquery.css?ver=","xlanguage\u002Fadmin\u002Fjs\u002Fjquery.js?ver=","xlanguage\u002Fadmin\u002Fjs\u002Fxlanguage.js?ver=","xlanguage\u002Fjs\u002Fxlanguage.js?ver=",{"cssClasses":601,"htmlComments":603,"htmlAttributes":607,"restEndpoints":608,"jsGlobals":609,"shortcodeOutput":610},[602],"xlanguage_options",[604,605,606],"This program is free software: you can redistribute it and\u002For modify it under the terms of the GNU General","This software is provided \"as is\" and any express or implied warranties, including, but not limited to,","For full license details see license.txt",[],[],[5],[]]