Apparemment dans ce que j'ai vu, si on a une clé name=* pour le nom par défaut, et d'autres clés name:<lang>=* pour des traductions et qu'aucune d'elle ne correspond au nom par défaut, Os,ose considère que le no, donné dans name=* est dans une langue ambiguë (car la résolution des langues peut très bien vouloir utiliser une des traductions au lieu d'utiliser le nom par défaut plus pertinent correspondant à une langue non explicitement mentionnée.
Par exemple si on a name=* avec le nom effectif en français (mais pas indiqué) et name:en=* avec une traduction anglaise (lange explicite) et qu'un utilisateur breton fait une recherche de nom avec ses préférences de langues établies dans l'ordre : breton, français, anglais, alors la recherche ne trouvera pas la langue française (puisqu'elle n'est pas mentionnée) mais utilisera le nom anglais (name=* n'est utilisé qu'en dernier ressort). Il apparaît donc que si on a une clé name=* et des clés name:lang=* alors une de ces clés doit prendre en valeur le nom indiqué dans name=*. Exception: name=* est parfois multilingue parce qu'on ne peut pas faire le choix de la traduction; les deux langues sont co-officielles (on a le cas en Belgique, en Suisse, au Luxembourg; et dans certaines communautés autonomes espagnoles...) et name=* mentionne ces différents noms, mais chaque nom dans chaque langue officielle dvrait être listé individuellement dans un name:<lang>=* (et aucun d'eux ne correspondra exactement à la valeur par défaut, multilingue, donnée dans name=* (dans ce cas Osmose signale l'ano,alie à traiter comme faux positif si on a bien ajouté aussi les noms individuels pour chaque langue explicite, ce qui ne posera cependant pas de problème pour la résolution des traductions). Ce cas est d'ailleurs signalé avec un autre avertissement ("deux noms") sur la valeur de name=* (quand elle contient certains séparateurs comme "/",la virgule, le point-virgule ou le "signe "+" (qui fait aussi des faus positifs sur les noms de parking "P+R" par exemple dans plusieurs pays européens y compris la France, la Suisse, la Belgique...), tout bonnement car les noms multiples sont présents sur la clé name=* de la valeur par défaut (cette valeur par défaut ne sera pas utilisé quand on recherche ue traduction dans une des langues utilisées pour ce no, puisqu'on a pris soin aussi de donner des noms séparés pour chacune d'elle dans name:<lang>=*, il n'y a aucun problème donc pour résoudre les traductions: ce no, ne s'affichera que pour les recherches dans d'autres langues (par exemple pour des recherche en russe; en chinois, en arabe... alors qu'aucune des traductions proposées ne convient à la recherche dans ces langues "exotiques" et uniquement si l'utilisateur n'a pas mentionné dans la liste des langues alternatives de repli ou "fallback" une des langues dont on a une traduction explicite et individuelle). En revanche l'avertissement "deux noms" ne devrait pas être ignoré sur une clé "name:<lang>=*". Exception faite dans ce dernier cas de noms comme "P+R xxxxx" (il n'y a qu'un seul nom, pas deux), ou des noms dépendant du côté de la rue pour une rue ou une rivière frontalière; mais dans ce cas on devrait aussi avoir "name:left=*" et "name:right=*" pour préciser le nom applicable à chaque côté ("name:left:<lang>=*" et "name:right:<lang>=*" pour préciser selon la langue explicite, par exempel quand on a deux noms français indiqués dans "name:fr=*", explicités séparément dans "name:left:fr=*" et "name:fr:rightt=*". Le 18 octobre 2014 11:30, Yves Pratter <yves.prat...@gmail.com> a écrit : > > Le 18 oct. 2014 à 10:02, Jean-Baptiste Holcroft <jb.holcr...@gmail.com> a > écrit : > > > Dans le code, l'erreur serait là : > > https://github.com/osm-fr/osmose-backend/blob/649db8ac4e642e0fdbf065c1012744e627c8e906/plugins/TagFix_MultipleTag.py#L35 > > > J’essai de comprendre le code mais ce n’est pas très clair (en comparaison > à d’autres erreurs): > Donc si l’objet à l’attribut « name » et que son parent ne serait pas > nommé ?? (je ne pige pas la seconde condition) > > if tags.get("name") and len(key_set & self.name_parent) == 0: err.append(( > 21101, 1, {})) > > (si vous parlez des langues étrangères, n'hésitez pas à aider à la > traduction d’osmose) > > Osmose ne semble pas utiliser de bibliothèque de code i18n > <http://fr.wikipedia.org/wiki/Internationalisation_(informatique)> (la > traduction est faite dans le code source, pas dans des fichiers ressources > séparés). > Bref ça rend la traduction plus difficile à faire et ça explique peut-être > pourquoi certaines erreurs apparaissent dans une langue, mais pas dans une > autre… ? > > La bibliothèque gtext existe en Python : > https://docs.python.org/2/library/i18n.html > > Est-ce que son utilisation à été envisagée ? > C’est un gros chantier que de modifier le code source et d’extraire les > messages, mais vu l’importance d’Osmose et son utilisation qui semble > mondiale, ce travail sera un gain de temps pour le futur. > Et avec plein de petites fourmis, il n’est peut-être pas si difficile et > long à faire. > > — > Yves > > _______________________________________________ > Talk-fr mailing list > Talk-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/talk-fr > >
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr