From 9ce6d646ff718cd62f6434c9a4c94e450436612a Mon Sep 17 00:00:00 2001 From: Thomas Backlund Date: Sun, 12 Oct 2014 12:27:45 +0300 Subject: Revert "Updated Estonian translation" This reverts commit a0b2d09125d7911656fe4cb286f20643c4432281. --- tools/translated_converter.py | 107 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 tools/translated_converter.py (limited to 'tools/translated_converter.py') diff --git a/tools/translated_converter.py b/tools/translated_converter.py new file mode 100644 index 000000000..568e3fb43 --- /dev/null +++ b/tools/translated_converter.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This file is free software. It come without any warranty, to the extent +# permitted by applicable law. You can redistribute it and/or modify them under +# the terms of the Do What The Fuck You Want To Public License, Version 2, as +# published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more details. + +# author yurchor +# http://gitweb.mageia.org/software/i18n/tools/tree/websites +# adaptation by filip + +import errno, glob, polib, re, os, getopt, sys +from time import strftime + +def usage(): + print '\nUsage: python %s [OPTION]' %os.path.basename(sys.argv[0]) + print ' generates po file for existing lang translations' + print 'Options: -h, --help : usage' + print ' -f filename, --filename filename : target filename' + sys.exit(2) +try: + opts, args = getopt.getopt(sys.argv[1:], "hf:", ["help", "filename="]) +except getopt.GetoptError: + usage() # print help information and exit + +filename='' +for o,a in opts: + if o in ("-h", "--help"): + usage() + if o in ("-f", "--filename"): + filename=a + +if filename == '': + sys.exit('No filename given') + +def po_append(message_id, message_str, langfile): + # Strip ';' from msgid + message_id = message_id.lstrip(';') + if message_str == message_id: + message_str='' + message_str = message_str.replace('{ok}', '').rstrip() + potentry = polib.POEntry( + msgid = message_id.decode('utf-8'), + msgstr = message_str.decode('utf-8'), + occurrences=[(langfile,'')] + ) + po.append(potentry) + +file_mask = filename + '.*.lang' +if filename == './_nav/langs/': + file_mask = './_nav/langs/*.lang' +for langfile in glob.glob(file_mask): +# print langfile # useful for debuging + nofilename = langfile.replace(filename + '.','') + language = nofilename.replace('.lang','') + language = language.replace('./_nav/langs/','') + #open lang file + text = open(langfile,"r").read()+"\n" + #Remove trailing spaces from lines + spaces=' {1,}\n' + spattern=re.compile(spaces,re.DOTALL) + for emptyline in spattern.findall(text): + text = text.replace(emptyline,'\n') + text = text.replace('\n\n','\n\n\n\n')+'\n' + + # Write PO file + po = polib.POFile(wrapwidth=999) # increase default wrap limit + pocreationtime = strftime('%Y-%m-%d %H:%M%z') + po.metadata = { + 'Project-Id-Version': langfile, + 'Report-Msgid-Bugs-To': 'mageia-i18n@mageia.org', + 'POT-Creation-Date': pocreationtime, + 'PO-Revision-Date': pocreationtime, + 'Last-Translator': 'Duffy Duck ', + 'Language-Team': 'LANGUAGE ', + 'Language': language, + 'MIME-Version': '1.0', + 'Content-Type': 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding': '8bit', + } + + # Parse contents and add them to PO + messagetemplate='\n\n#\ .*?\n\n' + mpattern=re.compile(messagetemplate,re.DOTALL) + for mblock in mpattern.findall(text): + message_comment, message_text = mblock.strip('\n').split('\n;',1) + # Strip '# ' from comments + message_comment = message_comment.lstrip('# ') + message_id, message_str = message_text.split('\n',1) +# print message_id # useful for debuging + po_append(message_id, message_str, langfile) + messagetemplate='\n\n;.*?\n\n' + mpattern=re.compile(messagetemplate,re.DOTALL) + for mblock in mpattern.findall(text): + message_id, message_str = mblock.strip('\n').split('\n',1) +# print message_id # useful for debuging + po_append(message_id, message_str, langfile) + if text[0] == ';': + message_id, message_str = text.partition('\n\n')[0].strip('\n').split('\n',1) +# print message_id # useful for debuging + po_append(message_id, message_str, langfile) + if filename == './_nav/langs/': + file_name = filename + language + else: + file_name = filename + po.save(file_name + '.po') -- cgit v1.2.1