Data Modeling-Application multilangue-Relation entre table Question et Réponse

  • Data Modeling-Application multilangue-Relation entre table Question et Réponse

    Posté par Hugo sur 23 avril 2024 at 12h46

    Bonjour,

    J’ai une question à cheval entre du Data Modeling et du Power Apps.

    J’ai une liste de questions identiques pour chaque bâtiments de mon entreprise. Ces questions attendent parfois un nombre, une date, un choix ou un choix multiple.

    J’ai donc créer une table Questions et j’ai aussi une table Réponse qui contient une colonne (Lookup) vers ma table Bâtiment, une colonne (Lookup) vers ma table Questions et une colonne _Réponse (String) qui récupère la réponse.

    Mon application doit être multilangue.

    Le type des questions est determiné par une colonne Type dans ma table Question. Pour les questions de type date et nombre pas de soucis. Par contre pour mes questions de type Choix et MultiChoix j’aurai voulu avoir dans la colonne RéponseAttendue de ma table Questions du JSON. Cela me permetterait d’avoir une réponse à afficher en français, en anglais et un ID si jamais les intitulée des réponses changent.

    Par exemple :

    {
    “ReponseTable”: [
    {
    “NameFR”: “Autre”,
    “NameEN”: “Other”,
    “IndexValue”: 0
    },
    {
    “NameFR”: “Pomme”,
    “NameEN”: “Apple”,
    “IndexValue”: 1
    },
    {
    “NameFR”: “Tomate”,
    “NameEN”: “Tomato”,
    “IndexValue”: 2
    },
    {
    “NameFR”: “Non”,
    “NameEN”: “No”,
    “IndexValue”: 3
    }
    ]
    }

    J’arrive à afficher ces valeurs dans un menu déroulant et de changer le DisplayField en fonction de la langue sélectionnée. Puis de Patcher l’IndexValue dans ma colonne _Réponse de ma table Réponse.

    Je veux afficher les réponses dans une Gallery avec comme DataSource ma table Réponse. Je n’ai pas trouvé d’autre moyen de faire un LookUp pour récupérer l’intitulé de ma réponse. J’ai pensé à créer une collection de ma table Question pour améliorer les performances des LookUp dans ma gallerie mais je sais que ce n’est pas l’idéal. Sachant que potentiellement je vais avoir plus de 1000 questions dans ma table Questions, j’aimerai savoir s’il existe une autre méthode pour ce genre de cas d’usage.

    Est-ce que je suis parti complétement à côté et il existe une méthode beaucoup plus simple pour stocker et afficher des réponses spécifiques qui doivent être affiché soit en anglais soit en français et qui peuvent changer de wording ce qui nécessite un id.

    Merci!

    DavidZed a répondu 6 months, 4 weeks ago 2 Membres · 1 Réponse
  • 1 Réponse
  • DavidZed

    Member
    26 avril 2024 at 21h04

    Hello,

    Sur un projet similaire, mais sans le multilinguisme, j’ai pris le parti de stocker la réponse sous forme de string plutot que dans un JSON, pour la simple raison que sous ce format, le résultat est plus facilement exploitable hors de l’appli par d’autres utilisateurs.

    Pour les questions, je n’utilise le format JSON que dans le cas où la réponse est de type choix / choix multiple

    Donc pour moi c’est tout à fait viable d’étendre le principe à une traduction des questions et des réponses possibles

    Dans ce cas j’imaginerai plutôt une structure de JSON à trois colonnes : Index, Texte et langue

    “ReponseTable”: [
    {
    “IndexValue”: 0,
    “Texte”: “Autre”,
    “Lang”: “fr-FR”
    },
    {
    “IndexValue”: 0,
    “Texte”: “Other”,
    “Lang”: “en-US”
    },
    {
    “IndexValue”: 1,
    “Texte”: “Tomate”,
    “Lang”: “fr-FR”
    },
    {
    “IndexValue”: 1,
    “Texte”: “Tomato”,
    “Lang”: “en-US”
    },

    Et pour afficher les choix possibles selon la langue de l’utilisateur :

    Filter( ParseJSON(ReponseTable), Lang="fr-FR" )

    L’avantage c’est que tu pourras avoir un nombre de langues flexible : 1, 2 ou 10 langues, ce sera évolutif en fonction de ton besoin

Connectez-vous pour répondre.