Skip to content

Commit

Permalink
Updating languages and accounting for language code instances that co…
Browse files Browse the repository at this point in the history
…ntainn hyphens
  • Loading branch information
tristen committed Aug 4, 2013
1 parent 3cb6252 commit 2ebdfa2
Show file tree
Hide file tree
Showing 4 changed files with 260 additions and 25 deletions.
6 changes: 0 additions & 6 deletions translations/locales/es.json

This file was deleted.

240 changes: 240 additions & 0 deletions translations/locales/pt-BR.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
{
"login": "Autorizar no GitHub",
"docheader": {
"editing": "Editando",
"error": "Erro",
"preview": "Pré-visualizando"
},
"navigation": {
"newFile": "Novo Arquivo",
"edit": "Editar",
"preview": "Pré-Visualizar",
"settings": "Configurações",
"meta": "Meta Dados",
"save": "Salvar",
"login": "Autorizat com GitHub",
"about": "Sobre",
"develop": "Desenvolvedores",
"logout": "Sair",
"language": "Idioma"
},
"toolbar": {
"link": "Inserir Link",
"image": "Inserir Link",
"bold": "Negrito",
"italic": "Itálico",
"blockquote": "Citação",
"list": "Lista",
"numberedlist": "Lista Numerada",
"help": "Ajuda"
},
"heading": {
"explore": "Explorar Projetos"
},
"actions": {
"unsaved": "Você tem Mudanças não salvas Tem certeza que deseja sair?",
"draft": {
"toPost": "Rascunho para Post",
"toPostInfo": "Converter este rascunho para um post publicado"
},
"publishing": {
"publish": "Publicar",
"published": "Publicado",
"unpublish": "Despublicar",
"unpublished": "Despublicado"
},
"change": {
"noChange": "Sem Mudanças",
"submit": "Mudanças a Enviar",
"save": "Mudanças a Salvar"
},
"delete": {
"title": "Remover",
"warn": "Tem certeza que deseja remover este arquivo?",
"error": "Erro durante remoção. Por favor, aguarde 30 segundos e tente de novo."
},
"upload": {
"uploading": "Enviando {file}",
"uploaded": "Enviado {file}"
},
"save": {
"title": "Salvar",
"saved": "Salvo",
"saving": "Salvando",
"patch": "Solicitação Enviada",
"fileNameError": "Precisa de um nome de arquivo",
"submission": "Solicitação Enviada",
"metaError": "Erro! Metadados não Encontrados",
"fileNameExists": "Um nome de arquivo com este caminho já existe"
},
"error": "Erro. Tente de novo em 30 segundos",
"restore": {
"restoring": "Restaurando",
"restored": "Restaurado"
},
"commits": {
"created": "Criado {filename}",
"updated": "Atualizado {filename}",
"deleted": "Removido {filename}",
"toDraft": "Criado rascunho para {filename}",
"fromDraft": "Criado post a partir de um rascunho de {filename}"
}
},
"loading": {
"repos": "Carregando Perfil",
"repo": "Carregando Projeto",
"file": "Carregando Arquivo",
"preview": "Pré-visualizando Arquivo",
"creating": "Criando novo post"
},
"modal": {
"errorHeading": "Erro",
"confirm": "Entendi"
},
"main": {
"start": {
"content": "Prose é um editor de conteúdo para GitHub feito para gerenciar websites.",
"learn": "Saiba mais"
},
"repos": {
"filter": "Filtrar Projetos",
"repo": "Ver Projeto",
"site": "Ver Site",
"sharedFrom": "Compartilhado de uma conta",
"forkedFrom": "Fork de um outro projeto"
},
"repo": {
"filter": "Filtrar Arquivos",
"edit": "Editar",
"delete": "Remover este Arquivo"
},
"new": {
"body": "## Um Novo Post\n\nInsira texto em [Markdown](http://daringfireball.net/projects/markdown/). Use a barra acima ou clique no botão **?** para obter ajuda com formatação.\n"
},
"file": {
"noTitle": "Sem Título",
"metaTitle": "Revisar suas mudanças:",
"rawMeta": "Metadados brutos",
"metaDescription": "Adições estão destacadas em verde. Remoções estão riscadas.",
"back": "Concluído",
"createMeta": "Criar Novo"
},
"upgrade": {
"content": "Prose precisa de recursos não disponíveis em seu navegador",
"download": "Obtenha um Navegador Moderno"
}
},
"notification": {
"loginDescription": "Por favor, entre com sua conta do GitHub para acessar este projeto.",
"create": "Criar",
"home": "Voltar à Página Principal",
"back": "Voltar",
"githubStatus": "Status no GitHub ({status})",
"error": {
"label": "Erro",
"github": "Erro ao carregar dados do GitHub. Isto pode ser um problema temporário. Por favor, tente novamente mais tarde.",
"exists": "Este arquivo não existe",
"notFound": "Página não Encontrada"
}
},
"sidebar": {
"repos": {
"groups": "Grupos"
},
"repo": {
"branch": "Mudar de Branch",
"drafts": "Ver Rascunhos",
"history": {
"label": "Histórico Mais Recente",
"actions": {
"restore": "Restaurar?"
}
},
"create": "Criar Novo Arquivo"
},
"save": {
"label": "Descreva suas Mudanças",
"cancel": "Cancelar",
"save": "Commit",
"submit": "Enviar Solicitação de Mudança"
},
"settings": {
"title": "Opções",
"fileInputLabel": "Caminho do Arquivo",
"delete": "Remover este Arquivo",
"translate": "Traduzir para",
"draft": "Criar Rascunho"
}
},
"dialogs": {
"link": {
"title": "Inserir Link",
"insertLocal": "Inserir um Link Local",
"insert": "Inserir"
},
"media": {
"title": "Inserir Imagem",
"back": "Voltar",
"help": "Imagem enviadas são adicionadas ao diretório atual ou ao especificado no caminho Image URL acima.",
"choose": "Escolher Existente"
},
"help": {
"blockElements": {
"title": "Bloquear Elementos",
"content": {
"paragraphs": {
"title": "Paragráfos & Quebras de Linha"
},
"headers": {
"title": "Títulos",
"content": "<p>Markdown suporta dois formatos de títulos. O editor wiki usa títulos no estilo &ldquo;atx&rsquo;. Simplesmente inicie seu título com um número de caracteres <code>#</code> para especificar a profundidade do título. Por exemplo: <code># Título 1</code>, <code>## Título 2</code> e <code>### Título 3</code> serão títulos menores progressivamente. Você pode terminar seus títulos com qualquer número de sinais <strong>#</strong>.</p>\n"
},
"blockquotes": {
"title": "Citações",
"content": "<p>Markdown citações estilo email ao iniciar cada linha com <code>&gt;</code>. Isto vai aparecer melhor se você decidir inserir o prefixo em cada linha com o caracter <code>&gt;</code>, mas o Markdown suporta a inserção de apenas um <code>&gt;</code> antes do parágrafo.</p>\n"
},
"lists": {
"title": "Listas",
"content": "<p>Markdown suporta ambas listas ordenadas e não-ordenadas. Para criar uma lista ordenanad, apenas inicie cada linha com um número (qualquer número é aceito &mdash; isto é porque o editor usa apenas um número.) Para criar uma lista não-ordenada, você pode inserir em cada linha os prefixos <code>*</code>, <code>+</code> ou <code>-</code>.</p> Itens de lista podem conter múltiplos parágrafos, no entando cada parágrafo deve ser identado por pelo menos 4 espaços ou um tab.\n"
},
"codeBlocks": {
"title": "Blocos de Código",
"content": "<p>Markdown envolve blocos de código em tags pré-formatadas para preservar a indentação dos seus blocos de código. Para criar um bloco de código, indente um bloco inteiro por pelo menos 4 espaços ou um tab. Markdown irá remover a identação extra que você adicionou ao bloco de código.</p>\\n"
}
}
},
"spanElements": {
"title": "Elementos Span",
"content": {
"links": {
"title": "Links"
},
"emphasis": {
"title": "Ênfase",
"content": "<p>Asteriscos (<code>*</code>) e sublinhas (<code>_</code>) são tratados como ênfases e representam a tag <code>&lt;em&gt;</code>, que normalmente aparece como itálico nos navegadores. Asteriscos Duplos (<code>**</code>) ou sublinhas duplas (<code>__</code>) são tratados como negrito usando a tag <code>&lt;strong&gt;</code>. Para criar texto itálico ou negrito, simplesmente envolva suas palavras com astericos/sublinhas simples/duplos. Por exemplo, <code>**Meu texto com ênfase dupla**</code> se transforma em <strong>Meu texto com ênfase dupla</strong>, e <code>*Meu texto com ênfase simples*</code> se transforma em <em>Meu texto com ênfase simples</em>.</p>\n"
},
"code": {
"title": "Código",
"content": "<p>Para escrever código, simplesmente envolva o código com o sinal grave (<code>`</code>). Markdown irá converter <code>`myFunction`</code> em <code>myFunction</code>.</p>\n"
},
"images": {
"title": "Imagens",
"content": "<p>A sintaxe de imagens no Markdown se parece muito com a sintaxe de links; é essencialmente a mesma sintaxe precedida de um ponto de exclamação (<code>!</code>). Por exemplo, se você deseja referenciar uma imagem em <code>http://github.com/unicorn.png</code> com o texto alternativo <code>Meu Unicórnio</code>, você escreveria <code>![Meu Unicórnio](http://github.com/unicorn.png)</code>.</p>\n"
}
}
},
"miscellaneous": {
"title": "Diversos",
"content": {
"automaticLinks": {
"title": "Links Automáticos",
"content": "<p>Se você deseja criar um link que exiba a URL, markdown permite a você rapidamente envolver a URL em <code>&lt;</code> e <code>&gt;</code> para isso. Por exemplo, o link <a href=\"javascript:void(0);\">http://github.com/</a> é facilmente produzido ao escrever <code>&lt;http://github.com/&gt;</code>.</p>\n"
}
}
}
}
},
"chooselanguage": {
"title": "Escolha um Idioma"
}
}
1 change: 0 additions & 1 deletion translations/locales/pt.json

This file was deleted.

38 changes: 20 additions & 18 deletions translations/update_locales.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
/* Downloads the latest translations from Transifex */
/*
* Downloads the latest translations from Transifex.
*
* Note: Transifex oddly doesn't allow anonymous downloading
* auth is stored in transifex.auth in a json object:
* {
* "user": "username",
* "pass": "password"
* }
*/

var request = require('request');
var yaml = require('js-yaml');
var fs = require('fs');
Expand All @@ -8,14 +18,6 @@ var api = 'http://www.transifex.com/api/2/';
var auth = JSON.parse(fs.readFileSync('./translations/transifex.auth', 'utf8'));
var project = api + 'project/prose/';

/*
* Transifex oddly doesn't allow anonymous downloading
* auth is stored in transifex.auth in a json object:
* {
* "user": "username",
* "pass": "password"
* }
*/
asyncMap(['application'], getResource, function(err, locales) {
if (err) return console.log(err);
var locale = yaml.load(fs.readFileSync('./translations/application.yaml', 'utf8'));
Expand All @@ -25,9 +27,6 @@ asyncMap(['application'], getResource, function(err, locales) {
});

for (var i in locale) {

// Make some expections
if (i === 'pt-BR') i = 'pt';
fs.writeFileSync('./translations/locales/' + i + '.json', JSON.stringify(locale[i], null, 4));
}
});
Expand All @@ -40,11 +39,10 @@ function getResource(resource, callback) {
asyncMap(lang, getLanguage(resource), function(err, results) {
if (err) return callback(err);
var locale = {};

results.forEach(function(result, i) {
var code = lang[i].code;
if (code === 'pt-BR') code = 'pt'
locale[code] = yaml.load(result)[lang[i].code];

locale[code] = result;
});

callback(null, locale);
Expand All @@ -56,10 +54,13 @@ function getResource(resource, callback) {

function getLanguage(resource) {
return function(lang, callback) {
request.get(resource + 'translation/' + lang.code, { auth : auth },
var code = lang.code.replace(/-/g, '_');

request.get(resource + 'translation/' + code, { auth : auth },
function(err, resp, body) {
if (err) return callback(err);
callback(null, JSON.parse(body).content);

callback(null, yaml.load(JSON.parse(body).content)[code]);
});
};
}
Expand All @@ -69,9 +70,10 @@ function getLanguages(resource, callback) {
function(err, resp, body) {
if (err) return callback(err);
callback(null, JSON.parse(body).available_languages.map(function(d) {
var code = d.code.replace(/_/g, '-');
return {
name: d.name,
code: d.code.replace(/_/g, '-')
code: code
}
}).filter(function(d) {
return d !== 'en';
Expand Down

0 comments on commit 2ebdfa2

Please sign in to comment.