Eu usei wget
pela primeira vez depois de instalar o Lion OS X e notei que o wget foi localizado no meu idioma nativo. A execução do set
comando no terminal mostrou que minha LANG
variável representa meu idioma local. Onde posso alterar ou wget
ignorar essa configuração?
atualizar
Aqui está o que locale
me dá:
LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=
Portanto, toda a saída de não parâmetros (como prompts e mensagens de depuração) está em lituano. Esse é o meu problema. Eu gostaria de voltar para o inglês.
Estou usando zsh
como meu shell de login.
wget
? E o que élocale
exibido e é o mesmo que você espera da sua seleção de idioma no painel de preferências do sistema Idioma e texto ?Respostas:
Por padrão, o Terminal define as variáveis de ambiente do código do idioma para corresponder aos formatos de idioma / hora / data / número atualmente selecionados que o Terminal está usando, que é selecionado via
(Esse é o nome no Lion. Nos sistemas anteriores, o nome exato do painel de preferências pode variar.)
Uma solução temporária é arrastar o inglês para o topo da lista de idiomas, abrir o Terminal e mover o lituano de volta ao topo. Então, apenas o Terminal estará em inglês. No entanto, ele será redefinido para lituano se você sair e reiniciar o Terminal.
Uma abordagem persistente é dizer ao Terminal para não definir as variáveis de ambiente da localidade, desativando
Em seguida, o código do idioma será "C" sem o idioma especificado e a maioria dos programas será o inglês.
Observe que desativar isso significa que alguns programas não saberão qual Terminal de codificação de caracteres está usando e assumirão que é apenas ASCII ou ISO-Latin-1. Portanto, se o Terminal estiver usando UTF-8 (o padrão), esses programas podem ou não se comportar conforme desejado.
Se isso é principalmente
wget
, recomendo que você faça uma cópia do perfil de configurações padrão, desative a configuração de localidade no seu perfil personalizado e use somente esse perfil ao usá-wget
lo, para que você possa continuar usando o UTF-8 com suporte total ao usar outros programas, usando as configurações padrão.Como já mencionado, você também pode substituir as configurações iniciais de localidade fornecidas pelo Terminal em um script de inicialização do shell. Para zsh, coloque-o em ~ / .zshrc. Para o bash, use ~ / .bashrc (e se você ainda não tiver um, crie um ~ / .bash_profile que execute ~ / .bashrc).
Consulte x-man-page: // 1 / locale para obter mais informações sobre cada um dos valores do ambiente de localidade.
No entanto, se você o definisse apenas
unset LANG
como "C", isso normalmente se aplicaria a todos os seus shells e programas, enquanto na maioria das vezes você provavelmente deseja usar o UTF-8 e o Terminal definiu as variáveis de localidade para corresponder, para obter o mais alto grau de cooperação, fidelidade e funcionalidade.Portanto, se você seguir esse caminho, sugiro que escreva um código para editar, em vez de substituir, os valores iniciais, para preservar as informações de codificação ("UTF-8") e simplesmente forçar o idioma para inglês, em vez de definir as variáveis para "C".
Por exemplo, isso funciona no zsh e no bash:
Quando
LANG="lt_LT.UTF-8"
, isso mudará paraLANG="en_US.UTF-8"
. Não tenhowget
disponível para testar isso, mas isso deve ser suficiente.Fazer isso dessa maneira significa que, se você alterar a preferência de codificação de caracteres no Terminal, não a substituirá no script de inicialização do shell.
fonte
LANG
comando redefinition:echo ${LANG/*./en_US.}
substitui o nome da cultura atual poren_US
qualquer que seja; trabalha embash
,ksh
,zsh
.Está definido aqui ...
Se você quiser mais ou menos opções no menu suspenso, vá para a guia Codificações para visualizar ainda mais a recompensa.
fonte
LANG=
e os outros valores serão todos padrão"C"
.Resolvi esse problema definindo o idioma no meu arquivo .profile, carregado sempre que inicio um terminal.
fonte
LC_ALL
substituiLANG
, portanto, seu primeiro comando não terá efeito.POSIX
é equivalenteC
e que não lida com o Unicode.Baseado mais na experiência do Linux, se você não deseja alterar completamente sua localização com LC_LANG, mas gostaria de ter apenas mensagens do sistema em inglês, basta definir
fonte
LC_MESSAGES
variável que controla em qual idioma as mensagens devem ser exibidas (se instaladas).Usando um servidor debian em francês e um cliente macsox bash, "apenas" tive que adicionar isso ao meu .bash_profile no diretório de usuários do macosx:
Resolvido.
fonte
As outras respostas estão corretas, ou seja, sobre a
Terminal
configuração das variáveis de ambiente locale definidas na inicialização e no uso dos shell/etc/profile
. No entanto, existe outra maneira que vale a pena entender - especialmente se o "problema" ocorrer devido a umssh
login remoto .O OpenSSH (conforme usado no Linux, BSD e macOS) pode enviar variáveis de ambiente do ambiente do cliente para o shell que o servidor inicia. Isso é feito apenas se o cliente estiver configurado para enviá-los e o servidor estiver configurado para aceitá-los. O cliente (
~/.ssh/config
) precisaria ter:e o servidor (
/etc/ssh/sshd_config
) precisaria de:Se os dois estiverem no local, o local do cliente será propagado para o shell de login no servidor ssh:
A configuração necessária do servidor não existe por padrão no Snow Leopard ; está lá na serra . Lembre-se de reiniciar o servidor SSH após modificar
/etc/sshd_config
!!!fonte