WIP: improve tag translations using iD presets and fields
publié le , mis à jour⚙️ Ceci est une proposition de changement de code.
Rendez-vous sur sa page Coderberg pour l'osculter.
- gérer les multivalués en les séparant en plusieurs occurences de la même clé monovaluée
- charger presets.json
- parcourir presets.json pour trouver les presets dont les tags matchent ceux de l'élément OSM
- retirer les doublons (garder les presets qui matchent plusieurs tags d'un coup)
- en supprimant petit à petit les tags traduits de cette façon
- avec la clé du preset, aller chercher la traduction du preset dans fr.json (ou autre locale)
- charger fields.json
- parcourir fields.json (par
key) pour trouver les fields qui matchent la key et dont la value est connu - aller chercher la traduction de la value dans le fichier de traductions xx.json
- mettre à jour check/tag-translations pour masquer les tags qui ne sont pas à traduire
- aller chercher ailleurs la traduction des tags restants
- gérer les
x_multiqu'on avait ajoutés pour gérer lesdiet:*et autres- c'est en cours, il faudra merger la liste
- et gérer quand l'appel vient de OsmTagLabels
- trouver comment afficher ces traductions sur les fiches, surtout pour les presets qui combinent plusieurs tags, ce qui change pas mal la logique
etienneJr
j'ai fait pas mal de modifs dans TagTranslationsClientChecker.tsx pour :
- ne traiter que les tags qu'on va vraiment traduire (j'ai repris la même liste que dans osmFeature)
- afficher la traduction actuelle VS la nouvelle traduction, pour pouvoir comparer les différences.
- la grosse différence est que souvent les presets donnent 1 seule traduction pour un groupe de plusieurs tags, par exemple
Fast-food de burgerspouramenity=fast-food + cuisine=burger
- la grosse différence est que souvent les presets donnent 1 seule traduction pour un groupe de plusieurs tags, par exemple
@n4n5 j'ai déployé sur dev2 mais check/tag-... ne marche pas, t'as une idée du pourquoi ? :
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://cartes.app') does not match the recipient window's origin ('https://dev2.cartes.app').n4n5
De ce que je vois, les tags sont traduits
Sinon pour l'erreur postMessage, c'est normalement pas lié a à MR mais au fait qu'ici il y a cartes.app hardcodé
etienneJr
@n4n5 wrote in https://codeberg.org/cartes/web/pulls/3135#issuecomment-24720381:
De ce que je vois, les tags sont traduits
Sur l'app oui (c'est toujours la version actuelle) mais pas sur /check/tag-translations
@n4n5 wrote in https://codeberg.org/cartes/web/pulls/3135#issuecomment-24720381:
Sinon pour l'erreur postMessage, c'est normalement pas lié a à MR mais au fait qu'ici il y a cartes.app hardcodé
OK merci je regarderai
n4n5
@etienneJr wrote in https://codeberg.org/cartes/web/pulls/3135#issuecomment-24743763:
Sur l'app oui (c'est toujours la version actuelle) mais pas sur /check/tag-translations
Ahh, tu parles de la carte dynamic sur https://dev2.cartes.app/check/tag-translations
Okay, bah dcp je dirais que c'est ça en effet
Je croyais que tu parlais de manière général, quand tu vas sur dev2 tu as le message. Mais l'usage basic n'a pas besoin de se postMessage
Mais dans ce cas précis oui, le
postMessageest utilisé pour parlé avec l'iframe, donc il faut en effet le corriger, surement avec ungetFetchUrlBase()a la place ou un truc similaire ^^etienneJr
sur https://dev2.cartes.app/check/tag-translations vous pouvez avoir un aperçu de ce que ça va donner. La plupart du temps aucune différence, mais parfois oui ! un exemple où 2 tags sont utilisés d'un coup pour 1 traduction : (à noter que la nouvelle traduction n'utilise pour l'instant aucune exception, ce sont uniquement les traduction de iD)
n4n5
@etienneJr wrote in https://codeberg.org/cartes/web/pulls/3135#issuecomment-24937092:
sur https://dev2.cartes.app/check/tag-translations vous pouvez avoir un aperçu de ce que ça va donner. La plupart du temps aucune différence, mais parfois oui ! un exemple où 2 tags sont utilisés d'un coup pour 1 traduction : (à noter que la nouvelle traduction n'utilise pour l'instant aucune exception, ce sont uniquement les traduction de iD)
Sympa, mais je ne comprends pas la première ligne de l'image
Il arrive a détecter "Point de recyclage" a partir de juste "amenity" ?
C'est pas plutôt
{"amenity": "recycling"} ➡️ Point de recyclage?etienneJr
@n4n5 wrote in https://codeberg.org/cartes/web/pulls/3135#issuecomment-24938625:
C'est pas plutôt
{"amenity": "recycling"} ➡️ Point de recyclage?Si si, le match se faisait bien sur key+value, mais comme les clés étaient uniques dans cette partie là du code, alors le retour ne contenait que la clé. Je n'ai pas touché à cette version actuelle donc l'affichage est resté comme ça.