Das Adressformat nach Land ist keine Übersetzungsfrage. Die Reihenfolge der Elemente, das Vorhandensein einer Postleitzahl, die Zahl der Verwaltungsebenen und die Beziehung zwischen Hausnummer und Straße ändern sich, sobald Sie eine Grenze überschreiten, und ein Formular, das um die Konvention eines einzigen Landes herum entworfen wurde, weist gültige Eingaben aus den meisten anderen still zurück.
Dieser Leitfaden stellt die wichtigsten strukturellen Unterschiede zusammen, erklärt, warum die Postleitzahl das am häufigsten falsch entworfene Feld ist, untersucht den Kompromiss, den internationale Formulare eingehen, und was er kostet, und bietet einen Weg, eine Mehrländer-Adresse zu modellieren, die sich tatsächlich prüfen lässt. Am Ende sollten Sie auf ein Adressformular blicken und vorhersagen können, in welchen Ländern es scheitern wird.
Wie unterscheidet sich die Reihenfolge der Elemente?
Die zwei dominierenden Konventionen laufen in entgegengesetzte Richtungen. Angloamerikanische Adressen werden vom Kleinsten zum Größten geschrieben, mit dem Namen des Empfängers, der Hausnummer und Straße, dem Ort, dem Verwaltungsgebiet und der Postleitzahl in genau dieser Reihenfolge. Japanische Adressen werden vom Größten zum Kleinsten geschrieben und beginnen mit der Präfektur, dann der Gemeinde, dann dem Bezirk oder Stadtviertel, dann dem Block, dann dem Gebäude und schließlich der Wohnung.
Die Türkei und mehrere ihrer Nachbarländer folgen ebenfalls der Richtung vom Größten zum Kleinsten, mit der Provinz an der Spitze und dem Stadtviertel und der Straße danach. Lateinamerikanische Adressen liegen häufig zwischen beiden: erst die Straße, dann die Nummer, dann der Bezirk oder die Kolonie, dann die Stadt und die Verwaltungseinheit, wobei die Postleitzahl je nach Land vor oder nach der Stadt steht.
Der deutschsprachige Raum setzt Postleitzahl und Ort üblicherweise in eine Zeile, mit der Postleitzahl zuerst, was der amerikanischen Anordnung entgegengesetzt ist. Französische Adressen stellen die Postleitzahl ebenfalls vor den Ort, niederländische ebenso. Wenn ein Formular ein einzelnes Feld als Ort beschriftet und erwartet, dass die Postleitzahl getrennt bleibt, ist die Anzeigereihenfolge, die es erzeugt, für alle diese Länder falsch, obwohl die zugrunde liegenden Daten korrekt sind.
Die praktische Konsequenz lautet, dass Adressdarstellung und Adressspeicherung getrennte Anliegen sein sollten. Speichern Sie die Elemente in eigenen Feldern und setzen Sie die Anzeigezeichenkette nach der Konvention des Landes erst im Moment der Anzeige zusammen. Ein System, das eine vorgerenderte einzelne Zeile speichert, hat die Reihenfolge bereits festgelegt und kann seine Meinung für ein anderes Ziel nicht mehr ändern.
Ein zweites Ordnungsproblem betrifft die Zeilenumbrüche. Manche Konventionen brechen nach einer festen Zahl von Zeilen um, andere richten sich nach der Länge, und wieder andere setzen den Empfängernamen in eine eigene Zeile mit einer festen Höhe. Ein Renderer, der die Zeilenaufteilung fest verdrahtet, erzeugt für einen Teil der Länder Adressen, die auf einem Versandetikett anders umbrechen als im Formular.
Wie sieht die Postleitzahl in verschiedenen Ländern aus?
Die Postleitzahl ist das Feld mit der größten Variation, und es ist das Feld, das am häufigsten als festes Muster modelliert wird. Die Vereinigten Staaten und die Türkei verwenden fünf Ziffern. Deutschland, Frankreich, Spanien, Italien und Mexiko verwenden ebenfalls fünf Ziffern, aber führende Nullen sind bedeutungstragend, und eine numerische Datenbankspalte wird sie still verlieren. Das Vereinigte Königreich verwendet ein alphanumerisches Format variabler Länge mit einem Leerzeichen in der Mitte, und sowohl das Leerzeichen als auch die Groß- und Kleinschreibung sind für den Abgleich relevant.
Kanada verwendet ein alphanumerisches Muster, das Buchstaben und Ziffern abwechselt. Die Niederlande verwenden vier Ziffern, gefolgt von zwei Buchstaben. Polen verwendet fünf Ziffern mit einem Bindestrich nach der zweiten. Japan verwendet sieben Ziffern, üblicherweise mit einem Bindestrich nach den ersten drei, und Brasilien verwendet acht Ziffern mit einem Bindestrich nach den ersten fünf. Irland betreibt eines der wenigen genuin gemischten alphanumerischen Systeme mit einem Routing-Schlüssel.
Dann sind da die Länder ohne jede Postleitzahl. Mehrere Jurisdiktionen betreiben kein landesweites System, und einige haben eines erst vor Kurzem und unvollständig eingeführt. Ein Formular, das das Feld als erforderlich markiert, weist jede Adresse aus diesen Ländern zurück – ein Fehler, den eine Testsuite, die nur aus Ländern mit Postleitzahlen gebaut ist, nie entdecken wird. Der Artikel zu den Postleitzahlformaten nach Land sammelt die Muster an einer Stelle.
Die Speicherregel, die daraus folgt, ist einfach: Führen Sie die Postleitzahl als Text, niemals als Zahl. Führende Nullen, Buchstaben und interne Trennzeichen brechen alle eine numerische Spalte, und der Verlust ist still. Dieselbe Regel gilt für Hausnummern und Gebäudenummern in Ländern, in denen diese Werte Buchstaben oder Schrägstriche tragen, denn ein Feld, das für die Adressen eines Landes funktioniert hat, beschädigt still die eines anderen.
Eine dritte Regel betrifft den Abgleich. Zwei Postleitzahlen, die sich nur durch ein Leerzeichen unterscheiden, sind derselbe Ort und dürfen nicht als zwei Orte gezählt werden. Deshalb gehört die Normalisierung vor den Vergleich, und deshalb darf die Normalisierung die führenden Nullen nicht als erstes entfernen.
Welche Felder gibt es in manchen Ländern und in anderen nicht?
Die Feldmenge selbst ist landesabhängig, und das ist ein schwierigeres Problem als die Reihenfolge oder das Format. Manche Länder haben eine Bundesstaats- oder Provinzebene, manche haben mehrere Verwaltungsebenen, manche haben eine Stadtviertel- oder Bezirksebene, die für die Zustellung unerlässlich ist, und manche haben nichts davon.
Die Verwaltungsebene, die internationale Formulare am häufigsten weglassen, ist die mit dem größten Gewicht für die Zustellung. In der Türkei sind das der Bezirk und das Stadtviertel. In Japan sind es die Gemeinde und der Block. In vielen lateinamerikanischen Ländern ist es die Kolonie oder das Barrio. In Indonesien trägt die Adresse ein Dorf und einen Bezirk unterhalb der Stadt. Ein internationales Formular mit Ort, Region und Postleitzahl kann diese Adressen nicht ausdrücken; die betroffenen Nutzer schreiben das fehlende Element entweder in die Straßenzeile, wo es die Daten beschädigt, oder sie brechen das Formular ab.
Umgekehrt sind manche Felder in einem Land Pflicht und in einem anderen bedeutungslos. Eine Region ist in den Vereinigten Staaten, in Australien und in Kanada ein Pflichtfeld, in vielen anderen ein optionales Feld und in einer weiteren Gruppe ein Konzept, das nicht existiert. Markiert Ihre Vorlage sie für alle Länder als erforderlich, trägt jede Adresse aus einem Land ohne Regionen einen erfundenen Wert in dieser Spalte, und jede spätere Auswertung der regionalen Verteilung wird zur Fiktion.
Das ehrliche Design hält ein einziges Formular mit einer Feldkonfiguration je Land. Diese Konfiguration sagt, welche Felder gezeigt werden, welche erforderlich sind, wie sie beschriftet werden, welchem Muster die Postleitzahl folgt und welche Werte das Verwaltungsfeld annehmen darf. Diese Konfiguration sind Daten, und wie jede Datenmenge sollte sie Land für Land geprüft werden statt angenommen.
Ein vierter Fall wird oft übersehen: Felder, die in einem Land eine feste Auswahlliste haben und in einem anderen ein freies Textfeld sind. Wird die Auswahlliste global angewendet, kann der Nutzer einen korrekten Wert nicht eingeben, weil er nicht in der Liste steht. Wird das freie Textfeld global angewendet, verliert die Auswertung jede Vergleichbarkeit.
Was ist der Adresszeilen-Kompromiss und was kostet er?
Der Adresszeilen-Kompromiss ist das Muster, bei dem jede Adresse der Welt in zwei oder drei generische Zeilen plus Ort, Region und Postleitzahl flachgedrückt wird. Es existiert, weil es der billigste Weg war, ein internationales Formular funktionsfähig zu machen, und es hält sich, weil eine Änderung teuer ist.
Seine Stärke ist, dass es niemals eine Adresse blockiert. In eine freie Zeile lässt sich alles tippen, Nutzer werden also nie zurückgewiesen, weil sie ein Format eingegeben haben, das das Formular nicht vorgesehen hat. Seine Schwäche ist, dass es eine unstrukturierte Zeichenkette dort speichert, wo ein strukturierter Wert gebraucht wurde; alles Nachgelagerte, das nach Geografie gruppiert, validiert, routet oder entdoppelt, muss deshalb Text parsen.
Dazu kommt ein Versionierungsproblem. Während Länder ihre Verwaltungsgliederung überarbeiten, verbirgt die Flachdrückung, unter welcher Konvention eine historische Zeile geschrieben wurde, und eine Namensänderung in einer Provinz wird von einem Tippfehler ununterscheidbar.
Die Kosten zeigen sich später und in konkreter Form. Die Adressnormalisierung wird unzuverlässig, weil der Parser raten muss, welches Token der Ort ist. Die Entdopplung scheitert, weil dieselbe zweimal in unterschiedlicher Reihenfolge geschriebene Adresse wie zwei Adressen aussieht. Steuer- und Zustelllogik, die von einer Postleitzahl oder einer Region abhängt, kann überhaupt nicht laufen, wenn der Wert in einer Textzeile begraben liegt.
Eine zweite Kostenart ist leicht zu übersehen: Der Kompromiss verbirgt seine Fehler. Ein Formular mit freier Zeile akzeptiert eine Adresse ohne Postleitzahl aus einem Land, das eine verlangt, und akzeptiert eine Postleitzahl aus dem falschen Land, und meldet Erfolg. Der Artikel zum internationalen Adressformat behandelt das Muster ausführlicher, und der Artikel zu den grenzüberschreitenden Adressszenarien betrachtet, was passiert, wenn dieselbe Person Adressen in zwei Ländern hat.
Wie sollte ein Mehrländer-Adressmodell entworfen werden?
Beginnen Sie mit einem Landfeld, das alles Weitere steuert, und behandeln Sie jedes andere Feld als von ihm abhängig. Das Land bestimmt, welche Felder erscheinen, welche erforderlich sind, welches Muster die Postleitzahl hat und aus welcher Liste das Verwaltungsfeld schöpft. Nichts Nachgelagertes sollte auf die Regeln eines einzigen Landes fest verdrahtet sein.
Führen Sie die Postleitzahl als Text mit einem Normalisierungsschritt und nicht nur mit einem Validierungsschritt. Normalisieren heißt, die überflüssigen Leerzeichen und Trennzeichen zu entfernen, dort in Großbuchstaben zu wandeln, wo die Konvention des Landes Großbuchstaben vorsieht, und führende Nullen zu bewahren. Validieren heißt, das Muster für dieses Land zu prüfen. Beides in dieser Reihenfolge zu tun, vermeidet die Zurückweisung von Eingaben, die korrekt, aber anders geschrieben sind.
Modellieren Sie die Verwaltungshierarchie als verschachtelte Daten statt als flache Liste. Der Ort gehört zu einer Region und in vielen Ländern zu einer weiteren Ebene dazwischen. Die Beziehungen zu speichern statt einer einzigen Ebene bedeutet, dass ein neues Land durch das Hinzufügen von Zeilen ergänzt werden kann und nicht durch eine Codeänderung, und es macht die Konsistenzprüfungen als Daten ausdrückbar.
Prüfen Sie das Modell anschließend Land für Land und nicht Feld für Feld. Erzeugen Sie für jedes unterstützte Land eine Adresse, bestätigen Sie, dass sie Ihren eigenen Validator besteht, bestätigen Sie, dass Region und Postleitzahl zueinander passen, und bestätigen Sie, dass die dargestellte Reihenfolge der Konvention des Landes entspricht. Eine Suite, die die Felder einzeln prüft, wird grün bleiben, während die Kombinationen falsch sind – dieselbe Fehlerart, die handgebaute Adressdaten überall betrifft.
Führen Sie schließlich fest, warum jedes Land so konfiguriert ist, wie es ist. Ein Postleitzahlmuster oder eine Feldanforderung ist eine Aussage über ein Land zu einem Zeitpunkt, und die nächste Person, die die Konfiguration anfasst, muss wissen, von welcher Behörde die Regel stammt. Der Artikel zur Checkliste für Länderdatenabdeckung macht daraus eine prüfbare Liste.
Telefon und Adresse gehören in denselben Test. Ein Datensatz, in dem die Nummer die Vorwahl eines Landes trägt und die Adresse in einem anderen liegt, ist ein Konsistenzdefekt, den ein länderbewusstes Modell erkennen kann, und der Artikel zum Abgleich von Telefonvorwahl und Ort erklärt die Beziehung. Das Länder-Werkzeug auf dieser Seite legt die Feldsätze und Konventionen je Land offen, und die Ähnlichen Länder führen zu den Adresswerkzeugen, mit denen sich Feldkonfigurationen prüfen lassen.
Was erfordert ein länderbewusstes Testdatenset?
Es erfordert Regeln je Land statt einer globalen Regel, und es erfordert, dass diese Regeln gepflegt werden. Postbehörden ändern Formate, Verwaltungseinheiten werden gegründet und zusammengelegt, und Postleitzahlen werden neu vergeben. Ein Datenset, das bei der Zusammenstellung korrekt war und nie aktualisiert wurde, wird irgendwann der Behörde widersprechen, von der es stammt.
Es erfordert außerdem Herkunftsnachweise. Zu wissen, aus welcher Quelle die Regeln jedes Landes stammen, macht es möglich, sie zu erneuern, ohne zu raten; der Artikel zur Aktualität und Herkunft von Länderdaten stellt die Quellen zusammen, die es zu verfolgen lohnt. Ein Datenset ohne Herkunftsnachweis lässt sich nur als Ganzes ersetzen, und deshalb werden viele nie erneuert.
Es erfordert schließlich eine klare Grenze in den Daten selbst. Für Tests erzeugte Adressen sind synthetische Datensätze mit korrekter Struktur und korrekten internen Beziehungen, und sie lösen zu keiner realen Örtlichkeit auf. Sie dürfen nicht für die reale Zustellung verwendet werden, nicht um einen Wohnsitz oder eine Identität zu belegen, nicht um Konten zu eröffnen oder zu registrieren und nicht, um eine Verifizierungsstufe zu passieren, die danach fragt, wo jemand tatsächlich wohnt.