{"id":320538,"date":"2026-06-02T15:55:14","date_gmt":"2026-06-02T15:55:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/evertongue\/"},"modified":"2026-09-18T14:38:58","modified_gmt":"2026-09-18T14:38:58","slug":"evertongue","status":"publish","type":"plugin","link":"https:\/\/azb.wordpress.org\/plugins\/evertongue\/","author":14317743,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.1","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Evertongue","header_author":"Photricity Web Design","header_description":"Simple, scalable WordPress translation that stays fast and manageable, whether you have 5 languages or 50.","assets_banners_color":"551f62","last_updated":"2026-09-18 14:38:58","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/photricity.com\/pay\/","header_plugin_uri":"https:\/\/photricity.com\/wordpress-plugins\/evertongue\/","header_author_uri":"https:\/\/photricity.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":307,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"photricity","date":"2026-06-02 16:03:01","revision":3558287},"1.0.2":{"tag":"1.0.2","author":"photricity","date":"2026-08-14 16:12:11","revision":3647695},"1.0.4":{"tag":"1.0.4","author":"photricity","date":"2026-09-18 14:38:58","revision":3702147}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3558330,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3558330,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3558330,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3558330,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"evertongue\/language-switcher":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"evertongue\/language-switcher","title":"Language picker","category":"widgets","icon":"translation","description":"A language picker that lists only the languages this page or post is available in.","keywords":["language","translation","switcher","combobox"],"textdomain":"evertongue","attributes":{"switcherStyle":{"type":"string","default":"combobox"},"showFlag":{"type":"boolean"},"showEnglish":{"type":"boolean"},"showNative":{"type":"boolean"}},"supports":{"html":false,"align":["left","center","right"],"color":{"background":true,"text":true,"gradients":true,"__experimentalDefaultControls":{"background":true,"text":true}},"typography":{"fontSize":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true,"__experimentalDefaultControls":{"padding":true}},"border":{"color":true,"radius":true,"width":true,"style":true,"__experimentalDefaultControls":{"color":true,"radius":true,"width":true,"style":true}},"shadow":true},"editorScript":"file:.\/editor.js"}},"tagged_versions":["1.0.1","1.0.2","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3558258,"resolution":"1","location":"assets","locale":"","width":1200,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3558258,"resolution":"2","location":"assets","locale":"","width":1200,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3558258,"resolution":"3","location":"assets","locale":"","width":1200,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3558258,"resolution":"4","location":"assets","locale":"","width":1200,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3558258,"resolution":"5","location":"assets","locale":"","width":1200,"height":1000}},"screenshots":{"1":"Evertongue dashboard with language overview and go-live notice.","2":"Languages screen with flags, sort order, and quick actions.","3":"Page translation editing with searchable combobox.","4":"Settings screen for switcher defaults and automatic switchers.","5":"Front-end language switcher combobox on a translated page."}},"plugin_section":[],"plugin_tags":[104,1385,1734,99,2333],"plugin_category":[48],"plugin_contributors":[265486],"plugin_business_model":[],"class_list":["post-320538","plugin","type-plugin","status-publish","hentry","plugin_tags-i18n","plugin_tags-language","plugin_tags-localization","plugin_tags-multilingual","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-photricity","plugin_committers-photricity"],"banners":{"banner":"https:\/\/ps.w.org\/evertongue\/assets\/banner-772x250.png?rev=3558330","banner_2x":"https:\/\/ps.w.org\/evertongue\/assets\/banner-1544x500.png?rev=3558330","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/evertongue\/assets\/icon-128x128.png?rev=3558330","icon_2x":"https:\/\/ps.w.org\/evertongue\/assets\/icon-256x256.png?rev=3558330","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/evertongue\/assets\/screenshot-1.png?rev=3558258","caption":"Evertongue dashboard with language overview and go-live notice."},{"src":"https:\/\/ps.w.org\/evertongue\/assets\/screenshot-2.png?rev=3558258","caption":"Languages screen with flags, sort order, and quick actions."},{"src":"https:\/\/ps.w.org\/evertongue\/assets\/screenshot-3.png?rev=3558258","caption":"Page translation editing with searchable combobox."},{"src":"https:\/\/ps.w.org\/evertongue\/assets\/screenshot-4.png?rev=3558258","caption":"Settings screen for switcher defaults and automatic switchers."},{"src":"https:\/\/ps.w.org\/evertongue\/assets\/screenshot-5.png?rev=3558258","caption":"Front-end language switcher combobox on a translated page."}],"raw_content":"<!--section=description-->\n<p>Evertongue helps WordPress sites carry one message across many languages without the overhead of a heavyweight multilingual system.<\/p>\n\n<p>It was built for teams who need more than a handful of translations. Many popular multilingual plugins work well for a few languages, then become hard to manage as the language list grows. Evertongue keeps the workflow intentionally simple: real WordPress pages and posts, predictable language URLs, focused string translation, and switchers that remain usable when your audience spans dozens of languages.<\/p>\n\n<p>Inspired by Revelation 5:9, \"every tribe and tongue and people and nation,\" Evertongue is for mission-driven teams working to make their message accessible to a global audience.<\/p>\n\n<h4>What Evertongue does<\/h4>\n\n<ul>\n<li>Translate pages and posts as whole posts using the standard Gutenberg\/classic editor<\/li>\n<li>Translate theme\/site strings<\/li>\n<li>Default language at the site root, others under <code>\/{code}\/<\/code><\/li>\n<li>Identical slugs across every language for a given page or post<\/li>\n<li>Auto-swapping menu items with fallback to the default language<\/li>\n<li>Floating language switcher, Language picker block, or manual template tag<\/li>\n<li>Copyable <code>[evt_string]<\/code> shortcodes and custom strings on the Translate tab<\/li>\n<li>hreflang alternate links and og:locale metadata on translated pages and posts<\/li>\n<li>WPML and Polylang importers for migrating languages, content, and strings<\/li>\n<li>PO file export\/import for round-tripping strings<\/li>\n<\/ul>\n\n<h4>What Evertongue does not try to be<\/h4>\n\n<p>Evertongue is not an all-in-one localization suite. It does not try to handle every edge case, automatic translation workflow, or site-specific integration inside the core plugin. The goal is a clean foundation for multilingual content that stays understandable, maintainable, and fast as your language count grows.<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Add languages under Evertongue \u2192 Languages. Configure your default. Translate pages and posts from the editor sidebar (Gutenberg) or side meta box (Classic).<\/p>\n\n<p>Render the language switcher in your theme:<\/p>\n\n<pre><code>&lt;?php if ( function_exists( 'evertongue_switcher' ) ) evertongue_switcher(); ?&gt;\n<\/code><\/pre>\n\n<p>Use <code>style =&gt; 'combobox'<\/code> for a searchable dropdown.<\/p>\n\n<p>For users who prefer not to edit theme code, enable the floating button or footer list under Evertongue \u2192 Settings \u2192 Automatic switchers (full site mode), or add the Language picker block on a page (content-only mode).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/evertongue<\/code>, or install through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the Plugins screen.<\/li>\n<li>Open <strong>Evertongue \u2192 Languages<\/strong> and add your languages (or bulk-import from CSV under <strong>Import \/ export \u2192 Languages<\/strong>), then set a default.<\/li>\n<li>Use <strong>Evertongue \u2192 Settings<\/strong> to choose full site or content-only translation, then configure switchers, SEO tags, and setup mode while you migrate content.<\/li>\n<li>Translate pages and posts from the editor, or import existing translations under <strong>Import \/ export<\/strong>.<\/li>\n<li>When you are ready for public multilingual URLs, turn off setup mode (or click <strong>Go live<\/strong> on the dashboard notice).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20evertongue%20work%20alongside%20wpml%20or%20polylang%3F\"><h3>Does Evertongue work alongside WPML or Polylang?<\/h3><\/dt>\n<dd><p>Yes, during migration. Setup mode keeps Evertongue's front-end routing and string translation off while you import content. When WPML remains active after go-live, Evertongue automatically defers front-end behavior to avoid conflicts. However, Evertongue is designed to work independently, without other translation plugins active.<\/p><\/dd>\n<dt id=\"who%20can%20manage%20languages%20and%20imports%3F\"><h3>Who can manage languages and imports?<\/h3><\/dt>\n<dd><p>Users with the <code>evertongue_manage<\/code> capability (administrators by default) can manage languages, settings, and WPML\/Polylang imports. Users with <code>evertongue_translate<\/code> (editors by default) can translate content, manage strings, and import PO files.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>By default, Evertongue leaves your languages, translations, and strings in the database. To remove all plugin data on uninstall, enable <strong>Remove plugin data on uninstall<\/strong> under Evertongue \u2192 Settings before deleting the plugin.<\/p><\/dd>\n<dt id=\"where%20is%20the%20default%20language%20url%3F\"><h3>Where is the default language URL?<\/h3><\/dt>\n<dd><p>The default language uses your normal site URLs at the root. Other languages are served under <code>\/{language-code}\/<\/code> with the same slug structure as the default.<\/p><\/dd>\n<dt id=\"how%20do%20i%20bulk-add%20languages%3F\"><h3>How do I bulk-add languages?<\/h3><\/dt>\n<dd><p>Go to <strong>Evertongue \u2192 Import \/ export \u2192 Languages<\/strong>. Download the sample CSV (25 common languages) or an empty template, edit the file if needed, then upload it with <strong>Import CSV<\/strong>. Existing language codes are skipped. After import, open <strong>Evertongue \u2192 Languages<\/strong> to set your default language and adjust flags or sort order. CSV import adds language definitions only; translating pages, posts, and strings is a separate step.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20only%20some%20pages%20instead%20of%20the%20whole%20site%3F\"><h3>Can I translate only some pages instead of the whole site?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Evertongue \u2192 Settings \u2192 Translation mode<\/strong>, choose <strong>Content only<\/strong>. Menus, header, footer, and theme strings stay in the default language. Translate individual pages or posts as usual. URLs stay <code>example.com\/es\/your-page\/<\/code>. Add the <strong>Language picker<\/strong> block on the page (or <code>evertongue_switcher()<\/code> in a template) so visitors can switch among languages that page exists in.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added Content only translation mode for page\/post bodies without translating site chrome.<\/li>\n<li>Added a Language picker block that lists only languages available for the current page.<\/li>\n<li>Added <code>[evt_string id=\"N\"]<\/code> shortcodes for managed strings, with copy on the Translate tab.<\/li>\n<li>Added custom strings so you can translate phrases that were never captured from the theme.<\/li>\n<li>Copy custom fields onto new language drafts, including the page template and featured image.<\/li>\n<li>New languages insert in alphabetical order when the language list is already alphabetical.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>One-click \"Add top 20 languages\" starter import on the empty Languages screen.<\/li>\n<li>Sample language library CSV and empty template downloads on Import \/ export \u2192 Languages.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated WPML import path resolution to use WordPress directory APIs.<\/li>\n<li>Admin notices are now scoped to Evertongue screens.<\/li>\n<li>Replaced rename() calls with WP_Filesystem::move()<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Carry your message across every language. Lightweight, scalable WordPress translation for reaching a truly global audience.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/320538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=320538"}],"author":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/photricity"}],"wp:attachment":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=320538"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=320538"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=320538"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=320538"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=320538"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=320538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}