Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-05-2013
rcuevas rcuevas is offline
Miembro
 
Registrado: nov 2006
Ubicación: Rosas - Gerona - España
Posts: 39
Poder: 0
rcuevas Va por buen camino
Caracteres chinos en C++ Builder 2006

Buenos días a todos,

Trabajo con una versión de C++ Builder un tanto antiogua. Es del año 2006.
Voy a comenzar una aplicación que va a tener que ser distribuida por todo el mundo, de modo que quiero que sea traducible a una gran cantidad de idiomas.

He creado una formulario base que incorporará lo necesario para que traduzca cualquier elemento visual que caiga sobre ella o sus descendientes. Para hacerlo, en el create del formulario he añadido el siguiente código, que lo que hace es patearse todos los elementos visuales y actuar sobre ellos en función de su clase, modificando los strings necesarios.

Aquí tenéis un ejemplo donde, en el caption de las labels, añado "lb_", y en el caption del título de las columnas de una grid, añado "cl_". La idea es ir añadiendo todos los casos necesarios a medida que avanzo por ellos. A la vez, en vez de añadir un prefijo (que es el ejemplo mostrado), buscaré una traducción concreta en una lista de traducciones que tendré en memoria.

Código:
void __fastcall TFFormBase::FormCreate(TObject *Sender)
{
  TDBGrid* pDBGrid;
  int i, j;

  //Traducción de los componentes visuales
  for (i = 0; i <= this->ComponentCount -1 ; i++) {
    if (this->Components[i]->ClassNameIs("TLabel")){
      ((TLabel*)this->Components[i])->Caption = 
        "lb_" + ((TLabel*)this->Components[i])->Caption;
    }
    else if (this->Components[i]->ClassNameIs("TDBGrid")) {
      pDBGrid = (TDBGrid*)(this->Components[i]);
      for (j = 0; j <= pDBGrid->Columns->Count - 1; j++) {
        pDBGrid->Columns->Items[j]->Title->Caption = 
          "cl_" + pDBGrid->Columns->Items[j]->Title->Caption;
      }
    }
  }
}
Mi diccionario será una lista donde cada ítem estará identificador por un string (que asignaré en diseño) y tendrá un puntero a sus traducciones. Y muy posiblemente, alguna de sus traducciones tenga símbolos de alfabetos que requieren más de un byte para cada letra, y no sé cómo incorporar esas traducciones al código en C++.

Estoy seguro de que la idea funcionará, pero, a pesar de que ya he estado haciendo pruebas, no sé cómo puedo incorporar en la lista de traducciones símbolos similares al siguiente --> 支庁 <--.

No sé si me he explicado suficientemente bien. Si es necesario detallo todavía más las cosas.
¿Alguien tiene alguna idea?

Muchas gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 10-05-2013
j0seant j0seant is offline
Miembro
 
Registrado: feb 2006
Posts: 38
Poder: 0
j0seant Va por buen camino
Lo que necesitas es soporte para Unicode, y la VCL de las versiones viejas de C++Builder no lo soportan, necesitaras como mínimo la versión 2009 que es cuando introdujeron soporte para Unicode.

Lo podrás hacer en las versiones viejas, pero con muchos más dolores de cabeza, modificando los componentes (mucho trabajo que no compensa), o instalando algún paquete de componentes, pero siempre con limitaciones, mientras que con las versiones actuales trabajar con cualquier idioma que no use el alfabeto romano es tan simple como hacerlo en español.
Responder Con Cita
  #3  
Antiguo 11-05-2013
rcuevas rcuevas is offline
Miembro
 
Registrado: nov 2006
Ubicación: Rosas - Gerona - España
Posts: 39
Poder: 0
rcuevas Va por buen camino
Buenas noches j0seant,

Muchas gracias por tu ayuda.
Puestos a gastar dinero en un componente, lo gasto la ultima versión de Builder C++, que, además del UniCode, algunas otras ventajas y mejoras le habrán incorporado en los ultimos 6 años.
Probaré su$ última versión, y si veo que no me da problemas con otros componentes, pues solicitaré a la empresa que lo compre.

Saludos y muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Caracteres Chinos Gimli Varios 7 31-10-2011 19:01:59
Caracteres chinos en aplicación Cmmv Varios 8 07-10-2010 13:20:40
Caracteres Chinos ¿de donde salieron? goduquez Firebird e Interbase 7 04-10-2010 18:05:28
Caracteres chinos en Firebird erickahr Firebird e Interbase 4 01-04-2010 23:36:32
Builder 2006 cabrera C++ Builder 1 16-06-2006 21:51:30


La franja horaria es GMT +2. Ahora son las 16:45:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi