diff options
Diffstat (limited to 'web/lang/genpopo')
-rwxr-xr-x | web/lang/genpopo | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/web/lang/genpopo b/web/lang/genpopo deleted file mode 100755 index 33ea984..0000000 --- a/web/lang/genpopo +++ /dev/null @@ -1,170 +0,0 @@ -#! /usr/bin/python2 -O -# -*- coding: iso-8859-1 -*- - -# This script iterates through the script directories -# looking for php scripts that contain __() functions. -# It creates/appends to the corresponding -# "xxx.po" file in the 'lang' subdirectory and places the -# i18n strings into the file in the proper format. -# -# usage: genpopo [-v] [-f] -# -v: verbose, print duplicate terms that could be moved to common_po -# -f: force, overwrite existing translated files, otherwise append -# - -import re -import os -import sys - -INC_HEADER = """\ -<?php -# INSTRUCTIONS TO TRANSLATORS -# -# This file contains the i18n translations for a subset of the -# Arch Linux User Community Repository (AUR). This is a PHP -# script, and as such, you MUST pay great attention to the syntax. -# If your text contains any double-quotes ("), you MUST escape -# them with a backslash (\). -# - -global $_t; -""" - -language = 'en' -lang = {} - -print_dupes = '-v' in sys.argv -force = '-f' in sys.argv - -up = re.compile('_\(\s*"(([^"]|(?<=\\\\)["])+)"') - -scriptdirs = ['html', 'lib', 'template'] -pofile = '%s.po' % language - -current_dir = os.getcwd() - -# Iterate through various places where the php files might be. -# -for dir in scriptdirs: - dir = "../%s" % dir - - if os.path.exists(dir): - # Find all the PHP files in the current directory. - # - files = [x for x in os.listdir(dir) - if (x[-4:] == '.inc' and x[-7:] != '.po') - or x[-6:] == '.class' - or x[-4:] == '.php' - or x[-6:] == '.phtml' - ] - os.chdir(dir) - - for file in files: - f = open(file,'r') - lines = f.readlines() - f.close() - - # Parse the file - print "Parsing %s..." % file - for line in lines: - match = up.search(line) - while match: - term = match.group(1).replace('\\"','"') - if print_dupes: - if term in lang.keys(): - print 'Multiple use of "%s"' % term - - lang[term] = 1 - line = line[match.end(1):] - match = up.search(line) - - os.chdir(current_dir) - -# Generate the .po file if it doesn't already exist. -# If it does exist, only append new stuff to the end. -# If the 'force' option is passed, just overwrite. - -if force: - # Just overwrite any existing files - print "Generating %s..." % pofile - - f = open(pofile,'w') - f.write(INC_HEADER) - - for term in lang.keys(): - f.write("\n") - f.write('$_t["%s"]\n = "%s";\n' % (term, term)) - - f.write("\n"); - f.close() -else: - # Need to leave existing file intact. Only append on new terms. - mapre = re.compile('^\$_t\["(.*)"\].*$') - got_match = False - - print "Updating %s..." % pofile - - try: - f = open(pofile, 'r') - new_file = 0 - except: - new_file = 1 - - if not new_file: - contents = f.readlines() - f.close() - - # Strip beginning/ending empty lines - while contents[0] == '': - del contents[0] - while contents[-1] in ['', "\n", "?>", "?>\n", "\n?>"]: - del contents[-1] - - f = open(pofile,'w') - f.write("".join(contents)) - f.write("\n"); - f.close() - else: - f = open(pofile,'w') - f.write(INC_HEADER) - f.write('\n') - f.close() - - # Read file contents so we can hash what already exists - try: - f = open(pofile, 'r') - new_file = 0 - except: - new_file = 1 - - existing_terms = [] - if not new_file: - contents = f.readlines() - f.close() - - # Strip beginning/ending empty lines - while contents[0] == '': - del contents[0] - while contents[-1] in ['', "\n", "?>", "?>\n", "\n?>"]: - del contents[-1] - - # Collect existing terms - for line in contents: - match = mapre.search(line) - if match: - existing_terms.append(match.group(1)) - - # Append any new terms to EOF - f = open(pofile, 'w') - if not new_file: - f.write("".join(contents)) - else: - f.write(INC_HEADER) - - for term in lang.keys(): - if term not in existing_terms: - f.write("\n"); - f.write('$_t["%s"]\n = "%s";\n' % (term, term)) - f.write("\n"); - f.close() - |