A russificação de programas é um assunto importante, especialmente para usuários que não falam línguas estrangeiras. Freqüentemente, os usuários do programa Delphi se perguntam como russificá-lo.
Instruções
Passo 1
O ponto é que as codificações OEM e ANSI (nas quais o Delphi funciona) não combinam. Eles têm posições diferentes de símbolos cirílicos. ANSI também tem caracteres acentuados, o que o OEM não tem. Já o segundo contém símbolos pseudo-gráficos, indispensáveis para a exibição de tabelas, embora não sejam muito solicitados. E ainda é importante notar que, em geral, essas tabelas são intercambiáveis - elas têm as mesmas possibilidades de exibir informações de texto.
Passo 2
Existem várias maneiras de resolver o problema da russificação. O primeiro é trabalhar no editor OEM. Você pode preparar inicialmente partes do texto do programa que são críticas para a tabela de códigos em um editor que funciona na codificação OEM. Uma solução bastante simples, mas ao mesmo tempo eficaz. Isso é especialmente verdadeiro para escrever serviços públicos locais, nos quais a saída de informações, no entanto, é altamente exigida.
etapa 3
Quanto às deficiências desse método, aqui você pode designar um trabalho fora do IDE, que é familiar a muitos, com seus recursos que são ótimos na vida, como: codificação, compilação, depuração. E tudo isso é dito, "em uma garrafa". Além disso, conforme o projeto cresce, certas dificuldades começam a se manifestar quando os recursos de string de terceiros criados com a codificação ANSI começam a ser usados.
Passo 4
Se o projeto não contiver strings diretamente incluídas no código (embutidas no código), você pode mover todos os recursos de string para módulos separados e, em seguida, localizá-los para a codificação necessária. Felizmente, a rede está repleta de utilitários que alteram a codificação dos arquivos.
Etapa 5
Agora, sobre o uso de procedimentos de filtragem. A API do Windows contém funções para ajudá-lo a converter codificações ANSI e OEM entre si. Estes são OemToChar e CharToOem. Eles são usados para exibir texto com substituição de fragmentos Writeln ('texto'); nos seguintes fragmentos:
procedimento MyWriteln (const S: string);
var
NewStr: string;
começar
SetLengtn (NewStr, Comprimento (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
fim;
MyWriteln ('texto');
Etapa 6
Quanto às desvantagens deste método, é a impossibilidade de usar a sintaxe de Write estendida e desordenar o texto da aplicação com uma chamada para filtrar procedimentos. Quando você precisa Russify um aplicativo concluído com várias chamadas para Write, isso se torna um problema sério.
Etapa 7
Por último, mas não menos importante, altere a página de código do console usando a API do Windows. Este método está documentado, a propósito. O único problema é que o recurso não funciona no Windows 95 e 98. Embora se o aplicativo for executado exclusivamente no Windows NT, neste caso, você pode usar a função SetConsoleOutputCP (866).