PowerApps est un produit international. Vous pouvez créer et utiliser des applications dans de nombreuses régions et dans différentes langues.

Tant dans la phase de création que d’exécution des applications, le texte affiché par PowerApps a été traduit dans plusieurs langues. Les éléments de menu, boîtes de dialogue, onglets du ruban et autre texte s’affichent dans votre langue maternelle. De même, les dates et nombres sont adaptés en fonction de votre langue et de votre région. Par exemple, certaines régions utilisent le point « . » comme séparateur décimal, contrairement à d’autres qui utilisent la virgule « , ».

Les applications que vous créez peuvent également être sensibles au contexte international. Utilisez les fonctions Language, Text, Value, DateValue et autres pour adapter ce qui apparaît à l’écran dans différentes langues.

Paramètres de langue

Si vous utilisez le studio ou un lecteur natif, la langue utilisée est celle fournie par le système d’exploitation hôte. Pour Windows, ce paramétrage se trouve dans Tous les paramètres, puis dans Heure et langue. Windows vous permet également d’indiquer les caractères à utiliser en tant que séparateur décimal, en remplacement du paramètre de langue.

Si vous utilisez une expérience web, la langue utilisée est celle fournie par le navigateur. La plupart des navigateurs adoptent par défaut le paramètre du système d’exploitation hôte, bien que certains permettent également de définir la langue manuellement.

Environnement de création

L’environnement de création s’adapte aux paramètres de langue de l’auteur. L’application elle-même est stockée de manière agnostique par rapport à la langue, afin que les auteurs utilisant différentes langues puissent modifier la même application.

Noms utilisés dans les formules

La plupart des éléments d’une formule sont toujours en anglais :

  • Noms de fonction : If, Navigate, Collect, ...
  • Noms des propriétés de contrôle : Screen.Fill, Button.OnSelect, Textbox.Font, ...
  • Noms des énumérations : Color.Aqua, DataSourceInfo.MaxValue, FontWeight.Bold...
  • Enregistrements de signaux : Compass.Heading, Location. Latitude, App.ActiveScreen, ...
  • Opérateurs:  Parent, in, exactIn, ...

Dans la mesure où l’expérience de création est localisée, les noms de contrôle et d’autres objets s’affichent dans la langue native de l’auteur. En espagnol par exemple, certains des noms de contrôle apparaissent comme suit :

Lorsque vous insérez certains de ces noms dans votre application, leur nom anglais par défaut est rétabli. Nous procédons ainsi par souci de cohérence entre les noms des propriétés de contrôle et le reste de la formule. Par exemple, Casilla répertorié ci-dessus est inséré en tant que Checkbox1.

Après l’insertion d’un contrôle, vous pouvez modifier le nom à votre convenance. Par exemple, si vous sélectionnez la partie tout à gauche du ruban « Contenu », celle-ci affiche le nom du contrôle. Sélectionnez ce nom pour faire apparaître une zone de texte déroulante à partir de laquelle modifier le nom :

Si vous le souhaitez, vous pouvez ici renommer le contrôle en Casilla1. La partie rouge ondulée, qui apparaît dans ce cas dans un navigateur, signale simplement que le nom indiqué n’est pas un nom espagnol. Il ne s’agit en aucun cas d’un problème.

Vous pouvez utiliser le nom de votre choix pour les :

  • Noms de contrôle
  • Noms de collection
  • Noms de variables de contexte

Opérateur de chaînage et séparateurs de formule

Certains séparateurs et opérateurs vont être déplacés selon le séparateur décimal choisi dans la langue de l’auteur :

Séparateur décimal de la langue de l’auteur Séparateur décimal PowerApps Séparateur de liste PowerApps Opérateur de chaînage PowerApps
. (point) . (point) , (virgule) ; (point-virgule)
, (virgule) , (virgule) ; (point-virgule) ;; (double point-virgule)

Vous changez de séparateur de liste dans PowerApps un peu comme vous changez de séparateur de liste dans Excel. Il a un impact sur :

Par exemple, considérez la formule suivante en "en-US" :

  • If( Slider1.Value > 12.59, UpdateContext( { Validation: true, MovingOn: 1 } ); Navigate( "NextScreen", "" ), UpdateContext( { Validation: false } ) )

Dans une langue dans laquelle la virgule «, » est utilisée comme séparateur décimal, l’expérience de création prendra la forme suivante :

  • If( Slider1.Value > 12,59; UpdateContext( { Validation: true; MovingOn: 1 } );; Navigate( "NextScreen", "" ); UpdateContext( { Validation: false } ) )

Notez que l’opérateur de sélection de propriété . dans Slider1.Value est toujours le même, quel que soit le séparateur décimal.

En interne, la formule reste inchangée. La seule chose qui change, c’est la façon dont le tout est affiché et modifié par l’auteur. Deux auteurs différents qui utilisent deux langues différentes peuvent ainsi afficher et modifier la même formule, chacun visualisant les séparateurs et opérateurs qui conviennent à leur langue.

Création d’une application globale

L’application que vous créez peut s’adapter aux différentes langues, ce qui offre aux utilisateurs une excellente expérience dans le monde entier.

Fonction Language

La fonction Language renvoie la balise de langue de l’utilisateur actuel. Par exemple, cette fonction renvoie "en-GB" pour les utilisateurs en Grande-Bretagne et "de-DE" pour les utilisateurs en Allemagne.

Vous pouvez entre autres utiliser Language afin d’afficher le texte traduit pour vos utilisateurs. Votre application peut inclure une table de valeurs traduite :

Il vous suffit ensuite d’utiliser une formule semblable à celle-ci pour extraire les chaînes traduites de la table :

  • LookUp( Table1, TextID = "Hello" && (LanguageTag = Left( Language(), 2 ) || IsBlank( LanguageTag ))).LocalizedText

N’oubliez pas que les chaînes traduites dans d’autres langues peuvent être beaucoup plus longues que dans la langue d’origine. Souvent, les étiquettes et d’autres éléments affichant les chaînes dans votre interface utilisateur doivent être élargis en conséquence.

Pour plus d'informations, voir la documentation sur la fonction Language.

Mise en forme des nombres, dates et heures

Les formats des nombres, dates et heures diffèrent dans le monde. L’emplacement des virgules et des décimales, ainsi que l’ordre du mois, du jour et de l’année varient d’un pays à un autre.

La fonction Text formate les nombres et dates à l’aide du paramètre de langue de l’utilisateur.

La fonction Text nécessite que la chaîne de format sache comment vous allez mettre en forme le nombre ou la date. Cette chaîne de format peut prendre l’une des deux formes suivantes :

  • Une énumération qui tient compte de l’aspect international. Par exemple, Text( Now(), DateTimeFormat.LongDate ). Cette formule exprime la date du jour dans un format de langue approprié. C’est celle que nous préférons pour spécifier la chaîne de format.
  • Une chaîne de format personnalisée. Par exemple, Text( Now(), "[$-en-US]dddd, mmmm dd, yyyy" ) affiche le même texte que l’énumération quand utilisé dans la langue "en-US". La chaîne de format personnalisée présente un avantage en ce sens qu’elle vous permet de spécifier exactement ce que vous voulez.

La partie "[$-en-US]" au début de la chaîne de format personnalisée mentionne à la fonction Text dans quelle langue interpréter cette chaîne. Elle est insérée pour vous et adopte par défaut la valeur de votre langue de création. Normalement, vous n’avez pas à la modifier. Elle est utile lorsque des auteurs qui utilisent différentes langues modifient la même application.

Le troisième argument de la fonction Text indique quelle langue utiliser pour le résultat. La valeur par défaut est le paramètre de langue de l’utilisateur actuel.

Pour plus d'informations, voir la documentation sur la fonction Text.

Lecture des nombres, dates et heures

Il existe quatre fonctions pour la lecture des nombres, dates et heures fournis par l’utilisateur :

  • Value : convertit un nombre dans une chaîne de texte en une valeur numérique.
  • DateValue : convertit une valeur de date dans une chaîne de texte en une valeur date/heure. Toute heure spécifiée dans la chaîne de texte est ignorée.
  • TimeValue : convertit une valeur d’heure dans une chaîne de texte en une valeur date/heure. Toute date spécifiée dans la chaîne de texte est ignorée.
  • DateTimeValue : convertit une valeur de date et d’heure dans une chaîne de texte en une valeur date/heure.

Si vous utilisez Excel, toutes ces fonctions sont combinées dans la même fonction Value. Elles sont séparées ici, car PowerApps possède des types distincts pour les valeurs date/heure et les nombres.

Toutes ces fonctions possèdent les mêmes arguments :

  • *String, requis* : une chaîne fournie par l’utilisateur. Par exemple, une chaîne saisie dans un contrôle d’entrée de texte et lue à partir de ce contrôle avec la propriété Text.
  • Language, facultatif* : la langue dans laquelle interpréter la *chaîne. Par défaut, il s’agit du paramètre de langue de l’utilisateur.

Par exemple :

  • Value( "12,345.678", "en-US" ) ou Value( "12,345.678" ) dans un site où "en-US" est la langue de l’utilisateur renvoie le nombre 12345.678, prêt à être utilisé dans les calculs.
  • DateValue( "1/2/01", "es-ES" ) ou DateValue( "1/2/01" ) dans un site où "es-ES" est la langue de l’utilisateur renvoie la valeur date/heure 1er février 2001 à minuit.
  • TimeValue( "11:43:02", "fr-FR" ) ou DateValue( "11:43:02" ) dans un site où "fr-FR" est la langue de l’utilisateur renvoie la valeur date/heure 1er janvier 1970 à 11:43:02.
  • TimeDateValue( "11:43:02 1/2/01", "de-DE" ) ou DateValue( "11:43:02" ) dans un site où "de-DE" est la langue de l’utilisateur renvoie la valeur date/heure 1er février 2001 à 11:43:02.

Pour plus d’informations, voir la documentation relative aux fonctions Value, DateValue, TimeValue et DateTimeValue, ainsi que celle concernant l’utilisation des dates et heures.

Informations de calendrier et d’horloge

Les fonctions Calendar et Clock fournissent des informations de calendrier et d’horloge pour la langue actuelle de l’utilisateur.

Utilisez entre autres ces fonctions pour fournir un contrôle de liste déroulante avec une liste de choix.

Pour plus d'informations, voir la documentation sur les fonctions Calendar et Clock.