Перевод WordPress SDL для коротких кодов - PullRequest
0 голосов
/ 09 января 2019

У меня есть своего рода шорткоды, такие как [wp-text text="Lorem Impsum etc" button_text="Read More"][/wp-text].

Я хочу извлечь этот шорткод из post content field и затем отправить эти два атрибута: text и button_text для перевода на SDL World Server.

После получения ответа от SDL я хочу заменить этот шорткод соответствующим образом.

Любое предложение или помощь?

1 Ответ

0 голосов
/ 09 января 2019

Вот предложение о вашем подходе:

  1. Разбор атрибутов shortcode

Имея содержимое, вы можете анализировать переменную и извлекать все атрибуты короткого кода с помощью функции Wordpress shortcode_parse_atts

  1. Для каждого проанализированного значения выполните вызов API для предоставленного API REST SDL World Server ( Или для повышения производительности вы можете сгруппировать все переводы и перевести их одним сложным вызовом API, если это поддерживается из API )

  2. После получения ответа замените исходные строки на переведенные.

Вот пример псевдокод в PHP:

$shotcode_attributes = shortcode_parse_atts( $post->post_content );

foreach ( $shortcode_attributes as $attribute => $value ) {
  // Make SDL World Server API call refer to the API documentation for the exact way
  $translated_value = $sdlApiClient->translate( $value );

  // Replace the translated value.
  // You can be more precise here ensuring that the value is inside the shortcode
  $post->post_content = str_replace(
    "{$attribute}=\"{$value}\"", 
    "{$attribute}=\"{$translated_value}\"", 
    $post->post_content
  );
}

Вы также можете исследовать и изучить предоставляемый SDL WordPress Connector

...