Tutorial: Localizar una aplicación híbrida
Actualización: noviembre 2007
En este tutorial se muestra cómo localizar los elementos de WPF en una aplicación híbrida basada en formularios Windows Forms.
Entre las tareas ilustradas en este tutorial se incluyen:
Crear el proyecto host de formularios Windows Forms.
Agregar el contenido localizable.
Habilitar la localización.
Asignar los identificadores de recursos.
Utilizar la herramienta LocBaml para generar un ensamblado satélite.
Para ver una lista de código completa de las tareas ilustradas en este tutorial, consulte Ejemplo Localizing a Hybrid Application.
Al completar este tutorial, dispondrá de una aplicación híbrida localizada.
Nota Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
- Visual Studio 2008.
Crear el proyecto host de formularios Windows Forms
El primer paso consiste en crear el proyecto de la aplicación de formularios Windows Forms y en agregar un elemento de WPF con el contenido que se va a localizar.
Para crear el proyecto host
Cree un proyecto de aplicación de WPF denominado LocalizingWpfInWf. Para obtener más información, consulte Cómo: Crear un proyecto de aplicación para Windows.
Agregue un elemento UserControl de WPF denominado SimpleControl al proyecto.
Utilice el control ElementHost para colocar un elemento SimpleControl en el formulario. Para obtener más información, vea Tutorial: Hospedar un control compuesto de Windows Presentation Foundation en formularios Windows Forms.
Agregar contenido localizable
A continuación, agregará un control de etiqueta de formularios Windows Forms y se establecerá el contenido del elemento de WPF en una cadena localizable.
Para agregar el contenido localizable
En el Explorador de soluciones, haga doble clic en el archivo SimpleControl.xaml para abrirlo en WPF Designer.
Establezca el contenido del control Button mediante el código siguiente.
En el Explorador de soluciones, haga doble clic en Form1 para abrirlo en el Diseñador de Windows Forms.
Abra el Cuadro de herramientas y haga doble clic en Etiqueta para agregar un control de etiqueta al formulario. Establezca el valor de la propiedad Text del control en "Hello".
Presione F5 para generar y ejecutar la aplicación.
Tanto el elemento SimpleControl como el control de etiqueta muestran el texto "Hello".
Habilitar la localización
El Diseñador de Windows Forms proporciona valores para habilitar la localización en un ensamblado satélite.
Para habilitar la localización
En el Explorador de soluciones, haga doble clic en Form1.cs para abrirlo en el Diseñador de Windows Forms.
En la ventana Propiedades, establezca el valor de la propiedad Localizable del formulario en true.
En la ventana Propiedades, establezca el valor de la propiedad Idioma en Español (España).
En el Diseñador de Windows Forms, seleccione el control de etiqueta.
En la ventana Propiedades, establezca el valor de la propiedad Text en "Hola".
Se agrega al proyecto un nuevo archivo de recursos denominado Form1.es-ES.resx.
En el Explorador de soluciones, haga clic con el botón secundario del mouse en Form1.cs y seleccione Ver código para abrirlo en el Editor de código.
Copie el código siguiente en el constructor Form1, antes de la llamada a InitializeComponent.
En el Explorador de soluciones, haga clic con el botón secundario en LocalizingWpfInWf y seleccione Descargar el proyecto.
El nombre del proyecto tiene la etiqueta (no disponible).
Haga clic con el botón secundario en LocalizingWpfInWf y seleccione Editar LocalizingWpfInWf.csproj.
Se abre el archivo de proyecto en el Editor de código.
Copie la línea siguiente en el primer PropertyGroup del archivo de proyecto.
<UICulture>en-US</UICulture>
Guarde el archivo de proyecto y ciérrelo.
En el Explorador de soluciones, haga clic con el botón secundario en LocalizingWpfInWf y seleccione Volver a cargar el proyecto.
Asignar identificadores de recursos
Puede asignar el contenido localizable a ensamblados de recursos utilizando identificadores de recursos. La aplicación MsBuild.exe asigna automáticamente los identificadores de recursos cuando se especifica la opción updateuid.
Para asignar los identificadores de recursos
En el menú Inicio, abra el símbolo del sistema de Visual Studio.
Utilice el comando siguiente para asignar identificadores de recursos al contenido localizable.
msbuild /t:updateuid LocalizingWpfInWf.csproj
En el Explorador de soluciones, haga doble clic en el archivo SimpleControl.xaml para abrirlo en el Editor de código. Observará que el comando msbuild ha agregado el atributo Uid a todos los elementos. Esto facilita la localización mediante la asignación de identificadores de recursos.
Presione F6 para generar la solución.
Utilizar LocBaml para generar un ensamblado satélite
El contenido localizado se almacena en un ensamblado satélite sólo de recursos. Utilice la herramienta de la línea de comandos LocBaml.exe a fin de generar un ensamblado localizado para el contenido de WPF.
Para generar un ensamblado satélite
Copie LocBaml.exe en la carpeta obj\Debug del proyecto. Para obtener más información, consulte Cómo: Localizar una aplicación.
En la ventana del símbolo del sistema, utilice el comando siguiente para extraer las cadenas de recursos a un archivo temporal.
LocBaml /parse LocalizingWpfInWf.g.en-US.resources /out:temp.csv
Abra el archivo temp.csv con Visual Studio u otro editor de texto. Reemplace la cadena "Hello" por su traducción al español, "Hola".
Guarde el archivo temp.csv.
Utilice el comando siguiente para generar el archivo de recursos localizado.
LocBaml /generate /trans:temp.csv LocalizingWpfInWf.g.en-US.resources /out:. /cul:es-ES
Se crea el archivo LocalizingWpfInWf.g.es-ES.resources en la carpeta obj\Debug.
Utilice el comando siguiente para generar el ensamblado satélite localizado.
Al.exe /out:LocalizingWpfInWf.resources.dll /culture:es-ES /embed:LocalizingWpfInWf.Form1.es-ES.resources /embed:LocalizingWpfInWf.g.es-ES.resources
Se crea el archivo LocalizingWpfInWf.resources.dll en la carpeta obj\Debug.
Copie el archivo LocalizingWpfInWf.resources.dll en la carpeta bin\Debug\es-ES del proyecto. Reemplace el archivo existente.
Ejecute LocalizingWpfInWf.exe, que se encuentra en la carpeta bin\Debug del proyecto. No vuelva a generar la aplicación, pues de lo contrario se sobrescribirá el ensamblado satélite.
La aplicación muestra las cadenas localizadas en lugar de las cadenas en inglés.
Vea también
Tareas
Tutorial: Adaptar formularios Windows Forms
Conceptos
Cómo: Localizar una aplicación