Como encontrar a linguagem do sistema dentro do Python?

3

Existe alguma maneira, no Python 3, de descobrir a linguagem usada pelo sistema?
Até mesmo um complicado, como: ler de um arquivo em um diretório sorrateiro e encontrar a string 'ENG' ou 'FRE' dentro do conteúdo do arquivo…

    
por joH1 12.07.2016 / 00:17

1 resposta

4

Os sistemas Unix não têm realmente uma "linguagem de sistema". O Unix é um sistema multiusuário e cada usuário é livre para escolher seu idioma preferido. O mais próximo de uma linguagem de sistema é o idioma padrão que os usuários obtêm se não configurarem sua conta. A localização dessa configuração varia de distribuição para distribuição; é captado em algum momento durante o processo de login.

Na maioria dos casos, o que é relevante não é o "idioma do sistema", mas a linguagem que o usuário deseja que o aplicativo use. As preferências de idioma são expressas por meio das configurações de localidade . A configuração que determina o idioma que os aplicativos devem usar em sua interface do usuário é LC_MESSAGES . Há também configurações para a data, a moeda, etc. Essas configurações são transmitidas por variáveis de ambiente que geralmente são definidas quando o usuário efetua login a partir de algum arquivo dependente do sistema e do usuário.

Encontrar uma configuração de localidade é um pouco mais complicado do que ler a variável LC_MESSAGES , já que diversas variáveis entram em ação (consulte O que devo definir minha localidade e quais são as implicações de fazê-lo? ). Há uma função de biblioteca padrão para isso. Em Python, use locale.getlocale . Primeiro, você precisa ligar para setlocale para ativar o reconhecimento de localidade.

import locale
locale.setlocale(locale.LC_ALL, "")
message_language = locale.getlocale(locale.LC_MESSAGES)[0]
    
por 12.07.2016 / 01:43