Christian Tissmer
Felix Schwarz
Martin v. Löwis
Veit Schiele
2013-03-01
cldr
soll ein High-Level-API für die gebräuchlichsten Anfragen
bereitstellen. Da es uns jedoch kaum möglich erscheint, alle möglichen
Fälle abzudecken, wollen wir darüber hinaus ein Low-Level-API bereitstellen,
das den Zugriff auf das gesamte Unicode Common Locale Data Repository ermöglicht. Das Low-Level-API soll auch zum
Parsen der LDML-Daten verwendet werden können, wenn sich das High-Level-API
als ungenügend erweisen sollte. So wird sich z.B. über das High-Level-API
nicht die folgende Frage beantworten lassen »Welches ist die minimale Anzahl
von Tagen, damit eine Woche als erste Woche im Jahr gezählt wird?« Das Low-
Level-API wird sich dennoch verwenden lassen ohne dass die Notwendigkeit
besteht, die LDML-Daten erneut zu parsen.
Das Python-cldr-Modul wird das eigenständige Aktualisieren und Ändern des CLDR-Repository erlauben. Damit sollen u.a. die folgenden Szenarien unterstützt werden:
Schnelles Beheben von Fehlern im Repository.
So ist z.B. in /locales/core/common/main/de.xml
kein Unterschied
zwischen Name und Abkürzung einer Ära in der deutschen Lokalisierung
angegeben:
<eraNames>
<era type="0">v. Chr.</era>
<era type="1">n. Chr.</era>
</eraNames>
<eraAbbr>
<era type="0">v. Chr.</era>
<era type="1">n. Chr.</era>
</eraAbbr>
Und in colCaseLevel
werden für die Typen yes
und no
dieselben
Werte ausgegeben:
<types>
…
<type type="no" key="colCaseLevel" draft="contributed">Nach Groß-/Kleinschreibung sortieren</type>
…
<type type="yes" key="colCaseLevel" draft="contributed">Nach Groß-/Kleinschreibung sortieren</type>
…
</types>
Diese Beispiele machen die Notwendigkeit deutlich, solche Fehler ggf. schnell beheben zu können.
Hierfür werden Anwender den Pfad zu den zu verwendenden CLDR-Daten angeben können. Somit wird verhindert, dass hierfür das systemweite Python geändert werden muss wodurch die Änderungen auch auf restricted Hosts möglich ist.