当前位置: 首页 > 知识库问答 >
问题:

短代码的WordPress SDL翻译

杜元明
2023-03-14

我有某种短代码,如[wp-text="Lorem Impsum etc"button_text="Read More"][/wp-text]

我想从post content字段中提取这个短代码,然后将这两个属性:textbutton\u text发送到SDL World Server进行翻译。

从SDL得到响应后,我想相应地替换那个短代码。

有什么建议或帮助吗?

共有1个答案

公良修竹
2023-03-14

以下是关于您的方法的建议:

  1. 解析短代码属性

您可以使用提供的Wordpress函数shortcode\u parse\u atts解析变量并提取所有短代码属性

对于每个解析的值,对提供的SDL World Server REST API进行API调用(或者,为了获得更好的性能,您可以将所有翻译分组,并使用一个复杂的API调用(如果API支持)进行翻译)

得到响应后,用翻译后的字符串替换原始字符串。

以下是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连接器

 类似资料:
  • 我需要围绕WordPress的短代码翻译的内容。这些是问题的先决条件: 我必须围绕“短代码”,而不是短代码的内容。例如

  • 我有2个WordPress短代码正在使用: 一章。[章节名称="开始"]...内容...[/章] 目录[toc][/toc]。toc需要显示章节的简单列表。 规范: 一篇文章可以有很多章节。 帖子中可以有一个、两个或没有toc短代码。 toc可以在章节之前或之后,也可以在章节之前和之后。这取决于帖子作者,所以我事先不知道。 我不能使用嵌套的简码,因为这些对作者来说很难使用。 我想到了使用静态toc

  • 我有一个短代码(outputURL),用于将值输出到URL中。该值从短代码(valueURL)中检索。valueURL输出是文本包装在div中: 我只需要textForURL值,不包括div标记。到目前为止,我只能输出div标记和文本,而不能输出纯文本的干净版本。 这是我的简码函数: 我进行了研究,并能够将其整合在一起,但我不确定我是否朝着正确执行的方向前进。任何能帮助我实现目标的人都将不胜感激。

  • 问题内容: 根据现有的“最有用的C / C ++代码段”的精神-线程: 你们有(经常)使用的简短的,单功能的Python代码段,并想与StackOverlow社区共享吗?请保持条目较小(也许在25行之内?),并且每个帖子仅给出一个示例。 我将从不时使用一小段代码开始,以计数python项目中的sloc(代码的源代码行): 问题答案: 初始化二维列表 尽管可以安全地初始化列表: 相同的技巧不适用于2

  • 我正在制作wordpress插件,我想用短代码在帖子中插入一些非常庞大的代码。我得到了这个模拟我的问题的简单代码 并发布此内容 给出了这样的结果: 我希望它在开始和结束之间插入“通缉”文本。我知道最简单的解决方案是在want()中返回“want”,但我已经有了所有这些函数,它们非常庞大。有没有一个简单的解决方案,而不必从头开始写? @编辑:也许有什么方法可以将函数的所有回音存储在字符串中而不打印?

  • 我所要知道的就是如何将这段代码写得更短(如果可能的话)。有人能看看吗? 我找不到如何以更短的方式编写它,但也许有人知道一种方法来做到这一点。也许我可以将所有这些代码只放在1个If-语句或其他什么中?