{"id":302626,"date":"2026-06-10T01:46:45","date_gmt":"2026-06-10T01:46:45","guid":{"rendered":"https:\/\/cn.wordpress.org\/plugins\/langrouter-for-translatepress\/"},"modified":"2026-06-10T01:45:03","modified_gmt":"2026-06-10T01:45:03","slug":"langrouter-for-translatepress","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/langrouter-for-translatepress\/","author":23484177,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"LangRouter for TranslatePress","header_author":"WebAIPlanet","header_description":"Route TranslatePress automatic translations across multiple engines with language-based rules, fallback control, and flexible provider routing.","assets_banners_color":"f2f2fc","last_updated":"2026-06-10 01:45:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.webaiplanet.com\/wordpress\/plugins\/langrouter-for-translatepress\/","header_author_uri":"https:\/\/www.webaiplanet.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"webaiplanet","date":"2026-06-10 01:45:03"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3566704,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3566704,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3566704,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3566704,"resolution":"772x250","location":"assets","locale":"","width":770,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3566704,"resolution":"1","location":"assets","locale":"","width":1925,"height":2188},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3566704,"resolution":"10","location":"assets","locale":"","width":1935,"height":2679},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3566704,"resolution":"2","location":"assets","locale":"","width":1927,"height":2290},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3566704,"resolution":"3","location":"assets","locale":"","width":1930,"height":3092},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3566704,"resolution":"4","location":"assets","locale":"","width":1933,"height":1619},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3566704,"resolution":"5","location":"assets","locale":"","width":1938,"height":1781},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3566704,"resolution":"6","location":"assets","locale":"","width":1936,"height":1627},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3566704,"resolution":"7","location":"assets","locale":"","width":1935,"height":1962},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3566704,"resolution":"8","location":"assets","locale":"","width":1938,"height":1594},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3566704,"resolution":"9","location":"assets","locale":"","width":1934,"height":2385}},"screenshots":{"1":"Router settings inside TranslatePress automatic translation, including the default engine selector.","2":"Post type routing with per-rule fallback behavior for posts, pages, products, and custom post types.","3":"Language assignment, fallback rules, language support query, and TranslatePress test integration.","4":"Logs page with the built-in runtime log viewer and log file management actions.","5":"Volcengine Ark settings with account input, usage overview, and diagnostics.","6":"Qwen settings with API key, model, region, custom API, timeout, and additional request JSON.","7":"Hunyuan settings for Tencent Cloud endpoints and compatible third-party model endpoints.","8":"OpenAI settings with model selection, custom model name, custom API, timeout, and request JSON.","9":"DeepL settings with multi-key management, cooldown controls, and key status.","10":"Compatible OpenAI API settings for third-party gateways and compatible providers, including headers and request JSON."}},"plugin_section":[],"plugin_tags":[12519,180485,99,195341,2333],"plugin_category":[48],"plugin_contributors":[266418],"plugin_business_model":[],"class_list":["post-302626","plugin","type-plugin","status-publish","hentry","plugin_tags-automatic-translation","plugin_tags-deepl","plugin_tags-multilingual","plugin_tags-translatepress","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-webaiplanet","plugin_committers-webaiplanet"],"banners":{"banner":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/banner-772x250.png?rev=3566704","banner_2x":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/banner-1544x500.png?rev=3566704","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/icon-128x128.png?rev=3566704","icon_2x":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/icon-256x256.png?rev=3566704","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-1.png?rev=3566704","caption":"Router settings inside TranslatePress automatic translation, including the default engine selector."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-2.png?rev=3566704","caption":"Post type routing with per-rule fallback behavior for posts, pages, products, and custom post types."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-3.png?rev=3566704","caption":"Language assignment, fallback rules, language support query, and TranslatePress test integration."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-4.png?rev=3566704","caption":"Logs page with the built-in runtime log viewer and log file management actions."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-5.png?rev=3566704","caption":"Volcengine Ark settings with account input, usage overview, and diagnostics."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-6.png?rev=3566704","caption":"Qwen settings with API key, model, region, custom API, timeout, and additional request JSON."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-7.png?rev=3566704","caption":"Hunyuan settings for Tencent Cloud endpoints and compatible third-party model endpoints."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-8.png?rev=3566704","caption":"OpenAI settings with model selection, custom model name, custom API, timeout, and request JSON."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-9.png?rev=3566704","caption":"DeepL settings with multi-key management, cooldown controls, and key status."},{"src":"https:\/\/ps.w.org\/langrouter-for-translatepress\/assets\/screenshot-10.png?rev=3566704","caption":"Compatible OpenAI API settings for third-party gateways and compatible providers, including headers and request JSON."}],"raw_content":"<!--section=description-->\n<p>LangRouter for TranslatePress adds routing and fallback control to TranslatePress automatic translation.<\/p>\n\n<p>Instead of sending every request to a single provider, it lets you choose which translation engine should handle a request based on the current content type, target language, and fallback policy. This gives you more control over translation flow on multilingual WordPress sites.<\/p>\n\n<p>This plugin is an independent extension for TranslatePress. It is not affiliated with, endorsed by, or maintained by TranslatePress.<\/p>\n\n<p>It is intended for site owners, developers, agencies, and content teams that need more control than a single-engine setup can provide.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Set one default engine as the baseline route.<\/li>\n<li>Route singular content types such as posts, pages, products, and custom post types to a preferred engine.<\/li>\n<li>Assign target languages to different engines.<\/li>\n<li>Define fallback behavior when the current engine cannot continue.<\/li>\n<li>Configure each engine separately in a dedicated settings page.<\/li>\n<li>Query language support from the admin area before changing live routing rules.<\/li>\n<li>Inspect routing behavior through built-in runtime logs.<\/li>\n<li>Support DeepL multi-key configuration and Volcengine Ark usage tools.<\/li>\n<li>Connect OpenAI-compatible third-party services and custom compatible endpoints.<\/li>\n<\/ul>\n\n<h4>Supported translation engines<\/h4>\n\n<p>LangRouter currently supports:<\/p>\n\n<ul>\n<li>Volcengine Ark<\/li>\n<li>Qwen<\/li>\n<li>Hunyuan<\/li>\n<li>OpenAI<\/li>\n<li>DeepL<\/li>\n<li>Compatible OpenAI API<\/li>\n<\/ul>\n\n<h4>How routing works<\/h4>\n\n<p>LangRouter uses the following priority order:<\/p>\n\n<ol>\n<li>Post type route<\/li>\n<li>Language assignment<\/li>\n<li>Default engine<\/li>\n<\/ol>\n\n<p>If a singular content request matches a post type rule, that engine becomes the primary route.\nIf no post type rule matches, LangRouter checks the language assignment rules.\nIf no language rule matches, the plugin uses the default engine.<\/p>\n\n<p>If the current engine cannot continue, LangRouter applies the configured fallback behavior.\nDepending on your settings, the request can stop immediately, jump directly to the default engine, or continue through the global fallback chain.<\/p>\n\n<h4>Post type routing<\/h4>\n\n<p>Post type routing is useful when different content types need different translation behavior.<\/p>\n\n<p>For example, you can:<\/p>\n\n<ul>\n<li>route products to one engine for terminology consistency;<\/li>\n<li>route editorial content to another engine for tone and fluency;<\/li>\n<li>keep specific custom post types on a dedicated provider.<\/li>\n<\/ul>\n\n<p>Post type routing applies only to singular content contexts, such as a single post, page, product, or custom post type entry.\nArchive pages, taxonomy pages, search results, and other non-singular views do not use post type routing.<\/p>\n\n<h4>Language assignment and fallback rules<\/h4>\n\n<p>Language assignment selects the primary engine for a target language.\nFallback rules define what to try next only after the current primary engine cannot continue.<\/p>\n\n<p>This separation helps you build a clearer routing strategy:<\/p>\n\n<ul>\n<li>choose the preferred engine for a target language;<\/li>\n<li>define a different engine as the fallback;<\/li>\n<li>keep the default engine as the final baseline or safety net.<\/li>\n<\/ul>\n\n<h4>Dedicated engine settings<\/h4>\n\n<p>Routing rules and engine credentials are managed separately.\nThis makes the plugin easier to operate and maintain.<\/p>\n\n<p>In the engine settings area, you can configure items such as:<\/p>\n\n<ul>\n<li>API keys and secrets<\/li>\n<li>model names<\/li>\n<li>base URLs and compatible endpoints<\/li>\n<li>request timeouts<\/li>\n<li>additional request JSON<\/li>\n<li>per-engine notes and operational options<\/li>\n<li>multi-key or account-related settings for supported engines<\/li>\n<\/ul>\n\n<h4>Logging and troubleshooting<\/h4>\n\n<p>LangRouter includes a built-in runtime log viewer.\nYou can enable file logging, view recent log content inside the admin area, and download log files for debugging.<\/p>\n\n<p>This is useful when you want to confirm:<\/p>\n\n<ul>\n<li>which engine was selected;<\/li>\n<li>whether a post type route was matched;<\/li>\n<li>whether language assignment handled the request;<\/li>\n<li>why a fallback decision was triggered;<\/li>\n<li>whether a provider entered the execution chain successfully.<\/li>\n<\/ul>\n\n<h4>Typical use cases<\/h4>\n\n<ul>\n<li>Use one engine for most traffic and reroute selected languages.<\/li>\n<li>Route products, guides, and regular posts to different engines.<\/li>\n<li>Keep important content on stricter fallback behavior.<\/li>\n<li>Use DeepL, Volcengine Ark, and OpenAI-compatible services in one workflow.<\/li>\n<li>Compare providers while keeping routing and logging in one place.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to third-party translation and AI services. These services are optional and are used only for translation, supported-language checks, usage checks, or diagnostic actions requested by an administrator.<\/p>\n\n<p>No request is sent to a third-party service unless an administrator configures that engine and triggers translation or a related engine-specific action, such as a language support query, usage query, or diagnostic request.<\/p>\n\n<p>The plugin may connect to the following services:<\/p>\n\n<ul>\n<li><p>OpenAI API. This service is provided by OpenAI and is used to translate content through OpenAI models.\nData sent: text selected for translation, source and target language instructions, model settings, request parameters, and related request metadata required to complete the request.\nSent only when this engine is configured and used by an administrator.\nTerms of Service: https:\/\/openai.com\/policies\/services-agreement\/\nPrivacy Policy: https:\/\/openai.com\/policies\/row-privacy-policy\/<\/p><\/li>\n<li><p>DeepL API. This service is provided by DeepL and is used to translate content through DeepL and, when needed, query supported languages.\nData sent: text selected for translation, source language, target language, translation parameters, or request parameters required for supported-language queries.\nSent only when this engine is configured and used by an administrator.\nTerms and Conditions: https:\/\/www.deepl.com\/en\/pro-license\nPrivacy Policy: https:\/\/www.deepl.com\/en\/privacy.html<\/p><\/li>\n<li><p>Tencent Cloud Hunyuan (China). This service is provided by Tencent Cloud and is used to translate content through Tencent Cloud Hunyuan endpoints configured for the China service.\nData sent: text selected for translation, source language, target language, model settings, request parameters, and related metadata required to complete the request.\nSent only when this engine is configured for Tencent Cloud China and used by an administrator.\nTerms of Service: https:\/\/cloud.tencent.com\/document\/product\/301\/97822\nPrivacy Policy: https:\/\/cloud.tencent.com\/document\/product\/301\/11470<\/p><\/li>\n<li><p>Tencent Cloud Hunyuan (International). This service is provided by Tencent Cloud International and is used to translate content through Tencent Cloud Hunyuan international endpoints.\nData sent: text selected for translation, source language, target language, model settings, request parameters, and related metadata required to complete the request.\nSent only when this engine is configured for Tencent Cloud international endpoints and used by an administrator.\nTerms of Service: https:\/\/www.tencentcloud.com\/document\/product\/1284\/75295\nPrivacy Policy: https:\/\/www.tencentcloud.com\/document\/product\/1284\/75293<\/p><\/li>\n<li><p>SiliconFlow API. This service is provided by SiliconFlow and is used when Hunyuan-compatible translation is configured through the SiliconFlow compatible endpoint.\nData sent: text selected for translation, source and target language instructions, model settings, request parameters, and related metadata required to complete the request.\nSent only when this compatible endpoint is configured and used by an administrator.\nTerms of Service: https:\/\/docs.siliconflow.cn\/cn\/legals\/terms-of-service\nPrivacy Policy: https:\/\/docs.siliconflow.cn\/cn\/legals\/privacy-policy<\/p><\/li>\n<li><p>Volcengine Ark. This service is provided by Volcengine and is used to translate content through Volcengine models and, when requested by the administrator, perform usage-related queries.\nData sent: text selected for translation, model settings, request parameters, and, for usage-related requests, the account identifiers, date ranges, and signed request data required by the service.\nSent only when this engine is configured and used by an administrator, or when the administrator manually triggers a usage-related request.\nTerms of Service: https:\/\/www.volcengine.com\/docs\/6456\/70590\nPrivacy Policy: https:\/\/www.volcengine.com\/docs\/6256\/64902<\/p><\/li>\n<li><p>Alibaba Cloud DashScope \/ Qwen (China). This service is provided by Alibaba Cloud and is used to translate content through Qwen-compatible endpoints configured for Alibaba Cloud China.\nData sent: text selected for translation, source language, target language, model settings, request parameters, and related metadata required to complete the request.\nSent only when this engine is configured for Alibaba Cloud China and used by an administrator.\nTerms of Service: https:\/\/terms.alicdn.com\/legal-agreement\/terms\/common_platform_service\/20230728213935489\/20230728213935489.html\nPrivacy Policy: https:\/\/terms.aliyun.com\/legal-agreement\/terms\/suit_bu1_ali_cloud\/suit_bu1_ali_cloud202107091605_49213.html<\/p><\/li>\n<li><p>Alibaba Cloud DashScope \/ Qwen (International). This service is provided by Alibaba Cloud International and is used to translate content through international Qwen-compatible endpoints configured by the administrator.\nData sent: text selected for translation, source language, target language, model settings, request parameters, and related metadata required to complete the request.\nSent only when this engine is configured for international Alibaba Cloud endpoints and used by an administrator.\nTerms of Service: https:\/\/www.alibabacloud.com\/help\/en\/legal\/latest\/alibaba-cloud-international-website-terms-of-use-alibaba-cloud-international-website-terms-of-use\nPrivacy Policy: https:\/\/www.alibabacloud.com\/help\/en\/legal\/latest\/alibaba-cloud-international-website-privacy-policy<\/p><\/li>\n<li><p>Compatible OpenAI API endpoints. These services are provided by the third-party provider selected by the administrator and are used when you configure a third-party service that implements an OpenAI-compatible API.\nData sent: text selected for translation, source and target language instructions, configured model name, request headers, request parameters, and related request metadata required to complete the request.\nSent only when a compatible third-party service is configured and used by an administrator.\nThe provider, terms, privacy policy, and data handling depend on the service you choose. Review that provider before use.<\/p><\/li>\n<\/ul>\n\n<p>This plugin does not require any external service unless you choose to configure and use a supported engine.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>\/wp-content\/plugins\/<\/code> directory, or install the ZIP through the WordPress admin.<\/li>\n<li>Install and activate <code>TranslatePress Multilingual<\/code>.<\/li>\n<li>Activate <code>LangRouter for TranslatePress<\/code>.<\/li>\n<li>Open TranslatePress automatic translation settings and select <code>LangRouter Smart Translation<\/code> as the engine.<\/li>\n<li>Set a default engine in the router settings.<\/li>\n<li>Add post type routes, language assignments, and fallback rules as needed.<\/li>\n<li>Open the engine settings page and configure the engines you want to use.<\/li>\n<li>Optionally enable file logging and test your routing behavior.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20replace%20translatepress%3F\"><h3>Does this plugin replace TranslatePress?<\/h3><\/dt>\n<dd><p>No. LangRouter for TranslatePress is an extension for TranslatePress automatic translation. It adds a routing layer and does not replace TranslatePress itself.<\/p><\/dd>\n<dt id=\"when%20does%20post%20type%20routing%20apply%3F\"><h3>When does post type routing apply?<\/h3><\/dt>\n<dd><p>Post type routing applies only to singular content contexts, such as a single post, page, product, or custom post type entry. It does not apply to archive pages, taxonomy listings, search results, or other non-singular views.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20post%20type%20route%20fails%3F\"><h3>What happens if a post type route fails?<\/h3><\/dt>\n<dd><p>That depends on the fallback mode configured for the matched rule. You can stop translation immediately, jump directly to the default engine, or continue through the global fallback chain.<\/p><\/dd>\n<dt id=\"are%20language%20assignment%20and%20fallback%20rules%20the%20same%20thing%3F\"><h3>Are language assignment and fallback rules the same thing?<\/h3><\/dt>\n<dd><p>No. Language assignment selects the primary engine for a target language. Fallback rules are used only after the current primary engine cannot continue.<\/p><\/dd>\n<dt id=\"where%20do%20i%20configure%20api%20keys%20and%20models%3F\"><h3>Where do I configure API keys and models?<\/h3><\/dt>\n<dd><p>Use the dedicated engine settings page. Routing rules are configured separately from engine credentials and model parameters.<\/p><\/dd>\n<dt id=\"can%20i%20use%20openai-compatible%20services%3F\"><h3>Can I use OpenAI-compatible services?<\/h3><\/dt>\n<dd><p>Yes. The plugin supports compatible OpenAI API endpoints, which is useful for third-party gateways, enterprise proxies, or self-hosted compatible services.<\/p><\/dd>\n<dt id=\"can%20i%20inspect%20actual%20routing%20behavior%3F\"><h3>Can I inspect actual routing behavior?<\/h3><\/dt>\n<dd><p>Yes. LangRouter provides built-in runtime file logging so you can inspect selected engines, fallback decisions, and execution results.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Added global default concurrency in the TranslatePress router settings.<\/li>\n<li>Added per-engine concurrency overrides for OpenAI, Compatible OpenAI API, Qwen, Hunyuan, and Volcengine Ark.<\/li>\n<li>Added help page examples and guidance for low, medium, and high server configurations.<\/li>\n<li>Improved runtime log deletion and empty-state handling so cleared or zero-byte log files no longer appear as active logs.<\/li>\n<li>Improved Volcengine Ark status display so overdue billing states are shown correctly.<\/li>\n<\/ul>","raw_excerpt":"Add routing, fallback control, and engine-specific settings to TranslatePress automatic translation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302626","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=302626"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webaiplanet"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302626"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302626"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302626"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302626"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302626"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}