Modifier des noms de colonnes SharePoint selon la langue

  • Modifier des noms de colonnes SharePoint selon la langue

    Posté par Alexis sur 27 décembre 2023 à 12h15

    Bonjour tout le monde 👋,

    Je travaille sur un projet d’application générique de recherche & navigation pour des bibliothèques SharePoint qui pourrait être déployée facilement chez des clients.

    Problème : tout le monde n’a pas SharePoint dans la même langue et mon application utilise des colonnes de métadonnées dont le nom change selon la langue du site.

    Je me suis donc dit que la façon la plus simple était de faire une variable d’environnement texte pour définir le langage de SharePoint (FR ou EN, pour le moment), et de me débrouiller ensuite pour modifier les noms de colonnes de façon dynamique, plutôt que de devoir cloner une application pour modifier les noms de colonnes.

    Et j’ai plusieurs questions :

    1. Est-ce possible de modifier les noms de colonnes de façon dynamique en passant par des variables ?
    2. Est-ce qu’il y a une méthode plus simple ou, au contraire, je cherche compliqué là ou il vaudrait mieux faire 2 versions de l’app, une FR et une EN ?
    3. Je mets une variable d’environnement en texte (LanguageFormulas) mais impossible de récupérer la valeur renseignée dans Power Apps :

    Que ce soit :

    LookUp(‘Environment Variable Values’, ‘Environment Variable Definition’.’Schema Name’ = “LanguageFormulas”).Value

    Ou

    LookUp(‘Environment Variable Values’,’Schema Name’ = “LanguageFormulas”).Value

    Je ne récupère rien du tout. Pourtant le nom est bien le même, j’ai bien les deux connecteurs de variables d’environnement en datasource, mais je ne trouve pas 🙁

    <figure class=”image”></figure>

    Désolé du pavé, merci de m’avoir lu et surtout merci pour votre avis !

    Alexis

    Alexis a répondu Il y a 6 mois, 1 semaine 3 Membres · 7 Réponses
  • 7 Réponses
  • Nicolas

    Membre
    28 décembre 2023 à 15h50

    Bonjour Alexis,

    Je n’ai pas la solution en utilisant une variable d’environnement malheureusement mais je peux te faire un retour d’expérience sur une appli que j’avais faite pour des utilisateurs anglais et français.

    Comme tu le suggères, j’avais utilisé une variable dans la propriété OnStart de l’app et j’y avais associé la langue anglais par défaut :

    Set(varLanguage, “EN”)

    Ensuite, l’utilisateur avait le loisir de changer la langue de l’app grâce à une image représentant un drapeau en haut à droite de l’app (comme sur certains sites) avec en propriété OnSelect :

    If(varLanguage = “EN”,Set(varLanguage,”FR”),Set(varLanguage,”EN”))

    J’ai changé toutes les propriétés Text dans l’app (et les noms des colonnes dans le formulaire aussi du coup) et j’avais mis une formule comme ceci :

    If(varLanguage = “FR”, “Titre”,”Title”)

    Un peu fastidieux mais cela valait le coup.

    • Alexis

      Membre
      28 décembre 2023 à 18h20

      Bonjour Nicolas,

      Merci pour ton retour, bien vu le coup des drapeaux !

      Mais ce qui me pose le plus problème, ce n’est pas l’affichage des colonnes dans l’application, c’est la mise en relation avec les colonnes de métadonnées SharePoint.
      Par exemple, avec un site SharePoint français, je dois mettre :

      First(colSPOLibrary1).’Chemin d’accès au dossier’,

      Alors que pour un site SharePoint en anglais, cela doit devenir :

      First(colSPOLibrary1).’Folder path’,

      J’ai essayé avec les noms logiques mais je n’ai pas réussi (je suis junior), donc peut-être qu’il vaut mieux cloner une solution et changer les noms de colonnes dans la deuxième application en utilisant la fonction remplacer, ou encore en faisant la fameuse variable d’environnement et en faisant quelque chose comme :

      If(LanguageFormulas = “FR”, First(colSPOLibrary1).’Chemin d’accès au dossier’, First(colSPOLibrary1).’Folder path’)

      Ou un Switch si plusieurs langues 🤷‍♂️

      En tous cas merci, je n’ai toujours pas trouvé de solution fiable mais je vais me repencher dessus très bientôt 🤔

  • R3dKap

    Membre
    30 décembre 2023 à 15h41

    Salut Alexis,

    Pour éviter ce genre de problème, il te suffit d’utiliser les noms techniques des colonnes SharePoint. Ces noms sont visibles dans les paramètres de ta liste, au survol d’une colonne tu attends que l’url s’affiche en entier en bas de ton navigateur et tu trouveras le nom technique de la colonne ici juste derrière le “…&Field=” :

    • Alexis

      Membre
      3 janvier 2024 à 10h08

      Bonjour Emmanuel,

      Merci beaucoup, j’ai effectivement essayé et cela fonctionne très bien mais j’ai toujours un os : les propriétés qui ne sont pas des colonnes 🙁

      Par exemple, j’ai tenté de remplacer ThisItem.Selected.’Chemin d’accès au dossier’ par ThisItem.Selected.FolderPath, Folderpath, et même ‘FolderPath’ ou encore {FolderPath}.

      Même chose pour ThisItem.EstUnDossier et ThisItem.’Lien vers l’élément’, je n’ai pas trouvé comment faire sur ces points-là.

      • R3dKap

        Membre
        7 janvier 2024 à 21h14

        Tu peux tout à faire utiliser les noms techniques des colonnes internes à SharePoint. Il suffit de bien connaître leurs noms 😉. Voici les principaux :

        Pense bien à les mettre entre apostrophes :

        <code class="language-plaintext">ThisItem.'{IsFolder}'
        • Alexis

          Membre
          8 janvier 2024 à 10h22

          Hééééhéhé merci beaucoup c’est pile ce dont j’avais besoin ! 🤩

          Ce n’est pourtant pas faute d’avoir cherché 🙁

          Encore un très grand merci 🙏

  • R3dKap

    Membre
    30 décembre 2023 à 15h44

    Du coup j’espère pour toi que tu as bien suivi ces instructions pour créer les colonnes SharePoint et éviter des noms techniques un peu barbares 😅 : https://ppfc.fr/groupes/base-de-connaissances/forum/topic/bonnes-pratiques-pour-construire-ses-listes-sharepoint-pour-power-apps-ou-autres/

Connectez-vous pour répondre.