Como usar o i18n.tr nos projetos do Ubuntu Touch

5

Eu tenho usado i18n.tr por um tempo em meus projetos Ubuntu-Touch . Eu sei o que é essa função, mas não sei como adicionar uma tradução ao meu projeto.

Onde devo colocar meu arquivo de tradução? Com qual nome? Como deve o seu conteúdo ser escrito? Como devo conectá-lo ao meu aplicativo? Como faço para testá-lo com o qmlscene?

    
por George Sofianos 22.09.2013 / 13:18

2 respostas

2

Dê uma olhada no código TouchWriter e especialmente no README, onde todos os comandos necessários são fornecidos.

Resumo rápido

  • Você precisa vincular o domínio de texto antes de usar o gettext. Em C ++ você pode fazer assim:

    bindtextdomain("domainname", "somedir");
    textdomain("domainname");
    

    Em Qml, você provavelmente pode fazer algo assim:

    i18n.bindtextdomain("domainname", "somedir");
    i18n.domain = "domainname";
    

    Certifique-se de fazer isso antes de 18n.tr ser usado.

  • Para gerar arquivos .pot template e source .po , use estes comandos:

    xgettext -C --qt --keyword=tr -p somedir -o messages.pot
    msginit -i somedir/messages.pot -o somedir/somelanguage.po
    

    (substitua somedir pelo diretório ao qual seu domínio está vinculado e somelanguage com o idioma para o qual você deseja traduzir).

  • Para gerar arquivos .mo a partir dos arquivos de origem .po , use o comando msgfmt po-file -o mo-file .

  • Os arquivos .mo compilados devem ser colocados dentro de um diretório ao qual você ligou o domínio de texto, mais especificamente em

    somedir/somelanguage/LC_MESSAGES/domainname.mo
    

    (substitua somedir , somelanguage e domainname pelos seus valores).

por Dmitry Shachnev 24.09.2013 / 05:40
-1

A melhor resposta parece estar no documento. link

Parece ser uma função que traduz a palavra passada para o idioma do usuário.

    
por J3RN 23.09.2013 / 22:20