Le format d’adresse par pays n’est pas une question de traduction. L’ordre des éléments, la présence d’un code postal, le nombre de couches administratives et la façon dont un numéro de rue se rapporte à une rue changent tous lorsque vous franchissez une frontière, et un formulaire conçu autour de la convention d’un pays rejette discrètement des saisies valides de la plupart des autres.
Ce guide expose les principales différences structurelles, explique pourquoi le code postal est le champ le plus souvent mal conçu, examine le compromis qu’utilisent les formulaires internationaux et ce qu’il coûte, et propose une façon de modéliser une adresse multi-pays qui puisse réellement être testée. À la fin, vous devriez pouvoir regarder un formulaire d’adresse et prédire quels pays y échoueront.
En quoi l’ordre des éléments diffère-t-il ?
Les deux conventions dominantes vont dans des sens opposés. Les adresses anglo-américaines s’écrivent du plus petit au plus grand, avec le nom du destinataire, le numéro et la rue, la localité, la zone administrative et le code postal dans cet ordre. Les adresses japonaises s’écrivent du plus grand au plus petit, en commençant par la préfecture, puis la municipalité, puis le district ou le quartier, puis l’îlot, puis le bâtiment et enfin l’appartement.
La Turquie et plusieurs de ses voisins suivent aussi le sens du plus grand au plus petit, avec la province en tête puis le quartier et la rue. Les adresses d’Amérique latine se situent souvent entre les deux, énumérant la rue, puis le numéro, puis le district ou la colonie, puis la ville et la division administrative, le code postal venant avant ou après la ville selon le pays.
Les pays germanophones placent généralement le code postal et la ville sur la même ligne avec le code postal en premier, ce qui est l’inverse de la disposition américaine. Les adresses françaises placent elles aussi le code postal avant la ville, et les adresses néerlandaises également. Lorsqu’un formulaire étiquette un seul champ comme ville et attend que le code postal soit séparé, l’ordre d’affichage qu’il produit sera faux pour tous ces pays, même si les données sous-jacentes sont correctes.
La conséquence pratique est que le rendu d’adresse et le stockage d’adresse devraient être des préoccupations distinctes. Stockez les éléments dans leurs propres champs, et assemblez la chaîne d’affichage selon la convention du pays au moment de l’affichage. Un système qui stocke une seule ligne pré-rendue a déjà décidé de l’ordre et ne peut pas changer d’avis pour une autre destination.
À quoi ressemble le code postal dans différents pays
Le code postal est le champ où se situe la variation la plus large, et c’est celui qui est le plus souvent modélisé comme un motif fixe. Les États-Unis et la Turquie utilisent cinq chiffres. L’Allemagne, la France, l’Espagne, l’Italie et le Mexique utilisent eux aussi cinq chiffres, mais les zéros initiaux sont significatifs et une colonne de base de données numérique les supprimera silencieusement. Le Royaume-Uni utilise un format alphanumérique de longueur variable avec un espace au milieu, et l’espace comme la casse des lettres importent pour la mise en correspondance.
Le Canada utilise un format alphanumérique qui alterne lettres et chiffres. Les Pays-Bas utilisent quatre chiffres suivis de deux lettres. La Pologne utilise cinq chiffres avec un trait d’union après le deuxième. Le Japon utilise sept chiffres, généralement écrits avec un trait d’union après les trois premiers, et le Brésil utilise huit chiffres écrits avec un trait d’union après les cinq premiers. L’Irlande possède l’un des rares systèmes réellement alphanumériques mixtes avec une clé d’acheminement.
Viennent ensuite les pays sans aucun code postal. Plusieurs juridictions n’exploitent pas de système national, et certaines n’en ont introduit un que récemment et de façon incomplète. Un formulaire qui marque le champ comme obligatoire rejettera toutes les adresses de ces pays, ce qui est une défaillance qu’une suite de tests construite uniquement à partir de pays dotés de codes postaux ne découvrira jamais. L’article sur les formats de code postal par pays rassemble les motifs en un seul endroit.
La règle de stockage qui découle de tout cela est simple : gardez le code postal sous forme de texte, jamais de nombre. Les zéros initiaux, les lettres et les séparateurs internes cassent tous une colonne numérique, et la perte est silencieuse. La même règle s’applique aux numéros de rue et de bâtiment dans les pays où ces valeurs portent des lettres ou des barres obliques, car un champ qui fonctionnait pour les adresses d’un pays corrompra silencieusement celles d’un autre.
Quels champs existent dans certains pays et pas dans d’autres
L’ensemble de champs lui-même dépend du pays, ce qui est un problème plus difficile que l’ordre ou le format. Certains pays ont un niveau d’État ou de province ; certains ont plusieurs couches administratives ; certains ont un niveau de quartier ou de district essentiel à la distribution ; et certains n’en ont aucun.
Le niveau administratif que la plupart des formulaires internationaux omettent est celui qui pèse le plus dans la distribution. En Turquie, c’est le district et le quartier. Au Japon, c’est la municipalité et l’îlot. Dans de nombreux pays d’Amérique latine, c’est la colonie ou le barrio. En Indonésie, l’adresse porte un village et un district sous la ville. Un formulaire international avec ville, État et code postal ne peut pas exprimer ces adresses, et les utilisateurs concernés mettront soit l’élément manquant dans la ligne de rue, où il corrompt les données, soit abandonneront le formulaire.
Inversement, certains champs sont obligatoires dans un pays et dénués de sens dans un autre. Un État est un champ requis aux États-Unis, en Australie et au Canada, un champ facultatif dans beaucoup d’autres, et un concept qui n’existe pas dans un groupe encore plus large. Si votre gabarit le marque comme requis pour tous les pays, chaque adresse d’un pays sans États portera une valeur fabriquée dans cette colonne, et toute analyse ultérieure de la répartition par État deviendra de la fiction.
La conception honnête conserve un formulaire unique avec une configuration de champs par pays. La configuration indique quels champs sont affichés, lesquels sont requis, comment ils sont étiquetés, quel motif suit le code postal, et quelles valeurs le champ administratif peut prendre. Cette configuration est une donnée, et comme toute donnée, elle devrait être testée pays par pays plutôt que supposée.
Quel est le compromis de la ligne d’adresse et combien coûte-t-il ?
Le compromis de la ligne d’adresse est le schéma dans lequel chaque adresse du monde est aplatie en deux ou trois lignes génériques plus une ville, une région et un code postal. Il existe parce que c’était la façon la moins coûteuse de faire fonctionner un formulaire international, et il perdure parce que le changer est cher.
Sa force est qu’il ne bloque jamais une adresse. N’importe quoi peut être saisi dans une ligne libre, de sorte que les utilisateurs ne sont jamais rejetés pour avoir entré un format que le formulaire n’avait pas anticipé. Sa faiblesse est qu’il stocke une chaîne non structurée là où une valeur structurée était nécessaire, de sorte que tout ce qui, en aval, regroupe, valide, achemine ou dédoublonne par géographie doit analyser du texte. Il y a aussi un problème de versionnage : à mesure que les pays révisent leurs divisions administratives, l’aplatissement masque sous quelle convention une ligne historique a été écrite, et un changement de dénomination dans une province devient indiscernable d’une faute de frappe.
Le coût apparaît plus tard et de façons précises. La normalisation d’adresse devient peu fiable car l’analyseur doit deviner quel jeton est la ville. Le dédoublonnage échoue car la même adresse écrite deux fois dans des ordres différents ressemble à deux adresses. La logique fiscale et de livraison qui dépend d’un code postal ou d’une région ne peut pas s’exécuter du tout lorsque la valeur est enfouie dans une ligne de texte.
Il existe un second coût facile à manquer : le compromis dissimule ses défaillances. Un formulaire doté d’une ligne libre accepte une adresse sans code postal d’un pays qui en exige un, accepte un code postal du mauvais pays, et signale un succès. L’article sur le format d’adresse international examine ce schéma plus en profondeur, et l’article sur les scénarios d’adresse transfrontalière regarde ce qui se passe lorsque la même personne a des adresses dans deux pays.
Comment concevoir un modèle d’adresse multi-pays
Commencez par un champ de pays qui pilote tout le reste, et traitez chaque autre champ comme conditionnel à celui-ci. Le pays détermine quels champs apparaissent, lesquels sont requis, quel motif prend le code postal, et de quelle liste le champ administratif tire ses valeurs. Rien en aval ne devrait être codé en dur selon les règles d’un seul pays.
Gardez le code postal sous forme de texte avec une étape de normalisation plutôt qu’une étape de validation seule. Normaliser signifie retirer les espaces et les séparateurs dont vous n’avez pas besoin, passer en majuscules là où la convention du pays est en majuscules, et préserver les zéros initiaux. Valider signifie vérifier le motif de ce pays. Faire les deux dans cet ordre évite de rejeter une saisie correcte mais écrite différemment.
Modélisez la hiérarchie administrative comme des données imbriquées plutôt qu’une liste plate. La localité appartient à une région, et dans beaucoup de pays à une couche supplémentaire entre les deux. Stocker les relations plutôt qu’un seul niveau signifie qu’un nouveau pays peut être ajouté en ajoutant des lignes plutôt qu’en modifiant du code, et cela rend les contrôles de cohérence exprimables sous forme de données.
Testez ensuite le modèle par pays, pas par champ. Pour chaque pays pris en charge, générez une adresse, vérifiez qu’elle passe votre propre validateur, vérifiez que la région et le code postal s’accordent, et vérifiez que l’ordre d’affichage rendu correspond à la convention du pays. Une suite qui teste les champs individuellement passera alors même que les combinaisons sont fausses, ce qui est le même mode de défaillance qui affecte les données d’adresse fabriquées à la main partout.
Enfin, gardez une trace de la raison pour laquelle chaque pays est configuré comme il l’est. Un motif de code postal ou une exigence de champ est une affirmation sur un pays à un moment donné, et la prochaine personne à toucher la configuration a besoin de savoir de quelle autorité la règle provient. L’article sur la liste de contrôle de couverture des données pays transforme cela en une liste vérifiable.
Le téléphone et l’adresse appartiennent au même test. Un enregistrement où le numéro porte l’indicatif d’un pays et où l’adresse se trouve dans un autre est un défaut de cohérence qu’un modèle sensible au pays peut détecter, et l’article sur la correspondance entre préfixe téléphonique et localité explique la relation. L’outil pays de ce site expose les ensembles de champs et les conventions par pays, et l’article sur la liste de contrôle de couverture des pays décrit ce qu’un jeu de données maintenu devrait contenir pour chacun.
Que requiert un jeu de données de test sensible au pays
Il requiert des règles par pays plutôt qu’une règle globale unique, et il requiert que ces règles soient maintenues. Les autorités postales changent les formats, des divisions administratives sont créées et fusionnées, et des codes postaux sont réalloués. Un jeu de données correct au moment où il a été assemblé et jamais rafraîchi finira par être en désaccord avec l’autorité dont il provient.
Il requiert aussi une provenance. Savoir de quelle source proviennent les règles de chaque pays est ce qui permet de les rafraîchir sans deviner, et l’article sur la fraîcheur et les sources des données pays expose les sources qui valent la peine d’être suivies. Un jeu de données sans provenance ne peut être remplacé qu’en bloc, ce qui explique pourquoi beaucoup ne sont jamais rafraîchis du tout.
Enfin, il requiert une frontière claire dans les données elles-mêmes. Les adresses générées pour les tests sont des enregistrements synthétiques à la structure correcte et aux relations internes correctes, et elles ne correspondent à aucun local réel. Elles ne doivent pas servir à une vraie livraison, à prouver une résidence ou une identité, à ouvrir ou enregistrer des comptes, ni à franchir une étape de vérification qui demande où quelqu’un habite réellement.