Error : herencia visual + multilenguaje.

12/05/2004 - 12:28 por Abel | Informe spam
Hola,

Estoy trabajando en una aplicación de gestión en C# y he
detectado el siguiente error, bueno, aun no sé si es un
error en realidad o una limitación o qué...

El caso es que tenemos una serie de formularios base para
luego heredar de ellos y crear los formularios de la
aplicación. Estos formularios base suelen tener los
típicos botones de "Aceptar" y "Cancelar", acciones
de "Añadir", "Borrar", etc.

Sobre estos formularios base aplicamos multilenguaje, en
concreto Castellano y Catalán. Y también aplicamos
multilenguaje a nuestros formularios heredados de los
base, pero estoy observando que no me respeta los textos
introducidos en multilenguaje ... ni siquiera en tiempo
de diseño.

¿Alguna pista de porqué pueda ser...?

Saludos y gracias,
Abel

Preguntas similare

Leer las respuestas

#1 Anonimo
12/05/2004 - 15:22 | Informe spam
Puede realizar aportación de código...cómo establece
textos
Hola,

Estoy trabajando en una aplicación de gestión en C# y he
detectado el siguiente error, bueno, aun no sé si es un
error en realidad o una limitación o qué...

El caso es que tenemos una serie de formularios base


para
luego heredar de ellos y crear los formularios de la
aplicación. Estos formularios base suelen tener los
típicos botones de "Aceptar" y "Cancelar", acciones
de "Añadir", "Borrar", etc.

Sobre estos formularios base aplicamos multilenguaje, en
concreto Castellano y Catalán. Y también aplicamos
multilenguaje a nuestros formularios heredados de los
base, pero estoy observando que no me respeta los textos
introducidos en multilenguaje ... ni siquiera en tiempo
de diseño.

¿Alguna pista de porqué pueda ser...?

Saludos y gracias,
Abel
.

Respuesta Responder a este mensaje
#2 Abel
12/05/2004 - 15:45 | Informe spam
Gracias por preguntar ... le cuento, el proceso de
multilenguaje en C# es bastante sencillo a nivel de
formularios.

El caso más sencillo que tengo: tengo un formulario
(diálogo) llamado frmEdicion que sólo tiene dos botones;
el de Aceptar y el de Cancelar. En el editor visual del
formulario selecciono el formulario y cambio la
propiedad "Localizable" a "True", luego cambio la
propiedad "Language" a "Spanish". Ahora selecciono los
botones y voy cambiando su propiedad "Text" a "Aceptar"
y "Cancelar". Ahora vuelvo a seleccionar el formulario y
cambio la propiedad "Language" a "Catalán" y selecciono
los botones y les pongo en su
propiedad "Text" : "Acceptar" y "Cancel.lar". Grabo y
compilo.

Con esto ya tengo el formulario base en los dos idiomas.

Ahora creo un formulario nuevo que hereda de éste
(frmEdicion). En el editor visual selecciono el
formulario y cambio la propiedad "Localizable" a "True",
y luego cambio la propiedad "Language" a "Spanish" y
luego a "Catalán". Esto lo hago sólo para que me genere
los archivos de recursos .resx pero no edito ningún texto
en los botones "Aceptar" ni "Cancelar", simplemente añado
los controles "nuevos" que necesito.

Pues bien, observo en este último formulario que los
botones "Aceptar" y "Cancelar" no se muestran en tiempo
de diseño (y tampoco en ejecución) como los edité en el
formulario base frmEdicion.

Espero que la solución no sea tener que editar uno por
uno todos los diálogos heredados e ir cambiando los
textos, porque entonces las caracteristicas de la
herencia no la estoy usando al 100%

Gracias anonimos ... a ver si me puedes ayudar con
esto ...

Puede realizar aportación de código...cómo establece
textos
Hola,

Estoy trabajando en una aplicación de gestión en C# y




he
detectado el siguiente error, bueno, aun no sé si es un
error en realidad o una limitación o qué...

El caso es que tenemos una serie de formularios base


para
luego heredar de ellos y crear los formularios de la
aplicación. Estos formularios base suelen tener los
típicos botones de "Aceptar" y "Cancelar", acciones
de "Añadir", "Borrar", etc.

Sobre estos formularios base aplicamos multilenguaje,




en
concreto Castellano y Catalán. Y también aplicamos
multilenguaje a nuestros formularios heredados de los
base, pero estoy observando que no me respeta los




textos
introducidos en multilenguaje ... ni siquiera en tiempo
de diseño.

¿Alguna pista de porqué pueda ser...?

Saludos y gracias,
Abel
.



.

Respuesta Responder a este mensaje
#3 Anonimo
14/05/2004 - 11:27 | Informe spam
No conozco mucho del tema pero podías mirar los archivos
de recursos .resx

En lugar de hacer eso en tiempo de diseño, lo que creo
que es mejor es tener un archivo de recursos que dependa
del lenguaje (que no sé muy bien cómo va)

y asignes tus texto algo así

ResourceManager.GetString("TextoBotonAceptar")

Según sea el idioma accedería al resx de castellano o al
de catalá

siento no saber más del tema...

Mira a ver qué código genera el Visual Studio


Gracias por preguntar ... le cuento, el proceso de
multilenguaje en C# es bastante sencillo a nivel de
formularios.

El caso más sencillo que tengo: tengo un formulario
(diálogo) llamado frmEdicion que sólo tiene dos botones;
el de Aceptar y el de Cancelar. En el editor visual del
formulario selecciono el formulario y cambio la
propiedad "Localizable" a "True", luego cambio la
propiedad "Language" a "Spanish". Ahora selecciono los
botones y voy cambiando su propiedad "Text" a "Aceptar"
y "Cancelar". Ahora vuelvo a seleccionar el formulario y
cambio la propiedad "Language" a "Catalán" y selecciono
los botones y les pongo en su
propiedad "Text" : "Acceptar" y "Cancel.lar". Grabo y
compilo.

Con esto ya tengo el formulario base en los dos idiomas.

Ahora creo un formulario nuevo que hereda de éste
(frmEdicion). En el editor visual selecciono el
formulario y cambio la propiedad "Localizable" a "True",
y luego cambio la propiedad "Language" a "Spanish" y
luego a "Catalán". Esto lo hago sólo para que me genere
los archivos de recursos .resx pero no edito ningún


texto
en los botones "Aceptar" ni "Cancelar", simplemente


añado
los controles "nuevos" que necesito.

Pues bien, observo en este último formulario que los
botones "Aceptar" y "Cancelar" no se muestran en tiempo
de diseño (y tampoco en ejecución) como los edité en el
formulario base frmEdicion.

Espero que la solución no sea tener que editar uno por
uno todos los diálogos heredados e ir cambiando los
textos, porque entonces las caracteristicas de la
herencia no la estoy usando al 100%

Gracias anonimos ... a ver si me puedes ayudar con
esto ...

Puede realizar aportación de código...cómo establece
textos
Hola,

Estoy trabajando en una aplicación de gestión en C# y




he
detectado el siguiente error, bueno, aun no sé si es






un
error en realidad o una limitación o qué...

El caso es que tenemos una serie de formularios base


para
luego heredar de ellos y crear los formularios de la
aplicación. Estos formularios base suelen tener los
típicos botones de "Aceptar" y "Cancelar", acciones
de "Añadir", "Borrar", etc.

Sobre estos formularios base aplicamos multilenguaje,




en
concreto Castellano y Catalán. Y también aplicamos
multilenguaje a nuestros formularios heredados de los
base, pero estoy observando que no me respeta los




textos
introducidos en multilenguaje ... ni siquiera en






tiempo
de diseño.

¿Alguna pista de porqué pueda ser...?

Saludos y gracias,
Abel
.



.



.

Respuesta Responder a este mensaje
#4 Abel
24/05/2004 - 18:05 | Informe spam
Muchas gracias,
Si efectivamente, de hecho no he encontrado otra solución
que hacerlo, más o menos como comentas en tu respuesta.

En nuestra aplicación manejamos dos "tipos" de archivos
de recursos .rex : los que se generan al editar los
formularios y otros propios hechos por nosotros en los
que tenemos nuestros textos o mensajes que mostramos al
usuario.

En estos úlitmos hemos añadido las cadenas que queremos
traducir y en el constructor del formulario base con
GetString hemos puesto los textos según el idioma y así
no hemos tenido que modificar cada formulario uno por uno
si no sólo los que son base para heredar.

Muchas gracias por todo ...



No conozco mucho del tema pero podías mirar los archivos
de recursos .resx

En lugar de hacer eso en tiempo de diseño, lo que creo
que es mejor es tener un archivo de recursos que dependa
del lenguaje (que no sé muy bien cómo va)

y asignes tus texto algo así

ResourceManager.GetString("TextoBotonAceptar")

Según sea el idioma accedería al resx de castellano o al
de catalá

siento no saber más del tema...

Mira a ver qué código genera el Visual Studio

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