summaryrefslogtreecommitdiff
path: root/web/oldupdatelang.py
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-05-16 13:05:41 -0300
committerJesusaves <cpntb1@ymail.com>2020-05-16 13:05:41 -0300
commit5d9b341de7248b0d2edae25d217f9f36d1218a42 (patch)
tree4bb92ebc8223b15e9e58dca4a2d33631ed10bfa3 /web/oldupdatelang.py
parent15777a938d38e7f9e46c347395a1a313953c2031 (diff)
downloadtools-5d9b341de7248b0d2edae25d217f9f36d1218a42.tar.gz
tools-5d9b341de7248b0d2edae25d217f9f36d1218a42.tar.bz2
tools-5d9b341de7248b0d2edae25d217f9f36d1218a42.tar.xz
tools-5d9b341de7248b0d2edae25d217f9f36d1218a42.zip
Regular update + garbage
Diffstat (limited to 'web/oldupdatelang.py')
-rwxr-xr-xweb/oldupdatelang.py164
1 files changed, 164 insertions, 0 deletions
diff --git a/web/oldupdatelang.py b/web/oldupdatelang.py
new file mode 100755
index 0000000..e7a367a
--- /dev/null
+++ b/web/oldupdatelang.py
@@ -0,0 +1,164 @@
+#! /usr/bin/env python3
+# -*- coding: utf8 -*-
+#
+# Copyright (C) 2018 TMW-2
+# Author: Jesusalva
+
+import os
+
+defaultLang = "en"
+rootPath = "../../web/"
+
+langs=[]
+files={}
+originals={}
+tm=["","\n"]
+
+def invalidline(line, filx="none"):
+ return (line.startswith("include ") or
+ line.startswith("<?php") or
+ line.startswith("?>") or
+ "<div " in line or
+ "</div>" in line or
+ "iframe" in line or
+ "header" in filx or
+ (line.startswith(" <p>") and line.endswith("<p>\n")) or
+ (line.startswith(" </p>") and line.endswith("</p>\n")) or
+ (line.startswith(" <pre><code>") and line.endswith("<code>\n")) or
+ (line.startswith(" </code></pre>") and line.endswith("</pre>\n")) or
+ line.replace('\n','') == "")
+
+# 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():
+ global tm
+ context=langs
+ context.append('en')
+ 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()
+
+ tm=[""]
+ for i in files:
+ writePoFile(i,a)
+ context.remove('en')
+
+def generateLocal():
+ for a in langs:
+ print("generating local file for "+a)
+ for i in files:
+ writeLocal(i,a)
+
+
+
+# Write po files. TODO: WARNING: Some translations are getting overriden!
+def writePoFile(nf,lg):
+ # Translation Memory, to prevent duplicates
+ global tm
+
+ a=open("po/"+lg+".po", "a")
+ f=open(rootPath+nf, "r")
+
+ for line in f:
+ if line in tm or invalidline(line, nf):
+ continue
+ else:
+ tm.append(line)
+
+ 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':
+ files[nf][lg][ctx]=line.replace('"\n', '').replace('\\"','"').replace('msgstr "', "")
+ 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()
+