summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrunoMine <borgesdossantosbruno@gmail.com>2016-08-29 19:19:04 -0300
committerAuke Kok <sofar+github@foo-projects.org>2016-08-29 15:19:04 -0700
commitc1ddaf66da4674f0b2849ad768174763ebaa864f (patch)
tree437d8357e374905b0aaea84f6b8eda800ed129ae
parent8b3a97a81af5ab72e96d070980ffb61175985e3e (diff)
translation updated (#8)
* translation updated * translation updated
-rw-r--r--README-pt_BR.md193
1 files changed, 124 insertions, 69 deletions
diff --git a/README-pt_BR.md b/README-pt_BR.md
index 01f273e..c9aa3c6 100644
--- a/README-pt_BR.md
+++ b/README-pt_BR.md
@@ -1,87 +1,142 @@
-Internacionalização Lib para Minetest
-Por Diego Martínez (a.k.a. "Kaeza").
+# Lib de Internacionalização para Minetest
+
+Por Diego Martínez (kaeza).
Lançado como WTFPL.
Este mod é uma tentativa de fornecer suporte de internacionalização para mods
(algo que Minetest atualmente carece).
-Como posso usá-lo?
-A fim de habilitá-lo para o seu mod, copie o seguinte trecho de código e cole no início de seu(s) arquivo(s) fonte:
-
- -- Padronizado para suportar cadeias (strings) locais se o mod intllib estiver instalado
- local S
- if minetest.get_modpath("intllib") then
- S = intllib.Getter()
- else
- -- Se você não usar inserções (@1, @2, etc) você pode usar este:
- S = function(s) return s end
-
- -- Se você usar inserções, mas não usar escapes de inserção (\=, \n, etc) isso vai funcionar:
- S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-
- -- Use isso se você precisar de funcionalidade total:
- S = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
- end
-
+## Como usar
+
+### Para usuários finais
+
+Para usar este mod, basta [instalá-lo] (http://wiki.minetest.net/Installing_Mods)
+e habilita-lo na GUI.
+
+O modificador tenta detectar o idioma do usuário, mas já que não há atualmente
+nenhuma maneira portátil para fazer isso, ele tenta várias alternativas, e usa
+o primeiro encontrado:
+
+ * `language` definido em `minetest.conf`.
+ * Se isso não for definido, ele usa a variável de ambiente `LANG` (isso
+ é sempre definido em SO's Unix-like).
+ * Se todos falharem, usa `en` (que basicamente significa string não traduzidas).
+
+Em todo caso, o resultado final deve ser um
+[Código de Idioma ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
+do idioma desejado. Observe também que (atualmente) somente até os dois primeiros
+caracteres são usados, assim, por exemplo, os códigos `pt_BR.UTF-8`, `pt_BR`, e `pt`
+são todos iguais.
+
+Alguns códigos comuns são `es` para o espanhol, `pt` para Português, `fr` para o
+francês, `It` para o italiano, `de` Alemão.
+
+### Para desenvolvedores de mods
+
+A fim de habilitá-lo para o seu mod, copie o seguinte trecho de código e cole no
+início de seu(s) arquivo(s) fonte(s):
+
+```lua
+-- Clichê para apoiar cadeias localizadas se mod intllib está instalado.
+local S
+if minetest.get_modpath("intllib") then
+ S = intllib.Getter()
+else
+ -- Se você não usar inserções (@1, @2, etc) você pode usar este:
+ S = function(s) return s end
+
+ -- Se você usar inserções, mas não usar escapes de inserção (\=, \n, etc) isso vai funcionar:
+ S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
+
+ -- Use isso se você precisar de funcionalidade total:
+ S = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
+end
+```
+
Você também vai precisar depender opcionalmente do mod intllib, adicionando "intllib?"
em uma linha vazia de seu depends.txt. Observe também que se intllib não estiver
instalado, a função S() é definido para retornar a string inalterada. Isto é feito
-para que você não tenha que regar toneladas de 'if's (ou de estruturas semelhantes)
+para que você não tenha que usar dezenas de 'if's (ou de estruturas semelhantes)
para verificar se a lib está realmente instalada.
Em seguida, para cada string "traduzível" em suas fontes, use a função S()
(definida no trecho anterior) para retornar uma string traduzida. Por exemplo:
- minetest.register_node("meu_mod:meu_node", {
- description = S("Meu Fabuloso Node"),
- <...>
- })
-
-Em seguida, dentro do diretório do seu mod, crie um diretório chamado 'locale'
-no qual você deve colocar os arquivos nomeados com duas letras ( de acordo
-com a ISO para códigos de idiomas) para os idiomas que seu mod vai suportar.
-Aqui vai um exemplo de arquivo para idioma espanhol ('es.txt'):
-
- # As linhas que começam com um sinal de libra '#' são comentários e
- # efetivamente ignorados pelo carregamento.
- # Note-se que comentários duram apenas até o fim da linha;
- # Não há nenhum suporte para comentários de várias linhas.
- Ola, Mundo! = Hola, Mundo!
- String com\npulo de linha = Cadena con\nsaltos de linea
- String com um sinal de \= igualdade = Cadena con un signo de \= igualdad
-
-Como atualmente não existe nenhuma maneira portátil para detectar o idioma,
-esta biblioteca tenta várias alternativas, e usa o primeiro encontrado:
- - Valor de 'language' definido em 'minetest.conf'
- - Variavel de ambiente 'LANG' (normalmente definida em Unix-like SO's).
- - Padrão "en".
-
-Note que, em qualquer caso, apenas até os dois primeiros caracteres são usados
-para cada idioma, por exemplo, as definições de "pt_BR.UTF-8", "pt_BR", e "pt"
-são todos iguais.
-Os usuários do Windows não têm a variavel de ambiente 'LANG' por padrão.
-Para adicioná-lo, faça o seguinte:
- - Clique em Iniciar > Configurações > Painel de Controle.
- - Iniciar o aplicativo "System".
- - Clique na aba "Avançado".
- - Clique no botão "Variáveis ​​de Ambiente"
- - Clique em "Novo".
- - Tipo "LANG" (sem aspas) com o nome e o código de linguagem como valor.
- - Clique em OK até que todas as caixas de diálogo estão fechadas.
-Como alternativa para todas as plataformas, se você não quiser modificar as
-configurações do sistema, você pode adicionar a seguinte linha ao seu
-arquivo 'minetest.conf':
- language = <código de idioma>
-
-Note também que existem alguns problemas com o uso acentos gráficos e, em geral
-caracteres não-latinos em strings. Até que uma correção seja encontrada,
-por favor, limite-se a usar apenas caracteres da US-ASCII.
+```lua
+minetest.register_node("mymod:meunode", {
+ -- String simples
+ description = S("Meu Node Fabuloso"),
+ -- String com inserção de variáveis
+ description = S("@1 Car", "Blue"),
+ -- ...
+})
+```
+Em seguida, crie um diretório chamado `locale` dentro do diretório do seu mod,
+e crie um arquivo modelo (por convenção, nomeado `template.txt`) contendo todas
+as strings traduzíveis (veja *Formato de arquivo Locale* abaixo). Tradutores
+irão traduzir as strings neste arquivo para adicionar idiomas ao seu mod.
+
+### Para tradutores
+
+Para traduzir um mod intllib-apoiado para o idioma desejado, copie o
+arquivo `locale/template.txt` para`locale/IDIOMA.txt` (onde `IDIOMA` é o
+[Código de Idioma ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
+do idioma desejado.
+
+Abra o novo arquivo no seu editor favorito, e traduza cada linha colocando
+o texto traduzido após o sinal de igual.
+
+Veja *Formato de arquivo Locale* abaixo para mais informações sobre o formato de arquivo.
+
+## Formato de arquivo Locale
+
+Aqui está um exemplo de um arquivo locale Português (`pt.txt`):
+
+```cfg
+# Um comentário.
+# Outro Comentário.
+Esta linha é ignorada, uma vez que não tem sinal de igual.
+Hello, World! = Ola, Mundo!
+String with\nnewlines = String com\nsaltos de linha
+String with an \= equals sign = String com sinal de \= igual
+```
+
+Locale (ou tradução) são arquivos de texto simples que consistem em linhas da
+forma `texto de origem = texto traduzido`. O arquivo deve residir no subdiretório
+`locale` do mod, e deve ser nomeado com as duas letras do
+[Código de Idioma ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
+do idioma que deseja apoiar.
+
+Os arquivos de tradução devem usar a codificação UTF-8.
+
+As linhas que começam com um sinal de libra (#) são comentários e são efetivamente
+ignorados pelo interpretador. Note que comentários duram apenas até o fim da linha;
+não há suporte para comentários de várias linhas. Linhas sem um sinal de igual são
+ignoradas também.
+
+Caracteres considerados "especiais" podem ser "escapados" para que sejam
+interpretados corretamente. Existem várias sequências de escape que podem ser usadas:
+
+ * Qualquer `#` ou `=` pode ser escapado para ser interpretado corretamente.
+ A sequência `\#` é útil se o texto de origem começa com `#`.
+ * Sequências de escape comuns são `\n` e` \t`, ou seja, de nova linha e
+ guia horizontal, respectivamente.
+ * A sequência de escape especial `\s` representa o caractere de espaço. isto
+ pode ser útil principalmente para adicionar espaços antes ou depois de fonte ou
+ textos traduzida, uma vez que estes espaços seriam removidos de outro modo.
+
+## Palavras Finais
Obrigado por ler até este ponto.
-Se você tiver quaisquer comentários/sugestões, por favor poste no tópico do fórum.
+Se você tiver quaisquer comentários/sugestões, por favor poste no
+[Tópico do fórum](https://forum.minetest.net/viewtopic.php?id=4929) (em inglês). Para
+relatórios de bugs, use o [Rastreador de bugs](https://github.com/minetest-mods/intllib/issues/new)
+no Github.
Haja textos traduzidos! :P
---
-Tutorial criado por Kaeza
-Traduzido para Português do Brasil por BrunoMine
+
+\--
+
+Atenciosamente,
+Kaeza