[Wine] Re: The source file wineinstall needs translation

shakaran wineforum-user at winehq.org
Wed Apr 30 23:16:46 CDT 2008


I knew that Wine was not compatible with translations in LaunchPad, only suggesting that it might be useful to try to use it (if supported).

He started to read the translation guide:

http://wiki.winehq.org/Translating

and he also translated the article. How could update the wiki to the version in Spanish?

Maybe something like:
http://wiki.winehq.org/Translating_ES

or page can detect the language of the browser and then show depending on the language?

PS: If needed in HTML format with links I do.


Code:
Los archivos binarios Wine pueden contener los mismos recursos en varios idiomas. Wine seleccionará la versión de recurso del idioma para mostrarla basándose en los ajustes del usuario. Por ejemplo "LANG=ru_RU winecfg" pondrá en marcha winecfg en Ruso (si tines la información de localización Rusa instalada en Linux/tu otro sistemas operativo nativo).

Los recursos se almacenan en archivos RC estándar de Windows. Por lo general, hay un archivo maestro de recursos (por ejemplo, programs/notepad/rsrc.rc) que contiene los recursos de idioma neutral e incluye el archivos de idioma. Los archivos de idioma contienen recursos de idioma dependientes en el idioma determinado (por ejemplo, programs/notepad/En.rc - recursos Ingleses; programs/notepad/Pl.rc - recursos Polacos). Aviso la declaración LANGUAGE del compilador de recursos instruye en qué idioma están los recursos.

Puedes comprobar la página de estadísticas de traducciones de Wine para ver cual es el estado de la traducción a un idioma determinado.

¿Cómo puedo mejorar la traducción?

Wine es un proyecto Open Source por lo tanto, todo el mundo puede descargar el código fuente, modificar el recurso y enviar las modificaciones para su posible inclusión en el árbol oficial de Wine.

Se recomienda construir Wine a partir del código fuente para poder poner a prueba las traducciones. El método recomendado para obtener el último código fuente de Wine es utilizar Git. Una guía rápida puede se puede encontrar en http://www.winehq.org/site/git. Un análisis más detallado esta en GitWine.

Para construir Wine es posible que desee comprobar primero los Paquetes Recomendados. Wine es especialmente meticuloso con fontforge - puedes necesitar la última versión para mostrar correctamente las fuentes. En algunas distribuciones de Linux de 64-bit puede ser más difícil - comprueba WineOn64bit si tienes uno - mientras que en sistemas 32-bit (si tienes todos los paquetes necesarios) por lo general todo lo que normalmente hay que hacer es "./configure && make depend && make".

Después de construir wine puede ejecutar desde ese directorio - por ejemplo, ejecutar ~/wine-src o ~/wine-src/wine program.exe (si el cógido fuente de Wine esta en ~/wine-src). También puedes iniciar incorporando programas en la ejecución por ejemplo ~/wine-src/programas/notepad/notepad. Si no tienes instalado aún Wine puedes instalarlo ejecutando desde el directorio de código fuente principal como root: make install. Una vez wine sea construido puede iniciarse como wine. Sin embargo, si tu distribución enlaza Wine no deberías ejecutar make install (a menos que remuevas el Wine "oficial" primero), ya que esto puede dar lugar a conflictos.

Si eres capaz de construir Wine puedes probar a editar los archivos de recursos. Si añades nuevos recursos a un archivo existente, entonces copia del archivo de Inglés y traduce las cadenas. Si estas traduciendo un nuevo archivo:

	* copia el archivo Inglés como su archivo (digamos Qq.rc)
	* ejecuta "gid add Qq.rc" para que GIt conozca sobre este nuevo archivo
	* añade un #include "Qq.rc" al archivo maestro (por los general rsrc.rc)
	* ejecuta "make depend" para hacer saber sobre el nuevo archivo
	* modifica la linea LANGUAGE. Busca el código del idioma en include/winnt.h y la norma del subidioma para tu idioma en SublangNeutral (o copialo de otro archivo en tu idioma)
	* traduce la cadena
	
Las directrices acerca de la edición de estos archivos de recursos y que cadenas deberían ser traducidas esta en el capítulo de Traducción de Desarrolladores-Sugerencias. Tenga en cuenta que como se dice en esa página, a menos que cambie explícitamente con un pragma, los archivos no están en UTF-8 (la codificación de caracteres de Linux/MacOS X) pero en la codificación de Windows.

Después de editar los recursos se debe hacer una construcción para comprobar si Wine construye y corre correctamente. Si traducido el programa puedes ejecutarlo y comprobar la traducción. Puedes comprometer los cambios a tu repositorio Git local con git commit -a. Puedes comprobar los cambios después de la última confirmación con git diff HEAD. Es bueno para un parche de traducción contener los cambios de una dll/program así es mejor confirmar los cambios después de la traducción de una dll/programa y antes de pasar a otro.

Si estas satisfecho con tus traducciones puedes enviarla a wine-patches y ellos podrían llegar a incluirla en el Git Wine oficial. Leer http://www.winehq.org/site/sending_patches para saber como hacerlo y como comprobar si fue aplicado. Enviar sólo archivos de revisión (por ejemplo, generado por git format-path), uno en un correo electrónico, sin compresión (si el parche en tu email no será reconocido y aplicado por un script automatizado entonces la posibilidad de que sea aceptado son abreviadamente cero).

Usando archivos PO para traducir Wine

Si estás familiarizados con los archivos PO usados en la mayoría de programas de software libre y código abierto, y quieres hacer uso de tus herramientas de localización existentes y recursos (Traducción Memeory, glosarios, etc) entonces puedes traducir también archivos .r usando Gettext PO.

El programa rc2po que es parte de las herramientas de traducción convertirá un archivo .r a un archivo .po. También puedes recuperar traducciones desde existentes traducciones .rc.

La forma más sencilla de trabajar con archivos Po es seguir la mayoría de instrucciones en esta página acerca de confirmaciones Git, Idioma y Subidioma consejo. Pero en el momento de la edición el archivo .rc deberá hacer los siguiente:

	* rc2po En.rc Qq.po ( hacemos un archivo PO y usamos la misma convención Qq como los ejemplos anteriores)
	* Ahora traducir Qq.po en tu editor PO (KBabel, PoEdit, etc)
	* po2rc -t En.rc Qq.po Qq.rc (convetira tu traducción PO a .rc)
	
También puedes recuperar tu antigua traducción si esta desactualizada, tenga en cuenta que tendrá que revisar todas las traducciones no sólo las entradas sin traducir.

	* rc2po -t En.r Qq.rc Qq.po (recuperar tu traducción a Qq.po)
	* Traducir los elementos restantes y revisar TODO lo demás en Qq.po
	* po2rc -t En.rc Qq.po Qq.rc (y si tienes una versión actualiza de un archivo .rc en tu idioma)	
	
¿Dónde puedo encontrar más ayuda en la traducción? 

La traducción o localización para quienes no tienen experiencia puede llegar a ser enorme. La guía de localización proporciona mucha ayuda para aquellos que están empezando a traducir por primera vez.

Como puedo probar mi traducción

Si tradujiste un programa puedes ejecutarlo y comprobar la traducción. Si es una DLL y no tienes experiencia en que programa puede usarla entonces es bueno testear al menos el cuadro de diálogo por si el texto no es demasiado grande para el control del rectángulo. Esto puede hacerse mediante la creación de un falso DLL y usando los recursos de visualizador/editor para visualizar los recursos.

Una falsa DLL puede ser creada con el script makefake.sh. Si estás utilizando Wine desde el directorio de código fuente (digamos ~/wine-src/) entonces deberías cambiar wine rundll32 ... a ~/wine-src/wine rundll32 ... Llamando ./makfake.sh comdlg32.dll creara en el directorio C:\windows\systema32 de tus wineprefix un archivo comdlg32.dll que contendrá el código pero no solo todos los recursos (a esto es llamado un falso DLL). Si escribes un nombre no válido (por ejemplo ./makefake.sh abcdef123.dll) entonces una falsa DLL sera también creada pero sin recursos. Los nombres de módulos son obtenidos desde el nombre de los directorios añadiendo .dll para los subdirectorioes de dlls/ y .exe para los subdirectorios de programs/.

Los recursos dentro de dicho archivo pueden ser vistos por programas especiales. Un ejemplo de este tipo de programa que yo conozco y puede ser libremente descargado es ResHacker. Por desgracia se trata de un pograma ANSI lo que significa que la cadena en otros idiomas puede mostrarse incorrectamente, pero en tu idioma debería mostrarse bien. Puedes ver todo el cuadro de diálogo si se muestra bien. Los idiomas son el tercer nivel del árbol a la izquierda y se identifican por identificadores numéricos. Como una ID puede ser computada como laguage_id+1024*sublang_id donde el idioma numérico y el subidioma id son definidos en include/winnt.h

Que pasa si falta un recurso

	1. Si todo el recurso (por ejemplo, todo el dialogo o menú) falta entonces el cargador de recursos deberá intentar el siguiente idioma en la lista que normalmente significará que el recursos English (US) sera cargado.
	2. Si por ejemplo un menú falta o un elemento o un dialogo no tiene el control entonces el menú/dialogo se mostrará sin ese elemento. Esto puede provocar que la versión traducida del programa se rompa. Esos recursos también era marcados como fuera de sincronización en las estadísticas de traducción.
	3. Las tablas de cadenas son difíciles ya que vienen en paquetes de 16. Hasta dieciséis cadenas (el recurso puede tener huecos libres) basados en sus id numérica se colocan en un solo recurso. Esto a menudo causa la falta de cadenas que caen en la categoría 2 en lugar de la 1. Estos casos también son marcados como traducción fuera de la sincronización de las estadísticas. Que cadenas están juntas en un recurso físico puede no ser fácil de leer desde el archivo de recursos pero es mostrado por la página de estadísticas. Una cadena desaparecida puede provocar que el programa traducido, por ejemplo muestre un cuadro de mensaje sin texto pero solo una cuestión con un icono y botones de Si y No.

Como vemos arreglar recursos fuera de la sincronización es quizás aún mas importante que traducir nuevos recursos (aunque la versión actual de las estadísticas tienen probablemente algunos falsos positivos - por ejemplo algunos diálogos Koreanos son marcacos como fuera de sincronización porque ellos declaran una fuente que no tiene la versión Inglesa. Pero probablemente se necesite para mostrar los caracteres Koreanos. Pero sería bueno tener una confirmación). Para evitar situaciones de fuera de sincronización algunos desarrolladores añaden recursos (especialmente cadenas a cadenas de tablas) para cada archivo de idioma. Estas entradas no están marcadas por la página de estadísticas - debes revisar los archivos de recursos manualmente.









More information about the wine-users mailing list