Página seguinte Página anterior Índice

4. Como extrair as cadeias de caracteres marcadas

Foi, então, criado um código em C com as marcações para que o programa seja traduzido. Mas, o que traduzir? Se rodado, imediatamente, a saída do programa será a mesma que a do código não internacionalizado.

É necessário, nesse momento, criar-se um arquivo com as referências:

   [jorge@Nexus artigos]$ xgettext -a hello_int.c 

Após a execução desse comando, é gerado o arquivo "messages.po". Renomeei-o para hello_int.po, para uma maior facilidade de trabalho.

   [jorge@Nexus artigos]$ ls -l *.po 
   -rw-rw-r-- 1 jorge jorge 629 dez 23 19:45 hello_int.po 
   [jorge@Nexus artigos]$ cat hello_int.po
   # SOME DESCRIPTIVE TITLE. 
   # Copyright (C) YEAR Free Software Foundation, Inc. 
   # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. 
   # 
   #, fuzzy 
   msgid "" 
   msgstr "" 
   "Project-Id-Version: PACKAGE VERSION\n" 
   "POT-Creation-Date: 1998-12-23 19:45-0200\n" 
   "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
   "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
   "Language-Team: LANGUAGE <LL@li.org>\n" 
   "MIME-Version: 1.0\n" 
   "Content-Type: text/plain; charset=CHARSET\n" 
   "Content-Transfer-Encoding: ENCODING\n"

   #: hello_int.c:6 hello_int.c:7 
   msgid "hello" 
   msgstr ""

   #: hello_int.c:6 
   msgid "/usr/share/locale" 
   msgstr ""

   #: hello_int.c:8 
   msgid "Hello World!" 
   msgstr ""

Deve-se observar que, além de retirar os textos marcados do programa, a saída padrão do comando xgettext inclui o nome do arquivo e a posição da mensagem no arquivo:

   #: hello_int.c:8

O texto que segue essa linha refere-se à(s) cadeia(s) de caracteres encontrada(s) na linha 8 do arquivo hello_int.c. Essa referência ajuda o tradutor a contextualizar a tradução e a procurar no código fonte do programa por quaisquer observações do autor do mesmo (como, por exemplo, solicitações para a não modificação do código ou até mesmo a não tradução de determinada mensagem).


Página seguinte Página anterior Índice