Un générateur d’adresses turques produit des adresses turques qui suivent les conventions postales du pays plutôt qu’une approximation anglophone de celles-ci. La hiérarchie va de la province jusqu’à la rue, le code postal comporte toujours cinq chiffres, et l’ordre d’écriture place la plus grande unité administrative en premier — une séquence que beaucoup de formulaires internationaux inversent discrètement.
Ce guide explique comment une adresse turque est structurée, comment les quatre-vingt-une provinces se rapportent aux codes postaux et aux indicatifs téléphoniques, pourquoi les lettres turques pointées et non pointées causent de vrais défauts dans les champs d’adresse, et ce qu’un enregistrement généré peut remplacer ou non. À la fin, vous devriez pouvoir dire si une adresse turque dans votre fixture est simplement plausible ou réellement cohérente.
Comment une adresse turque est-elle ordonnée ?
Une adresse turque s’écrit de la plus grande unité à la plus petite, et le service postal attend que cet ordre soit respecté lorsque l’adresse est présentée sur une étiquette. La province vient en premier, puis le district, puis le quartier, puis la rue ou l’avenue, puis le numéro de bâtiment, puis le numéro d’appartement à l’intérieur du bâtiment, et enfin le code postal à cinq chiffres suivi à nouveau du nom de la province ou du nom du district.
Ce sens du plus grand au plus petit est l’inverse des États-Unis et du Royaume-Uni, où la ligne de rue mène et où les unités administratives suivent. Transposer la mauvaise convention dans le mauvais pays est l’un des moyens les plus fiables de produire une adresse qui paraît traduite. Les développeurs qui construisent un seul gabarit d’adresse pour tous les pays ont tendance à écrire les enregistrements turcs dans l’ordre américain sans le remarquer, parce que les deux se présentent comme une seule ligne d’apparence plausible.
Les éléments de bâtiment et d’appartement sont des valeurs distinctes plutôt qu’un seul champ d’unité combiné. Une adresse turque distingue le numéro de rue du numéro de l’appartement à l’intérieur du bâtiment, et les deux sont généralement de petits entiers écrits sans mot d’unité dans la forme compacte. Les numéros de rue peuvent aussi porter un suffixe alphabétique lorsqu’une parcelle a été subdivisée, de sorte qu’un champ limité aux chiffres rejettera une entrée valide. Les systèmes qui fusionnent les deux numéros en un seul champ perdent une information que les transporteurs et les municipalités turcs utilisent couramment.
Que font les couches de province, de district et de quartier ?
La première couche est la province, et la Turquie en compte quatre-vingt-une. Les provinces sont fréquemment abrégées sur les formulaires par leur code de plaque à deux chiffres plutôt que par un nom, ce qui signifie qu’une suite de tests qui n’exerce que les noms de provinces ne touchera jamais le chemin numérique. Un jeu de données bien formé devrait porter les deux représentations pour chaque province afin que l’un ou l’autre champ puisse être exercé.
Sous la province se trouve le district, et sous le district le quartier ou le village. Le quartier est le niveau pour lequel la plupart des modèles d’adresse étrangers n’ont pas d’équivalent, ce qui explique qu’il soit le plus souvent omis des formulaires internationaux, puis découvert plus tard lorsqu’un utilisateur turc se plaint. Les codes postaux en Turquie sont alloués à un niveau plus fin que la province, de sorte que le code postal resserre considérablement la localisation une fois qu’il est associé au bon district.
Parce que les couches sont strictement imbriquées, les règles de cohérence sont elles aussi strictement imbriquées. Un district appartient à exactement une province, un quartier à exactement un district, et un code postal à un petit ensemble de quartiers. Tout enregistrement où le district et la province se contredisent n’est pas subtilement faux ; il est impossible, et un validateur qui vérifie la paire l’interceptera immédiatement.
Pourquoi le code postal et la province doivent s’accorder
Les codes postaux turcs comportent cinq chiffres, et les premiers chiffres portent une signification géographique liée à la province et à la région élargie. La conséquence pratique est qu’un code postal tiré au hasard dans tout l’espace à cinq chiffres pointera presque toujours vers un endroit qui n’a rien à voir avec la province du même enregistrement.
C’est la même classe de défaut qui apparaît dans tous les pays, et cela vaut la peine de le répéter parce que c’est si courant : un seul champ peut être parfaitement formaté et être malgré tout faux. Cinq chiffres, c’est cinq chiffres. Ce qui rend un enregistrement turc utilisable, c’est que les chiffres correspondent à la province enregistrée à côté.
Les générateurs évitent cela en choisissant d’abord la province et en dérivant d’elle le district, le quartier et le code postal, jamais l’inverse. Lorsque vous évaluez un outil qui revendique une couverture turque, c’est cet ordre de dérivation qu’il faut sonder. Demandez plusieurs enregistrements pour une même province et vérifiez si les codes postaux se regroupent de façon sensée ou se dispersent sur toute la plage numérique.
L’indicatif téléphonique suit le même principe. Les indicatifs des lignes fixes turques correspondent aux provinces, de sorte qu’un numéro de téléphone qui commence par un indicatif appartenant à une ville alors que l’adresse en nomme une autre est une incohérence qu’une suite de tests soigneuse devrait intercepter. Les numéros de mobile sont différents, car ils sont portables et n’indiquent plus une région, ce qui signifie qu’un enregistrement de test turc ne devrait vérifier que la relation avec la ligne fixe. L’article sur la correspondance entre préfixe téléphonique et localité approfondit cette relation.
Quelles lettres turques cassent les champs d’adresse ?
Le turc écrit la lettre i sous deux formes. Il y a d’une part un i majuscule pointé et un i minuscule non pointé, et d’autre part un i majuscule non pointé avec un i minuscule pointé, et les deux sont des lettres distinctes de l’alphabet plutôt que des variantes stylistiques d’un même caractère. Une conversion de casse qui l’ignore corrompra silencieusement un nom de ville ou de rue.
La défaillance est discrète et donc dangereuse. Convertir un nom de lieu turc en majuscules avec une routine générique transforme le i minuscule pointé en i majuscule pointé, ce qui est la mauvaise lettre pour les mots qui contiennent le i non pointé. Les adresses cessent alors de correspondre à la liste de référence alors même que l’utilisateur a tapé le nom correctement, et le rapport de bug qui en résulte dit que l’adresse est invalide alors que la vraie faute est le mappage de casse. L’inverse se produit aussi : mettre en minuscules un i majuscule non pointé produit un i minuscule non pointé en turc et un i minuscule pointé dans la plupart des autres langues, et du code qui suppose le second stockera une valeur qui ne pourra plus être mise en correspondance plus tard.
Le tri pose le même problème dans l’autre sens. Le classement turc place les lettres pointées et non pointées à des positions différentes de celles qu’elles occupent en anglais, de sorte qu’une liste de provinces triée avec un classement latin-1 ou anglais paraîtra brouillée à un utilisateur turc. Si votre liste déroulante d’adresses est triée côté serveur selon une règle anglaise, c’est un défaut qui mérite d’être corrigé avant tout le reste.
Le jeu de caractères lui-même est également plus large que l’ASCII simple. Les noms de lieux turcs portent le i pointé, le i non pointé, le c cédille, le g brève, les o et u tréma, et le s cédille. Un champ qui supprime les diacritiques à la saisie transformera certains d’entre eux en lettres qui changent le sens du nom, donc la normalisation doit être réversible sans perte ou délibérément prudente.
Comment structurer les formulaires d’adresse turcs
Modélisez l’adresse comme des paires imbriquées plutôt que comme du texte libre plus un code postal. La province et le code de plaque vont ensemble, le district appartient à la province sélectionnée, le quartier appartient au district sélectionné, et le code postal est validé par rapport au district plutôt qu’isolément. Chaque niveau devrait être filtré par le niveau au-dessus de lui, ce qui empêche la plupart des combinaisons invalides avant même qu’elles soient saisies.
Donnez aux numéros de bâtiment et d’appartement leurs propres champs et leurs propres limites de longueur. Les numéros de rue turcs peuvent porter un suffixe alphabétique, et les numéros d’appartement peuvent atteindre trois chiffres dans les grands ensembles, donc un champ d’un seul caractère échouera sur des saisies ordinaires. Autorisez la saisie du code postal avec ou sans espace de séparation, et normalisez-le après stockage plutôt que de le rejeter à l’entrée.
Lorsque vous acceptez un formulaire international, ajoutez le champ de quartier même si vos autres pays ne l’utilisent pas. Rendre un champ facultatif pour cinquante pays et obligatoire pour la Turquie représente un faible coût de schéma et une forte réduction des tickets de support, et une fixture de test devrait inclure au moins un enregistrement turc avec un quartier et un sans, afin que les deux chemins soient exercés.
Une adresse turque générée correspond-elle à un lieu réel ?
Non. Une adresse turque générée a la bonne hiérarchie, le bon ordre de champs et un code postal cohérent avec sa province, ce qui est tout ce dont un formulaire, un analyseur ou une règle d’acheminement a besoin pour être exercé. Elle n’identifie pas un bâtiment réel, elle n’est enregistrée au nom de personne, et aucun transporteur ne pourrait y livrer.
L’avertissement habituel s’applique avec une nuance supplémentaire en Turquie, car les couches intermédiaires sont nombreuses et une combinaison d’apparence plausible peut être assemblée à la main assez facilement. La différence entre un enregistrement fabriqué à la main et un enregistrement généré n’est pas l’apparence des champs mais la profondeur des relations derrière eux. Un générateur dérive les couches basses des couches hautes ; une personne qui assemble un enregistrement à la main devine chaque couche indépendamment.
Les documents de référence publics pour les divisions administratives turques sont tenus par l’institut national de statistique, et ses listes publiées constituent le type de source à laquelle un jeu de données maintenu devrait être traçable. Savoir d’où viennent les valeurs est ce qui permet de les rafraîchir plus tard sans deviner. Cela rend aussi visible la différence entre un générateur et un tableur : un tableur vieillit silencieusement, tandis qu’un jeu de données doté d’une source déclarée peut être vérifié par rapport à elle.
Que vérifier avant de faire confiance à un jeu de données turc
Vérifiez d’abord le nombre de provinces, car un jeu de données à court de provinces est à court de couverture ailleurs aussi. Vérifiez ensuite que les districts sont imbriqués plutôt que globaux, et que l’enregistrement porte un code de plaque à côté du nom de province. Vérifiez enfin la gestion des caractères : générez une province dont le nom contient un i non pointé, convertissez l’enregistrement en majuscules dans votre propre code, et confirmez qu’il survit.
Vérifiez enfin la reproductibilité. La même clé et le même pays devraient renvoyer le même enregistrement à chaque fois, car une adresse qui change à chaque appel ne peut pas servir dans une assertion. Un générateur qui mélange sa sortie à chaque requête convient à une démonstration manuelle et est inutile pour un test de non-régression, et la différence ne devient visible qu’une fois que l’on vérifie la sortie. La page pays Turquie décrit comment les données du pays sont organisées, et le générateur d’adresses est l’endroit où produire et exporter des enregistrements pour la Turquie et les autres pays pris en charge.
Chaque enregistrement produit de cette manière est une donnée de test synthétique. L’ordre des champs, la hiérarchie et les relations sont fidèles aux formats publiés, mais les enregistrements ne correspondent à aucune personne réelle, à aucun local réel et à aucune livraison postale réelle, et ils ne doivent pas servir à usurper l’identité de quiconque, à recevoir du courrier réel, à prouver une adresse, ni à franchir une vérification d’identité ou de résidence.