#!/usr/bin/python # localeg - demonstrates locale effects # # re must be told to respect locale either in the regexp # "(?L)" or as flag to the call (python 2.4) "re.LOCALE". import sys import re, string from locale import LC_CTYPE, setlocale, getlocale name = "andreas k\xF6nig" locale = {"German" : "de_DE.ISO_8859-1", "English" : "en_US"} # us-ascii is not supported on linux py23 # none works in activestate py24 try: setlocale(LC_CTYPE, locale["English"]) except: print "Invalid locale %s" % locale["English"] sys.exit(1) english_names = [] for n in re.findall(r"(?L)\b(\w+)\b",name): english_names.append(n.capitalize()) try: setlocale(LC_CTYPE, locale["German"]) except: print "Invalid locale %s" % locale["German"] sys.exit(1) german_names = map(string.capitalize, re.findall(r"(?L)\b(\w+)\b",name)) print "English names: %s" % " ".join(english_names) print "German names: %s" % " ".join(german_names)