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é propre 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 pas coder en dur les littéraux de chaîne dans votre code impératif, le balisage XAML ni dans le manifeste 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 l’interface utilisateur et le manifeste du 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 plus d’informations, consultez Personnaliser vos ressources pour la langue, l’échelle, le contraste élevé et d’autres qualificateurs.

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 celle de votre propre, l’utilisation d’images symétriques et d’effets facilite 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 en tension avec cette directive, le risque de réutiliser une chaîne dans différents contextes est en tension. 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 bouton bascule pour le mode vol, Bluetooth et les appareils. 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, factorisez 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 : « Impossible {0} de synchroniser ».

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, considérez la phrase « Me rappeler en {0} minute(s). » L’utilisation de « minute(s) » fonctionne pour la langue anglaise, mais d’autres langues peuvent utiliser 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 ce que les chaînes seront remplacées par.
  • 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

É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 vous devez être technique uniquement si l’utilisateur a besoin de ce niveau d’informations, et peut l’action ou trouver quelqu’un qui peut.

L’utilisation d’une voix ou d’un ton informel dans vos chaînes est un choix valide. 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 ; ils ne regardent que de cette façon. Vos chaînes sont environ 40 % plus longues que dans la langue par défaut, par exemple, et elles ont des délimiteurs dans celles-ci afin que vous puissiez voir en un clin d’œil s’ils ont été tronqués dans l’interface utilisateur.

Points à prendre en considération pour le 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 Vérifier que les ressources sont installées sur un appareil, qu’elles soient requises ou non.

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 le bundle 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 de langue et de région modifiés

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 sur-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 ceci
<lien>conditions d’utilisation</lien> conditions d’utilisation
<lier>la politique< de confidentialité/lien> 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, faites-le clairement dans les commentaires qui ne doivent pas être traduits.

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).

Envisagez 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 :

  • Les 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 traduites 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.
  • Les fournisseurs de localisation envisagent d’utiliser un fournisseur de localisation si votre application contient des chaînes étendues 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 de 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 lecture 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 for general ja-JP : Add a string resource for Appname « 希蒼 »

  4. Dans Resources.altform-msft-phonetic.resw for Japanese furigana resources : Add furigana value for AppName « のあ »

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

Le tri suit le format de 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 « 漢字 ».

Exemples