Est-il possible de contrôler explicitement la culture des contrôles afin de définir de quelles ressources (.resx)/culture extraire ses valeurs? Supposons que la culture d'application globale soit "en-US" mais je souhaite que certains contrôles soient dans "sv-SE". Dans mon projet, j'ai un resource.resx
et un fichier resource.sv-se.resx
. Cela fonctionne bien pour changer de culture/langue pour l'application entière, mais je ne peux pas comprendre comment commander ceci au niveau par-contrôle. J'aurais espéré que le réglage Language="sv-SE"
aurait suffi, mais le TextBlock prend toujours sa valeur du fichier de resourses anglais.Ressources WPF: Localisation explicite de contrôles individuels
<Windows
xmlns:resx="clr-namespace:MyApplication.Localization"
...
>
<TextBlock x:Name="TextInEnglish" Text="{x:Static resx:Resources.MyText}" />
<TextBlock x:Name="TextInSwedish" Language="sv-SE" Text="{x:Static resx:Resources.MyText}" />
...
Comment est-ce que je ferais cela?
2 Idées: 1) utiliser un convertisseur de valeur et un multiliaison sur langue et texte. 2), ignorez la propriété language et créez une propriété jointe pour la langue et le loca id de texte, qui écoute les modifications et met à jour le texte (ou une autre propriété) en conséquence. Mais je suppose qu'il existe de bien meilleurs moyens de résoudre ce problème. – dowhilefor
@ shadowhilefor: Merci pour votre contribution. J'ai effectivement commencé avec un convertisseur de valeur mais je n'ai pas aimé à la fin. Ca a été un peu brouillon. La 2ème idée semble intéressante mais je pense que je devrais voir dans le code pour bien le comprendre, je pense. À votre santé! –