Localizable Application WPF - UICulture paramètres conduire à des problèmes de Ressources
-
08-09-2020 - |
Question
Je veux créer aa localizable Application WPF.J'ai suivi les instructions dans les commentaires de la AssemblyInfo.cs fichier:
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
Après j'ai fait cela, ma demande n'est pas de départ, pas plus.Je suis à l'aide d'une Application personnalisée de la classe:
namespace Namespace
{
public partial class App : Application
{
[STAThread()]
[SecurityPermission(SecurityAction.LinkDemand)]
public static void Main()
{
var app = new App();
app.InitializeComponent();
app.Run();
}
[DebuggerNonUserCode()]
public void InitializeComponent()
{
this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
}
}
}
<ns:App
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ns="clr-namespace:Namespace">
</ns:App>
Tout a bien fonctionné avant.Je suppose que il y a une sorte de décalage entre la configuration de la UICulture paramètres et que celui spécifié pour MainWindow.xaml, mais je ne sais pas comment le résoudre.
La solution
J'ai eu un effet similaire;Dans l'associationInfo.cs, l'attribut NeutralResourcesLanguage
requis le paramètre UltimateResourceFallbackLocation.Satellite
:
// Uncommenting the following line --> OK
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
// Uncommenting the following line --> IOException: Cannot locate resource 'app.xaml'.
// [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
// Uncommenting the following line --> IOException: Cannot locate resource 'app.xaml'.
// [assembly: NeutralResourcesLanguage("en-US")]
Autres conseils
Quelques informations de fond à partir de: https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/wpf-globalization-and-localization-overview
Les meilleures Pratiques pour WPF Localisation
- Définir le
UltimateResourceFallback
emplacement dans AssemblyInfo.* pour spécifiez la langue appropriée de secours (par exemple,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
). - Si vous décidez d'inclure votre langue source dans l'assemblage principal par
l'omission de la
<UICulture>
balise dans le fichier de votre projet, définir leUltimateResourceFallback
l'emplacement, comme les principaux de l'assemblée, au lieu de la satellite (par exemple,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
)
.