Existem situações onde precisamos adaptar um programa às características de um determinado idioma ou de uma região. Isso é chamado de “localizar” um programa. A linguagem C utiliza o arquivo de cabeçalho locale.h para implementar a chamada “localização”.
Veremos dois exemplos para permitir suporte a língua portuguesa. A utilização da biblioteca locale.h e da função setlocale() configurada adequadamente vai garantir que caracteres como “ç” e acentuação gráficas sejam exibidos normalmente em nossos programas.
Vamos aos exemplos práticos:
Vejamos um primeiro exemplo onde a localidade padrão do sistema operacional não está definida no código, por este motivo acontecem erros ao exibir caracteres especiais e acentuação gráfica. Veja imagem abaixo:
Perceba, na imagem acima, a forma como são exibidos os caracteres especiais e acentuação gráfica. Agora, configuraremos o idioma para português, utilizando a função:
setlocale(LC_ALL, “Portuguese”);
Veja imagem a seguir:
Conhecendo a função setlocale do arquivo de cabeçalho locale.h
Utilizamos a função setlocale() para fazer a adaptação do programa ao idioma desejado.
Esta adaptação trata de informações sobre a apresentação de alguns dados, tais como:
– Caracteres e acentuação específicos do idioma.
– Formato de números e valores monetários
– Formatação de data e hora
Um programa escrito em C é iniciado com a localização-padrão “neutra” de acordo com o padrão ISO. Esta localização contém informações mínimas a fim de proporcionar uma execução consistente independente do ambiente.
A função setlocale() pode ser usada para modificar essa localização para outra desejada e que seja adequada ao idioma usado no programa.
Sintaxe:
setlocale(int categoria, const char *local)
onde:
categoria é a categoria a ser modificada ou consultada.
local é uma string que vai corresponder a uma localidade que será atribuída a uma categoria representada pelo argumento categoria.
Para utilizar a localização especificada para o idioma português usamos a função setlocale() da seguinte forma:
setlocale(LC_ALL, “Portuguese”);, onde LC_ALL faz referência à todos os aspectos da localização. Como a função foi usada com a string “Portuguese” a localização foi configurada como português.
Outra opção é utilizar a localidade especificada pelo sistema operacional. Para isso usamos a função setlocale() da seguinte forma:
set locale(LC_ALL,””);, onde LC_ALL faz referência à todos os aspectos da localização. Como a função foi usada com a string “” a localização foi configurada com o padrão do sistema operacional.
Esta opção é interessante pois é mais portável já que funciona bem em qualquer sistema operacional.
Entre no grupo do Telegram para receber as dicas de cursos que estão gratuitos e ainda ficar por dentro das promoções da Udemy.
Clique na imagem para acessar o grupo.
Clique aqui para curtir a página Programação Prática no Facebook.
Clique aqui para inscrever-se no Canal Programação Prática no YouTube.
Até a próxima postagem! 🙂
0 comentários