Idioma de configuração de problemas

4

Estou realmente lutando com esse problema de linguagem.

Eu fui para System->Administration->Language Support e movi o turco (Türkçe) para o topo. Então eu cliquei em "Aplicar todo o sistema" e reiniciei.

No entanto, após a reinicialização, echo $LANG reportou en_US.utf8 , então fiz o logout e retornei - e agora ele relata tr_CY.utf8 .

Agora aqui está o problema:

  • Eu tenho um arquivo 'xxx.po' em /usr/share/locale/tr_CY/LC_MESSAGES
  • Eu corro o seguinte código Python:

    import gettext
    
    
    gettext.bindtextdomain("xxx","/usr/share/locale")
    gettext.textdomain("xxx")
    tr = gettext.translation("xxx",
                             "/usr/share/locale",
                             ["tr_CY"],
                             fallback=True)
    
    
    print tr.gettext("sample")
    

Embora 'amostra' deva ser traduzida, não é.

O que estou fazendo de errado?

    
por Nathan Osman 06.11.2010 / 22:22

1 resposta

3
  

Eu tenho um arquivo 'xxx.po' em / usr / share / locale / tr_CY / LC_MESSAGES

Os arquivos em /usr/share/locale/<LANG>/LC_MESSAGES precisam estar em formato binário (extensão '.mo').

Você consegue isso executando msgfmt no arquivo '.po':

msgfmt -c -v -o OUTPUT.mo LANG.po

  • -c verifica o formato do arquivo po,
  • -v é para saída detalhada,
  • -o OUTPUT.mo especifica o arquivo de saída, onde OUTPUT deve ser o nome que você usou em 'bindtextdomain' e 'textdomain',
  • LANG.po o arquivo de tradução.
por htorque 06.11.2010 / 23:42