2008-10-07 5 views
2

Veuillez partager vos expériences concernant la manière dont vous avez localisé vos applications WPF pour prendre en charge plusieurs langues et toutes les ressources qui vous ont aidé.Comment implémentez-vous la localisation dans Windows Presentation Foundation (WPF)?

Merci pour vos commentaires.

+0

Pas tout à fait clair. Êtes-vous à la recherche d'une réponse technique ou d'histoires subjectives? (Editez votre question pour clarifier ce que vous voulez.) –

Répondre

0

Désolé si c'est vague (ci-dessus question), fondamentalement il sur la façon dont vous l'avez mis en œuvre dans votre application et ce que vous ressentiez était le meilleur moyen.Il s'agit essentiellement de comprendre les scénarios.

3

Pour notre application WPF, toutes nos chaînes sont localisées en tant que ressources dans un ResourceDictionary que nous mettons dans un fichier .xaml nommé d'après le langage (comme en-US.xaml, ja-JP.xaml, etc.).

Par exemple, quelque part dans l'application un bouton pourrait ressembler à ceci:

<Button Content="{StaticResource Strings.FooDialog.BarButtonText}"/> 

Chaque ResourceDictionary pour les différentes langues contiendrait une version de celui-ci:

<sys:String x:Key="Strings.FooDialog.BarButtonText">Bar!</sys:String> 

Le ResourceDictionary est dynamiquement connecté au Application.Resources à l'exécution comme ceci:

private static void LoadLocalizedStrings(CultureInfo uiCulture) 
{ 
    ResourceDictionary stringsResourceDictionary = new ResourceDictionary(); 
    stringsResourceDictionary.Source = new Uri(@"pack://application:,,,/Resources/Strings/" + uiCulture.Name + ".xaml"); 
    Application.Current.Resources.MergedDictionaries.Add(stringsResourceDictionary); 
} 
+0

Robert, je trouve votre solution la plus simple et la plus simple à mettre en œuvre. Le problème est que bien que le code fonctionne correctement, l'environnement de studio visuel se plaint de ne pas trouver la ressource. Naturellement, bien sûr, puisque le dictionnaire de ressources n'a pas encore été chargé. Comment faites-vous face à cela? –

0

Je viens de localiser mon application WPF avec succès en utilisant ResourceDictionary. La méthode que j'ai utilisée permet le changement dynamique des langues, la traduction facile, le support de la conception, et permet même des traductions partielles. Je me suis basé mon travail sur http://www.geektieguy.com/2006/12/12/localizing-an-xbap-application-without-using-locbaml/

Vous pouvez voir mes efforts en partie: ResourceDictionary Source Binding to Module (for Localization)

Questions connexes