Crear versiones en distintos idiomas

30/04/2004 - 14:17 por nacho | Informe spam
Hola a todos:

He creado una aplicación en Visual C++ 7.0 en castellano, y estoy
interesado en crear una versión en inglés.

Básicamente, estoy copiando todos los recursos que he creado y
traduciéndolos al inglés, manteniendo el mismo nombre de recurso, pero
cambiando el lenguaje asociado al mismo dentro del recuadro de propiedades
correspondiente.

De esta forma, la mayoría de los recursos creados aparecen duplicados:
uno en castellano y otro en inglés.

Lo que no sé es qué opciones de compilación debo tocar para que me
seleccione los recursos en uno u otro idioma. De hecho, he probado a cambiar
el lenguaje, a modo de prueba, a un recurso en castellano (sigue en
castellano, pero en las propiedades del recurso lo he puesto en ingles
(Estados Unidos), y sin embargo, al compilar, me sigue cogiendo el recurso
como si ignorara la propiedad del lenguaje asociado.

¿Alguien puede ayudarme?

Muchas gracias.

Saludos,

JIGE

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
01/05/2004 - 14:31 | Informe spam
Hechale un vistazo la FAQ del grupo. Hay esta explicado.
http://vcfaq.europe.webmatrixhosting.net

Un saludo
Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#2 nacho
02/05/2004 - 16:49 | Informe spam
Muchas gracias. Me ha servido de gran ayuda para ponerme un poco al día
sobre el tema. De todas formas se me plantean algunas dudas:

La forma más sencilla de ir generando la versión en inglés, es copiar el
recurso correspondiente tal cual (por ejemplo, un menú, un cuadro de
diálogo...) y proceder a continuación a traducirlo. Esto lo hago
directamente desde el editor de recursos de Visual C++ 7.0.

Pero claro, de esta manera tengo únicamente un fichero MyAppl.rc. Si
analizo dicho fichero abriéndolo con un editor de texto, observo cómo ha
recopilado los recursos por idiomas; sin embargo, para utilizar un conjunto
de recursos u otro realiza la siguiente comprobación:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESP)

Supongo que esto quiere decir que, si no he cargado ninguna DLL de
recursos (una DLL satélite de las que se comentan, supongo), directamente es
cierta la primera condición (no está definido AFX_RESOURCE_DLL), por lo que
toma todos los recurso declarados. Igualmente hace con el resto de bloques
asociados con los demás idiomas, por lo que, por defecto, si no he creado la
mencionada dll, realmente cargaría todos los recursos disponibles, sin
importarle el idioma; eso sí, si hay recursos con el mismo ID pero con
distinto idioma, se quedará con el primero que haya encontrado.

Así, por ejemplo, a modo de prueba, he situado la declaración de
recursos en inglés antes que la de español (de todos los recurso que tengo
en castellano, simplemente he traducido un par a inglés para probar), por lo
que, al probar el programa, veo cómo me ha cogido los recursos en inglés
(por estar declarados primero), no cogiendo los recursos en castellano del
mismo nombre, y en cambio sí me sigue cogiendo el resto de recursos en
castellano.

Por tanto, si quiero que realmente funcione cargando los recursos
automáticamente según el idioma del equipo (o del usuario actual, si el
idioma de éste es distinto), ¿tendría que separar los recursos del fichero
MyApp.rc? ¿qué tendría que hacer: dejar por ejemplo únicamente los recursos
en español y quitar del fichero los recursos en inglés pasándolos a un nuevo
fichero de recursos? En principio parece esto un poco tedioso a la hora del
mantenimiento, ya que, si modifico en un futuro algún recurso, o añado uno
nuevo, parece que tendría que recordar qué recursos había traducido
anteriormente y cuales no, generando nuevamente la traducción del nuevo
recurso y nuevamente teniendo que quitarlo del ".rc" del proyecto para
pasarlo al .rc de la dll satélite.

¿Sería así como tendría que trabajar, o hay algún mecanismo más
eficiente, que me permita, por ejemplo, trabajar con el ".rc" asociado a mi
aplicación sin tener que estar "sacando" las traducciones del mismo para
copiarlas al ".rc" de la dll satélite?

Bueno, discupad que haya sido un tanto extenso, pero tal vez sea la
mejor forma de dejar claro lo que estoy haciendo y qué debo modificar para
hacer realmente de forma correcta la versión en inglés.

Muchas gracias de nuevo.

Saludos,

JIGE

"Rodrigo Corral [MVP]" escribió en el mensaje
news:%
Hechale un vistazo la FAQ del grupo. Hay esta explicado.
http://vcfaq.europe.webmatrixhosting.net

Un saludo
Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida