instrans.php -- Software para Inserir Translações 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.