Globaliser votre application

Qt offre les outils et la méthodologie nécessaires à l'internationalisation de votre application. Pour en savoir plus, reportez-vous à Internationalisation et localisation avec Qt Quick.

La procédure générale est la suivante :

  1. Vérifiez que l'internationalisation est prise en compte dans vos fichiers QML, notamment l'utilisation des chaînes de texte, la clarification de textes identiques et l'utilisation des paramètres et paramètres régionaux.
  2. Utilisez l'outil en ligne de commande lupdate.exe pour générer le fichier de traduction de base, puis copiez le fichier de traduction de base et nommez-le pour chaque langue requise.
  3. Ouvrez ces fichiers à l'aide de Qt Linguist et indiquez les traductions.
  4. Dans Qt Linguist, choisissez File (Fichier) > Release (Version) ou utilisez l'outil de ligne de commande lrelease.exe pour générer les fichiers de traduction.
  5. Incluez ces fichiers de traduction dans le projet qui sera transformé en application autonome.

Internationaliser votre QML

The Qt Company recommande de suivre la procédure suivante pour internationaliser votre QML

  1. Utilisez qsTr() pour toutes les chaînes d'interface utilisateur littérales.
  2. Ajouter du contexte Utiliser les lignes de commentaire pour indiquer où une chaîne est utilisée, en utilisant une syntaxe spécifique. //: est un commentaire du traducteur, tandis que //~ correspond à des informations supplémentaires facultatives.
  3. Clarifiez les textes identiques. Si un terme peut avoir plusieurs significations, ajoutez un deuxième paramètre pour faire la distinction, par exemple, text: qsTr("back", "not front"); text: qsTr("back", "go backward")..
  4. Utilisez %x pour insérer les paramètres dans une chaîne, par exemple, text: qsTr("File %1 of %2").arg(counter).arg(total).
  5. Utilisez %Lx pour localiser les chiffres, par exemple, .text: qsTr("%L1").arg(total)
  6. Internationalisez le traitement des dates, heures, et devises, par exemple, text: qsTr("Date %1").arg(Date().toLocaleString(Qt.locale())).
  7. Utilisez QT_TR_NOOP() pour les chaînes de texte de données traduisibles.
  8. Utilisez une locale pour enrichir les fonctions de localisation lorsque cela est possible.

Pour en savoir plus sur chaque étape, reportez-vous à Internationalisation et localisation avec Qt Quick.

Vous pouvez également prendre en compte l'internationalisation lorsque vous intégrez des images dans votre application. L'image que vous affichez peut être différente selon la langue sélectionnée. L'exemple suivant explique comment détecter si une langue écrite de droite à gauche est utilisée et définit une propriété définie par l'utilisateur nommée mirror. Cette propriété est ensuite utilisée pour déterminer l'image à afficher.

    property var localeForRTL:["ar", "he", "he-IL"]
    property bool mirror: localeForRTL.indexOf(Qt.locale().uiLanguages[0]) > -1 

    Image{
        source: mirror ? "./RTLimage.png" : "./Image.png"
    }

lupdate

lupdate est un outil de ligne de commande Qt qui se trouve dans le dossier d'installation de AppStudio.

Pour l'exécuter, ouvrez une fenêtre de commande dans votre répertoire de projet et exécutez la commande suivante. Gardez à l’esprit que le point utilisé dans chacun des exemples suivants représente le répertoire actif, correspondant au dossier de l'application contenant les fichiers .qml.

Sur Windows :

C:\Users\UserName\ArcGIS\AppStudio\Apps\MyApp>"C:\Users\Username\Applications\ArcGIS\AppStudio\bin\lupdate.exe" . -extensions qml -ts languages/MyApp_en.ts

Sur macOS :

/Users/UserName/applications/ArcGIS/AppStudio/tools/lupdate . -extensions qml -ts languages/MyApp_en.ts

Sur Ubuntu :

~/Applications/ArcGIS/AppStudio/bin/lupdate . -extensions qml -ts languages/MyApp_en.ts

Un nouveau fichier nommé MyApp_en.ts est créé.

Les traductions dans les nouvelles langues sont créées en copiant et en renommant le fichier MyApp_en.ts une fois pour chaque langue requise et en remplaçant le code en par le code de chaque langue requise. Les fichiers .ts peuvent ensuite être modifiés avec Qt Linguist.

Pour en savoir plus, consultez la page Web Using lupdate.

Qt Linguist

Linguist est un outil GUI qui se trouve dans le dossier d'installation de AppStudio. Vous ouvrez les fichiers .ts qui ont été créés avec lupdate dans Linguist et ajoutez les traductions pour chacune des chaînes répertoriées. Seules les chaînes marquées comme étant terminées sont traitées par l'outil lrelease.

Pour en savoir plus, reportez-vous au manuel Qt Linguist.

lrelease

Vous pouvez générer les fichiers de version des manières suivantes :

  • Ouvrez le fichier .ts terminé dans Linguist, puis dans le menu File (Fichier), choisissez Release (Version). Un fichier .qm correspondant à votre fichier .ts est créé.
  • Utilisez l'outil de ligne de commande. lrelease est un outil de commande Qt qui se trouve dans le dossier d'installation de AppStudio. Vous pouvez générer les fichiers exécutables de traduction en exécutant la commande suivante, répertoriant chaque fichier de langue devant être généré :

    lrelease.exe languages\MyApp_ar.ts languages\MyApp_fr.ts

  • Envoyez l’option -help à lrelease pour voir les options prises en charge.

Pour plus d'informations, consultez la page Web Using lrelease.

Déployer des fichiers de localisation avec votre application

Avant d'utiliser l'outil Construire pour créer des fichiers d'installation, veillez à inclure vos fichiers .qm dans votre projet. Voici la convention d'affectation de noms de dossiers recommandée :

MyApp > languages > qml_localecode.qm

Par exemple, si votre application contient la localisation en allemand, français et chinois, vous allez inclure les fichiers suivants :

  • MyApp > languages > qml_de.qm
  • MyApp > languages > qml_fr.qm
  • MyApp > languages > qml_zh.qm

Vous devez également indiquer à votre application l'emplacement de ces fichiers. Ces informations sont définies dans le fichier appinfo.json. Ouvrez appinfo.json dans un éditeur de texte et ajoutez la propriété suivante :

    "translations": {
        "fileName": "qml",
        "path": "languages"
    },

Dans l'exemple ci-dessus, le nom de fichier est qml. Il n'est pas nécessaire d'inclure le trait de soulignement et le code de langue. Le nom de dossier dans l'exemple de code est languages, ce qui correspond également à l'exemple ci-dessus. Vous pouvez choisir vos propres noms de dossier et de fichier ; veillez seulement à les désigner dans le fichier appinfo.json.

Au moment de l'exécution de votre application sur un appareil doté d'un paramètre régional système qui concorde avec une langue pour laquelle vous avez fourni un fichier de traduction, l'application affiche automatiquement des chaînes issues du fichier approprié. Une autre solution de test est le paramètre de ligne de commande --locale, qui remplace les paramètres régionaux du système par le code des paramètres régionaux inclus dans le paramètre. Par exemple, l’ajout de --locale fr à la ligne de commande permet de lancer l’application à l’aide des fichiers de localisation français. Ces paramètres de ligne de commande permettent également d’exécuter votre application dans AppStudio, en définissant le paramètre du champ Command line arguments: (Arguments de ligne de commande) dans l’onglet Projects (Projets) de Qt Creator.

Si vous utilisez une application avec les fichiers de conversion fournis et configurés, il est possible de charger différents fichiers de conversion dans l’application à l’aide de la méthode loadTranslator du composant AppFramework.

Localiser l'annonce de votre application dans le magasin

Si vous choisissez de distribuer votre application via un magasin et que vous avez fait l'effort de globaliser l'application, vous pouvez également localiser l'annonce de votre application dans le magasin. App Store et Google Play offrent tous les deux la possibilité de localiser l'annonce de votre application dans le magasin. Dans les deux cas, vous pouvez inclure des descriptions et des captures d'écran localisées pour chaque langue lors de l'envoi unique de votre application.

Pour plus d’informations, consultez les rubriques suivantes :