Localizable Aplicación de WPF - UICulture configuración de conducir a problemas de Recursos
-
08-09-2020 - |
Pregunta
Quiero crear aa localizable Aplicación de WPF.He seguido las instrucciones en el apartado de comentarios de la AssemblyInfo.cs archivo:
//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.
Después de que yo lo he hecho, mi aplicación no se inicia nada más.Estoy usando una Aplicación personalizada de la clase:
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>
Todo ha funcionado bien antes.Supongo que hay algún tipo de desajuste entre el configurado UICulture ajustes y que el especificado para MainWindow.xaml, pero no sé cómo solucionarlo.
Solución
Yo tenía un efecto similar;en el AssemblyInfo.cs, el NeutralResourcesLanguage
atributo necesario de la UltimateResourceFallbackLocation.Satellite
parámetro:
// 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")]
Otros consejos
Un poco de información de: https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/wpf-globalization-and-localization-overview
Mejores Prácticas para la Localización de WPF
- Establecer el
UltimateResourceFallback
ubicación en AssemblyInfo.* a especificar el idioma adecuado para la reserva (por ejemplo,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
). - Si usted decide incluir su idioma de origen en el ensamblado principal
la omisión de la
<UICulture>
etiqueta en el archivo de proyecto, establecer elUltimateResourceFallback
ubicación como el ensamblado principal en lugar de la satélite (por ejemplo,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
)
.