Files
fastlane2xliff/bin/xliff2fastlane.py
2016-07-13 13:02:18 +02:00

49 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: Juraj Michalek - Y Soft RnD - http://www.ysofters.com
# MIT License - see LICENSE.txt
import io
import os
import sys
import xml.etree.ElementTree as ET
def write_file_content(path, file_name, content):
"""Read content of file."""
if not os.path.exists(path):
os.makedirs(path)
f = io.open(path + file_name, "w", encoding = 'utf-8')
f.write(content)
f.close()
def parse_xliff_for_os(target_dir_name, os_name, target_language, body_element):
"""Convert XLIFF for OS into files for Fastlane."""
for trans_unit in body_element:
trans_unit_id = trans_unit.attrib['id']
trans_unit_target = ''
for trans_unit_element in trans_unit:
if trans_unit_element.tag.endswith('target'):
trans_unit_target = u'' + trans_unit_element.text
break
resource_path = target_dir_name + '/' + os_name + '/metadata/' + target_language + '/'
resource_file_name = trans_unit_id + '.txt'
write_file_content(resource_path, resource_file_name, trans_unit_target)
if len(sys.argv) < 2:
print "Specify parameters:"
print " source xliff files"
print " target directory"
sys.exit(1)
xliff_file_name = sys.argv[1]
target_dir_name = sys.argv[2]
source_tree = ET.parse(xliff_file_name)
source_root = source_tree.getroot()
xliff_content = source_root.getchildren()
for xliff_data in xliff_content:
parse_xliff_for_os(target_dir_name, xliff_data.attrib['original'], xliff_data.attrib['target-language'], xliff_data.getchildren()[0])