Rewrite Sahana translation converter to produce files without escape sequences
This commit is contained in:
parent
01154a7d24
commit
6c521d367f
@ -1,32 +1,34 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from __future__ import print_function
|
||||
from pprint import pprint
|
||||
import argparse
|
||||
import csv
|
||||
import os
|
||||
import sys
|
||||
import xlrd
|
||||
|
||||
if len(sys.argv) == 1:
|
||||
print('Usage: {} input.(csv|xls)'.format(sys.argv[0]))
|
||||
sys.exit(1)
|
||||
def main(args):
|
||||
translations = {}
|
||||
basename, extension = os.path.splitext(args.inputfile.lower())
|
||||
|
||||
basename, extension = os.path.splitext(sys.argv[1].lower())
|
||||
translations = {}
|
||||
if extension == '.csv':
|
||||
with open(args.inputfile, 'r') as csvfile:
|
||||
reader = csv.reader(csvfile, delimiter=',', quotechar='\'')
|
||||
for line in reader:
|
||||
translations[line[1]] = line[2]
|
||||
elif extension == '.xls':
|
||||
sheet = xlrd.open_workbook(args.inputfile).sheet_by_index(0)
|
||||
for i in range(1, sheet.nrows):
|
||||
row = sheet.row(i)
|
||||
translations[row[1].value] = row[2].value
|
||||
else:
|
||||
print('Unknown input file extension')
|
||||
return
|
||||
|
||||
if extension == '.csv':
|
||||
with open(sys.argv[1], 'rb') as csvfile:
|
||||
reader = csv.reader(csvfile, delimiter=',', quotechar='\'')
|
||||
for line in reader:
|
||||
translations[line[1].encode('utf-8')] = line[2].encode('utf-8')
|
||||
elif extension == '.xls':
|
||||
sheet = xlrd.open_workbook(sys.argv[1]).sheet_by_index(0)
|
||||
for i in range(1, sheet.nrows):
|
||||
row = sheet.row(i)
|
||||
translations[row[1].value.encode('utf-8')] = row[2].value.encode('utf-8')
|
||||
else:
|
||||
print('Unknown input file extension')
|
||||
sys.exit(1)
|
||||
with open('{}.py'.format(basename), 'w') as langfile:
|
||||
print('# -*- coding: utf-8 -*-', file=langfile)
|
||||
pprint(translations, langfile, 0, 8192)
|
||||
|
||||
with open('{}.py'.format(basename), 'wb') as langfile:
|
||||
pprint(translations, langfile)
|
||||
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())
|
||||
|
Loading…
Reference in New Issue
Block a user