FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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; } } } } 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. |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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. |
|
|
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 |
|