2017-06-18 7 views
1

Mon application prend en charge trois langues: en, es et fr. Quand je construis mon (propre, à partir d'un modèle) l'application UWP, je reçois le message:Impossible de modifier la langue par défaut d'un assembly dans Visual Studio 2017

warning PRI257: 0xdef00522 - Resources found for language(s) 'en,es,fr' but no resources found for default language(s): 'en-US'. Change the default language or qualify resources with the default language. 

Alors je vais dans le manifeste et changer la langue par défaut de à en-GB en-US et quand je recompile Je reçois:

warning PRI257: 0xdef00522 - Resources found for language(s) 'en,es,fr' but no resources found for default language(s): 'en-GB,en-US'. Change the default language or qualify resources with the default language. 

Ce qui donne? Comment remplacer la langue par défaut dans une application UWP pour qu'elle n'essaie pas de trouver des ressources en-US?

+0

-moi si je me trompe, mais je ne pense pas que cela n'a rien à voir avec l'ensemble de * langue * comme dans « la langue qui est transformé en code machine par un assembleur » maintenant, il fait? Vous pourriez vouloir changer le titre en quelque chose de moins ambigu. –

Répondre

0

Pour supprimer l'avertissement, vous devez mettre à jour la langue dans 2 endroits:

  • langue par défaut dans appxmanifest, qui obtient enregistré dans le fichier csproj comme <DefaultLanguage>en-GB</DefaultLanguage>

  • langage assembleur neutre, est enregistré dans le fichier AssemblyInfo sous la forme [assembly: NeutralResourcesLanguage("en-GB")] et peut également être modifié via les propriétés du projet> informations d'assemblage.

Assemly information

À côté de cela, vous devez utiliser un qualificatif de langue complète (en-US, en-GB, ...) comme langue par défaut, comme 'en' devient juste redirigé vers en-US comme langue par défaut. Les autres langues peuvent être des qualificatifs uniquement linguistiques (fr).

Notez que spécifiant vos actifs avec une pleine qualification ne rompt pas les autres langues régionales de l'utilisation de ces ressources.

Windows ne correspondant transrégionale. Par exemple, en-US correspond à en-US, puis en, puis en- *.

Imho il est même préférable d'utiliser le qualificatif complet que votre traduction est faite dans l'une des langues régionales (la région principale assez souvent), donc fr-FR est plus précis pour marquer votre fichier de ressources que de fr.

+0

>> À côté de cela, vous devez utiliser un qualificateur de langue complet (en-US, en-GB, ...) comme langue par défaut, comme 'en' est juste redirigé vers en-US comme langue par défaut. Les autres langues peuvent être des qualificatifs uniquement linguistiques (fr). Je suis d'accord que c'est comme ça que ça se passe, mais je ne comprends pas pourquoi cela a du sens. Pourquoi suis-je obligé de sélectionner en-US quand je veux cibler toutes les cultures anglophones? –

+0

La localisation que vous fournissez (comportement vs comportement) est soit en-US ou en-GB, et pas seulement 'en'. Mais cela n'a pas d'importance, car l'application va revenir à la langue que vous avez fournie (voir le bloc cité). – Bart