La rusificación de los programas es un asunto importante, especialmente para los usuarios que no hablan idiomas extranjeros. Muy a menudo, los usuarios del programa Delphi se preguntan cómo rusificarlo.
Instrucciones
Paso 1
El punto es que las codificaciones OEM y ANSI (en las que funciona Delphi) no coinciden. Tienen diferentes posiciones de símbolos cirílicos. ANSI también tiene caracteres acentuados, que los OEM no tienen. Pero el segundo contiene símbolos pseudográficos, que son indispensables para la visualización de tablas, aunque esto no tiene mucha demanda. Y, sin embargo, vale la pena señalar que, en general, estas tablas son intercambiables: tienen las mismas posibilidades para mostrar información de texto.
Paso 2
Hay varias formas de resolver el problema de la rusificación. El primero es trabajar en el editor OEM. Inicialmente, puede preparar partes del texto del programa que son críticas para la tabla de códigos en un editor que trabaja en la codificación OEM. Una solución bastante simple, pero al mismo tiempo efectiva. Esto es especialmente cierto para la escritura de servicios públicos locales, en los que, sin embargo, la producción de información es muy demandada.
Paso 3
En cuanto a las deficiencias de este método, aquí puede designar trabajo fuera del IDE, que es familiar para muchos, con sus campanas y silbidos que son geniales en la vida, como: codificación, compilación, depuración. Y todo esto está dicho, "en una botella". Además, a medida que el proyecto crece, ciertas dificultades comienzan a manifestarse cuando comienzan a utilizarse recursos de cadenas de terceros creados con codificación ANSI.
Paso 4
Si el proyecto no contiene cadenas incluidas directamente en el código (codificadas de forma rígida), puede mover todos los recursos de cadenas a módulos separados y luego localizarlos en la codificación requerida. Afortunadamente, la red está llena de utilidades que cambian la codificación de archivos.
Paso 5
Ahora sobre el uso de procedimientos de filtrado. La API de Windows contiene funciones para ayudarlo a convertir codificaciones ANSI y OEM entre sí. Estos son OemToChar y CharToOem. Se utilizan para mostrar texto con reemplazo de fragmentos Writeln ("texto"); en los siguientes fragmentos:
procedimiento MyWriteln (const S: string);
var
NewStr: cadena;
comenzar
SetLengtn (NewStr, Longitud (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
fin;
MyWriteln ("texto");
Paso 6
En cuanto a las desventajas de este método, es la imposibilidad de utilizar la sintaxis de escritura extendida y saturar el texto de la aplicación con una llamada a los procedimientos de filtrado. Cuando necesita rusificar una aplicación terminada con múltiples llamadas a Write, esto se convierte en un problema serio.
Paso 7
Por último, pero no menos importante, cambie la página de códigos de la consola mediante la API de Windows. Este método está documentado, por cierto. El único inconveniente es que la función no funciona en Windows 95 y 98. Aunque si la aplicación se ejecutará exclusivamente en Windows NT, en este caso, puede utilizar la función SetConsoleOutputCP (866).