diff --git a/app/assets/javascripts/components/locales/pt.jsx b/app/assets/javascripts/components/locales/pt.jsx
index 0fba15f2c7..e1b28df2fc 100644
--- a/app/assets/javascripts/components/locales/pt.jsx
+++ b/app/assets/javascripts/components/locales/pt.jsx
@@ -1,49 +1,53 @@
-const pt = {
- "column_back_button.label": "Voltar",
- "lightbox.close": "Fechar",
- "loading_indicator.label": "Carregando...",
- "status.mention": "Menção",
- "status.delete": "Deletar",
- "status.reply": "Responder",
- "status.reblog": "Reblogar",
- "status.favourite": "Favoritar",
- "status.reblogged_by": "{name} reblogou",
- "video_player.toggle_sound": "Alterar som",
- "account.mention": "Menção",
- "account.edit_profile": "Editar perfil",
- "account.unblock": "Desbloquear",
- "account.unfollow": "Unfollow",
- "account.block": "Bloquear",
- "account.follow": "Seguir",
- "account.block": "Bloquear",
- "account.posts": "Posts",
- "account.follows": "Segue",
- "account.followers": "Seguidoress",
- "account.follows_you": "Segue você",
- "getting_started.heading": "Primeiros passos",
- "getting_started.about_addressing": "Podes seguir pessoas se sabes o nome de usuário deles e o domínio em que estão entrando um endereço similar a e-mail no campo no topo da barra lateral.",
- "getting_started.about_shortcuts": "Se o usuário alvo está no mesmo domínio, só o nome funcionará. A mesma regra se aplica a mencionar pessoas nas postagens.",
- "getting_started.about_developer": "O desenvolvedor desse projeto pode ser seguido em Gargron@mastodon.social",
- "column.home": "Home",
- "column.mentions": "Menções",
- "column.public": "Público",
- "tabs_bar.compose": "Compôr",
- "tabs_bar.home": "Home",
- "tabs_bar.mentions": "Menções",
- "tabs_bar.public": "Público",
- "compose_form.placeholder": "Que estás pensando?",
- "compose_form.publish": "Publicar",
- "compose_form.sensitive": null,
- "compose_form.unlisted": null,
- "navigation_bar.settings": "Configurações",
- "navigation_bar.public_timeline": "Timeline Pública",
- "navigation_bar.logout": "Logout",
- "reply_indicator.cancel": "Cancelar",
- "search.placeholder": "Busca",
- "search.account": "Conta",
- "search.hashtag": "Hashtag",
- "upload_button.label": "Adicionar media",
- "upload_form.undo": "Desfazer"
-};
-
-export default pt;
+const pt = {
+ "column_back_button.label": "Voltar",
+ "lightbox.close": "Fechar",
+ "loading_indicator.label": "Carregando...",
+ "status.mention": "Menção",
+ "status.delete": "Deletar",
+ "status.reply": "Responder",
+ "status.reblog": "Reblogar",
+ "status.favourite": "Favoritar",
+ "status.reblogged_by": "{name} reblogou",
+ "video_player.toggle_sound": "Alterar som",
+ "account.mention": "Menção",
+ "account.edit_profile": "Editar perfil",
+ "account.unblock": "Desbloquear",
+ "account.unfollow": "Unfollow",
+ "account.block": "Bloquear",
+ "account.follow": "Seguir",
+ "account.block": "Bloquear",
+ "account.posts": "Posts",
+ "account.follows": "Segue",
+ "account.followers": "Seguidores",
+ "account.follows_you": "Segue você",
+ "getting_started.heading": "Primeiros passos",
+ "getting_started.about_addressing": "Podes seguir pessoas se sabes o nome de usuário deles e o domínio em que estão entrando um endereço similar a e-mail no campo no topo da barra lateral.",
+ "getting_started.about_shortcuts": "Se o usuário alvo está no mesmo domínio, só o nome funcionará. A mesma regra se aplica a mencionar pessoas nas postagens.",
+ "getting_started.about_developer": "O desenvolvedor desse projeto pode ser seguido em Gargron@mastodon.social",
+ "column.home": "Home",
+ "column.mentions": "Menções",
+ "column.public": "Público",
+ "tabs_bar.compose": "Compôr",
+ "tabs_bar.home": "Home",
+ "tabs_bar.mentions": "Menções",
+ "tabs_bar.public": "Público",
+ "tabs_bar.notifications": "Notificações",
+ "compose_form.placeholder": "Que estás pensando?",
+ "compose_form.publish": "Publicar",
+ "compose_form.sensitive": "Marcar conteúdo como sensível",
+ "navigation_bar.settings": "Configurações",
+ "navigation_bar.public_timeline": "Timeline Pública",
+ "navigation_bar.logout": "Logout",
+ "reply_indicator.cancel": "Cancelar",
+ "search.placeholder": "Busca",
+ "search.account": "Conta",
+ "search.hashtag": "Hashtag",
+ "upload_button.label": "Adicionar media",
+ "upload_form.undo": "Desfazer",
+ "notification.follow": "{name} seguiu você",
+ "notification.favourite": "{name} favoritou seu post",
+ "notification.reblog": "{name} reblogou o seu post",
+ "notification.mention": "{name} mecionou você"
+};
+
+export default pt;
diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml
new file mode 100644
index 0000000000..6c6f3d4d29
--- /dev/null
+++ b/config/locales/devise.pt.yml
@@ -0,0 +1,61 @@
+---
+pt:
+ devise:
+ confirmations:
+ confirmed: O seu endereço de email foi confirmado.
+ send_instructions: Você irá receber um email com instruções em como confirmar o seu endereço de email dentro de alguns minutos.
+ send_paranoid_instructions: Se o seu endereço de email já existir na nossa base de dados, irá receber um email com instruções em como confirmá-lo dentro de alguns minutos.
+ failure:
+ already_authenticated: A sua sessão já está aberta.
+ inactive: A sua contra ainda não está ativada.
+ invalid: %{authentication_keys} ou password inválidos.
+ last_attempt: Tem mais uma tentativa antes de a sua conta ser protegida.
+ locked: A sua conta está protegida
+ not_found_in_database: %{authentication_keys} ou password inválidos.
+ timeout: A sua sessão expirou. Por favore entre de novo para continuar.
+ unauthenticated: Você precsa de entrar ou registar-se antes de continuar.
+ unconfirmed: Você tem de confirmar o seu endereço de email antes de continuar.
+ mailer:
+ confirmation_instructions:
+ subject: 'Mastodon: Instruções de confirmação'
+ password_change:
+ subject: 'Mastodon: Password nova'
+ reset_password_instructions:
+ subject: 'Mastodon: Instruções para editar a password'
+ unlock_instructions:
+ subject: 'Mastodon: Instruções para desproteger a sua conta'
+ omniauth_callbacks:
+ failure: Could not authenticate you from %{kind} because "%{reason}".
+ success: Successfully authenticated from %{kind} account.
+ passwords:
+ no_token: Você não pode aceder a esta página sem ter vindo de um email para mudar a password. Se este for o case, por favor faça questão de verificar que usou o URL no email.
+ send_instructions: Irá receber um email com instruções em como mudar a sua password dentro de algns minutos.
+ send_paranoid_instructions: Se seu endereço de email existe na nossa base de dados, irá receber um link para recuperar a sua password dentro de alguns minutos.
+ updated: A sua password foi alterada. A sua sessão está aberta.
+ updated_not_active: A sua password foi alterada.
+ registrations:
+ destroyed: Adeus! A sua conta foi cancelada. Esperamos vê-lo em breve.
+ signed_up: Bem vindo! A sua conta foi registada com sucesso.
+ signed_up_but_inactive: A sua conta foi registada. No entanto, não abrimos a sua sessão porque a sua conta ainda não foi ativada.
+ signed_up_but_locked: A sua conta foi registada. No entanto, não abrimos a sua sessão porque a sua conta está protegida.
+ signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu email. Por favor siga o link para ativar a sua conta.
+ update_needs_confirmation: Você mudou o seu endereço de email ou password, mas é necessário confirmar a mudança. Por favor siga o link que foi enviado para o seu novo endereço de email.
+ updated: A sua conta foi alterada com sucesso.
+ sessions:
+ already_signed_out: Sessão fechada.
+ signed_in: Sessão iniciada.
+ signed_out: Sessão fechada.
+ unlocks:
+ send_instructions: Irá receber um email com instruções para desproteger a sua conta dentro de alguns minutos.
+ send_paranoid_instructions: Se a sua conta existe, irá receber um email com instruções a detalhar como a desproteger dentro de alguns minutos.
+ unlocked: A sua conta foi desprotegida. Por favor inicie sessão para continuar.
+ errors:
+ messages:
+ already_confirmed: já foi confirmado, por favor tente iniciar sessão
+ confirmation_period_expired: tem de ser confirmado dentro de %{period}, por favor tente outra vez
+ expired: expirou, por favor tente outra vez
+ not_found: não encontrado
+ not_locked: não está protegido
+ not_saved:
+ one: '1 erro impediu este %{resource} de ser guardado:'
+ other: "%{count} erros impediram este %{resource} de ser guardado:"
diff --git a/config/locales/doorkeeper.pt.yml b/config/locales/doorkeeper.pt.yml
new file mode 100644
index 0000000000..2b0568d8a8
--- /dev/null
+++ b/config/locales/doorkeeper.pt.yml
@@ -0,0 +1,112 @@
+---
+pt:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Nome
+ redirect_uri: Redirect URI
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: não pode conter um fragmento.
+ invalid_uri: tem de ser um URI válido.
+ relative_uri: tem de ser um URI absoluto.
+ secured_uri: tem de ser um HTTPS/SSL URI.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Autorizar
+ cancel: Cancelar
+ destroy: Destruir
+ edit: Editar
+ submit: Submeter
+ confirmations:
+ destroy: Tem a certeza?
+ edit:
+ title: Editar aplicação
+ form:
+ error: Oops! Verifique que o formulário não tem erros
+ help:
+ native_redirect_uri: Use %{native_redirect_uri} para testes locais
+ redirect_uri: Utilize uma linha por URI
+ scopes: Separate scopes with spaces. Leave blank to use the default scopes.
+ index:
+ callback_url: Callback URL
+ name: Nome
+ new: Nova Aplicação
+ title: As suas aplicações
+ new:
+ title: Nova aplicação
+ show:
+ actions: Ações
+ application_id: Id de Aplicação
+ callback_urls: Callback urls
+ scopes: Scopes
+ secret: Segredo
+ title: 'Aplicação: %{name}'
+ authorizations:
+ buttons:
+ authorize: Autorize
+ deny: Não autorize
+ error:
+ title: Ocorreu um erro
+ new:
+ able_to: Vai poder
+ prompt: Aplicação %{client_name} requisita acesso à sua conta
+ title: Autorização é necessária
+ show:
+ title: Código de autorização
+ authorized_applications:
+ buttons:
+ revoke: Revogar
+ confirmations:
+ revoke: Tem a certeza?
+ index:
+ application: Aplicação
+ created_at: Criada em
+ date_format: "%Y-%m-%d %H:%M:%S"
+ title: As suas aplicações autorizadas
+ errors:
+ messages:
+ access_denied: The resource owner or authorization server denied the request.
+ credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
+ invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.
+ invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.
+ invalid_redirect_uri: The redirect uri included is not valid.
+ invalid_request: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.
+ invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found
+ invalid_scope: The requested scope is invalid, unknown, or malformed.
+ invalid_token:
+ expired: O token de acesso expirou
+ revoked: O token de acesso foi revogado
+ unknown: O token de acesso é inválido
+ resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.
+ server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request.
+ temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
+ unauthorized_client: The client is not authorized to perform this request using this method.
+ unsupported_grant_type: The authorization grant type is not supported by the authorization server.
+ unsupported_response_type: The authorization server does not support this response type.
+ flash:
+ applications:
+ create:
+ notice: Aplicação criada.
+ destroy:
+ notice: Aplicação eliminada.
+ update:
+ notice: Aplicação alterada.
+ authorized_applications:
+ destroy:
+ notice: Aplicação revogada.
+ layouts:
+ admin:
+ nav:
+ applications: Aplicações
+ oauth2_provider: OAuth2 Provider
+ application:
+ title: Autorização OAuth necessária
+ scopes:
+ follow: siga, bloqueie, desbloqueie, e deixe de seguir contas
+ read: tenha acesso aos dados da sua conta
+ write: públique por si
\ No newline at end of file
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
new file mode 100644
index 0000000000..2d74c7c851
--- /dev/null
+++ b/config/locales/pt.yml
@@ -0,0 +1,60 @@
+---
+pt:
+ about:
+ about_instance: "%{instance} é uma instância de Mastodon."
+ about_mastodon: Mastodon é um servidor de rede social grátis, e open-source. Uma alternativa descentralizada
+ ás plataformas comerciais, que evita o risco de uma única empresa monopolizar a sua comunicação. Qualquer um pode ter uma instância Mastodon e assim participar na rede social federada sem problemas.
+ get_started: Como começar
+ source_code: Source code
+ terms: Termos
+ accounts:
+ follow: Seguir
+ followers: Seguidores
+ following: Following
+ nothing_here: Não há nada aqui!
+ people_followed_by: Pessoas seguidas por %{name}
+ people_who_follow: Pessoas que seguem %{name}
+ posts: Posts
+ unfollow: Unfollow
+ application_mailer:
+ signature: notificações Mastodon de %{instance}
+ auth:
+ change_password: Mudar password
+ didnt_get_confirmation: Não recebeu instruções de confirmação?
+ forgot_password: Esqueceu a password?
+ login: Entrar
+ register: Registar
+ resend_confirmation: Reenviar instruções de confirmação
+ reset_password: Reset password
+ set_new_password: Editar password
+ generic:
+ changes_saved_msg: Mudanças guardadas!
+ powered_by: powered by %{link}
+ save_changes: Guardar alterações
+ validation_errors:
+ one: Algo não está correto. Por favor reveja o erro abaixo
+ other: Algo não está correto. Por favor reveja os %{count} erros abaixo
+ notification_mailer:
+ favourite:
+ body: 'O seu post foi favoritado por %{name}:'
+ subject: "%{name} favouritou o seu post"
+ follow:
+ body: "%{name} seguiu você!"
+ subject: "%{name} segue você"
+ mention:
+ body: 'Você foi mencionado por %{name} em:'
+ subject: Foi mencionado por %{name}
+ reblog:
+ body: 'O seu post foi reblogado por %{name}:'
+ subject: "%{name} reblogou o seu post"
+ pagination:
+ next: Next
+ prev: Prev
+ settings:
+ edit_profile: Editar perfil
+ preferences: Preferências
+ stream_entries:
+ favourited: favoritou um post por
+ is_now_following: agora segue
+ will_paginate:
+ page_gap: "…"
diff --git a/config/locales/simple_form.pt.yml b/config/locales/simple_form.pt.yml
new file mode 100644
index 0000000000..b4e7108dd9
--- /dev/null
+++ b/config/locales/simple_form.pt.yml
@@ -0,0 +1,31 @@
+---
+pt:
+ simple_form:
+ labels:
+ defaults:
+ avatar: Avatar
+ confirm_new_password: Confirme nova password
+ confirm_password: Confirme a password
+ current_password: Password atual
+ display_name: Nome
+ email: Endereço de email
+ header: Header
+ locale: Linguagem
+ new_password: Nova password
+ note: Biografia
+ password: Password
+ silenced: Modo não-listado
+ username: Username
+ interactions:
+ must_be_follower: Bloquear notificações de não-seguidores
+ must_be_following: Bloquear notificações de pessoas que você
+ notification_emails:
+ favourite: Enviar email quando alguém favorita um post seu
+ follow: Enviar email quando alguém seguir você
+ mention: Enviar email quando alguém mencionar você
+ reblog: Enviar email quando alguém reblogar um post seu
+ 'no': 'Não'
+ required:
+ mark: "*"
+ text: necessário
+ 'yes': 'Sim'