{"id":287828,"date":"2026-02-28T07:16:42","date_gmt":"2026-02-28T07:16:42","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/linguapress\/"},"modified":"2026-03-15T13:23:08","modified_gmt":"2026-03-15T13:23:08","slug":"linguapress","status":"publish","type":"plugin","link":"https:\/\/os.wordpress.org\/plugins\/linguapress\/","author":23462473,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"LinguaPress","header_author":"oakharaz","header_description":"Complete multilingual plugin for WordPress \u2014 translate posts, pages, menus, taxonomies and theme strings.","assets_banners_color":"","last_updated":"2026-03-15 13:23:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/gitlab.com\/omarakharaz\/linguapress","header_author_uri":"https:\/\/gitlab.com\/omarakharaz","rating":0,"author_block_rating":0,"active_installs":0,"downloads":599,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.4.0":"<p>BREAKING: Functions renamed from <code>lp__()<\/code> to <code>linguapress__()<\/code> and <code>lp_e()<\/code> to <code>linguapress_e()<\/code>. Update your theme code accordingly.<\/p>","1.3.0":"<p>New menu translation management features: duplicate menus, link\/unlink translations, and improved admin UI.<\/p>","1.2.0":"<p>Elementor integration for Pro users. Create and manage translations directly from the page builder.<\/p>","1.1.0":"<p>API key validation and improved uninstall process.<\/p>","1.0.1":"<p>Freemius SDK integration and WordPress 6.9 compatibility.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Language management screen","2":"Translation metabox on posts","3":"Theme string translation interface","4":"Plugin settings page"}},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-287828","plugin","type-plugin","status-publish","hentry","plugin_committers-omarakharaz"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/linguapress.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"\n\n<!--section=description-->\n<p><strong>LinguaPress<\/strong> is a fast, lightweight multilingual plugin that makes translating your WordPress site simple. No bloated settings, no complex setup \u2014 just install, configure your languages, and start translating in minutes.<\/p>\n\n<h4>Why Choose LinguaPress?<\/h4>\n\n<ul>\n<li><strong>Lightweight<\/strong> \u2014 Under 500KB, no performance impact on your site<\/li>\n<li><strong>Simple Interface<\/strong> \u2014 Intuitive metabox to manage translations directly from the editor<\/li>\n<li><strong>SEO Optimized<\/strong> \u2014 Clean URL structure (<code>\/en\/<\/code>, <code>\/fr\/<\/code>) with automatic hreflang tags<\/li>\n<li><strong>Developer Friendly<\/strong> \u2014 <code>linguapress__()<\/code> and <code>linguapress_e()<\/code> functions for theme string translation<\/li>\n<li><strong>No Lock-in<\/strong> \u2014 Your translations are stored as regular posts, no proprietary database tables<\/li>\n<\/ul>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li><strong>Content Translation<\/strong> \u2014 Translate posts, pages, and any custom post type<\/li>\n<li><strong>Menu Translation<\/strong> \u2014 Create separate navigation menus per language with one-click duplication<\/li>\n<li><strong>Theme String Translation<\/strong> \u2014 Translate hard-coded text with <code>linguapress__()<\/code> and <code>linguapress_e()<\/code><\/li>\n<li><strong>SEO-Friendly URLs<\/strong> \u2014 Clean language prefixes (<code>\/en\/<\/code>, <code>\/fr\/<\/code>, <code>\/de\/<\/code>, etc.)<\/li>\n<li><strong>Automatic hreflang Tags<\/strong> \u2014 Improve multilingual SEO automatically<\/li>\n<li><strong>Language Switcher<\/strong> \u2014 Widget, shortcode <code>[linguapress_switcher]<\/code>, and template function<\/li>\n<li><strong>Browser Detection<\/strong> \u2014 Auto-redirect visitors based on their browser language<\/li>\n<li><strong>RTL Support<\/strong> \u2014 Full support for Arabic, Hebrew, and other RTL languages<\/li>\n<li><strong>15 Built-in Languages<\/strong> \u2014 Pre-configured with country flags<\/li>\n<li><strong>2 Languages Included<\/strong> \u2014 Perfect for bilingual websites<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<ul>\n<li><strong>Unlimited Languages<\/strong> \u2014 Add as many languages as you need<\/li>\n<li><strong>Auto-Translate with DeepL<\/strong> \u2014 High-quality machine translation with one click<\/li>\n<li><strong>Auto-Translate with Google<\/strong> \u2014 Google Cloud Translation API integration<\/li>\n<li><strong>WooCommerce Support<\/strong> \u2014 Translate products, categories, and shop pages<\/li>\n<li><strong>Elementor Integration<\/strong> \u2014 Translate pages directly from the Elementor editor<\/li>\n<li><strong>Priority Email Support<\/strong> \u2014 Direct support from the development team<\/li>\n<\/ul>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li><strong>Bilingual Blogs<\/strong> \u2014 Run your blog in two languages effortlessly<\/li>\n<li><strong>International Businesses<\/strong> \u2014 Reach customers in their native language<\/li>\n<li><strong>WooCommerce Stores<\/strong> \u2014 Sell products globally with translated product pages<\/li>\n<li><strong>Portfolio Sites<\/strong> \u2014 Showcase your work to an international audience<\/li>\n<li><strong>Corporate Websites<\/strong> \u2014 Professional multilingual presence for your company<\/li>\n<\/ul>\n\n<h4>WPML &amp; Polylang Alternative<\/h4>\n\n<p>Looking for a simpler, faster alternative to WPML or Polylang? LinguaPress offers the essential features you need without the complexity or bloat. Our lightweight approach means faster page loads and a better experience for both you and your visitors.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to third-party translation services when automatic translation is enabled (Pro feature). No data is sent to external services unless you explicitly configure and use automatic translation.<\/p>\n\n<h4>DeepL API<\/h4>\n\n<p>When DeepL is selected as the translation provider, your content is sent to the DeepL API for translation.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/www.deepl.com\/\">DeepL<\/a><\/li>\n<li>API documentation: <a href=\"https:\/\/developers.deepl.com\/docs\">https:\/\/developers.deepl.com\/docs<\/a><\/li>\n<li>Terms of service: <a href=\"https:\/\/www.deepl.com\/pro-license\">https:\/\/www.deepl.com\/pro-license<\/a><\/li>\n<li>Privacy policy: <a href=\"https:\/\/www.deepl.com\/privacy\">https:\/\/www.deepl.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Google Cloud Translation API<\/h4>\n\n<p>When Google Translate is selected as the translation provider, your content is sent to the Google Cloud Translation API for translation.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/cloud.google.com\/translate\">Google Cloud Translation<\/a><\/li>\n<li>API documentation: <a href=\"https:\/\/cloud.google.com\/translate\/docs\">https:\/\/cloud.google.com\/translate\/docs<\/a><\/li>\n<li>Terms of service: <a href=\"https:\/\/cloud.google.com\/terms\">https:\/\/cloud.google.com\/terms<\/a><\/li>\n<li>Privacy policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>linguapress<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to LinguaPress &gt; Languages to add your languages.<\/li>\n<li>Set your default language in LinguaPress &gt; Settings.<\/li>\n<li>Start translating your content using the LinguaPress metabox on each post or page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20many%20languages%20can%20i%20use%20with%20the%20free%20version%3F\"><h3>How many languages can I use with the free version?<\/h3><\/dt>\n<dd><p>The free version supports up to 2 languages, which is perfect for bilingual websites. If you need more languages, upgrade to LinguaPress Pro for unlimited language support.<\/p><\/dd>\n<dt id=\"is%20linguapress%20compatible%20with%20my%20theme%3F\"><h3>Is LinguaPress compatible with my theme?<\/h3><\/dt>\n<dd><p>Yes! LinguaPress works with any properly coded WordPress theme. It uses WordPress standards and doesn't require any theme modifications.<\/p><\/dd>\n<dt id=\"does%20linguapress%20work%20with%20woocommerce%3F\"><h3>Does LinguaPress work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, WooCommerce product translation is available in LinguaPress Pro. You can translate products, product categories, tags, and attributes. Product data (price, inventory, etc.) is automatically synced across translations.<\/p><\/dd>\n<dt id=\"does%20linguapress%20work%20with%20elementor%3F\"><h3>Does LinguaPress work with Elementor?<\/h3><\/dt>\n<dd><p>Yes! LinguaPress Pro includes full Elementor integration. A floating translation panel appears in the Elementor editor, allowing you to create and manage translations without leaving the page builder.<\/p><\/dd>\n<dt id=\"how%20does%20automatic%20translation%20work%3F\"><h3>How does automatic translation work?<\/h3><\/dt>\n<dd><p>With LinguaPress Pro, connect your DeepL or Google Cloud Translation API key to auto-translate content with one click. The plugin sends your content to the translation service and creates a draft translation. You can review and edit before publishing.<\/p><\/dd>\n<dt id=\"does%20linguapress%20support%20rtl%20languages%3F\"><h3>Does LinguaPress support RTL languages?<\/h3><\/dt>\n<dd><p>Yes, LinguaPress has full RTL (right-to-left) support for Arabic, Hebrew, Persian, and other RTL languages. The plugin automatically detects RTL languages and applies the correct text direction.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20navigation%20menus%3F\"><h3>Can I translate navigation menus?<\/h3><\/dt>\n<dd><p>Yes! Go to Appearance &gt; Menus to:\n* Assign a language to each menu\n* Duplicate a menu to another language (menu items are automatically translated if translations exist)\n* Link existing menus as translations\n* Unlink menu translations<\/p><\/dd>\n<dt id=\"how%20are%20translations%20stored%3F\"><h3>How are translations stored?<\/h3><\/dt>\n<dd><p>Translations are stored as regular WordPress posts with a custom taxonomy linking them together. This means no proprietary database tables and easy data portability.<\/p><\/dd>\n<dt id=\"will%20linguapress%20slow%20down%20my%20site%3F\"><h3>Will LinguaPress slow down my site?<\/h3><\/dt>\n<dd><p>No. LinguaPress is designed to be lightweight (under 500KB) with minimal database queries. URL rewriting uses WordPress native functions for optimal performance.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20custom%20post%20types%3F\"><h3>Can I translate custom post types?<\/h3><\/dt>\n<dd><p>Yes! Any registered custom post type can be translated. Go to LinguaPress &gt; Settings to enable translation support for your custom post types.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20language%20switcher%3F\"><h3>How do I add a language switcher?<\/h3><\/dt>\n<dd><p>You have three options:\n1. <strong>Widget<\/strong> \u2014 Add the LinguaPress Language Switcher widget to any sidebar\n2. <strong>Shortcode<\/strong> \u2014 Use <code>[linguapress_switcher]<\/code> anywhere in your content\n3. <strong>Template function<\/strong> \u2014 Use <code>linguapress_switcher()<\/code> in your theme templates<\/p><\/dd>\n<dt id=\"is%20there%20a%20way%20to%20test%20browser%20language%20detection%3F\"><h3>Is there a way to test browser language detection?<\/h3><\/dt>\n<dd><p>Yes! Use browser extensions like \"Locale Switcher\" (Chrome) or \"Quick Accept-Language Switcher\" (Firefox) to simulate visitors from different countries. You can also use Chrome DevTools &gt; Network conditions to change your locale.<\/p><\/dd>\n<dt id=\"do%20i%20need%20my%20own%20api%20keys%20for%20auto-translation%3F\"><h3>Do I need my own API keys for auto-translation?<\/h3><\/dt>\n<dd><p>Yes, you need your own DeepL or Google Cloud Translation API key. Both services offer free tiers: DeepL Free allows 500,000 characters\/month, and Google offers $10 free credit for new accounts.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Shared product images \u2014 WooCommerce product translations now share images with the source product<\/li>\n<li><strong>New:<\/strong> Shared GTIN \u2014 Product GTIN\/EAN codes are shared between translations<\/li>\n<li><strong>New:<\/strong> Build script updates readme.txt Stable tag automatically<\/li>\n<li><strong>Changed:<\/strong> Renamed all prefixes from <code>lp_<\/code> to <code>linguapress_<\/code> (WordPress.org 4+ character requirement)<\/li>\n<li><strong>Changed:<\/strong> Functions renamed: <code>lp__()<\/code> \u2192 <code>linguapress__()<\/code>, <code>lp_e()<\/code> \u2192 <code>linguapress_e()<\/code><\/li>\n<li><strong>Changed:<\/strong> Removed Freemius SDK from free version (WordPress.org compliance)<\/li>\n<li><strong>Fixed:<\/strong> Elementor integration loading when plugin loads before Elementor<\/li>\n<li><strong>Improved:<\/strong> 223 unit tests with 287 assertions<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> WordPress.org plugin check compliance<\/li>\n<li><strong>Fixed:<\/strong> Added proper escaping and sanitization throughout<\/li>\n<li><strong>Fixed:<\/strong> Prefixed all global variables in view files<\/li>\n<li><strong>Improved:<\/strong> Code quality with PHPCS annotations<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Menu language selector \u2014 assign a language to each navigation menu<\/li>\n<li><strong>New:<\/strong> Menu duplication \u2014 duplicate a menu to another language with automatic translation resolution<\/li>\n<li><strong>New:<\/strong> Link existing menus \u2014 connect existing menus as translations<\/li>\n<li><strong>New:<\/strong> Unlink menu translations \u2014 remove translation link without deleting<\/li>\n<li><strong>Improved:<\/strong> Refactored menu UI to use wp_localize_script for cleaner code<\/li>\n<li><strong>Improved:<\/strong> Assets now use filemtime() for instant cache invalidation<\/li>\n<li><strong>Fixed:<\/strong> Duplicate metabox appearing on WooCommerce products<\/li>\n<li><strong>Fixed:<\/strong> Unit tests conflict with linguapress_current_lang()<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Elementor integration \u2014 translate pages directly from the Elementor editor<\/li>\n<li><strong>New:<\/strong> Auto-translate in Elementor \u2014 use DeepL or Google Translate API from the editor (Pro)<\/li>\n<li><strong>New:<\/strong> Delete translations from both Elementor and classic WordPress editor<\/li>\n<li><strong>Improved:<\/strong> Test coverage with 103 unit tests and 57 integration tests<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> API key validation button with detailed error messages<\/li>\n<li><strong>New:<\/strong> Validate translation API credentials before saving<\/li>\n<li><strong>Improved:<\/strong> Moved uninstall logic to Freemius after_uninstall hook<\/li>\n<li><strong>Improved:<\/strong> Added Pro ZIP build job to CI pipeline<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li><strong>Improved:<\/strong> Freemius SDK integration for license management<\/li>\n<li><strong>Fixed:<\/strong> Crash during wp_query initialization<\/li>\n<li><strong>Fixed:<\/strong> WordPress.org submission errors<\/li>\n<li><strong>Improved:<\/strong> Excluded vendor\/ from free build to reduce ZIP size<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Post, page and custom post type translation<\/li>\n<li>Navigation menu translation<\/li>\n<li>Theme string translation with <code>linguapress__()<\/code> and <code>linguapress_e()<\/code><\/li>\n<li>URL rewriting with language prefixes<\/li>\n<li>SEO hreflang tags<\/li>\n<li>Language switcher widget<\/li>\n<li>Browser language detection<\/li>\n<li>15 built-in languages<\/li>\n<\/ul>","raw_excerpt":"Complete multilingual plugin for WordPress \u2014 translate posts, pages, menus, taxonomies and theme strings.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287828"}],"author":[{"embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/omarakharaz"}],"wp:attachment":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287828"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287828"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287828"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287828"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287828"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}