Difference between revisions of "GettextParaTradutores"

From The Battle for Wesnoth Wiki
(Created page with 'Este arquivo está em processo de tradução para o português brasileiro. Edite à vontade. == Gettext para tradutores == A tradução de Battle for Wesnoth é dividida em a…')
 
(Enviando as traduções)
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
Este arquivo está em processo de tradução para o português brasileiro. Edite à vontade.
 
Este arquivo está em processo de tradução para o português brasileiro. Edite à vontade.
  
== Gettext para tradutores  ==
+
== Os text-domains ==
 
+
A tradução de Battle for Wesnoth é dividida em alguns domínios-texto (''text-domain''), que na estrutura de diretórios forma uma pasta, onde os arquivos com as traduções para os mais diversos idiomas (cujo nome do arquivo é a abreviatura da língua) estão:
A tradução de Battle for Wesnoth é dividida em alguns domínios-texto (''text-domain''):
 
 
* wesnoth
 
* wesnoth
 
* wesnoth-editor
 
* wesnoth-editor
 
* wesnoth-lib (contém expressões (strings) compartilhados pelo jogo e pelo editor)
 
* wesnoth-lib (contém expressões (strings) compartilhados pelo jogo e pelo editor)
* mais um domínio-texto para cada campanha. Os nomes desses domínios-texto são constituídos pela palavra "wesnoth" mais a abreviação comum da campanha em inglês (wesnoth-ei, wesnoth-httt, wesnoth-trow, wesnoth-tb, wesnoth-tsg e wesnoth-utbs).
+
* além de mais um domínio-texto para cada campanha do jogo. Os nomes desses domínios-texto são constituídos pela palavra "wesnoth" mais a abreviação comum da campanha em inglês (wesnoth-ei, wesnoth-httt, wesnoth-trow, wesnoth-tb, wesnoth-tsg, wesnoth-utbs, etc.)
 +
 
 +
== Pegando os fontes ==
 +
O código-fonte do jogo está disponível para download na página inicial, ou diretamente: [[Download]]. Baixe a versão mais atual (estável ou desenvolvimento) para o seu sistema operacional.
 +
 
 +
Os arquivos de tradução estão dentro da pasto cujo nome é "po". Dentro dessa pasta, estão os diretórios que foram citados na seção acima (wesnoth, wesnoth-editor, wesnoth-lib, wesnoth-httt, wesnoth-low...). E dentro de cada uma dessas pastas estão os arquivos po, um para cada uma das línguas suportadas no jogo.
  
 +
É importante notar que essa estrutura de diretórios (na pasta "po") que está nos fontes (uma pasta para cada text-domain, e dentro os arquivos po, cujo nome é a abreviatura do idioma) não é a mesma da estrutura de traduções (na pasta "translations") do jogo instalado (onde há uma pasta para cada idioma, e dentro os arquivos po, cujo nome é o text-domain).
 +
 +
== Os arquivos do repositório ==
 
Usaremos a tradução Sueca (sv) e o domínio ''wesnoth'' como exemplo nessa página.
 
Usaremos a tradução Sueca (sv) e o domínio ''wesnoth'' como exemplo nessa página.
 
Existem três importantes arquivos para cada domínio-texto:
 
Existem três importantes arquivos para cada domínio-texto:
Line 15: Line 22:
 
* ''{translations_dir}/sv/LC_MESSAGES/wesnoth.gmo'', que é a versão binária do <lang>.po que o jogo irá usar por razões de eficácia. Esse arquivo não é encontrado no cvs, mas é criado durante a compilação do jogo.
 
* ''{translations_dir}/sv/LC_MESSAGES/wesnoth.gmo'', que é a versão binária do <lang>.po que o jogo irá usar por razões de eficácia. Esse arquivo não é encontrado no cvs, mas é criado durante a compilação do jogo.
  
The first of these files, we update every once in a while, when there is new or modified text,
+
Entretanto, os tradutores não precisam se preocupar diretamente com isso.
for instance when a new campaign scenario hits the SVN.
 
  
Then, ''msgmerge'' is used to merge this new "state of the game strings" with your current translations, and generate a new, up-to-date, ''sv.po''.
+
=== Atualização de arquivos no repositório ===
  
Then, a tool called ''msgfmt'' is called, which generates a new ''wesnoth.gmo'' file from your ''wesnoth.po'' file, which will be used by the game once installed.
+
O primeiro desses arquivos podemos atualizar de vez em quando, quando há um texto novo ou modificado. Como, por exemplo, quando um cenário de nova campanha atinge o repositório.
  
"make -C po update-po" does these three steps in one pass.
+
Então, ''msgmerge'' é usado para fundir esse novo "estado das strings do jogo" com suas traduções correspondetes, e gerando um novo, e ataulizado, ''sv.po''.
  
That was for the "Big Picture".
+
Após, uma ferramenta chamada ''msgfmt'' é rodada, que gera um novo arquivo ''wesnoth.gmo'' a partir do arquivo ''wesnoth.po'', que será usado após o jogo ser instalado.
But you really just need to be concerned with the po file:
 
translating new strings, checking "fuzzy" entries.
 
We can handle the administrative tasks of updating etc.
 
You really don't need to bother with any of these commands, unless you want to compile gmo files to check in-game.
 
  
Ivanovic is now responsible for integrating translations into Wesnoth, with the help of Torangan and ott.
+
"make -C po update-po" executa esses três passos de uma vez só.  
You should contact Ivanovic (crazy-ivanovic AT gmx DOT net), and he'll put them in the game.
 
  
When sending po files to a maintainer to be included in SVN, please create a zip or tar.gz/bz2 archive that you attach, rather than cutting and pasting the translations into an email. The translated strings are
+
Entretanto, como já mencionado, tais comandos são para os "cabeças", se assim podemos chamar os administradores da tradução. Os tradutores, na realidade, apenas precisam se preocupar com os arquivos PO: traduzir novas expressões e checar as "fuzzy". Assim, as tarefas administrativas ficam com os administradores. Você realmente não precisa se preocupar com nenhum desses comandos, a não ser que você queira compilar os arquivos gmo para checá-los no jogo.
very sensitive to formatting and the archive will also help distinguish which file is which when sending more than one po file.
 
  
== FAQ  ==
+
== Enviando as traduções ==
* What's a fuzzy string?
+
Ivanovic é o responsável, atualmente, pela integração entre as traduções de Wesnoth, com a ajuda de Torangan e Ott. Você pode contatar Ivanovic (crazy-ivanovic AT gmx DOT net), e ele colocará suas traduções no jogo. Entretanto, para facilitar o contato entre eles e os tradutores, cada um dos idiomas possui seu ''maintainer'', que intermedia essa relação. Atualmente (julho de 2019), o ''maintainer'' da tradução para o Português do Brasil é o Andrei Machado <i>(e-mail: andreisp.machado@yahoo.com)</i>. Assim, sempre que você terminar um arquivo PO (ou achar que ele está aceitável para o jogo), envie para ele, anexando em um e-mail, que ele enviará para o Ivanovic, e o arquivo entrará no jogo.
** It's a string calling for translator revision. For example, if an English string gets a small change and you run the ''msgmerge'' program, it will mark the translation of that string fuzzy. When we switched to gettext we marked all translations as fuzzy as lots of them were outdated.
+
 
* What are "Plural-forms"?
+
Quando mandar seus arquivos PO para o ''maintainer'' para serem incluídas no SVN, anexe-as ao e-mail, ao invés de copiar e colar as expressões no texto. As expressões são muito sensíveis à formatação, e o arquivo irá auxiliar a diferenciar qual arquivo é qual, quando forem mandados vários arquivos.
** Some languages have different word forms for different numbers of things (for example in English we have "1 thing" but "2 thing'''s'''"). The rules are different for different languages. You can find them [http://translate.sourceforge.net/wiki/l10n/pluralforms here].
 
* My language needs a different font to get displayed correctly.
 
** Wesnoth uses several different fonts, and the number is likely to grow with the support for new alphabets/writing systems. Right now we are using DejaVuSans (Roman and Cyrillic), FreeSans (Greek), sazanami-gothic (Japanese) and gkai00mp (Chinese). In the wesnoth/sv.po you will find a string containing the currently used fonts. By changing the order of fonts listed, you choose which font is preferred for your translations. A language using Greek letters would for instance translate that string with:
 
  msgid "DejaVuSans.ttf,FreeSans.ttf,sazanami-gothic.ttf,gkai00mp.ttf"
 
  msgstr "FreeSans.ttf,DejaVuSans.ttf,sazanami-gothic.ttf,gkai00mp.ttf"
 
Note that if a certain letter/glyph is not found in the first font listed, the second font will be scanned for it and so on.
 
* What should I do to insert a newline in a string?
 
** If you want to insert a newline in a string you need to include the pair of characters "". You can use normal newlines as you wish as they don't affect the translation.
 
* How do I use ' within a single-quote delimited string when translating text= in help screen texts?
 
** Add a backslash  before it.
 
* What should I do with strings like "Prefs section^General"?
 
** There are ambiguous strings which should be translated in a different way depending on where they appear. For example, we have "General" in the preferences as "General preferences" and we can also have "a General". These strings can have different translations for a given language, so we use "context" to solve this. The prefix only tries to give a hint about the string, and should be not translated, for example:
 
  msgid "Prefs section^General"
 
  msgstr "General"
 
* Who can I ask for further information?
 
** You can ask Ivanovic, Torangan, ott, Yann or Isaac in IRC (irc.freenode.net, #wesnoth or #wesnoth-dev).
 
If you don't like IRC, send a mail to crazy-ivanovic AT gmx DOT net, or pm him (ivanovic) at the forum.
 
* How do I quickly test PO file changes?
 
** When you modify a PO file, run "make update-gmo" in the main po directory to create a new MO file, then run "make install" there to install the new MO file.
 
** Then force cache rebuild. This is tricky -- if you only update MO files, the game may use a cached (i.e., old) version letting you wonder why it still displays the old translation. Either change game.cfg modification time, e.g. with "touch /usr/local/share/wesnoth/game.cfg", or delete the corresponding cache[s] in ~/.wesnoth/cache.
 
* The .po file in SVN has changed, how do I move over the translations I've made?
 
** If your file with additional translations is called old.po and the new file from SVN is called svn.po, create a new file called new.po by doing
 
  
  msgmerge -o new.po old.po svn.po
+
== FAQ ==
 +
* O que é uma "fuzzy string"?
 +
** É uma expressão (string) que foi marcada para revisão de tradução. Por exemplo, se foi feita uma pequena alteração e foi rodado o comando ''msgmerge'', ele irá marcar a tradução como "fuzzy". Quando o modelo de tradução foi mudado para gettext, todas as transações foram marcadas como "fuzzy". Além disso, a maioria dos editores (como o poEdit) tem como opção o próprio editor colocar a string como "fuzzy", caso ele não tenha certeza de alguma tradução.
  
The new file new.po will keep your translations from old.po as well as the new strings from svn.po, but check the result -- some translations will not be possible to move across if the original strings changed, these are kept as comments at the end of the file.
+
* O que são as "Plural-forms"?
 +
** Alguns idiomas (como o português) tem diferentes formas de palavra para diferentes números de coisas (por exemplo, em português nós temos "1 coisa", mas "2 coisa'''s'''"). As regras são diferentes para diferentes idiomas. Você pode achá-las [http://translate.sourceforge.net/wiki/l10n/pluralforms aqui].
  
* How to generate man files from wesnoth-man(current 1.3 trunk) .po files?
+
* O que eu faço para inserir uma nova linha numa expressão?
To create "real" manpages out of the po files you have to install a prog
+
** Se você quer inserir uma nova linha numa string, você precisa incluir duas aspas (""). Você pode usar normalmente novas linhas, sem afetar a tradução.
named "po4a" and run make update-po4a inside the maindir before running
 
make and make install. They are not automatically created out of po
 
files. With that command the files will be created and afterwards installed.
 
  
Note: At least 80% of the .po file must be translated for the creation of a man file
+
* Como eu uso ', uma vez que um apóstrofo delimita o início e fim de uma string no texto?
 +
** Adicione uma contrabarra antes dele (fica assim: \').
  
*Why ''svn diff'' is so huge? I have only made a small change to the .po file with poedit.
+
* O que eu faço com strings como "Prefs section^General"?
**When saving .po file poedit unwraps all strings. Usually, all .po files are wrapped at 80 characters so if you want smaller diffs and less merge conflicts you can execute the following commands each time after editing with poedit:
+
** Existem algumas expressões ambíguas que talvez precisem ser traduzidas de formas diferentes, dependendo do local onde é utilizada. Por exemplo, nós temos o "General" ("Geral") nas preferências, como em "General preferences" ("Preferências Gerais"), e nós também temos "a General" ("um General", uma unidade). Essas expressões podem ter diferentes traduções para cada linguagem, então nós usamos o contexto para resolver isso. O prefixo apenas tenta mostrar onde que a expressõa será usada, e não deve ser traduzido, por exemplo:
 +
  msgid "Prefs section^General"
 +
  msgstr "Gerais"
  
  msgattrib file.po > file.po1
+
* Com quem eu falo para maiores informações?
  mv file.po1 file.po
+
** Pode falar com Ivanovic, Torangan, ott, Yann ou Isaac no IRC (irc.freenode.net, #wesnoth or #wesnoth-dev). Se não gosta do IRC, mande um e-mail para crazy-ivanovic AT gmx DOT net, ou mande uma mensagem privada para ele (ivanovic) no fórum. Além disso, há um fórum para "Translations & Internationalization", onde há um tópico para a tradução para o português.
  
==  Tools  ==
+
* Como eu rapidamente testo as mudanças no arquivo PO?
 +
** Quando você modificar um arquivo PO, rode "make update-gmo" no diretório po para criar um novo arquivo MO, então rode o "make install" lá para instalar os novos arquivos MO. Caso esteja usando o poEdit, ele já cria o arquivo MO assim que você salva o arquivo PO.
 +
** Após, force a reconstrução do cache. This is tricky -- if you only update MO files, the game may use a cached (i.e., old) version letting you wonder why it still displays the old translation. Either change game.cfg modification time, e.g. with "touch /usr/local/share/wesnoth/game.cfg", or delete the corresponding cache[s] in ~/.wesnoth/cache.
 +
** É possível, também, substituir o arquivo MO que está na pasta do jogo instalado pelo novo arquivo MO.
  
There are several tools to work with .po files:
+
== Editores ==
* [http://userbase.kde.org/Lokalize Lokalize] (Unix KDE, intended to replace KBabel)
+
Existem várias ferramentas para se trabalhar com arquivos .po:
 +
* [http://userbase.kde.org/Lokalize Lokalize] (Unix KDE, substituto do KBabel)
 
* [http://i18n.kde.org/tools/kbabel/ KBabel] (Unix KDE)
 
* [http://i18n.kde.org/tools/kbabel/ KBabel] (Unix KDE)
 
* [http://gtranslator.sourceforge.net/ GTranslator] (Unix Gnome)
 
* [http://gtranslator.sourceforge.net/ GTranslator] (Unix Gnome)
* [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] (Multiplatform)
+
* [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] (Multiplataforma)
* [http://www.poedit.net/ poEdit] (Multiplatform)
+
* [http://www.poedit.net/ poEdit] (Multiplataforma)
* [http://www.gnu.org/software/emacs/emacs.html Emacs with po-mode] (Multiplatform)
+
* [http://www.gnu.org/software/emacs/emacs.html Emacs with po-mode] (Multiplataforma)
* [http://www.vim.org/ Vim] with [http://www.vim.org/scripts/script.php?script_id=695 PO plug-in] (Multiplatform)
+
* [http://www.vim.org/ Vim] with [http://www.vim.org/scripts/script.php?script_id=695 PO plug-in] (Multiplataforma)
  
Of course, you can edit po files with any UTF-8 capable text editor, but the tools listed above have great advantages over any text editor regarding .po translation, like going to next fuzzy/untranslated string, searching only in specific fields (msgid, msgstr, comment), ...
+
Obviamente, você pode editar os arquivos .po com qualquer editor de texto UTF-8. Entretanto, as ferramentas listadas acima possuem grandes vantagens sobre qualquer editor quando se trata de tradução por arquivos .po como, por exemplo, ir à próxima string fuzzy/não-traduzida ou pesquisa em campos específicos (msgid, msgstr, comment)...
  
 
== Veja também ==
 
== Veja também ==
Line 99: Line 84:
 
* [[WesnothTranslationsHowTo]]
 
* [[WesnothTranslationsHowTo]]
 
* [[GettextForWesnothDevelopers]]
 
* [[GettextForWesnothDevelopers]]
* [http://gettext.wesnoth.org/ Translation statistics]
+
* [http://gettext.wesnoth.org/ Estatísticas de tradução]
 
* [[PortugueseTranslation|Página de tradução PT_BR]]
 
* [[PortugueseTranslation|Página de tradução PT_BR]]
  
 
[[Category:Translations]]
 
[[Category:Translations]]
 +
[[Category:Portuguese]]

Latest revision as of 18:28, 4 July 2019

Este arquivo está em processo de tradução para o português brasileiro. Edite à vontade.

Os text-domains

A tradução de Battle for Wesnoth é dividida em alguns domínios-texto (text-domain), que na estrutura de diretórios forma uma pasta, onde os arquivos com as traduções para os mais diversos idiomas (cujo nome do arquivo é a abreviatura da língua) estão:

  • wesnoth
  • wesnoth-editor
  • wesnoth-lib (contém expressões (strings) compartilhados pelo jogo e pelo editor)
  • além de mais um domínio-texto para cada campanha do jogo. Os nomes desses domínios-texto são constituídos pela palavra "wesnoth" mais a abreviação comum da campanha em inglês (wesnoth-ei, wesnoth-httt, wesnoth-trow, wesnoth-tb, wesnoth-tsg, wesnoth-utbs, etc.)

Pegando os fontes

O código-fonte do jogo está disponível para download na página inicial, ou diretamente: Download. Baixe a versão mais atual (estável ou desenvolvimento) para o seu sistema operacional.

Os arquivos de tradução estão dentro da pasto cujo nome é "po". Dentro dessa pasta, estão os diretórios que foram citados na seção acima (wesnoth, wesnoth-editor, wesnoth-lib, wesnoth-httt, wesnoth-low...). E dentro de cada uma dessas pastas estão os arquivos po, um para cada uma das línguas suportadas no jogo.

É importante notar que essa estrutura de diretórios (na pasta "po") que está nos fontes (uma pasta para cada text-domain, e dentro os arquivos po, cujo nome é a abreviatura do idioma) não é a mesma da estrutura de traduções (na pasta "translations") do jogo instalado (onde há uma pasta para cada idioma, e dentro os arquivos po, cujo nome é o text-domain).

Os arquivos do repositório

Usaremos a tradução Sueca (sv) e o domínio wesnoth como exemplo nessa página. Existem três importantes arquivos para cada domínio-texto:

  • arquivo wesnoth/wesnoth.pot, que contém todas as strings usadas pelo jogo principal (não contém as strings do editor nem as strings das campanhas). Você pode ver como se parece um arquivo .pot no SVN: Current SVN version.
  • wesnoth/sv.po, o arquivo contendo a tradução, Você pode ver como se parece um arquivo .po no SVN: Current SVN version.
  • {translations_dir}/sv/LC_MESSAGES/wesnoth.gmo, que é a versão binária do <lang>.po que o jogo irá usar por razões de eficácia. Esse arquivo não é encontrado no cvs, mas é criado durante a compilação do jogo.

Entretanto, os tradutores não precisam se preocupar diretamente com isso.

Atualização de arquivos no repositório

O primeiro desses arquivos podemos atualizar de vez em quando, quando há um texto novo ou modificado. Como, por exemplo, quando um cenário de nova campanha atinge o repositório.

Então, msgmerge é usado para fundir esse novo "estado das strings do jogo" com suas traduções correspondetes, e gerando um novo, e ataulizado, sv.po.

Após, uma ferramenta chamada msgfmt é rodada, que gera um novo arquivo wesnoth.gmo a partir do arquivo wesnoth.po, que será usado após o jogo ser instalado.

"make -C po update-po" executa esses três passos de uma vez só.

Entretanto, como já mencionado, tais comandos são para os "cabeças", se assim podemos chamar os administradores da tradução. Os tradutores, na realidade, apenas precisam se preocupar com os arquivos PO: traduzir novas expressões e checar as "fuzzy". Assim, as tarefas administrativas ficam com os administradores. Você realmente não precisa se preocupar com nenhum desses comandos, a não ser que você queira compilar os arquivos gmo para checá-los no jogo.

Enviando as traduções

Ivanovic é o responsável, atualmente, pela integração entre as traduções de Wesnoth, com a ajuda de Torangan e Ott. Você pode contatar Ivanovic (crazy-ivanovic AT gmx DOT net), e ele colocará suas traduções no jogo. Entretanto, para facilitar o contato entre eles e os tradutores, cada um dos idiomas possui seu maintainer, que intermedia essa relação. Atualmente (julho de 2019), o maintainer da tradução para o Português do Brasil é o Andrei Machado (e-mail: andreisp.machado@yahoo.com). Assim, sempre que você terminar um arquivo PO (ou achar que ele está aceitável para o jogo), envie para ele, anexando em um e-mail, que ele enviará para o Ivanovic, e o arquivo entrará no jogo.

Quando mandar seus arquivos PO para o maintainer para serem incluídas no SVN, anexe-as ao e-mail, ao invés de copiar e colar as expressões no texto. As expressões são muito sensíveis à formatação, e o arquivo irá auxiliar a diferenciar qual arquivo é qual, quando forem mandados vários arquivos.

FAQ

  • O que é uma "fuzzy string"?
    • É uma expressão (string) que foi marcada para revisão de tradução. Por exemplo, se foi feita uma pequena alteração e foi rodado o comando msgmerge, ele irá marcar a tradução como "fuzzy". Quando o modelo de tradução foi mudado para gettext, todas as transações foram marcadas como "fuzzy". Além disso, a maioria dos editores (como o poEdit) tem como opção o próprio editor colocar a string como "fuzzy", caso ele não tenha certeza de alguma tradução.
  • O que são as "Plural-forms"?
    • Alguns idiomas (como o português) tem diferentes formas de palavra para diferentes números de coisas (por exemplo, em português nós temos "1 coisa", mas "2 coisas"). As regras são diferentes para diferentes idiomas. Você pode achá-las aqui.
  • O que eu faço para inserir uma nova linha numa expressão?
    • Se você quer inserir uma nova linha numa string, você precisa incluir duas aspas (""). Você pode usar normalmente novas linhas, sem afetar a tradução.
  • Como eu uso ', uma vez que um apóstrofo delimita o início e fim de uma string no texto?
    • Adicione uma contrabarra antes dele (fica assim: \').
  • O que eu faço com strings como "Prefs section^General"?
    • Existem algumas expressões ambíguas que talvez precisem ser traduzidas de formas diferentes, dependendo do local onde é utilizada. Por exemplo, nós temos o "General" ("Geral") nas preferências, como em "General preferences" ("Preferências Gerais"), e nós também temos "a General" ("um General", uma unidade). Essas expressões podem ter diferentes traduções para cada linguagem, então nós usamos o contexto para resolver isso. O prefixo apenas tenta mostrar onde que a expressõa será usada, e não deve ser traduzido, por exemplo:
  msgid "Prefs section^General"
  msgstr "Gerais"
  • Com quem eu falo para maiores informações?
    • Pode falar com Ivanovic, Torangan, ott, Yann ou Isaac no IRC (irc.freenode.net, #wesnoth or #wesnoth-dev). Se não gosta do IRC, mande um e-mail para crazy-ivanovic AT gmx DOT net, ou mande uma mensagem privada para ele (ivanovic) no fórum. Além disso, há um fórum para "Translations & Internationalization", onde há um tópico para a tradução para o português.
  • Como eu rapidamente testo as mudanças no arquivo PO?
    • Quando você modificar um arquivo PO, rode "make update-gmo" no diretório po para criar um novo arquivo MO, então rode o "make install" lá para instalar os novos arquivos MO. Caso esteja usando o poEdit, ele já cria o arquivo MO assim que você salva o arquivo PO.
    • Após, force a reconstrução do cache. This is tricky -- if you only update MO files, the game may use a cached (i.e., old) version letting you wonder why it still displays the old translation. Either change game.cfg modification time, e.g. with "touch /usr/local/share/wesnoth/game.cfg", or delete the corresponding cache[s] in ~/.wesnoth/cache.
    • É possível, também, substituir o arquivo MO que está na pasta do jogo instalado pelo novo arquivo MO.

Editores

Existem várias ferramentas para se trabalhar com arquivos .po:

Obviamente, você pode editar os arquivos .po com qualquer editor de texto UTF-8. Entretanto, as ferramentas listadas acima possuem grandes vantagens sobre qualquer editor quando se trata de tradução por arquivos .po como, por exemplo, ir à próxima string fuzzy/não-traduzida ou pesquisa em campos específicos (msgid, msgstr, comment)...

Veja também

This page was last edited on 4 July 2019, at 18:28.