富文本携带html标签翻译问题有没有解决方案?

甲方要求用的第三方翻译不支持 html 翻译方案(沟通过不允许用其他家的)#

没有什么过滤翻译 第三方的就只有一个翻译接口 多的没了 第三方接口的参数:
富文本携带html标签翻译问题有没有解决方案?

但是富文本又携带了 html,第三方说是要把 html 标签取出来再替换翻译的文案进去
有没有什么好的解决方案比较好提取又能把翻译的内容补充进去

还要考虑 图片标签 内联样式也是 比如以下就是富文本 html 需要把这三段文本提取出来又怼进去

<p>
    <b>
        <span>
            <span>五是</span>
        </span>
    </b>
    <b>
        <span>强化融资支持力度</span>
    </b>
    <span>研究制定财政金融协同支持专精特新“小巨人”企业发展的政策措施,围绕间接融资、直接融资、境外融资、其他融资等提出相应支持措施。对企业在符合条件的证券交易所上市挂牌融资,分档给予最高1600万元奖补。实施专精特新“小巨人”企业融资担保降费奖补政策并向国家融资担保基金重点推介,对省级政府性融资担保公司向符合条件的中小微企业降低收费标准给予差额补助。</span>
</p>

3. 您期望得到的结果?#

简单点的解决方案或者有没有什么包,可以接受 java/python/php 可以比较方便的抽出来这些标签 然后把内容填充进去 或者其他方式比较好提取的方案 或者怎么替换比较方便

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

如下

代码已被折叠,点此展开

输出

测试 - has been translated


    测试测试 - has been translated


            五是 - has been translated




        强化融资支持力度 - has been translated
        测试 - has been translated

    测试 - has been translated
    研究制定财政金融协同支持专精特新“小巨人”企业发展的政策措施,围绕间接融资、直接融资、境外融资、其他融资等提出相应支持措施。对企业在符合条件的证券交易所上市挂牌融资,分档给予最高1600万元奖补。实施专精特新“小巨人”企业融资担保降费奖补政策并向国家融资担保基金重点推介,对省级政府性融资担保公司向符合条件的中小微企业降低收费标准给予差额补助。 - has been translated
    厉害 - has been translated
1年前 评论
y1415181920 (楼主) 1年前
anjing (作者) 1年前
讨论数量: 15

客户把它想 "简单",你不应该把它往 "简单" 想,而且这种东西坑点多,做出来的效果不一定得到客户的满意。所以你还是要客观考虑成本和实现效果的问题,并告知客户

1年前 评论
y1415181920 (楼主) 1年前

看看 python 的 BeautifulSoup 库可不可以实现

1年前 评论
y1415181920 (楼主) 1年前

BeautifulSoup 库实现的效果 还挺有意思

from bs4 import BeautifulSoup
# from googletrans import Translator

def translate_html(html_content, target_language='en'):

    soup = BeautifulSoup(html_content, 'html.parser')



    for element in soup.find_all(text=True):

        if element.strip() and element.parent.name not in ['script', 'style']:

            translated_text = "测试替换节点文字"

            element.replace_with(translated_text)

    return str(soup)

# Example HTML content
html_content = """
<p>
    <b>
        <span>
            <span>五是</span>
        </span>
        <img src="这是图片.png" />
    </b>
    <b>
        <span>强化融资支持力度</span>
    </b>
    <span>研究制定财政金融协同支持专精特新“小巨人”企业发展的政策措施,围绕间接融资、直接融资、境外融资、其他融资等提出相应支持措施。对企业在符合条件的证券交易所上市挂牌融资,分档给予最高1600万元奖补。实施专精特新“小巨人”企业融资担保降费奖补政策并向国家融资担保基金重点推介,对省级政府性融资担保公司向符合条件的中小微企业降低收费标准给予差额补助。</span>
</p>
"""

# Translate the HTML content
translated_html = translate_html(html_content, target_language='en')

# Print the translated HTML
print(translated_html)

实现效果

Laravel

1年前 评论

www.chengyao.xyz/article/9ad46029-...

参考这个,用 symfony/dom-crawler 或者原生 DOM Document 来遍历节点,获取所有节点的纯文本内容,翻译后修改内容,最终用 html () 方法生成最终的 html

1年前 评论

php 不是有 dom 扩展吗?你可以试下。Dom

1年前 评论
y1415181920 (楼主) 1年前
sanders

如果考虑不完整标签匹配兼容问题,可以使用 tidy 库,执行较慢,执行完保存下来。

1年前 评论

说个踩过的坑:富文本编辑器产出的 html 格式有时会很奇怪 (比如没有闭合标签或者多个标签什么的),如果遇到这种不规范的 HTML DOM 解析可能会失败

1年前 评论

如下

代码已被折叠,点此展开

输出

测试 - has been translated


    测试测试 - has been translated


            五是 - has been translated




        强化融资支持力度 - has been translated
        测试 - has been translated

    测试 - has been translated
    研究制定财政金融协同支持专精特新“小巨人”企业发展的政策措施,围绕间接融资、直接融资、境外融资、其他融资等提出相应支持措施。对企业在符合条件的证券交易所上市挂牌融资,分档给予最高1600万元奖补。实施专精特新“小巨人”企业融资担保降费奖补政策并向国家融资担保基金重点推介,对省级政府性融资担保公司向符合条件的中小微企业降低收费标准给予差额补助。 - has been translated
    厉害 - has been translated
1年前 评论
y1415181920 (楼主) 1年前
anjing (作者) 1年前

写过富文本编辑器翻译,用正则获取文本,翻译后在替换回去

1年前 评论
liushuo (作者) 1年前