Partager via


Rendre votre application localisable

Une application localisée est une application qui peut être localisée pour d’autres marchés, langues ou régions sans détecter de défauts fonctionnels dans l’application. La propriété la plus essentielle d’une application localisable est que son code exécutable a été correctement séparé de ses ressources localisables. Vous devez donc déterminer quelles ressources de votre application doivent être localisées. Demandez-vous ce qui doit changer si votre application doit être localisée pour d’autres marchés.

Nous vous recommandons également de vous familiariser avec les recommandations en matière de mondialisation.

Placer vos chaînes dans les fichiers de ressources (.resw)

Ne codez pas en dur les littéraux de chaîne dans votre code impératif, dans le balisage XAML, ni dans le manifest de votre package d'application. Au lieu de cela, placez vos chaînes dans Resources Files (.resw) afin qu’elles puissent être adaptées à différents marchés locaux indépendamment des fichiers binaires générés de votre application. Pour plus d’informations, consultez Localiser les chaînes dans votre manifeste d’interface utilisateur et de package d’application.

Cette rubrique vous montre également comment ajouter des commentaires à votre fichier de ressources par défaut (.resw). Par exemple, si vous adoptez une voix ou un ton informel, veillez à expliquer cela dans les commentaires. En outre, pour réduire les dépenses, vérifiez que seules les chaînes qui doivent être traduites sont fournies aux traducteurs.

Définissez la langue par défaut de votre application de manière appropriée dans le fichier source du manifeste du package d’application (le Package.appxmanifest fichier). La langue par défaut détermine la langue utilisée lorsque les langues préférées de l’utilisateur ne correspondent pas aux langues prises en charge de votre application. Marquez toutes vos ressources avec leur langue (même celles de votre langue par défaut, par exemple \Assets\en-us\Logo.png) afin que le système puisse indiquer la langue dans laquelle la ressource se trouve et comment elle est utilisée dans des situations particulières.

Personnaliser vos images et d’autres ressources de fichiers pour la langue

Dans l’idéal, vous pourrez globaliser vos images, c’est-à-dire les rendre indépendantes de la culture. Pour toutes les images et autres ressources de fichiers où cela n’est pas possible, créez autant de variantes différentes que vous en avez besoin et placez les qualificateurs de langue appropriés dans leur nom de fichier ou de dossier. Pour en savoir plus, consultez Personnalisez vos ressources pour la langue, l'échelle, le contraste élevé et d'autres critères.

Pour réduire les coûts de localisation, ne placez pas de texte ni de matériel sensible à la culture dans des images pour commencer. Une image appropriée dans votre propre culture peut être offensive ou mal interprétée dans d’autres cultures. Évitez d’utiliser des images propres à la culture, telles que des boîtes aux lettres, qui ne sont pas courantes dans le monde entier. Évitez les symboles religieux, les animaux, les images politiques ou propres au genre. L’affichage de la chair, des parties du corps ou des mouvements de main peut également être un sujet sensible. Si vous ne pouvez pas éviter tout cela, vos images devront être localisées de manière réfléchie. Si vous localisez une langue avec une direction de lecture différente de la vôtre, l'utilisation d'images symétriques et d'effets rend plus facile la prise en charge de la mise en miroir.

Évitez également l’utilisation de texte dans des images et la reconnaissance vocale dans des fichiers audio/vidéo.

Utilisation de la couleur dans votre application

Soyez attentif lors de l’utilisation de la couleur. L’utilisation de combinaisons de couleurs associées à des drapeaux nationaux ou à des mouvements politiques peut poser problème. Les choix de couleur peuvent être examinés par les experts de la culture. Il existe également des problèmes d’accessibilité liés à l’utilisation de la couleur. Si vous utilisez la couleur pour transmettre la signification, vous devez également transmettre ces mêmes informations par d’autres moyens, comme la taille, la forme ou une étiquette.

Envisagez de factoriser vos chaînes en phrases

Utilisez des chaînes de taille appropriée. Les chaînes courtes sont plus faciles à traduire et permettent le recyclage de la traduction (ce qui permet d’économiser les dépenses, car la même chaîne n’est pas envoyée au localiseur plusieurs fois). En outre, les chaînes extrêmement longues peuvent ne pas être prises en charge par les outils de localisation.

Mais ce qui est en tension avec cette directive, c'est le risque de réutiliser une chaîne dans différents contextes. Même les mots simples tels que « on » et « off » peuvent être traduits différemment, en fonction du contexte. Dans la langue anglaise, « on » et « off » peuvent être utilisés pour un interrupteur pour le Mode Avion, le Bluetooth et les dispositifs. Mais en italien, la traduction dépend du contexte de ce qui est activé et désactivé. Vous devez créer une paire de chaînes pour chaque contexte. Vous pouvez réutiliser des chaînes si les deux contextes sont identiques. Par exemple, vous pouvez réutiliser la chaîne « Volume » pour le volume d’effet sonore et le volume de musique, car les deux font référence à l’intensité du son. Vous ne devez pas réutiliser cette même chaîne lorsque vous faites référence à un volume de disque dur, car le contexte et la signification sont différents, et le mot peut être traduit différemment.

En outre, une chaîne comme « text » ou « fax » peut être utilisée comme verbe et un nom dans la langue anglaise, ce qui peut confondre le processus de traduction. Au lieu de cela, créez une chaîne distincte pour le verbe et le format nom. Lorsque vous ne savez pas si les contextes sont identiques, errez du côté sécurisé et utilisez une chaîne distincte.

En bref, fragmentez vos chaînes en morceaux qui fonctionnent dans tous les contextes. Il y aura des cas où une chaîne devra être une phrase entière.

Considérez la chaîne suivante : « Le {0} n'a pas pu être synchronisé ».

Plusieurs mots peuvent remplacer {0}, tels que « rendez-vous », « tâche » ou « document ». Bien que cet exemple fonctionne pour la langue anglaise, il ne fonctionnera pas dans tous les cas pour la phrase correspondante dans, par exemple, l’allemand. Notez que dans les phrases allemandes suivantes, certains mots de la chaîne de modèle (« Der », « Die », « Das ») doivent correspondre au mot paramétré :

Anglais Allemand
Impossible de synchroniser le rendez-vous. Der Termin konnte nicht synchronisiert werden.
Impossible de synchroniser la tâche. Die Aufgabe konnte nicht synchronisiert werden.
Impossible de synchroniser le document. Das Dokument konnte nicht synchronisiert werden.

Comme autre exemple, prenez la phrase « Rappelle-moi dans {0} minute(s). » L’utilisation de « minute(s) » fonctionne en anglais, mais d’autres langues peuvent employer des termes différents. Par exemple, la langue polonaise utilise « minuta », « minuty » ou « minut » en fonction du contexte.

Pour résoudre ce problème, localisez la phrase entière, plutôt qu’un seul mot. Cela peut sembler un travail supplémentaire et une solution inélégante, mais c’est la meilleure solution car :

  • Un message grammaticalement correct s’affiche pour toutes les langues.
  • Votre traducteur n’aura pas besoin de vous demander par quoi les chaînes seront remplacées.
  • Vous n’aurez pas besoin d’implémenter un correctif de code coûteux lorsqu’un problème semblable à celui-ci s’affiche une fois votre application terminée.

Autres considérations relatives aux chaînes de caractères

Évitez les familiers et les métaphores dans les chaînes que vous créez dans votre langue par défaut. La langue spécifique à un groupe démographique, tel que la culture et l’âge, peut être difficile à comprendre ou à traduire, car seules les personnes de ce groupe démographique utilisent cette langue. De même, les métaphores peuvent avoir un sens pour une personne, mais ne signifient rien à quelqu’un d’autre. Par exemple, un « bluebird » signifie quelque chose spécifique à ceux qui font partie de la culture de ski, mais ceux qui ne font pas partie de cette culture ne comprennent pas la référence.

N’utilisez pas de jargon technique, d’abréviations ou d’acronymes. Le langage technique est moins susceptible d’être compris par des publics non techniques ou des personnes d’autres cultures ou régions, et il est difficile de traduire. Les gens n’utilisent pas ces types de mots dans les conversations quotidiennes. Le langage technique apparaît souvent dans les messages d’erreur pour identifier les problèmes matériels et logiciels, mais les chaînes doivent être techniques uniquement si l’utilisateur a besoin de ce niveau d’informations, et peut l'exécuter ou trouver une personne qui peut.

L'utilisation d'une voix ou d'un ton informel dans vos messages est un choix judicieux. Vous pouvez utiliser des commentaires dans votre fichier de ressources par défaut (.resw) pour indiquer cette intention.

Pseudo-localisation

Pseudo-localisez votre application pour découvrir les problèmes de localisation. La pseudo-localisation est un type de test de localisation à sec ou de divulgation. Vous produisez un ensemble de ressources qui ne sont pas vraiment traduites ; elles ne font que sembler l'être. Vos chaînes sont environ 40% plus longues que dans la langue par défaut, par exemple, et elles ont des délimiteurs dans ces chaînes afin que vous puissiez voir en un clin d’œil si elles ont été tronquées dans l’interface utilisateur.

Considérations relatives au déploiement

Lorsque vous installez une application qui contient des données linguistiques localisées, vous pouvez constater que seule la langue par défaut est disponible pour l’application, même si vous avez initialement inclus des ressources pour plusieurs langues. Cela est dû au fait que le processus d’installation est optimisé pour installer uniquement les ressources linguistiques qui correspondent à la langue et à la culture actuelles de l’appareil. Par conséquent, si votre appareil est configuré pour en-US, seules les ressources linguistiques en-US sont installées avec votre application.

Remarque

Il n’est pas possible d’installer une prise en charge linguistique supplémentaire pour votre application après l’installation initiale. Si vous modifiez la langue par défaut après l’installation d’une application, l’application continue d’utiliser uniquement les ressources linguistiques d’origine.

Si vous souhaitez vous assurer que toutes les ressources linguistiques sont disponibles après l’installation, créez un fichier de configuration pour le package d’application qui spécifie que certaines ressources sont requises pendant l’installation (y compris les ressources linguistiques). Cette fonctionnalité d’installation optimisée est automatiquement activée lorsque .appxbundle de votre application est généré lors de l’empaquetage. Pour plus d’informations, consultez Assurez-vous que les ressources sont installées sur un appareil, indépendamment du fait qu’un appareil les demande.

Si vous le souhaitez, pour vous assurer que toutes les ressources sont installées (pas seulement un sous-ensemble), vous pouvez désactiver la génération de .appxbundle lorsque vous empaqueter votre application. Cela n’est pas recommandé, car il peut augmenter le temps d’installation de votre application.

Désactivez la génération automatique de .appxbundle en définissant l’attribut « Generate App Bundle » sur « never » :

  1. Dans Visual Studio, cliquez avec le bouton droit sur le nom du projet
  2. Sélectionnez Store ->Créer des packages d’application...
  3. Dans la boîte de dialogue Créer vos packages , sélectionnez Je souhaite créer des packages à charger dans le Microsoft Store à l’aide d’un nouveau nom d’application , puis cliquez sur Suivant.
  4. Dans la boîte de dialogue Sélectionner un nom d’application , sélectionnez/créez un nom d’application pour votre package.
  5. Dans la boîte de dialogue Sélectionner et configurer des packages, définissez Générer un ensemble d’applications sur Jamais.

Prise de conscience géopolitique

Évitez l’infraction politique dans les cartes ou lorsque vous faites référence à des régions. Les cartes peuvent inclure des frontières régionales ou nationales controversées, et elles sont une source fréquente d’infractions politiques. Veillez à ce que toute interface utilisateur utilisée pour sélectionner une nation lui fasse référence en tant que « pays/région ». La liste d’un territoire contesté dans une liste intitulée « pays » (par exemple, sous forme d’adresse) risque d’offenser certains utilisateurs.

Événements déclenchés par un changement de langue et de région

Abonnez-vous aux événements déclenchés lorsque les paramètres de langue et de région du système changent. Procédez ainsi pour que vous puissiez recharger les ressources, le cas échéant. Pour plus d’informations, consultez Mise à jour des chaînes en réponse aux événements de modification de valeur de qualificateur et mise à jour d’images en réponse aux événements de modification de valeur de qualificateur.

Vérifiez l’ordre de paramètre correct lors de la mise en forme des chaînes

Ne supposez pas que toutes les langues expriment des paramètres dans le même ordre. Par exemple, considérez ce format.

    string.Format("Every {0} {1}", monthName, dayNumber); // For example, "Every April 1".

La chaîne de format de cet exemple fonctionne pour l’anglais (États-Unis). Mais il n’est pas approprié pour l’allemand (Allemagne), par exemple, où le jour et le mois sont affichés dans l’ordre inverse. Assurez-vous que le traducteur connaît l’intention de chacun des paramètres afin qu’ils puissent inverser l’ordre des éléments de format dans la chaîne de format (par exemple, «{1}{0} ») en fonction de la langue cible.

Ne pas trop localiser

Soumettre uniquement le langage naturel aux traducteurs ; pas le langage de programmation ni le balisage. Une <link> balise n’est pas un langage naturel. Tenez compte de ces exemples.

Ne localisez pas cela Localiser cela
<lien>conditions d’utilisation</lien> conditions d’utilisation
<lien>politique de confidentialité</link> politique de confidentialité

L’inclusion de la <link> balise dans votre fichier de ressources (.resw) signifie qu’elle est également susceptible d’être traduite. Cela rend la balise non valide. Si vous avez de longues chaînes qui doivent inclure le balisage afin de maintenir le contexte et de garantir l’ordre, indiquez clairement dans les commentaires ce qu'il ne faut pas traduire.

Choisir une approche de traduction appropriée

Une fois que les chaînes sont séparées en fichiers de ressources, elles peuvent être traduites. Le moment idéal pour traduire des chaînes est après la finalisation des chaînes de votre projet, ce qui se produit généralement vers la fin d’un projet. Vous pouvez aborder le processus de traduction de plusieurs façons. Cela peut dépendre du volume de chaînes à traduire, du nombre de langues à traduire et de la façon dont la traduction sera effectuée (par exemple, interne et embauche d’un fournisseur externe).

Tenez compte de ces options.

  • Les fichiers de ressources peuvent être traduits en les ouvrant directement dans le projet. Cette approche fonctionne bien pour un projet qui a un petit volume de chaînes qui doivent être traduites en deux ou trois langues. Il peut convenir à un scénario où un développeur parle plusieurs langues et est prêt à gérer le processus de traduction. Cette approche tire parti d’être rapide, ne nécessite aucun outil et réduit le risque de mauvaises traductions. Mais ce n’est pas évolutif. En particulier, les ressources dans différentes langues peuvent facilement sortir de la synchronisation, provoquant des expériences utilisateur incorrectes et des maux de tête de maintenance.
  • Les fichiers de ressources de chaîne sont au format de texte XML ou ResJSON. Ils peuvent donc être transférés pour la traduction à l’aide de n’importe quel éditeur de texte. Les fichiers traduits sont ensuite copiés dans le projet. Cette approche présente un risque pour les traducteurs de modifier accidentellement les balises XML, mais elle permet à la traduction de travailler en dehors du projet Microsoft Visual Studio. Cette approche peut fonctionner correctement pour les projets qui doivent être traduits en un petit nombre de langues. Le format XLIFF est un format XML spécifiquement conçu pour être utilisé dans la localisation et doit être bien pris en charge par certains fournisseurs de localisation ou outils de localisation. Vous pouvez utiliser le Kit de ressources d’application multilingue pour générer des fichiers XLIFF à partir d’autres fichiers de ressources, tels que .resw ou .resjson.

Remarque

La localisation peut également être nécessaire pour d’autres ressources, y compris les images et les fichiers audio.

Vous devez également prendre en compte les éléments suivants :

  • Outils de localisation Un certain nombre d’outils de localisation sont disponibles pour analyser les fichiers de ressources et autorisent uniquement la modification des chaînes à traduire par les traducteurs. Cette approche réduit le risque qu’un traducteur modifie accidentellement les balises XML. Mais il présente l’inconvénient de l’introduction d’un nouvel outil et d’un processus au processus de localisation. Un outil de localisation est adapté aux projets avec un grand volume de chaînes, mais un petit nombre de langues. Pour en savoir plus, consultez Comment utiliser le Kit de ressources d’application multilingue.
  • fournisseurs de localisation Vous pouvez envisager d’utiliser un fournisseur de localisation si votre application contient de nombreuses chaînes qui doivent être traduites en un grand nombre de langues. Un fournisseur de localisation peut donner des conseils sur les outils et les processus, ainsi que sur la traduction de vos fichiers de ressources. Il s’agit d’une solution idéale, mais elle est également l’option la plus coûteuse et peut augmenter le délai d’exécution de votre contenu traduit.

Maintenir la cohérence des clés d’accès et des étiquettes

Il est difficile de « synchroniser » les clés d’accès utilisées dans l’accessibilité avec l’affichage des clés d’accès localisées, car les deux ressources de chaîne sont classées dans deux sections distinctes. Veillez à fournir des commentaires pour la chaîne d’étiquette, par exemple : Make sure that the emphasized shortcut key is synchronized with the access key.

Prise en charge du furigana pour les chaînes japonaises qui peuvent être triées

Les caractères kanji japonais ont la propriété d’avoir plusieurs lectures (prononciation) selon le mot dans lequel ils sont utilisés. Cela entraîne des problèmes lorsque vous essayez de trier des objets nommés japonais, tels que des noms d’application, des fichiers, des chansons, etc. Les kanji japonais ont, dans le passé, généralement été triés dans un ordre compréhensible par l’ordinateur appelé XJIS. Malheureusement, parce que cet ordre de tri n’est pas phonétique, il n’est pas très utile pour les humains.

Furigana fonctionne autour de ce problème en permettant à l’utilisateur ou au créateur de spécifier les phonétiques pour les caractères qu’ils utilisent. Si vous utilisez la procédure suivante pour ajouter furigana au nom de votre application, vous pouvez vous assurer qu’elle est triée à l’emplacement approprié dans la liste des applications. Si le nom de votre application contient des caractères kanji et que furigana n’est pas fourni lorsque la langue de l’interface utilisateur de l’utilisateur ou l’ordre de tri est défini sur japonais, Windows fait son meilleur effort pour générer la prononciation appropriée. Toutefois, il est possible que les noms d’applications contenant des lectures rares ou uniques soient triés sous une prononciation plus courante. Par conséquent, la meilleure pratique pour les applications japonaises (en particulier celles contenant des caractères kanji dans leurs noms) consiste à fournir une version furigana de leur nom d’application dans le cadre du processus de localisation japonais.

  1. Ajoutez « ms-resource :Appname » comme nom d’affichage du package et nom d’affichage de l’application.

  2. Créez un dossier ja-JP sous des chaînes et ajoutez deux fichiers de ressources comme suit :

    strings\
        en-us\
        ja-jp\
            Resources.altform-msft-phonetic.resw
            Resources.resw
    
  3. Dans Resources.resw pour l'ja-JPgénéral : ajouter une ressource de chaîne pour Appname « 希蒼 »

  4. Dans Resources.altform-msft-phonetic.resw pour les ressources furigana japonaises : Ajoutez la valeur furigana pour AppName « のあ »

L’utilisateur peut rechercher le nom de l’application « 希蒼 » à l’aide de la valeur furigana « のあ » (noa) et de la valeur phonétique (en utilisant la fonction GetPhonetic de l’éditeur de méthode d’entrée (IME)) « まれあお » (mare-ao).

Le tri suit le format du panneau de configuration régional :

  • Sous les paramètres régionaux d’un utilisateur japonais,
    • Si furigana est activé, « 希蒼 » est trié sous « の ».
    • Si furigana est manquant, « 希蒼 » est trié sous « ま ».
  • Sous les paramètres régionaux d’un utilisateur non japonais,
    • Si furigana est activé, « 希蒼 » est trié sous « の ».
    • Si furigana est manquant, « 希蒼 » est trié sous « 漢字 ».

Échantillons