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 /”