#!/usr/bin/env python3 import argparse import csv import os import xlrd from pprint import pprint def main(args): translations = {} basename, extension = os.path.splitext(args.inputfile) extension = extension.lower() if extension == '.csv': # Read CSV file, assume the same structure as given by the export with open(args.inputfile, 'r') as csvfile: reader = csv.reader(csvfile) for line in reader: translations[line[1]] = line[2] elif extension in ('.xls', '.xlsx'): # Read the XLS(X) file, assume type of columns from their count sheet = xlrd.open_workbook(args.inputfile).sheet_by_index(0) source_col,target_col = (1,2) if sheet.row(0)[2] else (0,1) for i in range(1, sheet.nrows): row = sheet.row(i) translations[row[source_col].value] = row[target_col].value else: print('Unknown input file extension') return with open('{}.py'.format(basename), 'w') as langfile: # Write the translation file print('# -*- coding: utf-8 -*-', file=langfile) pprint(translations, langfile, 0, 8192) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Spotter Cluster Sahana Eden translation converter') parser.add_argument('inputfile', help='CSV or XLS translation file.') main(parser.parse_args())