[Pkg-isocodes-devel] r929 - trunk/iso-codes/iso_639
toddy-guest at alioth.debian.org
toddy-guest at alioth.debian.org
Mon Jul 23 10:28:20 UTC 2007
Author: toddy-guest
Date: 2007-07-23 10:28:20 +0000 (Mon, 23 Jul 2007)
New Revision: 929
Added:
trunk/iso-codes/iso_639/iso639tab.py
Log:
Resurrect iso639tab.py from revision 913, trunk/iso-codes/iso_639/iso639tab.py
Copied: trunk/iso-codes/iso_639/iso639tab.py (from rev 913, trunk/iso-codes/iso_639/iso639tab.py)
===================================================================
--- trunk/iso-codes/iso_639/iso639tab.py (rev 0)
+++ trunk/iso-codes/iso_639/iso639tab.py 2007-07-23 10:28:20 UTC (rev 929)
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+#
+# Read iso-codes iso_639.xml data file and output a .tab file
+#
+# Copyright (C) 2005 Alastair McKinstry <mckinstry at debian.org>
+# Released under the GPL.
+# $Id$
+
+from xml.sax import make_parser, SAXException, SAXParseException
+from xml.sax.handler import feature_namespaces, ContentHandler
+import sys, os, getopt, urllib2
+
+lines = []
+class printLines(ContentHandler):
+ def __init__(self):
+ pass
+
+ def startElement(self, name, attrs):
+ if name != 'iso_639_entry':
+ return
+ t_code = attrs.get('iso_639_2T_code', None)
+ if t_code == None:
+ raise RunTimeError, "Bad file"
+ if type(t_code) == unicode:
+ t_code = t_code.encode('UTF-8')
+ b_code = attrs.get('iso_639_2B_code', None)
+ if b_code == None:
+ raise RunTimeError, "Bad file"
+ if type(b_code) == unicode:
+ b_code = b_code.encode('UTF-8')
+ name = attrs.get('name', None)
+ if name == None:
+ raise RunTimeError, " BadFile"
+ short_code=attrs.get('iso_639_1_code','XX')
+ short_code=short_code.encode('UTF-8')
+ if type(name) == unicode:
+ name = name.encode('UTF-8')
+ lines.append(t_code + '\t' + b_code + '\t' + short_code + '\t' + name + '\n')
+
+##
+## MAIN
+##
+
+
+ofile = sys.stdout
+ofile.write("""
+## iso-639.tab
+##
+## Copyright (C) 2005 Alastair McKinstry <mckinstry at computer.org>
+## Released under the GNU License; see file COPYING for details
+##
+## PLEASE NOTE: THIS FILE IS DEPRECATED AND SCHEDULED TO BE REMOVED.
+## IT IS FOR BACKWARD-COMPATIBILITY ONLY: PLEASE USE THE ISO-639.XML
+## FILE INSTEAD.
+##
+## This file gives a list of all languages in the ISO-639
+## standard, and is used to provide translations (via gettext)
+##
+## Status: ISO 639-2:1998 + additions and changes until 2003-03-05
+## Source: http://lcweb.loc.gov/standards/iso639-2/englangn.html
+##
+## Columns:
+## iso-639-2 terminology code
+## iso-639-2 bibliography code
+## iso-639-1 code (XX if none exists)
+## Name (English)
+##
+##
+""")
+p = make_parser()
+try:
+ dh = printLines()
+ p.setContentHandler(dh)
+ p.parse(sys.argv[1])
+except SAXParseException, e:
+ sys.stderr.write('%s:%s:%s: %s\n' % (e.getSystemId(),
+ e.getLineNumber(),
+ e.getColumnNumber(),
+ e.getMessage()))
+ sys.exit(1)
+except Exception, e:
+ sys.stderr.write('<unknown>: %s\n' % str(e))
+ sys.exit(1)
+lines.sort()
+for l in lines:
+ ofile.write(l)
+ofile.close()
More information about the Pkg-isocodes-devel
mailing list