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?

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 
    

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 )


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
    

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.


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

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:~$ 

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.


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


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 sr_RS@latin.utf8

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.


-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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.