{"id":370016,"date":"2026-10-09T21:57:47","date_gmt":"2026-10-09T21:57:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/translawp\/"},"modified":"2026-10-09T21:57:19","modified_gmt":"2026-10-09T21:57:19","slug":"cocos-translate","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cocos-translate\/","author":16032548,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.1.3","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"COCOS Translate","header_author":"COCOS.","header_description":"Multilingual WordPress. Translate your entire site from the front end with a visual editor, machine-translate with Google Translate (your own API key), SEO-friendly per-language URLs, hreflang tags and a language switcher.","assets_banners_color":"bbcbfe","last_updated":"2026-10-09 21:57:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/translate.cocos.codes\/","header_author_uri":"https:\/\/cocos.codes\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":58,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"mstron","date":"2026-10-09 21:57:19","revision":3737363}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3737360,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3737360,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3737360,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3737360,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"cc-transla\/switcher":{"name":"cc-transla\/switcher","title":"Language Switcher (COCOS Translate)"}},"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3737372,"resolution":"1","location":"assets","locale":"","width":2560,"height":1450},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3737372,"resolution":"10","location":"assets","locale":"","width":2560,"height":1359},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3737372,"resolution":"11","location":"assets","locale":"","width":2560,"height":1359},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3737372,"resolution":"12","location":"assets","locale":"","width":2560,"height":1359},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3737372,"resolution":"2","location":"assets","locale":"","width":2560,"height":1768},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3737372,"resolution":"3","location":"assets","locale":"","width":2560,"height":1359},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3737372,"resolution":"4","location":"assets","locale":"","width":2560,"height":1359},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3737372,"resolution":"5","location":"assets","locale":"","width":2560,"height":1359},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3737372,"resolution":"6","location":"assets","locale":"","width":2560,"height":1359},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3737372,"resolution":"7","location":"assets","locale":"","width":2560,"height":2635},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3737372,"resolution":"8","location":"assets","locale":"","width":2560,"height":1359},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3737372,"resolution":"9","location":"assets","locale":"","width":2560,"height":2326}},"screenshots":[]},"plugin_section":[],"plugin_tags":[2993,1734,99,186,2333],"plugin_category":[48,55],"plugin_contributors":[285447],"plugin_business_model":[],"class_list":["post-370016","plugin","type-plugin","status-publish","hentry","plugin_tags-hreflang","plugin_tags-localization","plugin_tags-multilingual","plugin_tags-seo","plugin_tags-translation","plugin_category-language-tools","plugin_category-seo-and-marketing","plugin_contributors-mstron","plugin_committers-mstron"],"banners":{"banner":"https:\/\/ps.w.org\/cocos-translate\/assets\/banner-772x250.png?rev=3737360","banner_2x":"https:\/\/ps.w.org\/cocos-translate\/assets\/banner-1544x500.png?rev=3737360","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cocos-translate\/assets\/icon-128x128.png?rev=3737360","icon_2x":"https:\/\/ps.w.org\/cocos-translate\/assets\/icon-256x256.png?rev=3737360","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-1.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-2.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-3.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-4.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-5.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-6.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-7.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-8.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-9.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-10.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-11.png?rev=3737372","caption":""},{"src":"https:\/\/ps.w.org\/cocos-translate\/assets\/screenshot-12.png?rev=3737372","caption":""}],"raw_content":"<!--section=description-->\n<p>COCOS Translate makes your site bilingual without touching your theme or your content structure: it translates your site from its default language into one translation language of your choice. You can change the translation language at any time.<\/p>\n\n<p>Core features:<\/p>\n\n<ul>\n<li><strong>Whole-page translation.<\/strong> The rendered HTML is buffered, parsed and every visible text node plus common attributes (alt, title, placeholder, aria-label, meta descriptions, Open Graph \/ Twitter tags) is replaced with its translation.<\/li>\n<li><strong>Live translation of JS-rendered content.<\/strong> A client-side layer (MutationObserver) translates content injected after page load - WooCommerce Cart\/Checkout blocks, Gutenberg-hydrated blocks, AJAX fragments - using the same dictionary, and reports unknown strings so they get translated on the next visit.<\/li>\n<li><strong>Visual front-end editor.<\/strong> Open any page in edit mode, click a string, type the translation, save. Works for content, menus, widgets, theme strings.<\/li>\n<li><strong><code>gettext<\/code> translation.<\/strong> Theme and plugin strings that pass through <code>__()<\/code> \/ <code>_e()<\/code> are translatable too.<\/li>\n<li><strong>Machine translation.<\/strong> Google Cloud Translation v2 with your own API key. Translate on demand from the editor, in bulk from the admin, or automatically in the background via WP-Cron. (Other engines are available in COCOS Translate PRO, a separate plugin.)<\/li>\n<li><strong>SEO-friendly URLs.<\/strong> The translated pages live under their own path prefix (e.g. <code>\/fr\/<\/code>). <code>hreflang<\/code> alternate links, <code>x-default<\/code>, translated <code>&lt;html lang&gt;<\/code> \/ <code>dir<\/code> and localized permalinks are handled for you.<\/li>\n<li><strong>Language switcher.<\/strong> Shortcode <code>[cc_transla_switcher]<\/code>, a widget, a <code>cc_transla_language_switcher()<\/code> template tag, an optional floating switcher and optional nav-menu injection.<\/li>\n<li><strong>Built-in page cache<\/strong> for anonymous visitors so translated pages are served without re-parsing.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can send text to an external machine-translation service. It does so only if you choose \"Google Translate\" as the machine-translation engine and enter your own API key under <strong>Settings \u2192 COCOS Translate \u2192 Machine translation<\/strong>. With the engine set to \"None\" (the default), the plugin makes no external requests.<\/p>\n\n<p><strong>Google Cloud Translation API (v2)<\/strong><\/p>\n\n<ul>\n<li>What it is \/ what it is used for: Google's machine-translation service, used to translate the strings of your site (page text, menu items, widget text and similar) into your translation language.<\/li>\n<li>What data is sent and when: the text strings to be translated, the source and target language codes, and your Google API key. This happens when you click the machine-translate button in the visual editor, run a bulk \"Auto-translate\" from the admin, or when automatic background translation (WP-Cron) or translate-on-access is enabled. No visitor personal data is sent \u2014 only the site strings that are missing a translation.<\/li>\n<li>Service provider: Google LLC. <a href=\"https:\/\/cloud.google.com\/terms\">Terms of Service<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a> \u00b7 <a href=\"https:\/\/cloud.google.com\/terms\/cloud-privacy-notice\">Cloud Privacy Notice<\/a><\/li>\n<\/ul>\n\n<p>Links to translate.cocos.codes in this readme and in the plugin's admin screens are ordinary hyperlinks; the plugin does not contact that site in the background.<\/p>\n\n<h3>Notes \/ limitations<\/h3>\n\n<ul>\n<li>URL translation uses the sub-directory method (<code>example.com\/fr\/\u2026<\/code>). Sub-domains and separate domains are not supported.<\/li>\n<li>On sites with a full-page caching layer in front of PHP, exclude the <code>?cc-transla-edit<\/code> requests from that cache.<\/li>\n<li>Very large string tables load into memory per request; let the built-in page cache do its job.<\/li>\n<\/ul>\n\n<h3>COCOS Translate PRO<\/h3>\n\n<p>This plugin translates your site into one language, with Google Translate on your\nown API key. <strong>COCOS Translate PRO<\/strong> (https:\/\/translate.cocos.codes) is a separate\npaid plugin for sites in several languages. It offers:<\/p>\n\n<ul>\n<li><strong>Several translation languages per site.<\/strong><\/li>\n<li><strong>One-click AI translation<\/strong> through the COCOS Translate proxy \u2014 Google, DeepL,\nOpenAI, Claude and Gemini with <strong>no provider API keys<\/strong> to manage.<\/li>\n<li>A monthly <strong>AI phrase quota<\/strong> with optional top-up packs.<\/li>\n<li><strong>Priority support<\/strong> and automatic updates from translate.cocos.codes.<\/li>\n<\/ul>\n\n<p>PRO is optional and is distributed from translate.cocos.codes, not from WordPress.org.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cocos-translate<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Settings \u2192 COCOS Translate<\/strong>, pick your default language and the language to translate your site into.<\/li>\n<li>Visit the front end, open the admin-bar <strong>Translate Page<\/strong> menu and start translating, or configure a machine-translation engine and run <strong>Auto-translate<\/strong> from the admin.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>The plugin now translates your site into one translation language of your choice (Settings \u2192 COCOS Translate \u2192 Languages), changeable at any time.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Maintenance release.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: language-prefixed URLs (e.g. \/it\/, \/de\/) returning a 404 on sub-directory installs \u2014 the language segment is now stripped without WordPress losing the site's own sub-directory.<\/li>\n<li>Fix: cached translated pages could be answered with a 502 by some proxies\/CDNs because of an invalid HTTP header name on cache hits.<\/li>\n<li>Fix: a stray XML declaration could appear in the served HTML of translated pages.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Compliance: documented the Google Cloud Translation external service (data sent, Terms of Service and Privacy Policy links) in this readme.<\/li>\n<li>Fix: the live-translation collector now answers a failed nonce check with an error response instead of a success message.<\/li>\n<li>Security: the text sent to the machine-translation engine from the visual editor is now sanitised on the server.<\/li>\n<li>The platform moved to a new domain \u2014 plugin URI, update-check host, and every in-admin link (pricing, features, account, changelog) now point at translate.cocos.codes.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: WooCommerce Cart\/Checkout AJAX requests breaking on non-default-language pages.<\/li>\n<li>Fix: a self-referential translation loop and corrupted HTML entities that could appear in some translated pages.<\/li>\n<li>Fix: the visual editor no longer hides text that was already translated via <code>gettext<\/code>.<\/li>\n<li>Fix: the WordPress core admin bar is no longer picked up as translatable content.<\/li>\n<li>Improvement: rows in the languages table can now be reordered by drag-and-drop (the order also sets the language-switcher order).<\/li>\n<li>Improvement: clearer, more visible outline around translatable text in the front-end editor.<\/li>\n<li>Various translation-harvesting fixes and WordPress.org plugin-check compliance fixes (escaping, sanitization).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release of COCOS Translate.<\/li>\n<li>Whole-page translation of the rendered HTML - visible text plus alt \/ title \/ placeholder \/ aria-label and SEO meta (description, keywords, Open Graph, Twitter).<\/li>\n<li>Live translation of content injected after page load (WooCommerce Cart\/Checkout blocks, Gutenberg-hydrated blocks, AJAX fragments) via a MutationObserver layer that also reports unknown strings.<\/li>\n<li>Visual front-end editor: hover translatable text, click the pencil, edit the translation, save.<\/li>\n<li><code>gettext<\/code> translation for theme and plugin strings.<\/li>\n<li>Machine translation with Google Cloud Translation v2 (your own API key) - on demand from the editor, in bulk, or automatically via WP-Cron.<\/li>\n<li>SEO-friendly per-language URLs (<code>\/fr\/<\/code>, <code>\/de\/<\/code> ...), <code>hreflang<\/code> alternates, <code>x-default<\/code>, translated <code>&lt;html lang&gt;<\/code> \/ <code>dir<\/code> and localized permalinks.<\/li>\n<li>Language switcher: shortcode <code>[cc_transla_switcher]<\/code>, widget, template tag, an optional floating switcher and nav-menu injection - with bundled SVG country flags.<\/li>\n<li>Built-in page cache for anonymous visitors.<\/li>\n<li>Glossary with \"keep as-is\" terms; numbers handled as variables so \"83 products\" \/ \"90 products\" translate once.<\/li>\n<li>Advanced tab with a \"Danger zone\" (delete all translations \/ reset settings).<\/li>\n<\/ul>","raw_excerpt":"Translate your whole WordPress site from the front end \u2014 machine translation, SEO-friendly language URLs and a switcher.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370016"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mstron"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370016"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370016"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370016"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370016"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370016"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}