我想翻譯所有文本,除了那些包含在特定元素中的文本,例如:
Please open the page <x>Settings</x> to configure your system.
DeepL 應該翻譯除<x>元素內的專案之外的所有內容。我在這里閱讀了檔案,https ://www.deepl.com/docs-api/handling-xml/ignored-tags/ 并嘗試查找,但似乎找不到合適的鉤子來添加該 ignore_tags 引數。
我玩弄了$this->request['ignore_tags'], forDeepLApiTranslate但我不想直接編輯插件。
我應該如何處理這個/我應該使用的任何鉤子?
uj5u.com熱心網友回復:
WordPress DeepL 插件利用wp_remote_*函式向其 API 發送請求,因此您可以掛鉤http_request_args過濾器以添加附加引數。
下面是一個例子:
add_filter(
'http_request_args',
static function ( array $parse_args, string $url ): array {
$method = $parse_args['method'] ?? '';
if ( $method === 'POST' && str_starts_with( $url, 'https://api.deepl.com/v2/translate' ) ) {
$body = (string) ( $parse_args['body'] ?? '' );
parse_str( $body, $results );
$results['ignore_tags'] = 'x';
$parse_args['body'] = http_build_query( $results );
}
return $parse_args;
},
10,
2
);
請注意,該代碼假定您的站點在 PHP8 上運行,因為它使用str_starts_with來確保它僅在向 DeepL API 端點發送請求時過濾請求引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/336500.html
標籤:php WordPress的 深度
