You've already forked matrix-react-sdk
							
							
				mirror of
				https://github.com/matrix-org/matrix-react-sdk.git
				synced 2025-11-03 00:33:22 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python
 | 
						|
 | 
						|
import json
 | 
						|
import sys
 | 
						|
import os
 | 
						|
 | 
						|
if len(sys.argv) < 3:
 | 
						|
    print "Usage: %s <source> <dest>" % (sys.argv[0],)
 | 
						|
    print "eg. %s pt_BR.json pt.json" % (sys.argv[0],)
 | 
						|
    print
 | 
						|
    print "Adds any translations to <dest> that exist in <source> but not <dest>"
 | 
						|
    sys.exit(1)
 | 
						|
 | 
						|
srcpath = sys.argv[1]
 | 
						|
dstpath = sys.argv[2]
 | 
						|
tmppath = dstpath + ".tmp"
 | 
						|
 | 
						|
with open(srcpath) as f:
 | 
						|
    src = json.load(f)
 | 
						|
 | 
						|
with open(dstpath) as f:
 | 
						|
    dst = json.load(f)
 | 
						|
 | 
						|
toAdd = {}
 | 
						|
for k,v in src.iteritems():
 | 
						|
    if k not in dst:
 | 
						|
        print "Adding %s" % (k,)
 | 
						|
        toAdd[k] = v
 | 
						|
 | 
						|
# don't just json.dumps as we'll probably re-order all the keys (and they're
 | 
						|
# not in any given order so we can't just sort_keys). Append them to the end.
 | 
						|
with open(dstpath) as ifp:
 | 
						|
    with open(tmppath, 'w') as ofp:
 | 
						|
        for line in ifp:
 | 
						|
            strippedline = line.strip()
 | 
						|
            if strippedline in ('{', '}'):
 | 
						|
                ofp.write(line)
 | 
						|
            elif strippedline.endswith(','):
 | 
						|
                ofp.write(line)
 | 
						|
            else:
 | 
						|
                ofp.write('    '+strippedline+',')
 | 
						|
                toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8").strip("{}\n")
 | 
						|
                ofp.write("\n")
 | 
						|
                ofp.write(toAddStr.encode('utf8'))
 | 
						|
                ofp.write("\n")
 | 
						|
 | 
						|
os.rename(tmppath, dstpath)
 |