{"id":231478,"date":"2025-05-30T04:51:57","date_gmt":"2025-05-30T04:51:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/translateml\/"},"modified":"2025-12-02T09:10:53","modified_gmt":"2025-12-02T09:10:53","slug":"translateml","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/translateml\/","author":11913801,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"","requires_php":"","requires_plugins":null,"header_name":"TranslateML","header_author":"Magazine3","header_description":"A lightweight WordPress plugin for frontend content translation with caching.","assets_banners_color":"8381b3","last_updated":"2025-12-02 09:10:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":339,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"magazine3","date":"2025-05-30 04:51:39"},"1.0.1":{"tag":"1.0.1","author":"magazine3","date":"2025-06-17 08:12:03"},"1.0.2":{"tag":"1.0.2","author":"magazine3","date":"2025-12-02 09:10:53"}},"upgrade_notice":{"1.0.0":"<p>Initial release of the plugin. Set up your API key to start translating your content.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3313032,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3313032,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3313032,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3313032,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3313026,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3313026,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3313026,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3313026,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"screenshot-1.png","2":"screenshot-2.png","3":"screenshot-3.png","4":"screenshot-4.png"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[144,243100,22323,99,2333],"plugin_category":[48,52],"plugin_contributors":[169462],"plugin_business_model":[],"class_list":["post-231478","plugin","type-plugin","status-publish","hentry","plugin_tags-caching","plugin_tags-frontend-translation","plugin_tags-language-switcher","plugin_tags-multilingual","plugin_tags-translation","plugin_category-language-tools","plugin_category-performance","plugin_contributors-magazine3","plugin_committers-magazine3"],"banners":{"banner":"https:\/\/ps.w.org\/translateml\/assets\/banner-772x250.png?rev=3313032","banner_2x":"https:\/\/ps.w.org\/translateml\/assets\/banner-1544x500.png?rev=3313032","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/translateml\/assets\/icon-128x128.png?rev=3313032","icon_2x":"https:\/\/ps.w.org\/translateml\/assets\/icon-256x256.png?rev=3313032","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/translateml\/assets\/screenshot-1.png?rev=3313026","caption":"screenshot-1.png"},{"src":"https:\/\/ps.w.org\/translateml\/assets\/screenshot-2.png?rev=3313026","caption":"screenshot-2.png"},{"src":"https:\/\/ps.w.org\/translateml\/assets\/screenshot-3.png?rev=3313026","caption":"screenshot-3.png"},{"src":"https:\/\/ps.w.org\/translateml\/assets\/screenshot-4.png?rev=3313026","caption":"screenshot-4.png"}],"raw_content":"<!--section=description-->\n<p><strong>TranslateML<\/strong> is a powerful yet lightweight WordPress plugin designed to provide seamless frontend content translation. The plugin uses the <a href=\"https:\/\/translateml.com\">TranslateML API<\/a> to translate text and leverages caching to deliver high performance.<\/p>\n\n<h3>Key Features:<\/h3>\n\n<ul>\n<li><strong>Automatic Translation<\/strong>: Translates frontend content dynamically using TranslateML API.<\/li>\n<li><strong>Caching<\/strong>: Optimized caching for faster translation delivery.<\/li>\n<li><strong>Language Switcher<\/strong>: Easily switch between multiple languages on your site.<\/li>\n<li><strong>Customizable URLs<\/strong>: Adds a two-digit language code to URLs for SEO-friendly language versions.<\/li>\n<li><strong>Default Language<\/strong>: Falls back to the default language (English) if a translation is unavailable.<\/li>\n<\/ul>\n\n<h3>How It Works:<\/h3>\n\n<ol>\n<li>Captures the output buffer of the page.<\/li>\n<li>Sends the content to TranslateML API for translation.<\/li>\n<li>Replaces the content with the translated version or uses the default language if no translation exists.<\/li>\n<li>Translations are cached for enhanced performance.<\/li>\n<\/ol>\n\n<h3>Performance Note:<\/h3>\n\n<p>TranslateML activates its translation buffer only when a non-default language is requested and a valid API key is configured. However, this may introduce performance overhead in certain environments \u2014 especially on high-traffic sites or pages with large content.<\/p>\n\n<h4>Scenarios to watch:<\/h4>\n\n<ul>\n<li>Remote API calls on every translated page request (if not cached)<\/li>\n<li>Incompatibility with server-side full-page caching (e.g., Varnish, NGINX)<\/li>\n<li>Large dynamic pages without caching may slow down noticeably<\/li>\n<\/ul>\n\n<h3>Bug Reports<\/h3>\n\n<p>Bug reports for TranslateML are <a href=\"https:\/\/github.com\/ahmedkaludi\/translateml\">welcomed on GitHub<\/a>. Please note GitHub is not a support forum, and issues that aren't properly qualified as bugs will be closed.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin relies on the following third-party service:<\/p>\n\n<h4>TranslateML.com API<\/h4>\n\n<p>TranslateML plugin connects to TranslateML.com API to translate the contents. It sends the user's site url , language source and language target to perform translation. No personally identifiable information (PII) is collected or transmitted.<\/p>\n\n<p>This API service is provided by the developer of the plugin : <a href=\"https:\/\/translateml.com\/terms\">Terms of Service<\/a> , <a href=\"https:\/\/translateml.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>Translateml<\/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>Configure API settings in the <strong>TranslateML<\/strong> settings page under the WordPress admin dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20set%20up%20the%20translateml%20api%3F'><h3>How do I set up the TranslateML API?<\/h3><\/dt>\n<dd><p>Go to the plugin settings page and enter your TranslateML API key. If you don\u2019t have one, sign up at <a href=\"https:\/\/translateml.com\">TranslateML.com<\/a>.<\/p><\/dd>\n<dt id='what%20happens%20if%20a%20translation%20is%20unavailable%3F'><h3>What happens if a translation is unavailable?<\/h3><\/dt>\n<dd><p>If a translation is unavailable, the plugin will display the default language (English).<\/p><\/dd>\n<dt id='is%20this%20plugin%20compatible%20with%20caching%20plugins%3F'><h3>Is this plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes, TranslateML is designed to work seamlessly with popular caching plugins.<\/p><\/dd>\n<dt id='will%20this%20plugin%20work%20with%20server-side%20caching%3F'><h3>Will this plugin work with server-side caching?<\/h3><\/dt>\n<dd><p>TranslateML uses PHP output buffering (<code>ob_start()<\/code>) to dynamically translate content on the frontend. While this only happens when a translated language is requested and an API key is configured, it may conflict with full-page server-side caching systems.<\/p>\n\n<p>Some examples of caching systems that may interfere:\n- Varnish\n- NGINX full-page caching\n- Managed WordPress hosting caches (e.g., WP Engine, Kinsta, SiteGround)<\/p>\n\n<p>If your site uses such caching:\n- Translations may not appear as expected unless caching is bypassed for translated pages.\n- It is recommended to test thoroughly or disable caching for multilingual URLs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2 (02 December 2025)<\/h4>\n\n<ul>\n<li>Test  : Tested with WordPress 6.9<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added banner and Screenshots<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Integrated TranslateML API for translations.<\/li>\n<li>Added language switcher functionality.<\/li>\n<li>Implemented caching for performance optimization.<\/li>\n<\/ul>","raw_excerpt":"A lightweight WordPress plugin for frontend content translation with caching. Powered by TranslateML API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/231478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=231478"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/magazine3"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=231478"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=231478"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=231478"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=231478"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=231478"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=231478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}