← Retour aux issues

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.

Avatar Codeberg de etienneJretienneJr
  • 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_multi qu'on avait ajoutés pour gérer les diet:* 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
  1. Avatar Codeberg de etienneJretienneJr

    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 burgers pour amenity=fast-food + cuisine=burger

    @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').
    
  2. Avatar Codeberg de n4n5n4n5

    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é

    https://codeberg.org/cartes/web/src/commit/902e755dcb0a7c49fa1546581659290afe7d581c/app/effects/useAddMap.ts#L234

  3. Avatar Codeberg de etienneJretienneJr

    @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

  4. Avatar Codeberg de n4n5n4n5

    @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

    image

    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 postMessage est utilisé pour parlé avec l'iframe, donc il faut en effet le corriger, surement avec un getFetchUrlBase() a la place ou un truc similaire ^^

  5. Avatar Codeberg de etienneJretienneJr

    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) image

  6. Avatar Codeberg de n4n5n4n5

    @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) image

    Sympa, mais je ne comprends pas la première ligne de l'image

    IMG_20261009_000642

    Il arrive a détecter "Point de recyclage" a partir de juste "amenity" ?

    C'est pas plutôt

    {"amenity": "recycling"} ➡️ Point de recyclage ?

  7. Avatar Codeberg de etienneJretienneJr

    @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.


✏️ Participer à la discussion