Question

Je vais avoir un peu de mal à obtenir des fichiers de ressources localisées pour fonctionner sur Windows Phone 7. Voici ce que je fais:

  1. Créer un fichier de ressources, dites "Strings.resx" (Build Action: Compile)
  2. Créez une clé, dites « TestKey » avec une valeur par défaut de chaîne vide
  3. Ajouter un fichier de ressources anglais dans le même dossier avec une valeur de « une chaîne de caractères anglais »: strings.en-us.resx (Build Action: Ressource incorporée)
  4. Ajouter un fichier de ressources japonais dans le même dossier avec une valeur de « une chaîne japonaise »: strings.ja-jp.resx (Build Action: Ressource incorporée)

Dans mon Silverlight PC, WPF Apps qui fonctionne très bien quand je change la Thread.CurrentThread.CurrentCulture. Mais dans le téléphone me semble toujours être d'obtenir la valeur qui est dans le fichier Strings.resx -. Une chaîne vide

Je l'ai essayé d'utiliser le concepteur du code généré et le câblage le gestionnaire des ressources en main et il ne semble pas à la matière. Voici mon code:

            Type t = typeof(Strings);

            _resourceManager = new ResourceManager(
                t.Namespace + "." + t.Name,
                t.Assembly);

            _resourceManager.GetString("TestKey");

Dites-moi sont pris en charge des ressources localisées au téléphone ...;> Qu'est-ce que je fais mal? Merci!

Mise à jour : Merci Olivier pour transmettre le lien. J'ai vu cela aussi, mais a raté une étape importante. Je n'ai pas ajouté le nœud « SupportedCultures » à mon csproj. Fait toute la différence - en espérant que quelqu'un d'autre ne le deux heures en vrac essayant de comprendre cela comme je l'ai fait.

<SupportedCultures>de-DE;es-ES;</SupportedCultures>
Était-ce utile?

La solution

J'ai écrit un billet de blog qui fournit des liens vers un groupe de vidéo de formation qui m'a aidé à comprendre les bases. Après cela, il était tout simplement une question d'apprendre à faire la liaison de données:

  

L'article MSDN vous montre comment   configurer les fichiers et créer   LocalizedStrings classe, mais ils ont ensuite   supposons que vous savez comment utiliser cette   classe pour la liaison de données. Visual Studio   2010 et les données poignée Silverlight   liaison différemment Winforms, et   il devient encore plus confuse depuis XAML   a également sa propre définition   Les ressources qui sont différents, la   ressources .NET nous venons de créer.   Silverlight utilise également le terme   Ressources pour désigner les fichiers qui utilisent   l'Action Construire de « contenu », comme   ces fichiers sont enveloppés dans la   .Xap fichier similaire à la façon dont les fichiers avec   Construire l'action de « ressources » get   incorporé dans l'assemblage .Dll (ex:   charger une image à partir du contenu ou   fichiers de ressources). Je trouve que la place   d'utiliser le texte = "{Binding   Path = resourceFile.resourceName,   Source = {StaticResource   Localizedresources}} » de la syntaxe XAML il   était plus facile à utiliser les étapes suivantes:

     
      
  1. Ouvrez votre page XAML primaire (généralement MainPage.xaml) dans Visual   Studio Designer

  2.   
  3. Ouvrez les propriétés du PhoneApplicationPage et définir la   DataContext pour être   Application.Resources ->   LocalizedStrings. REMARQUE: si vous avez déjà   utilisent un objet DataContext, puis   vous devez intégrer les   classe LocalizedStrings dans ce   objet de telle sorte qu 'il présente la localisation   soutien.

  4.   
  5. Une fois la page de DataContext vous a été défini pouvez modifier les données   obligatoire pour tout contrôle sur la page par   en sélectionnant simplement la propriété (ex:   texte, vérifié, etc.), en sélectionnant « Appliquer   Liaison de données ... », et la définition du chemin   à Localizedresources.BtnText ou   quel que soit le nom du produit souhaité   valeur de la ressource est.

  6.   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top