plugin-icon

Parly — Simple Multi Language

Sudo Software yazdı·
Simple manual translations by page duplication. No page builders locked out, no complex setup — duplicate, translate, done.
Puanlar
5
Sürüm
1.0.2
Son güncellenme
Jul 24, 2026
Parly — Simple Multi Language

Parly is a lightweight alternative to heavy multilingual plugins. Instead of intercepting your HTML or forcing a translation interface on you, it uses the simplest model possible: each translation is a normal WordPress page, duplicated from the original and edited with the editor you already use — Gutenberg, Classic, or any page builder.

How it works

  1. Register your languages (name, ISO code, optional flag emoji).
  2. On any post or page, click “+ create translation” in the Translations metabox. Parly duplicates the content (including featured image, template and custom fields) as a draft linked to the original.
  3. Translate it with your normal editor and publish.
  4. Visitors switch languages via the floating button, a menu item, or the [parly_switcher] shortcode.

Features

  • Unlimited languages — any language, any ISO code, including regional variants (pt-br, zh-hans). Optional WordPress locale per language so theme and plugin translations (.mo files) load natively on translated pages.
  • Floating language switcher — 4 configurable positions, customizable font and colors, accessible (keyboard and screen-reader friendly).
  • Menu integration — show a different menu per language (mapped per theme location), append the switcher to any menu, add it as a native menu item in Appearance Menus (drag it into position like any item), or place it anywhere with the shortcode.
  • Guided onboarding — a “Get started” screen explains the whole workflow, in English, Spanish or Portuguese, right after activation.
  • Automatic browser language detection — optional, first-visit-only redirect that respects the visitor’s manual choice via cookie.
  • Theme texts — translate text that lives outside pages (menus, footers, buttons, hardcoded template strings) by registering the original and its translation. A built-in scanner reads any page of your site and lists the theme texts it finds, so you do not have to hunt for them. Replacements happen in the rendered HTML only, never touching URLs, attributes or scripts, and the theme files are never modified.
  • Bulk translation via AI — export your content (pages, posts and registered theme texts) to a compact JSON file with embedded instructions and a ready-to-paste prompt. Send it to the AI of your choice (Claude, ChatGPT, etc.), upload the translated file back, and Parly creates or updates all translations at once. Handles page-builder content (WPBakery, Divi, etc.) by translating the visible text inside shortcodes while keeping the structure intact. The import validates HTML and shortcode structure and automatically repairs common AI mistakes (such as Markdown conversion), rejecting anything it cannot fix rather than saving broken content.
  • SEO ready — automatic hreflang tags (including x-default), correct <html lang> attribute per page.
  • Admin tools — language column and filter in post lists, per-language page counts.
  • Developer helpersparly_t(), parly_get_current_lang(), parly_get_original_id() and parly_is_translation() for themes that render content in custom templates.
  • No lock-in — translations are plain WordPress posts. Deactivate the plugin and all your content remains published and reachable.
  • Privacy-friendly — no external requests, no API keys, no tracking. Your content never leaves your site.

Limitations — read before installing

Parly keeps things simple on purpose, and that comes with honest trade-offs:

  • No per-language URL prefixes. Each translation is a normal page with its own permalink (/about-us/ instead of /en/sobre/). If your SEO strategy requires /en/-style URL structures, Parly is not the right tool.
  • No automatic machine translation. Translation is manual, or assisted by the AI tool of your choice through the bulk export/import — Parly itself never translates or sends your content anywhere.
  • Hardcoded theme text is only partially covered. This is the most important limitation to understand. Parly translates what lives in the WordPress database: page/post content, titles, menus, and any string you register under Theme texts. But text printed directly by a theme’s PHP template files (a tagline in header.php, a footer credit, a button label inside a custom template) is outside the database. Parly offers two workarounds — the Theme texts scanner, which replaces registered strings in the rendered HTML of translated pages, and the parly_t() helper for developers who can edit the theme — but both require identifying each string. Themes that build entire layouts in PHP (custom front pages, heavily hardcoded designs) will need developer work with the helpers below, and in extreme cases a plugin with an automatic, external-service approach (such as Weglot) may fit better despite its subscription cost.
  • One multilingual plugin at a time. Parly cannot run alongside WPML, Polylang or similar and will warn you if one is active.

Functions for developers

All helpers are safe to call from any theme or plugin (guard with function_exists() if your theme may run without Parly):

  • parly_t( array $translations ) — returns the string matching the language of the page being viewed. Example: echo parly_t( array( 'en' => 'About us', 'pt-br' => 'Sobre nós' ) );. Ideal for hardcoded template text a developer controls.
  • parly_get_current_lang() — returns the language code of the page being viewed (e.g. 'en', 'pt-br').
  • parly_get_original_id( int $post_id = 0 ) — returns the ID of the original (default-language) post of the translation group. Essential for custom templates: lets a theme render the same template parts for every language variant of a page (see the FAQ on homepages that render empty).
  • parly_is_translation( int $post_id = 0 ) — whether the current (or given) post is a translation rather than the original.
  • Filter parly_duplicate_skip_meta — lets developers exclude additional meta keys from duplication when a translation is created.
  • Shortcode [parly_switcher] — renders the inline language switcher anywhere shortcodes are supported.
Ücretsiz(ücretli paketlerde)
Kurulum işlemini tamamlayarak, WordPress.com'un Hizmet Şartları ile Üçüncü Taraf Eklenti Şartlarını kabul etmiş olursunuz.
Test edilen son sürüm
WordPress 7.0.2
Bu eklenti, sitenizde kullanılmak üzere indirilebilir.