diff options
author | Jesusaves <cpntb1@ymail.com> | 2018-03-21 13:14:43 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2018-03-21 13:14:43 -0300 |
commit | 8976fc017bfcf53971d97ee9528a775ec9faab85 (patch) | |
tree | dfd79e173cda76d11b9e7dbc964ffbbee7edce4d /web | |
parent | 87958c263de40ebf91ace39690cc7fb119463a8b (diff) | |
download | tools-8976fc017bfcf53971d97ee9528a775ec9faab85.tar.gz tools-8976fc017bfcf53971d97ee9528a775ec9faab85.tar.bz2 tools-8976fc017bfcf53971d97ee9528a775ec9faab85.tar.xz tools-8976fc017bfcf53971d97ee9528a775ec9faab85.zip |
updatelang.py is already capable of handling po files, just lacking at final work.
Diffstat (limited to 'web')
-rwxr-xr-x | web/updatelang.py | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/web/updatelang.py b/web/updatelang.py new file mode 100755 index 0000000..5bde56a --- /dev/null +++ b/web/updatelang.py @@ -0,0 +1,137 @@ +#! /usr/bin/env python3 +# -*- coding: utf8 -*- +# +# Copyright (C) 2018 TMW-2 +# Author: Jesusalva + +import os + +defaultLang = "en" +rootPath = "../../web/" + +langs=[] +files={} +originals={} + +# Populates the basic arrays +def populate(): + # Populate langs + o=open("langs.txt", "r") + for i in o: + langs.append(i.replace('\n','')) + o.close() + + # Populate files + for i in os.listdir(rootPath): + if i.endswith(".php.en"): + print("Valid file: "+str(i)) + files[i]={} + for x in langs: + files[i][x]={} + + print(str(files)) + + +# Creates/Loads stuff +def genreadPoFile(): + for a in langs: + print("Reading translations for "+a) + for i in files: + readPoFile(i,a) + +def generatePoFiles(): + for a in langs: + print("Updating po file for "+a) + xrv=open("po/"+a+".po", "w") + # Prints header + xrv.write('\ +# Copyright (C) 2018 TMW2\n\ +#\n\ +\n\ +msgid ""\n\ +msgstr ""\n\ +"Project-Id-Version: TMW2\\n"\n\ +"MIME-Version: 1.0\\n"\n\ +"Content-Type: text/plain; charset=UTF-8\\n"\n\ +"Content-Transfer-Encoding: 8bit\\n"\n\ +\n\ +') + xrv.close() + + for i in files: + writePoFile(i,a) + +def generateLocal(): + for a in langs: + print("generating local file for "+a) + for i in files: + writeLocal(i,a) + + + +# Write po files +def writePoFile(nf,lg): + a=open("po/"+lg+".po", "a") + f=open(rootPath+nf, "r") + + for line in f: + a.write("#, no-c-format\n") + a.write('msgid "%s"\n' % line.replace('\n', '').replace('"','\\"')) + try: + if files[nf][lg][line.replace('\n', '')] != line.replace('\n', '') and files[nf][lg][line.replace('\n', '')] != "": + a.write('msgstr "%s"\n' % files[nf][lg][line.replace('\n', '')].replace('\n','').replace('"','\\"')) + else: + a.write('msgstr "%s"\n' % "") + except KeyError: + a.write('msgstr "%s"\n' % "") + + a.write('\n') + + a.close() + + +# Reads Po Files +def readPoFile(nf, lg): + try: + a=open("po/"+lg+".po", "r") + except: + a=open("po/"+lg+".po", "w") + a.close() + a=open("po/"+lg+".po", "r") + + ctx="" + for line in a: + if "msgid " in line: + ctx=line.replace('"\n','').replace('\\"','"').replace('msgid "', "") + if "msgstr " in line and ctx != "": + if line != 'msgstr ""\n': + print("Recording") + files[nf][lg][ctx]=line.replace('"\n', '').replace('\\"','"').replace('msgstr "', "") + print(str(files[nf][lg])) + else: + files[nf][lg][ctx]=ctx + ctx="" + a.close() + +def writeLocal(nf, lg): + a=open(rootPath+nf[:-2]+lg, 'w') + b=open(rootPath+nf, 'r') + + for line in b: + try: + a.write(files[nf][lg][line.replace('\n', '')]) + a.write('\n') + except KeyError: + a.write(line) + + b.close() + a.close() + +# Mainframe: populate arrays +populate() + +# Mainframe: handle PO files +genreadPoFile() +generatePoFiles() +generateLocal() + |