20130109¶
Mehrsprachige Städtenamen¶
Jetzt, wo Städtenamen mehrsprachig sind, brauchen wir noch ein bisschen mehr Intelligenz beim Generieren der Demo-Daten. Die gleiche Intelligenz brauchen wir auch beim Einlesen eines Ortes von einer eID. Also es lohnt sich, dass ich mir da was Mühe gebe.
Zum Beispiel in der lino.modlib.contacts.fixtures.demo
werden folgende fiktiven Firmen in Deutschland erstellt:
company = Instantiator('contacts.Company',"name zip_code city:name street street_no",country='DE').build
yield company('Hans Flott & Co','22453','Hamburg','Niendorfer Weg','532')
yield company('Bernd Brechts Bücherladen','80333','München','Brienner Straße','18')
yield company('Reinhards Baumschule','12487 ','Berlin','Segelfliegerdamm','123')
In einer Datenbank, deren erste Sprache Englisch ist,
funktionierte das seit vorgestern nicht mehr,
weil “München” dann neuerdings “Munich” heißt.
Lösung ist die neue Klasse
lino.utils.instantiator.LookupConverter
,
die zunächst mal die Methode lookup aus
ForeignKeyConverter
und
ManyToManyConverter
rauskapselt, um ihr dann besagte neue Intelligenz
zu verleihen, die man auch als
Mehrsprachigkeitsverträglichkeit bezeichnen könnte:
falls das Lookup-Feld ein BabelCharField
ist,
werden alle verfügbaren Sprachen durchsucht.
The template search path¶
Nach einem Release auf lf.org trat folgendes Problem auf:
“KeyError ‘users’ at /”