Le mar. 26 nov. 2019 à 23:28, Yves P. <yves.prat...@gmail.com> a écrit :
>Notes > >1 https://trac.openstreetmap.org/browser/subversion/applications/editors/josm/plugins/tag2link/resources/tag2link_sources.xml#L59 >\p{Lower} dans l’expression rationnelle n’accepte pas le tiret ? Remplacer par [a-z-] ou [a-zA-Z-] > >2 https://github.com/tyrasd/overpass-turbo/blob/master/js/overpass.js#L719 >[a-zA-Z] dans l’expression rationnelle n’accepte pas le tiret. Remplacer par [a-zA-Z-] Concernant les préfixes de langue il n'y a pas que les tirets, mais si on les accepte il faudrait aussi valider la syntaxe. Visiblement ne sont acceptés que les codes langue en minuscules (même accentuées ou non latines, ce qui est incorrect). Mais aussi sans limite de longueur. De plus après les tirets, on peut avoir un code de variante de langue (obsolète, de 3 lettres minuscules), un code d'écriture (1 majuscule et 3 minuscules), un code région (2 lettres pour un code ISO 3166-1 ou 3 chiffres), et de code de variante (en minuscules ou chiffres ASCII). Et tous les "subtags" sont limités à 8 caractères et ont au moins 2 caractères (entre les tirets); les sub tags à 1 lettre sont spéciaux et ne devraient pas être utilisés pour identifier les langues (les anciens codes IANA commençant par "i-" sont obsolètes, et les codes langues "x-*" sont bannis hors des "subtags" de variantes régionales (préférables aux codes de régions ISO 3166-1 qui ne sont pas assez discernants), mais des propriétés de localisation. Bref une expression régulière correcte serait [a-z][a-z][a-z]?(-[a-z][a-z][a-z])?(-[A-Z][a-z][a-z][a-z])?(-[A-Z][A-Z]|[0-9][0-9][0-9])?(-x)?(-[a-z]{2,8}): Si on est strict, mais on peut admettre alors aussi ces préfixes en capitalisation différente (quitte à les normaliser ensuite automatiquement, y compris en remplaçant les séparateurs "_" par des "-"), conformément à ce que prévoit le standard BCP47. Ensuite chaque "subtag" peut éventuellement être validé si on a une copie locale de la base IANA pour BCP47 (sauf cas spécial des variantes "-x-[a-z0-9]{2,8}" qui elles sont validées par un dictionnaire de variantes privées admises dans OSM (mais sont sujette à remplacement automatisable ultérieurement s'il y a un code standard tel que "be-x-tarask" reconverti en "be-tarask", avant la suppression de ces admissions du dictionnaire quand la base OSM a été nettoyée et les utilisateurs avertis) Ceci dit la validation peut admettre des codes devenus depuis ambigus et dépréciés mais qu'on ne peut pas remplacer automatiquement: c'est le cas quand ISO a scindé un code langue en deux. Il reste enfin des exceptions venant de Wikimedia (telles que "roa-tara" qui devraient être plutôt une variante du sicilien "scn-tara" ou une variante non standard de l'italien "it-x-tara") D'autres substitutions automatiques sont possibles (exemple changer "fre" ou "fra" en "fr", si on préfère les codes courts ISO 639-1 aux codes ISO 639-2/3). Dans l'état, les validateurs sont peu à jour et sont encore basés sur la vieille version de BCP 47 non basée sur RFC 4646 mais sur une version plus ancienne. Il serait temsp de convertir tou ça car les RFC 47 a quand mêem été mise à jour depuis plusieurs années, avant même la sortie de l'ISO 639-3 et les révisions de l'ISO 15924 pour les codes d'écritures et la refonte du registre IANA avec des règles bien plus précises et une politique de stabilité et une procédure établie pour les ajouts/révisions/dépréciations, ainsi que la révision des codes à remplacer automatiquement ! Quand à la normalisation des codes (la capitalisation) je n'ai pas d'avis tranché, on peut très bien admettre dans OSM uniquement les formes minuscules seulement, sans capitaliser la première lettre des codes d'écriture ou les codes région ISO 3166-1 à deux lettres. En revanche on doit éviter les formes ISO 3166 ou ISO15924 en chiffres, on peut les subtituer automatiquement (et leur liste n'est pas longue, il ne doit rester que quelques codes à 3 chiffres pour les groupes de pays par masse continentale). Mais ce la ne devrait pas bloquer la validation des données si un éditeur omet cette substitution automatique. car un bot peut facilement faire la correction plus tard.
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr