Advertisement
Guest User

opencart language file merge

a guest
Mar 20th, 2012
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. import dircache, os, re, shutil
  2.  
  3. dir1 = 'english/'
  4. dir2 = 'icelandic/'
  5. dest = 'merged/'
  6.  
  7. def getLines(file):
  8.     fh = open(file, 'r')
  9.     lines = {}
  10.     for l in fh.readlines():
  11.         if l[:1] != '$':
  12.             continue
  13.        
  14.         try:
  15.             v = re.match("\$_\['(.*)'\].* '(.*?)';", l).groups()
  16.             lines[v[0]] = v[1]
  17.         except:
  18.             continue
  19.     fh.close()
  20.     return lines
  21.  
  22. def mergeFiles(file1, file2):
  23.     # Merge the contents of the files and return. file2 items will prevail if items exist in both files.
  24.     return dict(getLines(file1).items() + getLines(file2).items())
  25.    
  26. def writeFile(filename, contents):
  27.     lines = ["<?php\n"]
  28.    
  29.     for k in contents.keys():
  30.         lines.append("$_['%s'] = '%s';\n" % (k, contents[k]))
  31.    
  32.     lines.append("?>\n")
  33.    
  34.     fh = open(filename, 'w')
  35.     fh.writelines(lines)
  36.     fh.close()
  37.  
  38.    
  39. shutil.copytree(dir1, dest)
  40. for f in dircache.listdir(dir1):
  41.     if os.path.isdir(dir1+f):
  42.         # Go through subdirectories
  43.         for file in dircache.listdir(dir1 + f):
  44.             filename = str(f) + '/' + str(file)
  45.             print filename
  46.            
  47.             if not os.path.exists(dir2 + filename):
  48.                 # Need to copy dir1 file to dest
  49.                 shutil.copyfile(dir1 + filename, dest + filename)
  50.             else:
  51.                 # Compare contents (translation strings)
  52.                 merged = mergeFiles(dir1 + filename, dir2 + filename)
  53.                 writeFile(dest+filename, merged)
  54.                
  55.     else:
  56.         # Is a file, probably <language.php> in the root folder.
  57.         merged = mergeFiles(dir1 + f, dir2 + dir2[:-1] + '.php')
  58.         writeFile(dest+dir2[:-1] + '.php',merged)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement