Instalação
Descrição
Formato
Notas
Usando --replace com
--bilingual inserções
Usando
--strip com --bilingual inserções
Opção
--statusbar
Processando diréctorios
Opção --search
Erros de sintaxe
Valor de volto
Por
quê demora tanto?
Por
quê usa tanta memória?
Exemplos de uso
Exemplo básico
Exemplo com --comment
Exemplo com --bilingual
Exemplo com --statusbar
Exemplo com --search
Licencia y autor
Documentação
em outras línguas
INSTALAÇÃO:
Para
usar instrans, necessita PHP 5 com interface de linha de mandato
(command
line interface). (Tal vez instrans funcionaria com PHP
4, mas não o tenho
provado.)
MS-Windows:
Si
você usa MS Windows, baixe php-5.X.X-Win32.zip de
http://www.php.net
Descompacte-lo num novo arquivo onde
quer instalar-lo y faz dobre clic em
php-5.X.X-installer.exe.
Depois tem que sumar PHP a sua variável PATH para
indicar
onde se queda PHP. Em Windows XP, vai a Inicio->Configuração->
Painel
de controle->Sistema. Baixo a pestana «Opções
Avançadas», faz clic em
«Variáveis de
Entorno» y selecione «Path» numa caixa «Variáveis
do Sistema».
Faz clic em «Editar» y adicione a
senda onde PHP é instalado. Por exemplo, si
PHP é
instalado em c:\Arquivos de Programa\PHP5, sua nova Path pode
aparecer como:
C:\MySQL\Server;C:\ATI;C:\Arquivos
de Programa\PHP5
Em sistemas
mais velhas, pode trocar a Path em DOS assim:
$PATH = $PATH +
";C:\Arquivos de Programa\PHP5"
Depois de instalar PHP 5, baixe y
descompacte
www.ciber-runa.net/instrans.zip.
Agora pode utilizar o script instrans.php.
Linux,
UNIX, Cygwin, e Mac OS X:
Usuários de Linux, UNIX, Cygwin, e OS X devem
instalar o PHP 5 do repositório
de sua distribuição.
Por exemplo, usuários de Debian e seus derivativos podem
instalar-lo assim:
su
[entregue a contracena de root]
apt-get install
php5-cli
exit
Usuários
de Ubuntu usam:
sudo
apt-get install php5-cli
Depois de instalar PHP 5, baixe y
descompacte
www.ciber-runa.net/instrans.zip
Agora pode utilizar o script instrans.php.
DESCRIÇÃO:
O
programa instrans.php insere frases traduzidas de arquivo(s) PO em
outro(s)
arquivo(s) PO. Instrans é designado para ajudar
tradutores de software em
línguas indígenas que
tenham necessidades especiais. Também pode
ser usado
por tradutores fazendo translações trilingues ou por
tradutores que querem inserir translações
automaticamente de outra língua.
Instrans permite que
o tradutor trata com três línguas á mesma vez num
arquivo PO. Isto é útil quando se traduz línguas
em lugares onde inglês não
é o idioma
predominante escrito. Por exemplo, na América Latina y
na África
Francesa muitos tradutores de línguas
indígenas não podem ler inglês e
necessitam
ver as frases em espanhol ou francês. Instrans também
pode ser
usado para inserir frases traduzidas de outra língua
quando o tradutor não
queira duplicar o trabalho já
feito em outra translação. Por exemplo, muitas
línguas
indígenas utilizam muitas frases prestadas de outras línguas,
especialmente no contexto da informática. Tradutores pode
utilizar
instrans para inserir as frases prestadas em seus
arquivos PO.
Cada objeto PO tem o formato seguinte:
LINHA-DE-ESPAÇO
#
COMENTÁRIO-DE-TRADUTOR
#.
COMENTÁRIO-AUTOMÁTICO
#: REFERENCIA...
#, BANDEIRA...
msgid
FRASE-NO-TRADUZIDA
msgstr
FRASE-TRADUZIDA
Instrans
extrai cada msgstr do TRANSLAÇÕES-PO y lo insere no
ORIGINAL-PO
(ou opcionalmente no NOVO-PO) onde tem um msgid
correspondente. Si não
tem una msgid correspondente,
não insere nada. Si tem mais que um msgid
correspondente,
instrans procura o qual tenha um comentário automático
o
referência equivalente. Por omissão instrans só
insere uma frase PO quando
o msgstr no ORIGINAL-PO não
contem nada, mas pode borrar uma msgstr existente
e inserir uma
nova frase traduzida com a opção --overwrite.
Também tem opções
para inserir as frases
traduzidas como comentários ou frases bilingues ou no
barra
de estado. Ademais tem uma opção --search para
procurar frases
correspondentes usadas em outros
programas.
FORMATO:
php instrans.php
[OPÇÕES] ORIGINAL-PO TRANSLAÇÕES-PO
[NOVO-PO]
Opções:
-m
| --msgstr
Inserir as frases traduzidas nos msgstr que não contem
nada.
Si quer substituir os que contem algo, use a opção
--overwrite com esta opção. Si não especifica o
tipo de
inserção, fará isto por omissão.
-b
| --bilingual [=SEPARADOR]
Pegar frases traduzidas ao fim de msgstr existentes para
formar frases bilingues. Si tem um msgstr existente, se
divide as dois frases por um SEPARADOR que é " * "
por
omissão. Frases que contem caracteres de nova linha
(\n)
será separado por outra nova linha em lugar do
SEPARADOR.
-c | --comment [=LÍNGUA]
Inserir frases traduzidas como comentários na
forma:
# [LÍNGUA] "FRASE-TRADUZIDA"
Si não se específica a LÍNGUA, por omissão
é o nome de
TRANSLAÇÕES-PO. Pode combinar --comment com todas
as
outras opções. Si usa --comment com --statusbar,
inserirá
comentários só em objetos PO da barra de estado na
forma:
# [LÍNGUA] MENU: "FRASE-TRADUZIDA"
-s
| --statusbar [=FRASE-MENU FRASE-BARRA-DE-ESTADO]
Inserir frases traduzidas do menu na barra de estado.
Si encontra um comentário automático que contem a
FRASE-MENU, procura outro objecto PO com a correspondente
FRASE-BARRA-DE-ESTADO e insere a frase traduzida lá.
Por omissão FRASE-MENU é "MENU" e
FRASE-BARRA-DE-ESTADO
é "STATUSBAR". Use esta opção com
cuidado. Provavelmente
tem que editar á mão o arquivo PO depois.
-o | --overwrite
Substituir frases traduzidas existentes. Sim esta opção,
só insere a frase traduzida quando o msgstr não contem
nada.
Si insere comentários, esta opção não
borra os comentários
de tradutor excepto os que tenham a forma:
# [...] "..."
-n |
--no-strip Não
eliminar as variáveis C e os signos "&" das
frases
traduzidas. Por omissão, as variáveis e os signos "&"
são
eliminados quando se usa as opções --bilingual e
--statusbar porque podem causar erros.
-r
| --recursive Processar todos os
subdiretórios em ORIGINAL-PO e
TRANSLAÇÕES-PO. Esta opção só terá
efeito si
ORIGINAL-PO e TRANSLAÇÕES-PO são directórios.
-e | --search
Procurar frases traduzidas en qualquer arquivo o diretório
em TRANSLAÇÕES-PO. Use esta opção para
procurar frases
traduzidas de outros programas.
-x
| --strip [=CADEIA]
Eliminar a CADEIA da frase traduzida em inserções
--bilingual e --statusbar. Si não especifica a CADEIA,
os
signos "&" serão eliminado. CADEIA pode ser um
expressão
Perl. Por exemplo, -strip = "/<.+>/" elimina
todos os
códigos HTML da frase inserida.
-p
| --replace [=PROCURA SUBSTITUÇÃO]
Substituir PROCURA por SUBSTITUÇÃO na frase traduzida
em
inserções --bilingual e --statusbar. Si não
especifica a
PROCURA e a SUBSTITUÇÃO, variáveis de
programação será
substituído por "@#@x@#@". Atualmente solo C,
Objective C,
PHP, UNIX shell, QT, gcc internal, e YCP variáveis são
reconhecido. PROCURA e SUBSTITUÇÃO podem ser
expressões
Perl. Por exemplo: -p = "/%([sd])/" "VAR_$1"
substitui "%s" por "VAR_s" e "%d" por
"VAR_d".
-v |
--verbose Mostrar
avisos e mais informação.
-q
| --quiet
Não mostrar nenhuma mensagem.
-l
| --log [=ARQUIVO] Desviar
as mensagens a um arquivo. Si não
se especifica um arquivo, por omissão é
"instrans-log.txt".
-f | --interface = XX
Especificar a idioma da interface do usuário de
instrans. Por omissão instrans usará inglês si
não foi
traduzido no idioma de seu locale. Atualmente as únicas
opções são "en" , es", e "pt"
(inglês, espanhol, e
português).
ORIGINAL-PO
O arquivo PO original ou diretório. Si é um diretório
vai
processar todo os arquivos PO adentro do
diretório.
TRANSLAÇÕES-PO
O arquivo ou diretório PO que contem as frases traduzidas
que será inserido no ORIGINAL-PO (ou opcionalmente no
NOVO-PO).
NOVO-PO
[opcional] Si não quer substituir o ARQUIVO-PO,
entregue um novo nome de arquivo para escrever.
Se encerram em aspas os arquivos que contem espaços
em seus nomes.
Exemplos:
php
instrans.php "c:\meus documentos\fr-FR.po" es-ES.po "fr-FR
1.po"
php
"c:\meus documentos\instrans.php" -b=" % "
es-ES.po fr-FR.po
Para ajuda:
php
instrans.php -h | --help | -? | /?
Para
mais informação e exemplos de uso:
php instrans.php -i
| --info
NOTAS:
Usando
--replace com --bilingual inserções:
Use
a opção --bilingual com cuidado e revise o(s)
arquivo(s) PO depois. As
frases traduzidas podem conter
variáveis. Por exemplo, programas escrito em C
usam o
símbolo %s para indicar um string (cadeia de caracteres), %d
para
indicar um inteiro, e %f para indicar um número real
que possa conter um ponto
decimal. Normalmente frases PO com
variáveis C são marcadas com a bandeira:
#, c-format
Quando
faz uma frase bilíngue, vai duplicar o número de
variáveis na
frase e isto pode causar erros no programa.
Para evitar este problema,
use a opção --replace.
Si não se especifica PROCURA e SUBSTITUÇÃO
instrans
procura os objetos PO com a bandeira "#, c-format" e
encerra os
variáveis em "@#@". Por exemplo,
"@#@s@#@" substitui "%s" e
"@#@-10.4f@#@" substitue "%-10.4f".
Si
sua versão de PHP é 5.10 ou depois, a opção
--verbose provei uma aviso
cada vez que uma variável tem
sido substituído. Se aconselha que utilize as
opções
--verbose e --log com --bilingual para que tenha um registro das
alterações.
Depois faz uma pesquisa por
"@#@" em seu arquivo PO e substitui estas
frases com
algo mais apropriado em suas translações.
Infortunadamente,
tem muitos idiomas do computador e actualmente
instrans somente reconhece
variáveis de C, Objective C,
PHP, UNIX shell, QT, gcc interno, e YCP. De
todos modos, no deve
confiar-se muito nas substituições e deve revisar
seu(s) arquivo(s) PO depois.
Usando
--strip com inserções --bilingual:
Muitas
programas usam o símbolo "&" ou "&"
em seus menus e janelas de
diálogo para sublinhar o
seguinte caracter e fazer uma tecla de acesso direito.
Si a opção
--strip é usado sem especificar a CADEIA, instrans eliminará
os
signos "&" das frases inseridas. Isto é
útil porque um item de menu e um
objeto numa janela de
diálogo só pode ter 1 tecla de acesso direito.
Os
signos "&" são somente eliminado si o msgstr
existente é vazio. Porque "&" é
muito
usado para significar "e", somente o elimina si é
seguido por um caracter
alfabético ou um numero. Não
o elimina si é seguido por um símbolo, um espaço,
ou se aparece no fim de uma frase traduzida.
Si a opção
--strip é usado sem especificar a CADEIA, também
eliminará os signos
"&" das inserções
de --statusbar. Ja que barras de estado não têm teclas
de
acesso direito, se aconselha que use --strip com a opção
--statusbar.
Opção
--statusbar:
A opção
--statusbar é muito experimental. Sempre faz copias de reserva
de
seus arquivos antes que usar-a. Esta opção só
serve com programas que
tem comentários automáticos
parecidos do menu y da barra de estado.
Por exemplo no programa
AbiWord, cada frase traduzida de menu tem um
comentário
automático de "MENU_LABEL_..." y cada frase
traduzida da barra
de estado tem um comentário automático
de "MENU_STATUSLINE_...". Em este
caso, pode
procurar a correspondente barra de estado e inserir o msgstr
do
menu. Sim embargo muitos programas não tem nomes de seus menus
e barras de
estado numa maneira parecida e a opção
--statusbar não serve bem. Si
quer borrar o msgstr
existente e substituir-o com o msgstr do menu, deve
usar a opção
--overwrite. Si quer inserir-o nos msgstr y nos comentários,
usa as opções --comment com --msgstr. Pode
usar a opção --bilingual com
--statusbar, mas vai
pegar o msgstr da barra de estado com o msgstr do menu.
Como
nas inserções de --bilingual, a opção
--strip sem especificar a
CADEIA, eliminará signos "&"
das inserções de --statusbar. Já que barras de
estado não têm teclas de acesso direito, se
aconselha que use --strip com a
opção --statusbar.
Também pode usar a opção --replace sem
especificar
PROCURA e SUBSTITUÇÃO para eliminar
variáveis em inserções de --statusbar. As
vezes
mensagens na barra de estado contêm variáveis, mas é
mais seguro
substituir todas as variáveis primeiro, e logo
acrescentar as variáveis
necessárias.
Processando directórios:
Si
ORIGINAL-PO e TRANSLAÇÕES-PO são diretórios,
instrans processará todos os
arquivos no diretório
ORIGINAL-PO com a extensão ".po", ".pot",
ou ".pox".
Instrans procurará arquivos de mesmo
nome no diretório TRANSLAÇÕES-PO para
inserir
as frases traduzidas. Os arquivos no ORIGINAL-PO que não
tenham o
extensão ".po", ".pot", ou
".pox" serão só copiado ao arquivo NOVO-PO
sem
inserir nada. Também os arquivos PO no diretório
ORIGINAL-PO que não tenham
um arquivo correspondente com o
mesmo nome em TRANSLAÇÕES-PO serão só
copiado.
Sem embargo, os arquivos em TRANSLAÇÕES-PO
que não tenham um correspondente
arquivo em ORIGINAL-PO,
não serão copiado. Também, os subdiretórios
em ambos
ORIGINAL-PO e TRANSLAÇÕES-PO serão
ignorado y não copiado. Si você quer
processar
os subdiretórios, use a opção --recursive.
Por exemplo, si você tem os diretórios
"es-ES" y "fr-FR" abaixo y quer inserir
as
frases francesas nos arquivos PO espanhóis, pode usar o
mandato seguinte:
php instrans.php es-ES fr-FR
es-fr
Vai produzir um diretório NOVO-PO "es-fr"
assim:
ORIGINAL-PO:
TRANSLAÇÕES-PO:
NOVO-PO:
/es-ES/
/fr-FR/
/es-fr/
/intro.po
/intro.po
/intro.po
/readme.txt
/readme.txt
/readme.txt [só copiado]
/main.po
/main.po
/main.po
/main.c
/main.c
/main.c [só copiado]
/files.pot
/files.pot
/files.pot
/makelist.po
/different.po
/makelist.po [só copiado]
/win/
/win/
/frontend.po
/frontend.po
/search.po
/search.po
Somente os arquivos "intro.po", "main.po",
e "files.pot" no diretório "es-ES"
foram
processado porque têm uma extensão PO e têm
arquivos correspondentes no
diretório "fr-FR"
com o mesmo nome. Os outros arquivos em "es-ES" foram só
copiado ao diretório "es-fr" sem inserções.
O subdiretório "win" foi ignorado
y não
foi copiado. Anota que o arquivo "different.po" no
diretório "fr-FR" não
foi copiado tampouco
porque não tem um correspondente arquivo em "es-ES".
Si você que inserir frases traduzidos de qualquer
arquivo de diferente nome,
use a opção --search.
Por exemplo, o mandato:
php
instrans.php --search es-ES/intro.po fr-FR intro-mess.po
Vai
procurar frases traduzidas em todos os arquivos PO no directório
"fr-FR" y
inserir-las no arquivo novo "intro-mess.po".
Si quer processar todos
os arquivos em es-ES assim, procurando em
todos os arquivos de fr-FR, usa o
mandato:
php
instrans.php --search es-ES fr-FR es-fr
Si você quer procurar no
subdiretório "win" também, use a opção
--recursive.
Opção
--search:
Si você quer
inserir frases traduzidos de qualquer arquivo num diretório,
use a opção --search. Por exemplo, o
mandato:
php
instrans.php --search es-ES/intro.po fr-FR intro-mess.po
Instrans
vai procurar frases traduzidas em todos os arquivos PO no
diretório
"fr-FR" e inserir-as no arquivo novo "intro-mess.po".
Si quer
processar todos os arquivos em es-ES assim, procurando em
todos os arquivos de
fr-FR, use o mandato:
php
instrans.php --search es-ES fr-FR es-fr
Si quer procurar no subdiretório
"win" também, use a opção --recursive.
Erros de Sintaxe:
Si
instrans encontra um erro de sintaxe num objeto PO, vai acrescentar-o
ao
conto de erros de sintaxe e mostrar-o ao fim de processamento.
Em modo
--verbose, instrans mostra mensagens de aviso e o número
de linha no
arquivo onde pode encontrar os erros de sintaxe. Em
TRASLACIÓNES-PO
os erros de sintaxe são contado, mas
não serão escrito ao NUEVO-PO. Si um
erro de
sintaxe é encontrado em ORIGINAL-PO i é um problema
simples como
uma linha não terminada em aspas, instrans o
arregalará ao escrever ao
NOVO-PO. Si instrans não
pode determinar onde ponha um elemento PO em
NOVO-PO, escreverá
"SYNTAX ERROR: " e a linha com o erro de sintaxe no
comentário de tradutor do objeto PO mais perto. Si seus
arquivos PO têm
erros, se recomenda que use a opção
--verbose para que você possa procurar e
corrigir os erros
de sintaxe depois.
Por exemplo, si instrans encontra os
seguintes objetos PO em ORIGINAL-PO:
#:
po/ap_Id.h.h:283
(Problemas:
)
msGiD
"Edit"
(msgid não deve ter letras mayúsculas
)
msgstr"Editar"
(falta espaço entre msgstr e "editar"
)
#:
po/ap_Id.h.h:281
msgi
"Help"
(Deve ser
"msgid"
)
msgstr
"Ayuda
(Linha deve terminar em aspas
)
El
NUEVO-PO será escrito:
#:
po/ap_Id.h.h:283
(Como problemas são solucionado:
)
msgid
"Edit"
(Arregalado sem mensajem de aviso
)
msgstr
"Editar"
(Arregalado sem mensajem de aviso
)
#
SYNTAX ERROR: msgi "Help" (Linha é
traslado ao comentário com aviso )
#:
po/ap_Id.h.h:281
msgstr
"Ayuda"
(Arregalado com um mensagem de aviso
)
Instrans
transformará 'msGiD "Edit"' a 'msgid "Edit"'
e 'msgstr"Editar"'
a 'msgstr "Editar"' sem
emitir um aviso ou contar um erro. Sem embargo no
segundo objeto
PO, instrans contará erros de sintaxe e emitirá avisos
no
modo --verbose sobre as aspas faltadas em 'msgstr "Ayuda'
e a palavra
desconhecida "msgi". No caso de
'msgstr "Ayuda', instrans acrescentará as
aspas
finais automaticamente, mas não saberá que fazer com
'msgi "Help"'.
Vai mostrar um aviso e pôr a linha
no comentário de tradutor depois
das palavras 'SYNTAX
ERROR: '.
Valor
de devolto:
Instrans
devolve um valor de 0 si processa sim problemas. Devolve 1-20 si
encontra erros abrindo e escrevendo arquivos ou processando
dates. Devolve
20-40 si encontra erros nos argumentos passado por
o usuário. Devolve 41-42
no caso da opção
--help ou --formato.
Por quê
demora tanto?
Instrans pode
demorar muito ao processar arquivos grandes. Em minha maquina
gasta
6 segundos processando o arquivo PO de AbiWord que contem 1500
frases
traduzidas, mas gasta muito mais tempo em maquinas mais
velhas. Originalmente
instrans foi escrito para ser uma aplicação
de web em PHP. Dentro de pouco foi
claro que fora mais eficaz de
baixá-lo de internet y utilizar-o em casa.
PHP é bom
para servir paginas web, mas processa muito de vagar
quantidades
grandes de dates em arquivos. Si isto te molesta muito, sente-se
livre para re-escrever o código numa língua mais
rápida.
Por quê
usa tanta memória?
Si
processa arquivos PO grandes com milhares de objetos ou usa a opção
--search
com muitos arquivos, instrans utiliza muita memória
para carregar todos os objetos
PO encontrados. Por defeito
instrans utiliza um máximo de 40MB de memória,
mas
pode aumentar-a. Troque o mandato ini_set('memory_limit',
'40M');
no arquivo "instrans-header.php".
EXEMPLOS
DE USO
Exemplo
básico:
Uma tradutora de
quechua boliviano tem traduzido algumas frases no arquivo
qu-BO.po,
mas quer converter as frases não traduzidas a espanhol. Ela
descarga
o arquivo es-ES.po i entrega o mandato:
php instrans.php
qu-BO.po es-ES.po
Si qu-BO.po
aparece assim:
------------------------------------------
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Kichay"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Kasqaña documentota kichay"
#
Pode traduzir "Print" como "ñit'isqa"?
Quê é "Layout"?
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"P&rint Layout"
msgstr
""
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Uqjinayachisqaykita
«%s» archivopi \njallch'ayta
munankichu?"
------------------------------------------
e
es-ES.po aparece assim:
------------------------------------------
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Abrir"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Abrir un documento existente"
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"P&rint Layout"
msgstr
"Di&seño de impresión"
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Desea
guardar los cambios al documento %s \nantes de
cerrar?"
------------------------------------------
Então
instrans inserirá a frase "Di&seño de
impresión", mas não tocará
os outros
objectos PO. O arquivo qu-BO.po será sob-escrito
assim:
------------------------------------------
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Kichay"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Kasqaña documentota kichay"
#
Pode traduzir "Print" como "ñit'isqa"?
Quê é "Layout"?
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"P&rint Layout"
msgstr
"Di&seño de impresión"
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Uqjinayachisqaykita «%s»
archivopi \njallch'ayta
munankichu?"
------------------------------------------
Exemplo
com --comment:
A primeira tradutora
passa o arquivo PO a outro tradutor de quechua boliviano
que não
pode ler inglês, ele quer inserir translações
espanholas como
comentários num arquivo novo chamado
qu-BO-tras.po:
php
instrans.php --comment="es-ES" qu-BO.po es-ES.po
qu-BO-tras.po
O novo arquivo
qu-BO-tras.po
contenderá:
------------------------------------------
#
[es-ES] "&Abrir"
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Kichay"
#
[es-ES] "Abrir un documento existente"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Kasqaña documentota kichay"
#
[es-ES] "Di&seño de impresión"
#
Pode traduzir "Print" como "ñit'isqa"?
Quê é "Layout"?.
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"P&rint Layout"
msgstr
""
#
[es-ES] ""
#
[es-ES] "¿Desea guardar los cambios al documento %s
\nantes de cerrar?"
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Uqjinayachisqaykita
«%s» archivopi \njallch'ayta
munankichu?"
------------------------------------------
Exemplo
com --bilingual:
Muita gente que
fala quechua não são acostumado a ler-lo e
necessita
ver a tradução em espanhol ao lado do
quechua. Os tradutores decidem
fazer uma versão bilíngue
do programa. As frases quechuas serão separados
das
frases espanholas por " ][ ". As opções
--strip e --replace são usado
para quitam qualquer signo
"&" ou variável que possa causar erros.
As
opções --verbose e --log são usado para
que os tradutores tenham um
registro de cada lugar onde as
variáveis havia sido substituído por
"@#@x@#@".
Depois eles podem revisar o arquivo PO e borrar os
"@#@x@#@".
php instrans.php -v
--log --strip --replace --bilingual=" ][ "
qu-PE.po es-ES.po
qu-es-PE.po
O
arquivo qu-es-PE.po
conterá:
------------------------------------------
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Kichay ][ Abrir"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Kasqaña documentota kichay ][ Abrir un documento
existente"
#
Pode traduzir "Print" como "ñit'isqa"?
Quê é "Layout"?
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"P&rint Layout"
msgstr
"Di&seño de impresión"
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Uqjinayachisqaykita
%s archivopi \njallch'ayta munankichu?"
"\n¿Desea
guardar los cambios al documento %s \nantes de
cerrar?"
------------------------------------------
O
separador " ][ " não é inserido antes da
frase "Di&seño de impresión"
porque o
msgstr não contem algo. As dois frases em Msg_ConfirmSave são
separados por um caracter de nova linha (\n) em lugar de "
][ " porque o msgstr
já contem uma nova linha. Em este
caso a janela de diálogo se expande por
o tamanho do
mensagem, mas em outros casos o tamanho da janela é fixado e
uma
translação de linhas múltiplas não
é possível. Tem que verificar cada janela de
diálogo
para ver si cabe a frase bilíngue.
Porque o
msgstr de MENU_LABEL_VIEW_PRINT não tem um signo "&"
(símbolo de
aceso direito), o "&" não
é quitado da frase inserido "Di&seño de
impresión", mas no caso de MENU_LABEL_FILE_OPEN, o
msgstr já tem um "&".
Por isso, "&"
é quitado da frase "&Abrir" antes que
inserir-la.
Exemplo com
--statusbar:
Os tradutores quechuas
não gostam dos menus bilingues porque são muito
grandes e incómodos. Por isso eles decidem pôr as
translações espanholas
dos menus na barra de
estado. Si um usuário não sabe o que significa
um
menu pode mirar abaixo na barra de estado. Eles usam a opção
--overwrite
para borrar e substituir os msgstr existentes. As opções
--strip
e --replace são usado para quitar qualquer signo "&"
e variável que
possam causar problemas.
php
instrans --strip --replace --overwrite --verbose
--statusbar="MENU_LABEL_" "MENU_STATUSLINE_"
qu-BO.po
es-ES.po qu-BO-prueba.po
Então
o arquivo novo qu-BO-prueba.po conterá:
------------------------------------
#.
MENU_LABEL_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:285
msgid
"&Open"
msgstr
"&Kichay"
#
[es-ES] MENU: "&Abrir"
#.
MENU_STATUSLINE_FILE_OPEN
#:
po/tmp/ap_String_Id.h.h:1692
msgid
"Open an existing document"
msgstr
"Abrir"
#
Pode traduzir "Print" como "ñit'isqa"?
Quê é "Layout"?
#.
MENU_LABEL_VIEW_PRINT
#:
po/tmp/ap_String_Id.h.h:309
msgid
"Print Layout"
msgstr
""
#.
MSG_ConfirmSave
#:
po/tmp/ap_String_Id.h.h:1995
#,
c-format
msgid
""
"Save
changes to document %s \nbefore closing?"
msgstr
""
"¿Uqjinayachisqaykita
%s archivopi \njallch'ayta
munankichu?"
--------------------------------------
Agora quando o ratão passa sob Abrir no menu
Arquivo, o usuário deste
software vai ver "Kichay"
no menu e "Abrir" na barra de estado.
Exemplo
com --search:
Os tradutores
bolivianos decidem traduzir um programa novo ao quechua, mas
o
programa ainda não tenha traduzido em espanhol. Não
tem um arquivo PO
onde podem sacar as frases espanhóis.
Sem embargo, eles observam que outros
programas tenham sido
traduzido em espanhol i esses outros programas têm
muitas
das mesmas frases como seu programa novo. Querem inserir essas
frases
sacado de muitos programas nos comentários no novo
arquivo qu-es.po.
Eles coletam todos os arquivos PO de esses
programas no diretório
"es-muchos" i em seus
subdiretórios i entregam o mandato:
php
instrans.php -c --search --recursive qu-BO.po es-muchos qu-es.po
LICENCIA E AUTOR
---***---
Licencia:
Atual versão de GNU Licencia de Proteção Geral
(GPL)
que pode ler em:
http://www.gnu.org
Autor:
Amos Batto (amosbatto@yahoo.com),
http://www.ciber-runa.net
Criado:
22 Jun 2006, Última atualização: 20 sep
2007
Este script foi escrito
como parte do projecto www.ciber-runa.net
para ajudar gente criar
traduções de software em línguas indígenas.
Por
favor mande reportagens de erros em instrans.php ou suas sugestões
a
amosbatto@yahoo.com para que eu possa melhorar o programa.
Obrigado.
---***---
DOCUMENTAÇÃO
EM OUTRAS LÍNGUAS
Versões
deste documento:
readme-en.txt
readme-en.html
(English)
readme-es.txt
readme-es.html (español)
readme-pt.txt readme-pt.html
(português)
Porque instrans é designado para
ajudar tradutores que não possam ler inglês
estamos
procurando para gente que possa traduzir este programa em outras
línguas. Especialmente necessitamos uma tradução
francesa.
---------------------------------------
Nota: Si
você no pode ver todo este documento em MS-DOS,
necessita
aumentar o "Tamanho do búfer de tela"
na pestana "Layout". Pode encontrar-o
baixo
"Propriedades" no menu [c:\] á esquerda acima da
janela de MS-DOS.