{"id":361440,"date":"2026-09-09T11:44:17","date_gmt":"2026-09-09T11:44:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/newtxt-translate\/"},"modified":"2026-09-09T11:44:03","modified_gmt":"2026-09-09T11:44:03","slug":"newtxt-translate","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/newtxt-translate\/","author":23557867,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.9.4","stable_tag":"0.9.4","tested":"7.1","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"NewTXT Translate","header_author":"NewTXT","header_description":"Connects WordPress sites to NewTXT translation widgets, server-side rendering, local hashes, and signed callbacks.","assets_banners_color":"","last_updated":"2026-09-09 11:44:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/newtxt.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.9.4":{"tag":"0.9.4","author":"galdarturin","date":"2026-09-09 11:44:03","revision":3688228}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688247,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688247,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.9.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1734,99,186,2333,162],"plugin_category":[43,48,55],"plugin_contributors":[279924],"plugin_business_model":[],"class_list":["post-361440","plugin","type-plugin","status-publish","hentry","plugin_tags-localization","plugin_tags-multilingual","plugin_tags-seo","plugin_tags-translation","plugin_tags-widget","plugin_category-customization","plugin_category-language-tools","plugin_category-seo-and-marketing","plugin_contributors-galdarturin","plugin_committers-galdarturin"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/newtxt-translate\/assets\/icon-128x128.png?rev=3688247","icon_2x":"https:\/\/ps.w.org\/newtxt-translate\/assets\/icon-256x256.png?rev=3688247","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>NewTXT Translate installs a WordPress-native integration for NewTXT. It injects the hosted widget loader, verifies and self-repairs plugin-owned database tables, stores local source and translation hashes, uses the WordPress Object Cache API, serves ready translated path URLs, and exposes a signed callback endpoint for controlled cache and sync operations.<\/p>\n\n<p>The public loader follows the current NewTXT appearance and placement settings automatically. Fixed positions need no theme changes. For inline placement, add a WordPress Shortcode block containing <code>[newtxt_widget]<\/code>, add <code>data-newtxt-widget-slot<\/code> to an existing page-builder element, or use an HTML anchor matching the configured container ID.<\/p>\n\n<p>The plugin connects with one dashboard-issued API key. NewTXT verifies the registered domain before the plugin stores the remaining server-side credentials and synchronizes account settings. Only the public key is rendered into the widget script tag; API keys, private keys, and callback secrets remain in the plugin-owned settings table with a non-autoloaded WordPress compatibility backup.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin depends on the NewTXT hosted translation service. Installing the plugin alone does not transmit site content. Data is transmitted after a site administrator connects the plugin or when the connected widget and translation features are used.<\/p>\n\n<p>The plugin sends authenticated server-to-server requests to the NewTXT API at https:\/\/api-v1.newtxt.io. Connection sends the current WordPress site URL and the dashboard-issued API key so NewTXT can verify the registered domain and issue domain-bound credentials. Later requests may send the public page path, requested language, URL mode, bounded public-page SEO metadata, cache instructions, usage requests, and allow-listed language or widget settings. These requests are required to synchronize the account, render or retrieve translations, manage translated-page caches, and run administrator-requested tools.<\/p>\n\n<p>Public pages download the hosted widget loader and configuration from https:\/\/cdn.newtxt.io. When client-side translation is required, the loader may send visible translatable public-page text, public page context, and eligible public image references to NewTXT translation endpoints. The loader is executable JavaScript provided as part of the documented NewTXT service. It must not be enabled on private, account, checkout, or other personalized pages.<\/p>\n\n<p>NewTXT service use is governed by the following policies:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/newtxt.io\/terms<\/li>\n<li>Privacy Policy: https:\/\/newtxt.io\/privacy<\/li>\n<\/ul>\n\n<p>The plugin stores domain-bound credentials, settings, translation artifacts, public-page hashes, callback audit records, and optional public HTML snapshots in plugin-owned WordPress tables and upload storage. Full source HTML storage is disabled by default. Source capture skips logged-in visitors, password-protected content, query-string requests, and responses marked private or non-cacheable. Deactivation preserves this data. Administrators can opt in to deleting plugin-owned data during uninstall.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, open Plugins &gt; Add Plugin &gt; Upload Plugin and select <code>newtxt-translate.zip<\/code>.<\/li>\n<li>Install and activate NewTXT Translate. When updating, confirm replacement of the existing version.<\/li>\n<li>Follow the first-run NewTXT connection screen opened after activation.<\/li>\n<li>Register or sign in to NewTXT, select WordPress, and register the site domain.<\/li>\n<li>Paste the dashboard-issued API key and select Verify and connect.<\/li>\n<li>Continue from the welcome screen to the plugin dashboard.<\/li>\n<li>Use NewTXT &gt; Settings to replace the connection token or manage the account plan.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20modify%20my%20theme%3F\"><h3>Does this plugin modify my theme?<\/h3><\/dt>\n<dd><p>No. The plugin uses WordPress hooks, plugin-owned tables, options, and upload storage.<\/p><\/dd>\n<dt id=\"does%20the%20browser%20receive%20private%20keys%3F\"><h3>Does the browser receive private keys?<\/h3><\/dt>\n<dd><p>No. Only the public key is emitted in the widget script tag.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20newtxt%3F\"><h3>What data is sent to NewTXT?<\/h3><\/dt>\n<dd><p>After an administrator connects the plugin, authenticated requests may include the registered site URL, public page paths, requested languages, URL mode, bounded public-page SEO metadata, cache instructions, and allow-listed project settings. The hosted widget may send visible translatable public-page text and eligible public image references when client-side translation is required. See the External services section and NewTXT Privacy Policy for details.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20translated%20html%20is%20incomplete%3F\"><h3>What happens when translated HTML is incomplete?<\/h3><\/dt>\n<dd><p>The translated URL fails closed with <code>noindex<\/code> headers and is not treated as ready.<\/p><\/dd>\n<dt id=\"can%20i%20test%20the%20widget%20on%20localhost%3F\"><h3>Can I test the widget on localhost?<\/h3><\/dt>\n<dd><p>Yes. Register the complete local origin, including its port, and connect the issued keys in WordPress. Localhost uses client-side path translation and preserves the current loopback host and port. Remote crawling and SEO publication require a publicly reachable test URL.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.4<\/h4>\n\n<p>Replaced the plugin-owned response buffer with the WordPress template enhancement output buffer available in WordPress 6.9 and later, preventing an unclosed buffer from remaining on the shared output-buffer stack.<\/p>\n\n<h4>0.9.3<\/h4>\n\n<p>Packaged the completed WordPress.org compliance and security improvements as a new plugin release, including privacy-aware source capture, idempotent signed callbacks, WordPress Filesystem API writes, administrator JavaScript localization, external-service disclosures, and verified WordPress 7.1 compatibility.<\/p>\n\n<h4>0.9.2<\/h4>\n\n<p>Completed the WordPress.org compliance pass with strict callback request validation and replay protection, privacy-aware source capture, cached plugin-owned reads, prepared custom-table identifiers, WordPress Filesystem API writes, administrator JavaScript localization, privacy-policy guidance, a comprehensive WordPress Coding Standards gate, and runtime smoke coverage. Verified the distribution archive with WordPress Plugin Check, WordPress 7.1, desktop and mobile layout checks, and a published NewTXT Privacy Policy.<\/p>\n\n<h4>0.9.1<\/h4>\n\n<p>Reduced text, select, language picker, search, and color control height and spacing across the plugin while preserving larger touch targets on narrow screens. Replaced the technical callback Dashboard metric with the active account plan and added used-versus-remaining language and monthly word capacity. Added WordPress.org external-service and privacy disclosures, reduced source-capture database writes, excluded personalized responses, hardened callback replay protection, completed administrator JavaScript internationalization, and adopted the WordPress Filesystem API for activation storage files.<\/p>\n\n<h4>0.9.0<\/h4>\n\n<p>Rebuilt the connected WordPress experience around the NewTXT service console: compact product navigation, live integration signals, service-style page headings, six-column operational metrics, quieter working panels, and responsive dashboard, settings, language, appearance, onboarding, and widget preview surfaces.<\/p>\n\n<h4>0.8.0<\/h4>\n\n<p>Made the appearance preview render through the same hosted runtime used on public pages, added searchable single- and multi-language selectors, added an explicit reversible widget disable action, and surfaced monthly translation usage with an exhausted-limit warning.<\/p>\n\n<h4>0.7.0<\/h4>\n\n<p>Split the NewTXT administration into dedicated Dashboard, Connection, Languages, Widget appearance, Local storage, Signed callback, Tools, and Settings pages. Added signed server synchronization for source and target languages, routing, widget availability, and visual settings with server-side validation and a responsive live appearance preview.<\/p>\n\n<h4>0.6.0<\/h4>\n\n<p>Added a required first-run connection wizard, server-verified token step, post-connection welcome screen, and separate Settings page for token replacement and NewTXT plan management. Existing credentials remain active unless a replacement token passes format and registered-domain verification.<\/p>\n\n<h4>0.5.1<\/h4>\n\n<p>Protected the fixed NewTXT API route, CDN loader, integration identity, signing credentials, callback security, and account-managed language and routing values from WordPress settings changes. Replaced technical inputs with read-only synchronization status while keeping local storage, delivery, callback enablement, uninstall, and tool controls available.<\/p>\n\n<h4>0.5.0<\/h4>\n\n<p>Added domain-bound one-key onboarding, automatic credential and account-setting synchronization, a WordPress option in the NewTXT onboarding wizard, and a focused quick connection interface with advanced technical fields kept available for troubleshooting.<\/p>\n\n<h4>0.4.1<\/h4>\n\n<p>Aligned dashboard action icons and labels, normalized WordPress button geometry, and improved long callback URL and storage path presentation with copy-friendly data controls.<\/p>\n\n<h4>0.4.0<\/h4>\n\n<p>Redesigned the WordPress dashboard to match the NewTXT service visual system, added launch progress and responsive status surfaces, improved settings focus and save feedback, and made tool fields adapt to the selected operation.<\/p>\n\n<h4>0.3.1<\/h4>\n\n<p>Added a reproducible WordPress distribution archive build, verified compatibility with WordPress 7.1, moved uninstall cleanup to the WordPress filesystem API, and kept admin notices readable inside the custom dashboard header.<\/p>\n\n<h4>0.3.0<\/h4>\n\n<p>Added bounded source SEO metadata capture for title, description, Open Graph, and Twitter fields, passed stored metadata into translated render requests, and exposed account-aware image capture and replacement checks.<\/p>\n\n<h4>0.2.0<\/h4>\n\n<p>Added a WordPress-native admin dashboard with status summaries, section navigation, responsive styling, and a tool for pulling account-managed settings from NewTXT.<\/p>\n\n<h4>0.1.0<\/h4>\n\n<p>Initial development version with activation schema, settings, widget loader, signed callbacks, local hashes, rendered page snapshots, source hash capture, and WP-CLI commands.<\/p>","raw_excerpt":"Connect WordPress sites to NewTXT translation widgets, local hashes, server-side rendering, and signed callbacks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=361440"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/galdarturin"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361440"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361440"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361440"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361440"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361440"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}