【问题标题】:Translation of HTML content in Google Sheets在 Google 表格中翻译 HTML 内容
【发布时间】:2019-08-17 07:56:23
【问题描述】:

我正在使用以下 Google 表格公式来翻译一些包含 HTML 标记的字段:

=GOOGLETRANSLATE(A2, "en", "de")

但是,翻译会导致 HTML 混乱,标签打开或关闭之间有多余的空格,尤其是在有许多嵌套标签的情况下。

例如:

<div> <p>paragraph text</p> </div>

将导致:

<div> <p> Absatztext </ P> </ Div>

有时,翻译者会更改开始和结束的标签,并在一些属性之间添加额外的空格,结束标签的字母也是大写的。

类似的问题:

<p> Absatztext <P />

<a href = " # "> Link </ A>

有时,在标签关闭之前添加文本

<h2 Was> ist Pilates? </h2> 
it should be:
<h2> Was ist Pilates? </h2> 

这里的演示: https://docs.google.com/spreadsheets/d/11MOZjTknFGdwuAp6g3VUa0o5OQaW44hxN2uEvqnL3jw/edit?usp=sharing

我该如何解决这些问题?

【问题讨论】:

  • 只是为了澄清:是预期/期望的输出“Absatztext”
  • @Tedinoz我不想删除 html,我想保留它而不会弄乱它。翻译器会更改标签的打开和关闭,有时会在某些属性之间添加额外的空格。

标签: google-sheets google-sheets-formula google-translate


【解决方案1】:

尝试简单的修复,例如:

=LOWER(SUBSTITUTE(GOOGLETRANSLATE(A1, "en", "de"), "/ ", "/"))


更新:

=SUBSTITUTE(A1,  TRIM(REGEXREPLACE(A1, "</?\S+[^<>]*>", )), 
 GOOGLETRANSLATE(TRIM(REGEXREPLACE(A1, "</?\S+[^<>]*>", )), "EN", "DE"))

【讨论】:

  • 问题不仅仅出在空格上。 html内容乱七八糟。一些文本被放置在标签结束内。我更新了问题,以便您查看有关我所面临问题的更多详细信息。
  • 感谢您的宝贵时间,但似乎有些问题无法解决,例如标签右括号内的文本错位:有时,文本会在标签结束之前添加

    ist Pilates ?

  • @Amr 你确定吗?答案中的第二个公式不会发生
  • 不,它甚至不翻译。这是谷歌表格的链接:docs.google.com/spreadsheets/d/…我在第三列中尝试了你的公式。
  • 好吧,有两个问题 - 它不在标签之间,例如。 texttext(应该是:text),第二个问题是这两个句子之间没有空格,所以GT不会正确翻译它 - i.stack.imgur.com/crlAZ.png跨度>
【解决方案2】:

如果您不介意在单个公式中执行此操作并且只想解决问题,您可以尝试将其拆分并仅翻译不是 HTML 标记的内容。

将所有 HTML 标记和结束标记放在单独的工作表中,以便您检查它们。我会把我的放在“标签”中!A1:B128。

考虑到您的原始文本在 A1 中,您可以将其拆分为 :

=SPLIT(A1,"<>")

然后在下面的一行(或其他地方,对我来说它将是 A2)​​,您可以检查每个单元格中的第一个单词是否在以下标签中找到:

NOT(COUNTIF(tags!$A$1:$B$128,INDEX(SPLIT(A2," "),1,1)))

如果它是真的,请翻译它 GOOGLETRANSLATE(A2, "en", "de") 或添加括号 "&lt;"&amp;A2&amp;"&gt;" 所以整个公式看起来像

=IF(NOT(COUNTIF(tags!$A$1:$B$128,INDEX(SPLIT(A2," "),1,1))),GOOGLETRANSLATE(A2, "en", "de"), "<"&A2&">")

然后在下面的一行,只需将整行加入到单个单元格中

=JOIN("",A3:L3)

为方便起见,您可以隐藏第 2 行和第 3 行,甚至可以将它们与标签一起放在单独的工作表上。你也可以添加一个条件,如果它是空的,则不添加 ,这样你就可以连接整行而不用看它有多长。

如果您想在单个公式中执行此操作,则必须为其编写脚本,因为某些公式与 arrayformula 的行为很奇怪,有时几乎无法使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多