Ver Mensaje Individual
  #1  
Antiguo 18-11-2010
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Reputación: 19
elcigarra Va por buen camino
ANSI, UTF8, unicode en D7

Estimados, hace días (más bien semanas) que estoy enfrascado en este tema tratando de aprender y encontrar una solución a lo que quiero. Tal vez me puedan ayudar.

Tengo hecha una aplicación que ahora quiero internacionalizar. Como es de interfase muy simple decidí que una buena forma era definir un set de términos en inglés, alojados en un txt y tomarlos de ahí, x ej:

termino1=Archivo
termino2=Aceptar
termino3... etc

y en la aplicación (función mediante) cargarlo a un stringlist al cargar la aplicación y pasar cada termino a su lugar (un poco como trabajan los multilenguajes tipo plantilla joomla):

Button1.caption := Extraer_termino(2);

Esto me permite que cualquiera que traduzca ese txt (que podría bajarse de internet) a otro idioma cualquiera tiene una version de mi programa en el mismo, sin tocar una letra de código.

Todo fenomenal, pero ahora empiezan los problemas.

Lo más fácil que se me ocurrió es utilizar un simple archivo .txt, (además de usar Delphi7) no tengo soporte unicode (ni en LoadFromFile ni en los captions de los componentes) por lo que me tengo que limitar a ANSI.

Leyendo mucho, noté que ANSI permite lenguajes basicamente unicode pero en versión simplificada (desconozco el alcance de eso, aunque se que son 256 caracteres). Supongan que alguien en china se baja el txt con su windows chino y con el Windows Notepad chino lo traduce al chino (eso debería ser ANSI).

Yo supongo que aquí lo voy a recibir como un monton de cuadraditos (o "?????"s), ya que mi ANSI es español. La duda es si esa forma de trabajar funcionaría con caracteres unicode.

Tal vez alguien me pueda ilustrar un poco sobre el tema porque estoy en cero.

Certezas
a) No tengo 400 dólares para el upgrade al Delphi XE
b) Podría instalar un paquete unicode en D7, pero si bien facilita la programación, complica el manejo de un simple txt (tendría que usar otra cosa, escucho ofertas).
c) La última certeza es que no no tengo certeza alguna en esto de los charset.

Ultima cosa:
Yo intenté copiar caracteres chinos en un txt de notepad, guardarlo como utf-8 y luego abrirlo con Word, por ejemplo, se ve en chino, sin embargo al intentar cargarlo con MyStringList.Loadfromfile, se cualga con una excepción asquerosa.

Saludos y Gracias
Responder Con Cita