Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Alfabeto con caracteres "raros"

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Alfabeto con caracteres "raros" Responder citando

Necesito que mi aplicación "hable" varios idiomas.
Para ello tengo un fichero .INI con las traducciones de todos los textos de mi aplicación a todos los idiomas.
Con idiomas con alfabetos "normales" (cuyos caracteres están en código ASCII) no hay problema. El problema surge con alfabetos como el cirílico o el polaco. En el fichero .INI tengo los códigos numéricos, así que lo he intentado con wchar_t, pero no aparece el caracter correctamente.

Por ejemplo, uno de los caracteres es "ś" (código numérico=347), pero aparece la s sin el "acento".

¿Qué estoy haciendo mal?

Muchas gracias y un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Por decir algo ¿No tendrá algo que ver con la página de códigos WIndows que tengas seleccionada?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Disculpa mi ignorancia Ángel, pero qué es la página de códigos de Windows?

Si abro el Word y pulso ALT mientras tecleo el código 347, aparece el caracter correcto. Con lo cual entiendo que el código es correcto, no?

También probé poniendo en Project->Options->Language = Polaco, pero nada, sigue apareciendo lo mismo.

Gracias por la respuesta!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

limonaeg escribió:
Disculpa mi ignorancia Ángel, pero qué es la página de códigos de Windows?

Si vas al panel del control del Windows y selecciones Configuración regional, aparece una lista con el idioma que está usando en ese momento el PC. AUnque ahí sólo veas un texto cada una de esas entradas está asociada a un código; a eso me refiero. No recuerdo los códigos, pero es fácil localizarlos.
limonaeg escribió:
Si abro el Word y pulso ALT mientras tecleo el código 347, aparece el caracter correcto. Con lo cual entiendo que el código es correcto, no?

No te fíes, precisamente por lo que comento de la página de códigos. Ten en cuenta que Windows interpreta muchas cosas a su manera y no tiene por qué ser lo mismo que entienda Builder; en general, al menos hasta donde he visto, Builder se entiende con los 256 caracteres del código ASCII y no sé como entenderá los lenguajes "extendidos".
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias de nuevo, Ángel.

Pero he probado con un Windows polaco (con configuración en polaco) y sigo teniendo el mismo problema.

En el archivo de idioma, la cadena en polaco de la palabra "Cerrar" es así:
pl=Wyjście

Y debería aparecer así:
Wyjście

Hice un programilla de prueba, con un Edit, donde escribo la palabra en español, un label donde aparece la traducción a polaco y un botón para hacer la traducción.

Éste es el código:
Código:

   AnsiString FicheroIdioma="Z:\\idioma_pol_3.INI";
   TIniFile* Ini= new TIniFile (FicheroIdioma);
   AnsiString espanol=Edit1->Text;
   AnsiString ruso=Ini->ReadString(espanol, "pl", espanol);
   wchar_t ruso_wide[400];
   ruso.WideChar(ruso_wide, ruso.WideCharBufSize());
   int caracter;
   AnsiString ansi_caracter="";

   wchar_t ruso_real[400];

   int cont_real=0;

   for (int i=0;i<ruso>Caption=ruso_real;


Al ir ejecutando el código paso a paso, me he fijado que ruso_real[3]=L'ś'
¿Por qué aparecen dos caracteres en lugar de aparecer solo 'ś'?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

limonaeg escribió:
Al ir ejecutando el código paso a paso, me he fijado que ruso_real[3]=L'ś'
¿Por qué aparecen dos caracteres en lugar de aparecer solo 'ś'?

¿Has probado a que imprima esa cadena ruso_real en lugar de "verla" con el debug? Tiene toda la pinta que el carácter de verdad es sólo ś.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias Ángel, sí he probado a que imprima la cadena ruso_real en un Label, pero nada, sale un caracter raro, que no tien nada que ver con ś.

Pensé que ésto sería fácil!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.