diff htdocs/svg-edit/extras/update-langs.py @ 480:1ef31d76eb88

updated to version of svg-edit Revision r1310
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Sun, 31 Jan 2010 18:35:04 +0100
parents
children 55ffbd41c42d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/svg-edit/extras/update-langs.py	Sun Jan 31 18:35:04 2010 +0100
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This is a helper script for the svg-edit project, useful for managing
+# all the language files
+#
+# Licensed under the Apache 2 License as is the rest of the project
+# Requires Python 2.6
+#
+# Copyright (c) 2010 Jeff Schiller
+
+import os
+import sys
+import re
+import json
+from types import *
+
+def updateMainMenu(j):
+	"""
+		Converts title into textContent for items in the main menu
+	"""
+	tools = ['tool_clear', 'tool_open', 'tool_save', 'tool_docprops']
+	for row in j:
+		try:
+			id = row['id']
+			if id in tools:
+				row[u'textContent'] = row.pop('title')
+		except KeyError:
+			pass
+
+def ourPrettyPrint(j):
+	"""
+		Outputs a string representation of the JSON object passed in
+		formatted properly for our lang.XX.js files.
+	"""
+	s = '[' + os.linesep
+	js_strings = None
+	j.sort()
+	for row in j:
+		try:
+			id = row['id']
+			row_string = json.dumps(row, sort_keys=True, ensure_ascii=False)
+			s += row_string + ',' + os.linesep
+		except KeyError:
+			if type(row) is DictType:
+				js_strings = row
+				
+	s += json.dumps(js_strings, sort_keys=True, ensure_ascii=False, indent=1) + os.linesep
+	s += ']'
+	return s
+
+def processFile(filename):
+	"""
+		Loads the given lang.XX.js file, processes it and saves it
+		back to the file system
+	"""
+	in_file = open('./editor/locale/'+filename, 'r')
+	in_string = in_file.read()
+	in_file.close()
+	
+	try:
+		j = json.loads(in_string)
+		
+		# process the JSON object here
+#		updateMainMenu(j)
+	
+		# now write it out back to the file
+		s = ourPrettyPrint(j).encode("UTF-8");
+		out_file = open('./editor/locale/'+filename, 'w')
+		out_file.write( s )
+		out_file.close()
+
+		print "Updated " + filename
+	except ValueError:
+		print "ERROR!  " + filename + " was not valid JSON, please fix it!"
+
+if __name__ == '__main__':
+	# get list of all lang files and process them
+	for file in os.listdir('./editor/locale/'):
+		if file[:4] == "lang":
+			processFile(file)
\ No newline at end of file