基于OpenAI API的PHP HTML翻译:大内容结构化拆分方案
高效拆分大HTML内容进行翻译并保留结构的方案
要解决大HTML内容因token限制无法直接翻译,同时保留完整结构和属性的问题,核心思路是基于DOM块级元素拆分单元,用HTML解析工具处理而非字符串切割,具体步骤如下:
1. 按块级元素拆分HTML内容
使用成熟的HTML解析库(如Python的BeautifulSoup、JavaScript的cheerio)遍历DOM树,提取独立的块级元素作为翻译单元,比如:
- 顶级
<p>、<div>、<section>、<article>等元素 - 嵌套结构中,可拆分至内层独立块级元素(如
<section>内的每个<p>)
拆分时必须保证每个单元是完整的DOM节点,包含所有内部内联元素、自定义属性(如data-info、class)和标签结构,绝对不能拆分内联元素(如<span>、<strong>)。
2. 构造精准的翻译请求Prompt
对每个拆分出的HTML块,构造明确的Prompt,强制AI保留HTML结构:
请翻译以下HTML片段中的文本内容,完全保留所有HTML标签、属性和原有结构,仅替换文本内容: <p><strong data-info="important">Welcome</strong> to our <span class="highlight">new platform</span>. Consult <a href="https://example.com">terms and conditions</a> for more details.</p>
3. 批量处理并重组完整HTML
将每个块的翻译结果收集后,按照原HTML中元素的顺序重新拼接,即可得到结构完全一致、仅文本被翻译的完整HTML文档。
关键注意事项
- 禁止字符串/正则拆分:手动切割HTML字符串极易破坏标签闭合或属性结构,必须依赖DOM解析工具。
- 控制单元大小:如果单个块级元素仍过大(比如超长的
<div>),可进一步拆分其内部的子块级元素,确保每个请求的token数在API限制内。 - 验证翻译结果:批量处理前先测试少量样本,确认AI未修改标签、属性或结构,避免出现标签丢失、属性被篡改的情况。
内容的提问来源于stack exchange,提问作者Aeron V
相关产品推荐
相关产品推荐

