Bonjour,
Comme préciser dans le titre je fais face a des petits problèmes de localisation dans Silverlight. En effet, j'ai suivi plusieurs tutoriels très bien réalisés(premier lien , ou encore celui-ci qui est en anglais), mais qui dans mon cas ne fonctionnent pas du tout. Lorsque je lance mon programme je n'ai que la version anglaise de mon programme malgré tous mes efforts pour le faire changer de façon dynamique ou de façon statique(au démarrage). Je vais d'abord vous exposer les parties de mon code en rapport avec la localisation.
Voici ou je déclare mes ressources "Languages", Languages etant le dossier contenant deux fichiers resx(un nomme Language.resx pour la langue anglaise et l'autre Language.fr-fr.resx):
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <UserControl x:Class="Test.TestMainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:lang="clr-namespace:Test.Languages" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="800" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"> <UserControl.Resources> <lang:Language x:Key="lang"/> </UserControl.Resources>
Voici par exemple comment je bind la langue au ToolTip d'un bouton par exemple:
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part ToolTipService.ToolTip="{Binding Path=ChangeWallpaperToolTip, Source={StaticResource lang}}
J'ai aussi bien modifier le fichier 'Test.csproj' de mon application en y rajouter le code suivant:
J'utilise aussi un PageSwitcher dans mon application(pour passer d'une page de login a une autre page):
Code : Sélectionner tout - Visualiser dans une fenêtre à part <SupportedCultures>fr-fr;en-en</SupportedCultures>
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public partial class PageSwitcher : UserControl { public string guid_value { get; set; } public PageSwitcher() { InitializeComponent(); if (this.Content == null) { this.Content = new LoginPage(); } } public void Navigate(UserControl nextPage) { this.Content = nextPage; } }
Et en dernier voici le code App.xaml.cs ou j'essaye de forcer la mise a jour de la langue:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private void Application_Startup(object sender, StartupEventArgs e) { Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-fr"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-fr"); this.RootVisual = new PageSwitcher(); }
Pour finir, quand je travail sur mon application et que je regarde le designer de ma MainPage le texte est afficher en français, mais des que je la lance tout est en anglais. Je suis vraiment a cours d'idée pour l'instant donc si quelqu'un a une solution a mon problème ce serait parfait.
Cordialement, Ephismen.
Partager