Não é possível gerar en_US.UTF-8 Locale

6

Estou tentando definir minha localidade como en_US.UTF-8 sem sucesso. Com base em outras respostas na Internet, primeiro eu deveria gerar o local com

sudo locale-gen en_US.UTF-8

E, em seguida, aplique-o com

sudo dpkg-reconfigure locales

No entanto, executar locale-gen faz algo estranho:

user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
Generation complete.

Como você pode ver, ele nunca gera UTF-8, mas continua caindo para ISO-8859-1. Eu nunca consigo definir LC_ALL para en_US.UTF-8 , provavelmente porque não pode gerar.

Estou fazendo algo errado? Estou executando o Debian 8.1.

    
por Erik S 02.12.2015 / 13:18

2 respostas

16

Você tentou aplicar uma receita para o Ubuntu no Debian. Isso geralmente funciona, mas neste caso específico não funciona.

O Ubuntu é derivado do Debian e não muda muito além do instalador e da GUI. O comando locale-gen é uma daquelas poucas outras coisas que ele altera. Eu não sei porque.

Sob o comando Debian, o comando locale-gen não recebe argumentos e regenera as definições de código de idioma compiladas de acordo com a lista configurada de localidades. Para modificar a seleção de localidades que você deseja usar, edite o arquivo /etc/locale.gen e execute o comando locale-gen . Como alternativa, execute dpkg-reconfigure locales como root, selecione as localidades adicionais que você deseja (e desmarque aquelas que não deseja) e pressione OK.

No Ubuntu, se você executar o comando locale-gen sem argumentos, ele regenera as definições de código de idioma compiladas de acordo com a lista configurada de localidades. Mas se você passar alguns argumentos, eles serão adicionados à lista e gerados imediatamente. A lista de localidades é mantida em /var/lib/locales/supported.d/local . A execução de dpkg-reconfigure locales apenas regenera os códigos do idioma compilados sem lhe dar a oportunidade de modificar a seleção.

Em resumo, para adicionar en_US.UTF-8 à lista de localidades utilizáveis:

  • Debian, interativo: dpkg-reconfigure locales
  • Debian, automatizado: sed -i 's/^# *\(en_US.UTF-8\)//' /etc/locale.gen && locale-gen
  • Ubuntu, automatizado: locale-gen en_US.UTF-8
por 03.12.2015 / 02:13
4

Depois de ler o arquivo man de locale-gen em vez de confiar cegamente na Internet, descobri que locale-gen realmente usa as localidades para gerar a partir de /etc/locale.gen . Descomentando en_US.UTF-8 , consegui gerá-lo.

    
por 02.12.2015 / 13:24

Tags