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

如何在Azure AI Translator翻译Markdown时保留元数据键?

解决Azure AI Translator异步API翻译Markdown时保留元数据键的问题

Azure AI Translator的异步API目前没有直接排除Markdown元数据翻译的内置功能,针对批量Markdown文档的翻译需求,可以通过预处理+后处理的方式来保留元数据的键,具体方案如下:

方案1:拆分文档后单独翻译正文,重组时保留原键

这种方式适合需要翻译元数据值但必须保留键的场景:

  • 编写脚本拆分每个Markdown文档,分离出顶部的元数据块(以---开头和结尾的部分)和正文内容
  • 将提取出的正文传入翻译API进行翻译
  • 解析原元数据的键值对,把值替换为翻译后的内容(如果不需要翻译值则直接保留原值),最后将处理后的元数据和翻译后的正文重新拼接成完整的Markdown文档

示例伪代码(Python):

# 拆分元数据与正文
def split_md(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    if not lines or lines[0].strip() != '---':
        return [], lines
    # 找到结束的---
    metadata_end = None
    for i in range(1, len(lines)):
        if lines[i].strip() == '---':
            metadata_end = i
            break
    if not metadata_end:
        return [], lines
    metadata_lines = lines[1:metadata_end]
    content_lines = lines[metadata_end+1:]
    return metadata_lines, content_lines

# 解析元数据为键值对
def parse_metadata(metadata_lines):
    meta_dict = {}
    for line in metadata_lines:
        line = line.strip()
        if not line or ':' not in line:
            continue
        key, value = line.split(':', 1)
        meta_dict[key.strip()] = value.strip()
    return meta_dict

# 重组翻译后的文档
def rebuild_md(meta_dict, translated_content, output_path):
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write('---\n')
        for key, val in meta_dict.items():
            # 若已单独翻译元数据值,替换此处的val为翻译后内容
            f.write(f'{key}: {val}\n')
        f.write('---\n')
        f.write(translated_content)

方案2:临时替换元数据键为占位符,翻译后还原

如果不需要翻译元数据的任何内容,仅需保留完整元数据块:

  • 预处理时,将元数据块整体替换为一个独特的占位符(比如@@@METADATA_BLOCK@@@)
  • 翻译正文内容后,再把占位符替换回原来的元数据块

这种方式操作更简单,适合元数据无需翻译的场景。

内容的提问来源于stack exchange,提问作者Vanja Stojanović

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:51:10