Que localiza a la aplicación Windows Phone 7
-
25-09-2019 - |
Pregunta
Estoy teniendo un poco de problemas para conseguir los archivos de recursos localizados a trabajar en Windows Phone 7. Esto es lo que estoy haciendo:
- Crea un archivo de recursos, por ejemplo "Strings.resx" (Acción de generación: Compilar)
- Crea una clave, por ejemplo "TestKey" con un valor por defecto de la cadena vacía
- Añadir un archivo de recursos Inglés en la misma carpeta con un valor de "un trozo de cuerda Inglés": Strings.en-us.resx (Acción de generación: Recurso incrustado)
- Añadir un archivo de recursos japonés en la misma carpeta con un valor de "alguna cadena japonesa": strings.ja-jp.resx (Acción de generación: Recurso incrustado)
En mi PC Silverlight, WPF aplicaciones que funciona bien cuando cambio la Thread.CurrentThread.CurrentCulture. Pero en el teléfono que siempre parece que esté recibiendo el valor que está en el archivo de Strings.resx -. Una cadena vacía
He intentado usar el código generado diseñador y cableando el administrador de recursos a mano y no parece tener importancia. Aquí está mi código:
Type t = typeof(Strings);
_resourceManager = new ResourceManager(
t.Namespace + "." + t.Name,
t.Assembly);
_resourceManager.GetString("TestKey");
DIME recursos localizados son compatibles con el teléfono ...;> ¿Qué estoy haciendo mal? Gracias!
Actualizar : Gracias Olivier para reenviar el enlace. vi eso también, pero se perdió un paso importante. No añadí el nodo "SupportedCultures" a mi csproj. Hizo toda la diferencia - con la esperanza de que alguien no lo hace suelta dos horas tratando de resolver esto como lo hice.
<SupportedCultures>de-DE;es-ES;</SupportedCultures>
Solución
Me escribió una entrada de blog que ofrece enlaces a un montón de la globalización / localización guías para WP7. Hay una Windows Phone 7 7 en la formación de vídeo que me ayudó a entender los conceptos básicos. Después de que era simplemente una cuestión de aprender cómo hacer de enlace de datos:
El MSDN artículo muestra cómo a configuración de los archivos y crear el LocalizedStrings clase, pero entonces asuma que usted sabe cómo usar esa clase para el enlace de datos. Estudio visual 2010 y Silverlight datos mango unión diferente que Winforms, y se vuelve confuso aún más desde XAML También tiene su propia definición de Recursos que son diferentes, entonces el .NET recursos que acabamos de crear. Silverlight también usa el término De recursos para hacer referencia a archivos que utilizan el de la Acción de generación de "contenido”, como se estos archivos se envolvieron en el .xap archivo similar a cómo los archivos con Acción de generación de "Recursos” get incrustado en la .Dll montaje (ex: cargar una imagen de contenido o Los archivos de recursos). He encontrado que en vez de utilizar el texto = "{Binding Path = resourceFile.resourceName, Fuente = {StaticResource Localizedresources}}" Sintaxis de XAML se era más fácil de utilizar los siguientes pasos:
Abra su página XAML principal (normalmente MainPage.xaml) en el Visual diseñador de estudio
Abrir las propiedades para el PhoneApplicationPage y establecer el DataContext para ser Application.Resources -> LocalizedStrings. NOTA: si ya están utilizando un objeto DataContext, entonces que debe integrar el LocalizedStrings clase en ese objeto de modo que tiene localización apoyo.
Una vez DataContext de la página ha sido ajustada se puede cambiar los datos vinculante para cualquier control de la página de simplemente seleccionando la propiedad (por ejemplo: texto, comprobado, etc), seleccionando la opción “Aplicar Enlace de datos ...”, y el establecimiento de la trayectoria a Localizedresources.BtnText o cualquiera que sea el nombre de la deseada valor del recurso es.
Otros consejos
Por supuesto, los recursos localizados se admiten en el teléfono: