from xml.etree import ElementTree as ET
root = ET.Element('xliff', version='2.0')
file = ET.SubElement(root, 'file', id='demo')
translations = {row['id']: row['target'] for row in output['segments']}
for row in data['segments']:
    unit = ET.SubElement(file, 'unit', id=row['id'])
    segment = ET.SubElement(unit, 'segment')
    source = ET.SubElement(segment, 'source')
    source.text = row['source']
    target = ET.SubElement(segment, 'target')
    target.text = translations[row['id']]
ET.ElementTree(root).write(folder / 'translations.xlf', encoding='utf-8', xml_declaration=True)
check('分段ID未新增或丢失', set(translations) == {'s1', 's2'})
check('锁定品牌未翻译，name占位标签保留', translations['s2'] == 'ACME' and bool(re.search(r'<ph\s+id=[\"\']name[\"\']\s*/>', translations['s1'])))
check('导出XML可解析回读', ET.parse(folder / 'translations.xlf').getroot().tag == 'xliff')
