Como adiciono código de idioma ao servidor ubuntu?

178

Atualmente, tenho esses locais:

locale -a

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

Como posso instalar a ru_RUlocalidade no meu servidor?

Silver Light
fonte

Respostas:

254
  1. Verifique quais locais são suportados:

    locale -a
    
  2. Adicione os códigos de idioma que você deseja (por exemplo ru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. Execute este comando de atualização:

    sudo update-locale 
    
PocketSam
fonte
26
... então corra #sudo update-locale
Justin Force
3
O que você faz se não for suportado?
Kimble
4
Poderia, por favor, expandir por que são ambos ru_RUe ru_RU.UTF-8necessários? Eu não sei muito sobre localidades.
Sopalajo de Arrierez 03/03
15
Se você trabalha com php5-fpm você vai precisarsudo service php5-fpm restart
Stalinko
3
Era exatamente isso que eu precisava, mas tive que reiniciar o Apache para fazê-lo funcionar ... obrigado!
Jabari
53

Eu iria por outro caminho, que é o IMO mais adequado ao estilo Ubuntu. Use os pacotes fornecidos . Existem pacotes para cada localidade e eles fazem todo o trabalho para você ... não há necessidade de editar arquivos / var, que eu sempre acreditei que não deveriam ser editados manualmente.

sudo apt-get install language-pack-XX

onde XX significa o código do idioma. Instalar um idioma também instalará todas as variantes específicas do país (por exemplo, instalar o language-pack-it instalará it_CH.utf8 e it_IT.utf8, a instalação do NL instalará nl_AW, nl_AW.utf8, nl_BE.utf8 e nl_NL.utf8 )

Palantir
fonte
Eu acho que essa é a melhor e mais maneira 'Ubuntu' de fazer isso
Luke Madhanga 13/03/2015
4
Mas gerar os códigos de idioma fornece coisas como formato de data localizado, separador decimal, conjuntos de caracteres etc. Os pacotes de idiomas também fornecem traduções, o que não é necessariamente a intenção.
Oskar Berggren
1
Concordo com Oskar. Ainda mais forte se você considerar que esta instalação é para um servidor - a maioria das interfaces estará em inglês de qualquer maneira.
igorsantos07
2
Eu tinha medo que isso também mudasse o local atual, mas não. Tudo está bem. Parece a melhor imagem. Eu particularmente não preciso de "traduções ou outras coisas", mas se eu usar especificamente um local por algum motivo, espero que esteja completo.
Balmipour
43
  1. verifique quais locais são suportados:

    less /usr/share/i18n/SUPPORTED
    
  2. Adicionar localidade à lista de gerados

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. Regenerar lista (ele invocará o código de idioma-gen ...)

     sudo dpkg-reconfigure locales
    
user123231
fonte
4
Eu tive que adicionar a segunda coluna: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local(UTF-8 ocorre duas vezes) no Ubuntu 15.04. Caso contrário, funciona.
Jfs #
16

Eu encontrei o locale-gen para ser seu amigo. como em (adicionando hebrew utf8, por exemplo):

root@world:~# locale-gen he_IL.UTF-8

você pode até refazê-lo assim:

root@world:~# dpkg-reconfigure locales

e verifique se você fez o bem:

root@world:~# locale -a

Achei essa solução muito mais simples do que adicionar coisas a arquivos de texto, mesmo que seja o que faz.

boazr
fonte
6
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local

Recebo a seguinte mensagem no ponto 3: "Erro: entrada incorreta 'ru_RU.UTF8'"

Este trabalho para mim:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
user123
fonte
Isso funcionou para mim. No meu caso, eu tive esse erro de entrada incorreto para localidades en_GB. Atualizei meu /var/lib/locales/supported.d/mintlocalearquivo para conter as linhas en_GB UTF-8e en_GB.UTF-8 UTF-8(o UTF-8 extra estava ausente).
Samir Aguiar
4

Use pacotes de idiomas do Ubuntu. Todos os idiomas suportados estão disponíveis nos repositórios padrão:

apt-cache search language-pack

Um exemplo completo de alternância de localidade na versão Ubuntu (servidor):

jani@example:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Todos os locais disponíveis (isto é, já instalados) podem ser listados com:

locale -a

Meu local atual é en_IE:

jani@example:~$ locale
LANG=en_IE.UTF-8
LANGUAGE=
LC_CTYPE="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_COLLATE="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="en_IE.UTF-8"
LC_NAME="en_IE.UTF-8"
LC_ADDRESS="en_IE.UTF-8"
LC_TELEPHONE="en_IE.UTF-8"
LC_MEASUREMENT="en_IE.UTF-8"
LC_IDENTIFICATION="en_IE.UTF-8"
LC_ALL=
jani@example:~$ date
Sat Nov  1 15:36:51 UTC 2014
jani@example:~$

Como eu não tinha ru locais, tenho que instalar o pacote de idiomas ru:

jani@example:~$ sudo apt-get -y install language-pack-ru
[..]
Generating locales...
  ru_RU.UTF-8... done
  ru_UA.UTF-8... done
Generation complete.
jani@example:~$ 

Agora os ru locais estão disponíveis. O código do idioma padrão do sistema é definido editando /etc/default/locale:

jani@example:~$ sudo vi /etc/default/locale
# Created by cloud-init v. 0.7.5 on Mon, 27 Oct 2014 18:46:13 +0000
LANG="ru_RU.UTF-8"
LC_MESSAGES=POSIX
jani@example:~$

Faça login novamente e verifique seu novo local:

jani@example:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
jani@example:~$ date
Сб. нояб.  1 15:43:45 UTC 2014
jani@example:~$ 
user272735
fonte
2

Modifique /etc/locale.gen, descomente ou adicione os códigos de idioma que você deseja gerar. Então corra sudo locale-gen.

Você pode verificar se os códigos de idioma foram adicionados locale -a, o que mostrará todos os códigos de idioma.

caçar
fonte
ah, meu locale-gen criou um monte de localidades, ignorando o arquivo locale.gen. Portanto, use este conselho com cuidado.
Dzenly
0
  1. Verifique quais localidades já são suportadas em sua distribuição. Abra ou cato arquivo /usr/share/i18n/SUPPORTEDe copie o código do idioma desejado a ser adicionado.
  2. no terminal, entre sudo locale-gen locale_name.

    Por exemplo sudo locale-gen de_DE.iso885915@euro

  3. entrar sudo update-locale

  4. Verifique se o código do idioma está instalado com locale -a

BugShotGG
fonte
0

Não foi possível comentar, por isso tenho que adicionar isso como resposta.

Eu precisava adicionar um tipo de local 'especial' sr_RS.utf8@latin no Ubuntu.

Comando:

sudo locale-gen sr_RS.utf8@latin

não adiciona o @latin às localidades disponíveis. Para ter sucesso, o comando deve ficar assim:

sudo locale-gen [email protected]

O comando:

sudo locale -a

agora mostra:

sr_RS
sr_RS@latin
sr_RS.utf8
sr_RS.utf8@latin

Preste atenção à diferença de sintaxe entre o resultado locale -ae a maneira como ele é adicionado pelos locale-gencomandos.

Milan Oparnica
fonte
-2

Fiz as coisas de maneira semelhante para aplicar todo o sistema de localidade sem reiniciar ou ter que sair.

Primeiro, baixe o pacote de idiomas:

sudo apt-get install language-pack-ru-base

Em seguida, verifique quais versões são suportadas:

less /usr/share/i18n/SUPPORTED | grep ru_RU

Agora, aplique o resultado (quase sempre use a versão UTF-8 para praticamente qualquer idioma!):

echo 'ru_RU.UTF-8 UTF-8' | sudo tee /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

Por fim, atualize o arquivo padrão, origine-o e pronto:

echo 'LANG=ru_RU.UTF-8' | sudo tee /etc/default/locale

aplique as alterações ao sistema:

. /etc/default/locale
LANGUAGE=ru_RU.UTF-8

e verifique seus resultados:

locale
mchid
fonte
Nota: Se você estiver executando o Ubuntu normal e não o servidor Ubuntu, as alterações não serão transferidas para além do console (se você decidir abrir uma nova guia ou fechar o terminal) até depois da próxima vez que efetuar o login. No entanto, ao usar o servidor Ubuntu, você normalmente precisa entrar para abrir um novo console de qualquer maneira, para que não importe.
Mclid
Esta pergunta é tagget com servidor . E quem e por que votou contra este, por favor, explique.
Nikos Alexandris