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

如何用deepl-node在多语言翻译中稳定保留Markdown格式?

解决方案

针对你遇到的DeepL翻译时Markdown格式错乱问题,可以通过以下几个关键配置和处理步骤来解决:

1. 启用DeepL的格式保留参数

在调用deepl-node的翻译接口时,务必开启preserve_formatting参数,它会告诉DeepL保留输入中的粗体、列表符号等格式标记。同时结合XML标签处理配置,确保只翻译指定标签内的内容:

const { Translator } = require('deepl-node');
const translator = new Translator('你的认证密钥');

async function translateTargetTags(xmlContent, targetLang) {
  const translationResult = await translator.translateText(
    xmlContent,
    null, // 自动检测源语言
    targetLang,
    {
      tag_handling: 'xml',
      target_tags: ['text', 'title'], // 指定仅翻译这两个标签内的内容
      preserve_formatting: true, // 核心:保留格式标记
      split_sentences: 'nonewlines', // 禁止按换行拆分句子,避免破坏列表结构
    }
  );
  return translationResult.text;
}

2. 确保输入的Markdown格式规范

格式错乱的部分原因可能是输入的Markdown不符合标准:

  • 无序列表必须每个项单独占一行:
    * One
    * Two
    * Three
    
    而非同一行的* One * Two * Three,后者DeepL无法正确识别为列表结构。
  • 粗体、斜体标记必须成对出现,避免不闭合的符号(如**bold text)。

3. 针对特殊语言的额外配置

部分语言(如德语、法语)对格式符号的处理逻辑略有差异,可尝试添加以下参数优化:

  • 设置outline_detection: false,防止DeepL将列表误判为文档大纲而修改格式;
  • 若仍有粗体符号错乱,可在翻译后做简单的格式修复,比如用正则替换多余的符号:
    // 修复粗体符号错乱的示例
    function fixBoldFormat(text) {
      return text.replace(/\*\*\*(.*?)__/g, '**$1**');
    }
    

4. 多语言测试与校验

针对目标语言(如英语、西班牙语、日语等)逐一测试,验证格式一致性。可以编写简单的校验脚本,检查翻译后的内容:

  • 粗体标记**是否成对;
  • 无序列表项是否都以*开头;
  • 其他格式标记(如斜体、链接)是否完整保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:52:15