HomeApplication CanvasApplication canvas multilingue

Application canvas multilingue

Créer une application dans un langage c’est bien, mais dans plusieurs langages c’est mieux! Pourquoi ne pas voir grand et se dire que notre application risque d’être utilisé par des gens qui ne parlent pas notre langage!.. Peu importe la raison, sachez que la traduction d’une application canvas peut être très simple.

Dictionnaire intégré

Évidemment qu’il existe plusieurs façons de rendre une application multilingue. Mon point ici est de soulever la façon la plus simple et fonctionnelle étant donné que 80% des applications canvas n’auront pas de monstre de texte ou des paragraphes de définition ou autres. La majorité du travail a apporter sur celles-ci consiste à traduire de simples mots ou petites phrases à travers les libellés ou les messages de notifications.

Prenons comme exemple, une application très basique avec quelques boutons et des champs en français.

Le concept de la traduction est simple. On récupère un indicateur de langage de l’utilisateur et on choisit la bonne fiche traduite pour populer les champs et boutons. (Exactement comme un fichier RESX pour ceux qui connaissent)

Pour choisir l’indicateur, il existe plusieurs possibilité: la fonction Language, récupérer la valeur d’une table de votre système qui emmagasine la préférence de langage, ajouter un bouton de sélection du langage dans l’application ou autre procédé efficace.

Pour notre exemple, nous utiliserons le bouton de sélection de langage.

Ensuite, nous devons définir chacun de nos libellés dans un « dictionnaire » initialisé à l’ouverture de l’application ou à l’initialisation de la première page de l’application.

Version code:

UpdateContext({_resMgrLang: 
    Table(
        {
            lang: "Français";
            Labels: {
                lblDossier: "Dossier";
                lblNom: "Nom";
                lblAdresse: "Adresse";
                lblDateNaissance: "Date de naissance";
                lblNewFiche: "Créer nouvelle fiche";
                lblEffacer: "Effacer";
                lblSave: "Enregistrer"
            }
        };
        {
            lang: "English";
            Labels: {
                lblDossier: "File number";
                lblNom: "Name";
                lblAdresse: "Address";
                lblDateNaissance: "Birth date";
                lblNewFiche: "Create new form";
                lblEffacer: "Erase";
                lblSave: "Save"
            }
        }
    )
}
)

Ensuite, on relie notre sélection de libellé dans la bonne liste selon le langage sélectionné dans notre liste déroulante de langues, pour chaque libellé à traduire.

Version code:

LookUp(_resMgrLang; lang = ddlLanguage.Selected.Value).Labels.lblDossier

Ainsi, en changeant de langue, les libellés seront immédiatement traduits.

Simple, simple, simple… et bilingue!

Conclusion

En général, la traduction dans Power Apps se fait bien à travers le fichier XML conçu pour la traduction des composants à travers vos applications. Cependant, lorsqu’il s’agit d’une application canvas, les libellés de nos contrôles ne sont pas concernés par ce dit fichier et nous force à faire une gestion indépendante de la traduction de ceux-ci. La solution proposée se veut une proposition simple qui rejoint plusieurs cas de développement, mais qui ne reste pas infaillible. Il faudra également une bonne documentation afin de bien maintenir l’évolution de la bibliothèque dans votre application. Néanmoins, vous aurez maintenant une solution simple et facile à maintenir pour traduire vos canvas!

Bon développement!

Gabriel Gadoury
Gabriel Gadoury
Avec plus de 11 ans d'expérience en développement d'application d'envergure, d'automatisations et de formation. Je me spécialise maintenant en Power Platform depuis plus de 6 ans, offrant du soutien et des idées à la communauté pour la faire grandir, faire connaître Power Platform et repousser les limites de cette techno encore plus loin.