You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Python translate模块短文本场景下< >内文本不显示的问询

Python translate模块保留< >包裹文本的问题解决

解决方案:强制保留< >内容

不管原文本长短,最可靠的方式是手动拆分带< >的标签部分和可翻译文本,分别处理后再拼接:

from translate import Translator
# pip install translate

tra = Translator(from_lang='en', to_lang='es')

def translate_preserve_tags(raw_text):
    segments = []
    current_segment = ""
    in_tag = False

    # 遍历文本拆分标签和普通内容
    for char in raw_text:
        if char == "<":
            if current_segment:
                segments.append(("content", current_segment.strip()))
                current_segment = ""
            in_tag = True
            current_segment += char
        elif char == ">":
            in_tag = False
            current_segment += char
            segments.append(("tag", current_segment))
            current_segment = ""
        else:
            current_segment += char
    # 处理最后一段内容
    if current_segment:
        segments.append(("content", current_segment.strip()))
    
    # 翻译普通内容,保留标签
    translated_parts = []
    for seg_type, content in segments:
        if seg_type == "content" and content:
            translated_parts.append(tra.translate(content))
        else:
            translated_parts.append(content)
    
    return " ".join(translated_parts)

# 测试短文本场景
test_text = "<untranslated text>Subscribe to the channel."
print(translate_preserve_tags(test_text))

关于最小文本长度

没有固定的最小长度阈值,这取决于translate模块底层调用的翻译引擎的文本预处理规则,不同引擎的判断逻辑可能不同。实际测试中,当可翻译的普通文本部分包含3-4个以上单词时,< >包裹的内容更大概率被保留,但这个结果并不稳定,因此不建议依赖文本长度来解决问题,优先使用上述拆分处理的方法。

内容的提问来源于stack exchange,提问作者user28976168

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:40:05