Rocky Linux / Como alterar o idioma e o locale do sistema

No Rocky Linux, use localectl para verificar ou alterar o idioma e o locale (conjunto de configurações regionais) de todo o sistema. Se o locale coreano não estiver disponível, instale glibc-langpack-ko, execute localectl set-locale LANG=ko_KR.UTF-8 e, em seguida, saia e inicie uma nova sessão de login.

sudo dnf install glibc-langpack-ko
sudo localectl set-locale LANG=ko_KR.UTF-8

Um locale controla mais do que mensagens traduzidas. Esse conjunto de configurações também pode afetar formatos de data e número, regras de ordenação e codificação de caracteres. Se logs consistentes e saída de automação forem mais importantes do que mensagens localizadas, considere manter C.UTF-8 ou en_US.UTF-8 em vez de alterar o servidor para coreano.

Verifique o idioma e o locale atuais

localectl status
locale

localectl status exibe o locale do sistema e o mapa de teclas do console. O comando locale mostra os valores realmente aplicados à sessão de shell atual, incluindo LANG, LC_TIME e LC_MESSAGES.

Uma sessão de login existente pode reter suas antigas variáveis de ambiente após a alteração da configuração do sistema. Verifique ambos os comandos ao confirmar se uma alteração entrou em vigor.

Consulte os locales disponíveis

localectl list-locales
locale -a

Se a lista não contiver o equivalente a ko_KR.UTF-8, instale o pacote de idioma coreano.

sudo dnf install glibc-langpack-ko

Para locales em inglês, instale glibc-langpack-en quando necessário. A disponibilidade de pacotes pode variar com a versão do Rocky Linux e os repositórios habilitados, então verifique o pacote antes de instalá-lo.

dnf info glibc-langpack-ko
dnf provides '*/ko_KR*'

Altere o idioma padrão do sistema

Defina o locale do sistema como coreano

sudo localectl set-locale LANG=ko_KR.UTF-8

localectl gerencia o locale do sistema e normalmente grava a configuração em /etc/locale.conf. As variáveis suportadas nesse arquivo estão documentadas no manual de locale.conf do systemd.

Use inglês ou um locale UTF-8 neutro

sudo localectl set-locale LANG=en_US.UTF-8

Um locale em inglês pode facilitar a solução de problemas quando a documentação e as buscas em logs usam mensagens de erro nesse idioma. Se o ambiente instalado oferecer suporte, o locale neutro de idioma C.UTF-8 também é útil para servidores de automação.

Verifique se a alteração está ativa

Saia e entre novamente, ou abra uma nova sessão SSH, antes de verificar o resultado.

localectl status
locale
printf '%s\n' "$LANG"

Normalmente, não é necessário reiniciar. No entanto, um serviço em execução pode manter o ambiente que recebeu ao iniciar. Se o locale de um serviço for importante, inspecione a configuração do ambiente do systemd e reinicie o serviço com segurança quando necessário.

Altere o idioma apenas para o terminal atual

Defina uma variável de ambiente para alterar o locale para o shell atual e seus processos filhos sem alterar todo o sistema.

export LANG=ko_KR.UTF-8

Para aplicar um locale a apenas um comando, coloque a atribuição da variável antes do comando.

LANG=C.UTF-8 dnf info bash

Essas alterações desaparecem quando o shell é encerrado. Se um script exigir mensagens, ordenação ou formatação previsíveis, defina o locale necessário explicitamente no script.

Entenda a precedência de LANG e LC_*

Variável Propósito Consideração importante
LANG Locale padrão quando uma variável específica de categoria não está definida Este valor é suficiente para a maioria das alterações de idioma do sistema.
LC_MESSAGES Idioma usado para mensagens do programa Ele pode alterar mensagens enquanto preserva outros formatos de data e número.
LC_TIME Representação de data e hora Scripts podem falhar ao analisar a saída de data localizada.
LC_ALL Tem precedência sobre todas as outras variáveis de locale É útil para diagnósticos temporários. Não configure LC_ALL em /etc/locale.conf, que não aceita essa variável.

Se LC_ALL estiver definido, alterar LANG pode não alterar o resultado.

env | grep -E '^(LANG|LC_)'

Corrija a exibição incorreta de caracteres coreanos

  • Confirme que o locale UTF-8 necessário aparece em locale -a.
  • Verifique se o cliente SSH e o emulador de terminal usam UTF-8.
  • Certifique-se de que a fonte selecionada contém glifos coreanos.
  • Verifique se o aplicativo possui sua própria configuração de idioma ou codificação.
  • Verifique se scripts e arquivos de dados estão realmente salvos como UTF-8.

O suporte ao locale e o suporte da fonte são questões diferentes. Mesmo com um locale coreano no sistema, o texto coreano pode aparecer como caixas vazias se a fonte do terminal não tiver os glifos necessários.

Perguntas frequentes

Por que o idioma do shell atual não mudou após executar localectl?

Um shell existente mantém as variáveis de ambiente que recebeu ao fazer login. Faça logout e login novamente, ou inicie uma nova conexão SSH, e então verifique o resultado com locale.

Todo servidor deve usar um locale coreano no sistema?

Depende da equipe de operações e dos requisitos de automação. Um locale em inglês ou C.UTF-8 pode ser mais conveniente quando você procura mensagens de erro em inglês ou precisa de uma saída de script previsível.

Posso executar apenas um comando em inglês?

Sim. Prefixe o comando com uma atribuição de locale, como LANG=C.UTF-8 COMMAND. Use locale -a para confirmar os nomes exatos dos locales instalados no sistema.

Alterar o locale também altera o layout do teclado?

Não. O locale de idioma e o layout de teclado do console são configurações separadas. Verifique ambos em localectl status. O layout do teclado em um terminal SSH remoto normalmente é controlado pelo sistema operacional do cliente.

Resumo

Instale o pacote de idioma necessário e execute localectl set-locale LANG=ko_KR.UTF-8 para alterar o locale padrão do Rocky Linux para coreano. Verifique o resultado em uma nova sessão de login com localectl status e locale.

Em servidores de produção, escolha um locale somente após considerar o idioma das mensagens, formatos de data e número, regras de ordenação e comportamento de automação. A documentação da Red Hat sobre a configuração do locale do sistema descreve o procedimento subjacente usado pelos sistemas compatíveis com Rocky Linux.