diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pt.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pt.yml
new file mode 100644
index 000000000..e82604220
--- /dev/null
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pt.yml
@@ -0,0 +1,29 @@
+download_pictures: Download imagens no seu servidor
+carrot: Habilitar compartilhamento para o Carrot
+diaspora_url: URL Diaspora, se o serviço está habilitado
+export_epub: Habilita exportação para ePub
+export_mobi: Habilita exportação para .mobi
+export_pdf: Habilita exportação para PDF
+export_csv: Habilita exportação para CSV
+export_json: Habilita exportação para JSON
+export_txt: Habilita exportação para TXT
+export_xml: Habilita exportação para XML
+pocket_consumer_key: Chave de consumidor do Pocket para importar conteúdo (https://getpocket.com/developer/docs/authentication)
+shaarli_url: URL Shaarli, se o serviço está habilitado
+share_diaspora: Habilitar compartilhamento para o Diaspora
+share_mail: Habilitar compartilhamento por e-mail
+share_shaarli: Habilitar compartilhamento para o Shaarli
+share_twitter: Habilitar compartilhamento para o Twitter
+show_printlink: Mostrar um link para imprimir o conteúdo
+wallabag_support_url: URL de Suporte do wallabag
+wallabag_url: URL de *sua* instância do wallabag
+entry: "artigo"
+export: "exportar"
+import: "importar"
+misc: "misc"
+modify_settings: "aplicar"
+piwik_host: Host de seu website Piwik
+piwik_site_id: ID de seu website Piwik
+piwik_enabled: Habilitar Piwik
+demo_mode_enabled: "Habilitar modo demo? (somente usado para o demo público do wallabag)"
+demo_mode_username: "Usuário demo"
diff --git a/app/Resources/FOSUserBundle/translations/FOSUserBundle.pt.yml b/app/Resources/FOSUserBundle/translations/FOSUserBundle.pt.yml
new file mode 100644
index 000000000..85eadfd87
--- /dev/null
+++ b/app/Resources/FOSUserBundle/translations/FOSUserBundle.pt.yml
@@ -0,0 +1,2 @@
+Login: "Login"
+Enter your email address below and we'll send you password reset instructions.: "Digite seu endereço de e-mail para enviarmos as instruções de recupeção de sua senha."
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
new file mode 100644
index 000000000..df5adb758
--- /dev/null
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
@@ -0,0 +1,423 @@
+security:
+ login:
+ page_title: 'Bem vindo ao wallabag!'
+ keep_logged_in: 'Mantenha-me autenticado'
+ forgot_password: 'Esqueceu a senha?'
+ submit: 'Login'
+ register: 'Registre-se'
+ username: 'Nome de usuário'
+ password: 'Senha'
+ cancel: 'Cancelar'
+ resetting:
+ description: 'Digite seu endereço de e-mail abaixo e enviaremos instruções para resetar sua senha.'
+ register:
+ page_title: 'Criar uma conta'
+ go_to_account: 'Ir para sua conta'
+
+menu:
+ left:
+ unread: 'Não lido'
+ starred: 'Destacado'
+ archive: 'Arquivo'
+ all_articles: 'Todas as entradas'
+ config: 'Configurações'
+ tags: 'Tags'
+ internal_settings: 'Configurações Internas'
+ import: 'Importar'
+ howto: 'How to'
+ developer: 'Desenvolvedor'
+ logout: 'Sair'
+ about: 'Sobre'
+ search: 'Pesquisa'
+ save_link: 'Salvar um link'
+ back_to_unread: 'Voltar para os artigos não lidos'
+ top:
+ add_new_entry: 'Adicionar uma nova entrada'
+ search: 'Pesquisa'
+ filter_entries: 'Filtrar entradas'
+ export: 'Exportar'
+ search_form:
+ input_label: 'Digite aqui sua pesquisa'
+
+footer:
+ wallabag:
+ elsewhere: 'Leve o wallabag com você'
+ social: 'Social'
+ powered_by: 'provido por'
+ about: 'Sobre'
+
+config:
+ page_title: 'Config'
+ tab_menu:
+ settings: 'Configurações'
+ rss: 'RSS'
+ user_info: 'Informação do Usuário'
+ password: 'Senha'
+ rules: 'Regras de tags'
+ new_user: 'Adicionar um usuário'
+ form:
+ save: 'Salvar'
+ form_settings:
+ theme_label: 'Tema'
+ items_per_page_label: 'Itens por página'
+ language_label: 'Idioma'
+ reading_speed:
+ label: 'Velocidade de leitura'
+ help_message: 'Você pode usar ferramentas online para estimar sua velocidade de leitura:'
+ 100_word: 'Posso ler ~100 palavras por minuto'
+ 200_word: 'Posso ler ~200 palavras por minuto'
+ 300_word: 'Posso ler ~300 palavras por minuto'
+ 400_word: 'Posso ler ~400 palavras por minuto'
+ form_rss:
+ description: 'Feeds RSS providos pelo wallabag permitem que você leia seus artigos salvos em seu leitor de RSS favorito. Você precisa gerar um token primeiro.'
+ token_label: 'Token RSS'
+ no_token: 'Nenhum Token'
+ token_create: 'Criar seu token'
+ token_reset: 'Gerar novamente seu token'
+ rss_links: 'Links RSS'
+ rss_link:
+ unread: 'não lido'
+ starred: 'destacado'
+ archive: 'arquivado'
+ rss_limit: 'Número de itens no feed'
+ form_user:
+ two_factor_description: 'Habilitar autenticação de dois passos significa que você receberá um e-mail com um código a cada nova conexão desconhecida.'
+ name_label: 'Nome'
+ email_label: 'E-mail'
+ twoFactorAuthentication_label: 'Autenticação de dois passos'
+ form_password:
+ old_password_label: 'Senha atual'
+ new_password_label: 'Nova senha'
+ repeat_new_password_label: 'Repita a nova senha'
+ form_rules:
+ if_label: 'if'
+ then_tag_as_label: 'então coloque a tag'
+ delete_rule_label: 'apagar'
+ rule_label: 'Regras'
+ tags_label: 'Tags'
+ faq:
+ title: 'FAQ'
+ tagging_rules_definition_title: 'O que as « regras de tags » significam?'
+ tagging_rules_definition_description: 'São regras usadas pelo Wallabag para automaticamente adicionar tags em novos artigos.
Cada vez que um novo artigo é adicionado, todas as regras de tags podem ser usadas para adicionar as tags que você configurou, ajudando-o com o problema de classificar manualmente seus artigos.'
+ how_to_use_them_title: 'Como eu as utilizo?'
+ how_to_use_them_description: 'Vamos dizer que você deseja adicionar a tag « leitura rápida » quando o tempo de leitura for menor que 3 minutos.
Neste caso, você deve « readingTime <= 3 » no campo Regra e « leitura rápida » no campo Tags.
Diversas tags podem ser adicionadas simultâneamente separando-as com vírgula: « leitura rápida, precisa ser lido »
Regras complexas podem ser escritas usando os seguintes operadores pré-definidos: if « readingTime >= 5 AND domainName = "github.com" » então adicione a tag « leitura longa, github »'
+ variables_available_title: 'Quais variáveis e operadores eu posso usar para escrever regras?'
+ variables_available_description: 'As seguintes variáveis e operadores podem ser usados para criar regras de tags:'
+ meaning: 'Meaning'
+ variable_description:
+ label: 'Variável'
+ title: 'Título da entrada'
+ url: 'URL da entrada'
+ isArchived: 'Se a entrada está arquivada ou não'
+ isDestacado: 'Se a entrada está destacada ou não'
+ content: 'O conteúdo da entrada'
+ language: 'O idioma da entrada'
+ mimetype: 'O mime-type da entrada'
+ readingTime: 'O tempo estimado de leitura da entrada, em minutos'
+ domainName: 'O domínio da entrada'
+ operator_description:
+ label: 'Operador'
+ less_than: 'Menor que...'
+ strictly_less_than: 'Estritamente menor que...'
+ greater_than: 'Maior que...'
+ strictly_greater_than: 'Estritamente maior que...'
+ equal_to: 'Igual a...'
+ not_equal_to: 'Diferente de...'
+ or: 'Uma regra OU outra'
+ and: 'Uma regra E outra'
+ matches: 'Testa que um assunto corresponde a uma pesquisa (maiúscula ou minúscula).
Exemplo: título corresponde a "futebol"
'
+ form_new_user:
+ username_label: 'Nome de Usuário'
+ password_label: 'Senha'
+ repeat_new_password_label: 'Repita a nova senha'
+ plain_password_label: '????'
+ email_label: 'E-mail'
+
+entry:
+ page_titles:
+ unread: 'Entradas não lidas'
+ starred: 'Entradas destacadas'
+ archived: 'Entradas arquivadas'
+ filtered: 'Entradas filtradas'
+ list:
+ number_on_the_page: '{0} Não existem entradas.|{1} Existe uma entrada.|]1,Inf[ Existem %count% entradas.'
+ reading_time: 'tempo estimado de leitura'
+ reading_time_minutes: 'tempo estimado de leitura: %readingTime% min'
+ reading_time_less_one_minute: 'tempo estimado de leitura: < 1 min'
+ reading_time_minutes_short: '%readingTime% min'
+ reading_time_less_one_minute_short: '< 1 min'
+ original_article: 'original'
+ toogle_as_read: 'Marcar como lido'
+ toogle_as_star: 'Marcar como destacado'
+ delete: 'Apagar'
+ export_title: 'Exportar'
+ filters:
+ title: 'Filtros'
+ status_label: 'Status'
+ archived_label: 'Arquivado'
+ starred_label: 'Destacado'
+ unread_label: 'Não Lido'
+ preview_picture_label: 'Possui uma imagem de preview'
+ preview_picture_help: 'Imagem de preview'
+ language_label: 'Idioma'
+ reading_time:
+ label: 'Tempo de leitura em minutos'
+ from: 'de'
+ to: 'para'
+ domain_label: 'Nome do domínio'
+ created_at:
+ label: 'Data de criação'
+ from: 'de'
+ to: 'para'
+ action:
+ clear: 'Limpar'
+ filter: 'Filtro'
+ view:
+ left_menu:
+ back_to_top: 'Voltar ao topo'
+ back_to_homepage: 'Voltar'
+ set_as_read: 'Marcar como lido'
+ set_as_unread: 'Marcar como não lido'
+ set_as_starred: 'Alternar destaque'
+ view_original_article: 'Artigo original'
+ re_fetch_content: 'Recapturar o conteúdo'
+ delete: 'Apagar'
+ add_a_tag: 'Adicionar uma tag'
+ share_content: 'Compartilhar'
+ share_email_label: 'E-mail'
+ download: 'Download'
+ print: 'Imprimir'
+ problem:
+ label: 'Problemas?'
+ description: 'este artigo aparece errado?'
+ edit_title: 'Editar título'
+ original_article: 'original'
+ annotations_on_the_entry: '{0} Sem anotações|{1} Uma anotação|]1,Inf[ %nbAnnotations% anotações'
+ created_at: 'Data de criação'
+ new:
+ page_title: 'Salvar nova entrada'
+ placeholder: 'http://website.com'
+ form_new:
+ url_label: Url
+ edit:
+ page_title: 'Editar uma entrada'
+ title_label: 'Título'
+ url_label: 'Url'
+ is_public_label: 'Público'
+ save_label: 'Salvar'
+
+about:
+ page_title: 'Sobre'
+ top_menu:
+ who_behind_wallabag: 'Quem está por trás do wallabag'
+ getting_help: 'Obtendo ajuda'
+ helping: 'Ajudando o wallabag'
+ contributors: 'Contribuidores'
+ third_party: 'Bibliotecas terceiras'
+ who_behind_wallabag:
+ developped_by: 'Desenvolvido por'
+ website: 'website'
+ many_contributors: 'E muitos outros contribuidores ♥ no Github'
+ project_website: 'Website do projeto'
+ license: 'Licença'
+ version: 'Versão'
+ getting_help:
+ documentation: 'Documentação'
+ bug_reports: 'Informar bugs'
+ support: 'Em nosso site de suporte ou no GitHub'
+ helping:
+ description: 'wallabag é livre e software livre. Você pode nos ajudar:'
+ by_contributing: 'contribuindo com o projeto:'
+ by_contributing_2: 'uma lista de todas as nossas necessidades'
+ by_paypal: 'via Paypal'
+ contributors:
+ description: 'Obrigado por contribuir com a aplicação web wallabag'
+ third_party:
+ description: 'Aqui está a lista de bibliotecas terceiras usadas no wallabag (com suas licenças):'
+ package: 'Pacote'
+ license: 'Licença'
+
+howto:
+ page_title: 'How to'
+ page_description: 'Existem diferentes formas de salvar um artigo:'
+ top_menu:
+ browser_addons: 'Extensões de navegadores'
+ mobile_apps: 'App's móveis'
+ bookmarklet: 'Bookmarklet'
+ form:
+ description: 'Obrigado por este formulário'
+ browser_addons:
+ firefox: 'Extensão padrão do Firefox'
+ chrome: 'Extensão do Chrome'
+ mobile_apps:
+ android:
+ via_f_droid: 'via F-Droid'
+ via_google_play: 'via Google Play'
+ ios: 'na iTunes Store'
+ windows: 'na Microsoft Store'
+ bookmarklet:
+ description: 'Arraste e solve este link na sua barra de favoritos:'
+
+quickstart:
+ page_title: 'Começo Rápido'
+ intro:
+ title: 'Bem-vindo ao wallabag!'
+ paragraph_1: 'Nós podemos acompanhar você em sua visita ao wallabag e mostrar algumas funcionalidades que podem lhe interessar.'
+ paragraph_2: 'Siga-nos!'
+ configure:
+ title: 'Configurar a aplicação'
+ language: 'Alterar idioma e design'
+ rss: 'Habilitar feeds RSS'
+ tagging_rules: 'Escrever regras para acrescentar tags automaticamente em seus artigos'
+ admin:
+ title: 'Administração'
+ description: 'Como administrador você tem privilégios no wallabag. Você pode:'
+ new_user: 'Criar um novo usuário'
+ analytics: 'Configurar o analytics'
+ sharing: 'habilitar alguns parâmetros para compartilhamento de artigos'
+ export: 'Configurar exportação'
+ import: 'Configurar importação'
+ first_steps:
+ title: 'Primeiros passos'
+ new_article: 'Salvar seu primeiro artigo'
+ unread_articles: 'E classificá-lo!'
+ migrate:
+ title: 'Migrar de um serviço existente'
+ description: 'Você está usando um outro serviço? Nós podemos ajudá-lo a recuperar seus dados para o wallabag.'
+ pocket: 'Migrar do Pocket'
+ wallabag_v1: 'Migrar do wallabag v1'
+ wallabag_v2: 'Migrar do wallabag v2'
+ developer:
+ title: 'Desenvolvedores'
+ create_application: 'Criar sua aplicação terceira'
+ docs:
+ title: 'Documentação completa'
+ annotate: 'Anotar seu artigo'
+ export: 'Converter seu artigo em ePUB ou PDF'
+ search_filters: 'veja coo você pode encontrar um artigo usanndo o motor de busca e filtros'
+ fetching_errors: 'O que eu posso fazer quando um artigo encontra erros na recuperação?'
+ all_docs: 'E outros muitos artigos!'
+ support:
+ title: 'Suporte'
+ description: 'Se você precisa de ajuda, nós estamos aqui.'
+ github: 'No GitHub'
+ email: 'Por e-mail'
+ gitter: 'No Gitter'
+
+tag:
+ page_title: 'Tags'
+ list:
+ number_on_the_page: '{0} Não existem tags.|{1} Uma tag.|]1,Inf[ Existem %count% tags.'
+
+import:
+ page_title: 'Importar'
+ page_description: 'Bem-vindo ao importador do wallabag. Por favo selecione o serviço do qual deseja migrar.'
+ action:
+ import_contents: 'Importar conteúdos'
+ form:
+ mark_as_read_title: 'Marcar todos como lidos?'
+ mark_as_read_label: 'Marcar todas as entradas importadas como lidas'
+ file_label: 'Arquivo'
+ save_label: 'Carregar arquivo'
+ pocket:
+ page_title: 'Importar > Pocket'
+ description: 'Com este importador você importa todos os seus dados do Pocket. O Pocket não nos permite recuperar o conteúdo de seu serviço, então o conteúdo que pode ser lido é recarregado pelo wallabag.'
+ config_missing:
+ description: 'O importador do Pocket não está configurado.'
+ admin_message: 'Você precisa definir uma %keyurls%a pocket_consumer_key%keyurle%.'
+ user_message: 'Seu administrador do servidor precisa definir uma chave de API para o Pocket.'
+ authorize_message: 'Você pode importar seus dados de sua conta do Pocket. Você somente precisa clicar no botão abaixo e autorizar a aplicação a conectar-se ao getpocket.com.'
+ connect_to_pocket: 'Conecte ao Pocket e importe os dados'
+ wallabag_v1:
+ page_title: 'Importar > Wallabag v1'
+ description: 'Com este importador você importa todos os seus artigos do wallabag v1. Na sua página de configuração, clique em "JSON export" na opção "Export your wallabag data". Você irá criar um arquivo "wallabag-export-1-xxxx-xx-xx.json".'
+ how_to: 'Por favor, selecione seu exportador wallabag e clique no botão abaixo para carregar e importar.'
+ wallabag_v2:
+ page_title: 'Importar > Wallabag v2'
+ description: 'Com este importador você importa todos os seus artigos do wallabag v2. Vá em Todos os artigos e então, na barra lateral de exportação, clique em "JSON". Você irá criar um arquivo "All articles.json".'
+
+developer:
+ page_title: 'Desenvolvedor'
+ welcome_message: 'Bem-vindo a API do wallabag'
+ documentation: 'Documentação'
+ how_to_first_app: 'Como criar minha primeira aplicação'
+ full_documentation: 'Ver a documentação completa da API'
+ list_methods: 'Lista de métodos da API'
+ clients:
+ title: 'Clientes'
+ create_new: 'Criar um novo cliente'
+ existing_clients:
+ title: 'Clientes existentes'
+ field_id: 'ID do cliente'
+ field_secret: 'Chave do cliente'
+ field_uris: 'URIs de redirecionamento'
+ field_grant_types: 'Tipo permitido'
+ no_client: 'Nenhum cliente até agora.'
+ remove:
+ warn_message_1: 'Você tem permissão pare remover este cliente. Esta ação é IRREVERSÍVEL !'
+ warn_message_2: 'Se você remover isso, todo o aplicativo configurado com este cliente não poderá se autenticar no seu wallabag.'
+ action: 'Remover este cliente'
+ client:
+ page_title: 'Desenvolvedor > Novo cliente'
+ page_description: 'Você está prestes a criar um novo cliente. Por favor preencha o campo abaixo para a URI de redirecionamento de sua aplicação.'
+ form:
+ redirect_uris_label: 'URIs de redirecionamento'
+ save_label: 'Criar um novo cliente'
+ action_back: 'Voltar'
+ client_parameter:
+ page_title: 'Desenvolvedor > Parâmetros de clientes'
+ page_description: 'Aqui estão os parâmetros de seus clientes.'
+ field_id: 'ID do cliente'
+ field_secret: 'Chave do cliente'
+ back: 'Voltar'
+ read_howto: 'Leia o how-to "Criar minha primeira aplicação"'
+ howto:
+ page_title: 'Desenvolvedor > Criar minha primeira aplicação'
+ description:
+ paragraph_1: 'Os seguintes comandos fazem uso da biblioteca HTTPie. Tenha certeza que ela está instalada em seu servidor antes de usá-la.'
+ paragraph_2: 'Você precisa de um token para a comunicação entre sua aplicação terceira e a API do wallabag.'
+ paragraph_3: 'Para criar este token, você precisa criar um novo cliente.'
+ paragraph_4: 'Agora, crie seu token (altere client_id, client_secret, username e password com os valores corretos):'
+ paragraph_5: 'A API pode retornar uma resposta como essa:'
+ paragraph_6: 'O access_token é utilizável para fazer uma chamada para o endpoint da API. Por exemplo:'
+ paragraph_7: 'Esta chamada pode retornar todas as entradas de seu usuário.'
+ paragraph_8: 'Se você deseja ver todos os endpoints da API, dê uma olhada em nossa documentação da API.'
+ back: 'Voltar'
+
+flashes:
+ config:
+ notice:
+ config_saved: 'Configiração salva. Alguns parâmetros podem ser considerados depois da desconexão.'
+ password_updated: 'Senha atualizada'
+ password_not_updated_demo: 'Em modo de demonstração, você não pode alterar a senha deste usuário.'
+ user_updated: 'Informação atualizada'
+ rss_updated: 'Informação de RSS atualizada'
+ tagging_rules_updated: 'Regras de tags atualizadas'
+ tagging_rules_deleted: 'Regra de tag apagada'
+ user_added: 'Usuário "%username%" adicionado'
+ rss_token_updated: 'Token RSS atualizado'
+ entry:
+ notice:
+ entry_already_saved: 'Entrada já foi salva em %date%'
+ entry_saved: 'Entrada salva'
+ entry_saved_failed: 'Failed to save entry'
+ entry_updated: 'Entrada atualizada'
+ entry_reloaded: 'Entrada recarregada'
+ entry_reload_failed: 'Falha em recarregar a entrada'
+ entry_archived: 'Entrada arquivada'
+ entry_unarchived: 'Entrada desarquivada'
+ entry_starred: 'Entrada destacada'
+ entry_unstarred: 'Entrada não destacada'
+ entry_deleted: 'Entrada apagada'
+ tag:
+ notice:
+ tag_added: 'Tag adicionada'
+ import:
+ notice:
+ failed: 'Importação falhou, por favor tente novamente.'
+ failed_on_file: 'Erro ao processar a importação. Por favor verifique seu arquivo de importação.'
+ summary: 'relatório de importação: %imported% importados, %skipped% já existem.'
+ developer:
+ notice:
+ client_created: 'Novo cliente criado.'
+ client_deleted: 'Cliente removido'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.pt.yml
new file mode 100644
index 000000000..cdfa46a6d
--- /dev/null
+++ b/src/Wallabag/CoreBundle/Resources/translations/validators.pt.yml
@@ -0,0 +1,6 @@
+validator:
+ password_must_match: 'The password fields must match.'
+ password_too_short: 'Password should by at least 8 chars long'
+ password_wrong_value: 'Wrong value for your current password'
+ item_per_page_too_high: 'This will certainly kill the app'
+ rss_limit_too_hight: 'This will certainly kill the app'