From 08f00df94b00c2b24c4d57703e28e566295d6b12 Mon Sep 17 00:00:00 2001
From: m4sk1n
Date: Sun, 10 Sep 2017 17:25:39 +0200
Subject: i18n: Update Polish translation (#4881)
---
config/locales/pl.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 88125f692..a2437efc5 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -165,6 +165,9 @@ pl:
unresolved: Nierozwiązane
view: Wyświetl
settings:
+ bootstrap_timeline_accounts:
+ desc_html: Oddzielaj nazwy użytkowników przecinkami. Działa tylko dla niezablokowanych kont w obrębie instancji. Jeżeli puste, zostaną użyte konta administratorów instancji.
+ title: Domyślne obserwacje nowych użytkowników
contact_information:
email: Służbowy adres e-mail
username: Nazwa użytkownika do kontaktu
--
cgit
From a345479de20bb508ef576af54427c35888deb0cc Mon Sep 17 00:00:00 2001
From: Masoud Abkenar
Date: Mon, 11 Sep 2017 01:35:27 +0200
Subject: l10n: update Persian translation (#4880)
* l10n: update Persian translation
* l10n: fix missing Persian translation
---
app/javascript/mastodon/locales/fa.json | 2 ++
config/locales/fa.yml | 27 ++++++++++++++++++++++++++-
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index d05b26eb9..284c5a812 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -34,6 +34,7 @@
"column.mutes": "کاربران بیصداشده",
"column.notifications": "اعلانها",
"column.public": "نوشتههای همهجا",
+ "column.pins": "نوشتههای ثابت",
"column_back_button.label": "بازگشت",
"column_header.hide_settings": "نهفتن تنظیمات",
"column_header.moveLeft_settings": "انتقال ستون به چپ",
@@ -111,6 +112,7 @@
"navigation_bar.mutes": "کاربران بیصداشده",
"navigation_bar.preferences": "ترجیحات",
"navigation_bar.public_timeline": "نوشتههای همهجا",
+ "navigation_bar.pins": "نوشتههای ثابت",
"notification.favourite": "{name} نوشتهٔ شما را پسندید",
"notification.follow": "{name} پیگیر شما شد",
"notification.mention": "{name} از شما نام برد",
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index ba726fc75..56fc7213b 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -37,12 +37,16 @@ fa:
follow: پی بگیرید
followers: پیگیران
following: پی میگیرد
+ media: عکس و ویدیو
nothing_here: اینجا چیزی نیست!
people_followed_by: کسانی که %{name} پی میگیرد
people_who_follow: کسانی که %{name} را پی میگیرند
- posts: نوشته
+ posts: نوشتهها
+ posts_with_replies: نوشتهها و پاسخها
remote_follow: پیگیری غیرمستقیم
reserved_username: این نام کاربری در دسترس نیست
+ roles:
+ admin: مدیر
unfollow: پایان پیگیری
admin:
accounts:
@@ -57,6 +61,7 @@ fa:
feed_url: نشانی فید
followers: پیگیران
follows: پی میگیرد
+ inbox_url: نشانی صندوق ورودی
ip: IP
location:
all: همه
@@ -76,8 +81,10 @@ fa:
alphabetic: الفبایی
most_recent: تازهترینها
title: ترتیب
+ outbox_url: نشانی صندوق خروجی
perform_full_suspension: انجام تعلیق کامل
profile_url: نشانی نمایه
+ protocol: پروتکل
public: عمومی
push_subscription_expires: عضویت از راه PuSH منقضی شد
redownload: بهروزرسانی تصویر نمایه
@@ -160,6 +167,9 @@ fa:
unresolved: حلنشده
view: نمایش
settings:
+ bootstrap_timeline_accounts:
+ desc_html: نامهای کاربری را با ویرگول از هم جدا کنید. تنها حسابهای محلی و قفلنشده کار میکنند. اگر اینجا را خالی بگذارید، به طور پیشفرض همهٔ مدیرهای این سرور پیگرفته خواهند شد.
+ title: پیگیریهای پیشفرض برای کاربران تازه
contact_information:
email: ایمیل کاری
username: نام کاربری
@@ -220,7 +230,13 @@ fa:
signature: اعلانهای ماستدون از %{instance}
view: 'نمایش:'
applications:
+ created: برنامه با موفقیت ساخته شد
+ destroyed: برنامه با موفقیت پاک شد
invalid_url: نشانی واردشده معتبر نیست
+ regenerate_token: دوبارهسازی کد دسترسی
+ token_regenerated: کد دسترسی با موفقیت ساخته شد
+ warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید!
+ your_token: کد دسترسی شما
auth:
agreement_html: پیش از عضو شدن باید شرایط استفاده و سیاست رازداری ما را بپذیرید.
change_password: امنیت
@@ -228,6 +244,7 @@ fa:
delete_account_html: اگر میخواهید حساب خود را پاک کنید، از اینجا پیش بروید. از شما درخواست تأیید خواهد شد.
didnt_get_confirmation: راهنمایی برای تأیید را دریافت نکردید؟
forgot_password: رمزتان را گم کردهاید؟
+ invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one.
login: ورود
logout: خروج
register: عضو شوید
@@ -416,6 +433,7 @@ fa:
authorized_apps: برنامههای مجاز
back: بازگشت به ماستدون
delete: پاککردن حساب
+ development: Development
edit_profile: ویرایش نمایه
export: برونسپاری دادهها
followers: پیگیران مورد تأیید
@@ -423,9 +441,14 @@ fa:
preferences: ترجیحات
settings: تنظیمات
two_factor_authentication: ورود دومرحلهای
+ your_apps: برنامهٔ شما
statuses:
open_in_web: بازکردن در وب
over_character_limit: از حد مجاز %{max} حرف فراتر رفتید
+ pin_errors:
+ ownership: نوشتههای دیگران را نمیتوان ثابت کرد
+ private: نوشتههای غیرعمومی را نمیتوان ثابت کرد
+ reblog: بازبوقها را نمیتوان ثابت کرد
show_more: نمایش
visibilities:
private: خصوصی
@@ -436,6 +459,7 @@ fa:
unlisted_long: عمومی، ولی در فهرست نوشتهها نمایش نمییابد
stream_entries:
click_to_show: برای نمایش کلیک کنید
+ pinned: نوشتههای ثابت
reblogged: بازبوقید
sensitive_content: محتوای حساس
terms:
@@ -530,3 +554,4 @@ fa:
users:
invalid_email: نشانی ایمیل نامعتبر است
invalid_otp_token: کد ورود دومرحلهای نامعتبر است
+ signed_in_as: 'واردشده به نام:'
--
cgit
From c2bee07dbc12c799f412a39a4d5499264baac81e Mon Sep 17 00:00:00 2001
From: Anna e só
Date: Sun, 10 Sep 2017 20:40:29 -0300
Subject: l10n: Full PT-BR translation (#4882)
* devise.pt-BR.yml now fully translated
* pt-BR.json now fully translated
* pt-BR.yml partially translated; 46 lines left
* pt-BR.yml now fully translated
* simple_form.pt-BR.yml fully translated
* doorkeeper.pt-BR.yml now fully translated
* E-mail instructions on app/views/user_mailer added and fully translated
* PT-BR translation for #4871
* Deleted an unwanted caracter on pt-BR.yml
* Fixing typos on pt-BR.yml
* Added translation for Pinned toots tab on pt-BR.json
* Added missing translation for navigation_bar.pins
---
app/javascript/mastodon/locales/pt-BR.json | 176 ++++---
.../confirmation_instructions.pt-BR.html.erb | 12 +
.../confirmation_instructions.pt-BR.text.erb | 12 +
.../user_mailer/password_change.pt-BR.html.erb | 3 +
.../user_mailer/password_change.pt-BR.text.erb | 3 +
.../reset_password_instructions.pt-BR.html.erb | 8 +
.../reset_password_instructions.pt-BR.text.erb | 8 +
config/locales/devise.pt-BR.yml | 70 +--
config/locales/doorkeeper.pt-BR.yml | 115 ++--
config/locales/pt-BR.yml | 581 +++++++++++++++------
config/locales/simple_form.pt-BR.yml | 75 +--
11 files changed, 683 insertions(+), 380 deletions(-)
create mode 100644 app/views/user_mailer/confirmation_instructions.pt-BR.html.erb
create mode 100644 app/views/user_mailer/confirmation_instructions.pt-BR.text.erb
create mode 100644 app/views/user_mailer/password_change.pt-BR.html.erb
create mode 100644 app/views/user_mailer/password_change.pt-BR.text.erb
create mode 100644 app/views/user_mailer/reset_password_instructions.pt-BR.html.erb
create mode 100644 app/views/user_mailer/reset_password_instructions.pt-BR.text.erb
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index e861bf73f..87f8097aa 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -6,25 +6,25 @@
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.follows": "Segue",
- "account.follows_you": "É seu seguidor",
+ "account.follows_you": "Segue você",
"account.media": "Mídia",
"account.mention": "Mencionar @{name}",
"account.mute": "Silenciar @{name}",
"account.posts": "Posts",
"account.report": "Denunciar @{name}",
- "account.requested": "Aguardando aprovação",
+ "account.requested": "Aguardando aprovação. Clique para cancelar a solicitação.",
"account.share": "Compartilhar perfil de @{name}",
- "account.unblock": "Não bloquear @{name}",
+ "account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Desbloquear {domain}",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}",
"account.view_full_profile": "Ver perfil completo",
- "boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
- "bundle_column_error.body": "Something went wrong while loading this component.",
+ "boost_modal.combo": "Você pode pressionar {combo} para ignorar este diálogo na próxima vez",
+ "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.",
"bundle_column_error.retry": "Tente novamente",
- "bundle_column_error.title": "Network error",
+ "bundle_column_error.title": "Erro de rede",
"bundle_modal_error.close": "Fechar",
- "bundle_modal_error.message": "Something went wrong while loading this component.",
+ "bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.",
"bundle_modal_error.retry": "Tente novamente",
"column.blocks": "Usuários bloqueados",
"column.community": "Local",
@@ -34,6 +34,7 @@
"column.mutes": "Usuários silenciados",
"column.notifications": "Notificações",
"column.public": "Global",
+ "column.pins": "Postagens fixadas",
"column_back_button.label": "Voltar",
"column_header.hide_settings": "Esconder configurações",
"column_header.moveLeft_settings": "Mover coluna para a esquerda",
@@ -43,156 +44,157 @@
"column_header.unpin": "Desafixar",
"column_subheading.navigation": "Navegação",
"column_subheading.settings": "Configurações",
- "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar as suas postagens só para seguidores.",
- "compose_form.lock_disclaimer.lock": "locked",
+ "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.",
+ "compose_form.lock_disclaimer.lock": "trancado",
"compose_form.placeholder": "No que você está pensando?",
- "compose_form.privacy_disclaimer": "O seu conteúdo privado será compartilhado com os usuários do {domains}. Você confia {domainsCount, plural, one {neste servidor} other {nestes servidores}}? As configurações de privacidade só funcionam em instâncias do Mastodon. Se {domains} {domainsCount, plural, one {não é uma instância} other {não são instâncias}}, não há como garantir a privacidade de suas postagens, e elas podem ser compartilhadas com outros.",
+ "compose_form.privacy_disclaimer": "O seu conteúdo privado será compartilhado com os usuários de {domains}. Você confia {domainsCount, plural, one {neste servidor} other {nestes servidores}}? As configurações de privacidade só funcionam em instâncias do Mastodon. Se {domains} {domainsCount, plural, one {não é uma instância} other {não são instâncias}}, não há como garantir a privacidade de suas postagens, e elas podem ser compartilhadas com destinatários indesejados.",
"compose_form.publish": "Publicar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive": "Marcar mídia como conteúdo sensível",
- "compose_form.spoiler": "Esconder texto com aviso",
+ "compose_form.spoiler": "Esconder texto com aviso de conteúdo",
"compose_form.spoiler_placeholder": "Aviso de conteúdo",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "Você tem certeza de que quer bloquear {name}?",
"confirmations.delete.confirm": "Excluir",
- "confirmations.delete.message": "Você tem certeza de que quer excluir este status?",
+ "confirmations.delete.message": "Você tem certeza de que quer excluir esta postagem?",
"confirmations.domain_block.confirm": "Esconder o domínio inteiro",
"confirmations.domain_block.message": "Você quer mesmo bloquear {domain} inteiro? Na maioria dos casos, silenciar ou bloquear alguns usuários é o suficiente e o recomendado.",
"confirmations.mute.confirm": "Silenciar",
"confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Você tem certeza de que quer deixar de seguir {name}?",
- "embed.instructions": "Embed this status on your website by copying the code below.",
- "embed.preview": "Here is what it will look like:",
- "emoji_button.activity": "Activity",
- "emoji_button.flags": "Flags",
- "emoji_button.food": "Food & Drink",
+ "embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo:",
+ "embed.preview": "Aqui está uma previsão de como ficará:",
+ "emoji_button.activity": "Atividades",
+ "emoji_button.flags": "Bandeiras",
+ "emoji_button.food": "Comidas & Bebidas",
"emoji_button.label": "Inserir Emoji",
- "emoji_button.nature": "Nature",
- "emoji_button.objects": "Objects",
- "emoji_button.people": "People",
- "emoji_button.search": "Search...",
- "emoji_button.symbols": "Symbols",
- "emoji_button.travel": "Travel & Places",
- "empty_column.community": "Ainda não existem conteúdo local para mostrar!",
- "empty_column.hashtag": "Ainda não existe qualquer conteúdo com essa hashtag",
- "empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.",
- "empty_column.home.inactivity": "Your home feed is empty. If you have been inactive for a while, it will be regenerated for you soon.",
+ "emoji_button.nature": "Natureza",
+ "emoji_button.objects": "Objetos",
+ "emoji_button.people": "Pessoas",
+ "emoji_button.search": "Buscar...",
+ "emoji_button.symbols": "Símbolos",
+ "emoji_button.travel": "Viagens & Lugares",
+ "empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
+ "empty_column.hashtag": "Ainda não há qualquer conteúdo com essa hashtag",
+ "empty_column.home": "Você ainda não segue usuário algo. Visite a timeline {public} ou use o buscador para procurar e conhecer outros usuários.",
+ "empty_column.home.inactivity": "A sua página inicial está vazia. Se você esteve inativo por um tempo, ela irá se regenerar em alguns intantes.",
"empty_column.home.public_timeline": "global",
- "empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
- "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para ver aqui os conteúdos públicos.",
+ "empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar!",
+ "empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias.",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"getting_started.appsshort": "Apps",
"getting_started.faq": "FAQ",
"getting_started.heading": "Primeiros passos",
- "getting_started.open_source_notice": "Mastodon é software de fonte aberta. Podes contribuir ou repostar problemas no GitHub do projecto: {github}.",
- "getting_started.userguide": "User Guide",
+ "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do GitHub do projeto: {github}.",
+ "getting_started.userguide": "Guia de usuário",
"home.column_settings.advanced": "Avançado",
"home.column_settings.basic": "Básico",
"home.column_settings.filter_regex": "Filtrar com uma expressão regular",
- "home.column_settings.show_reblogs": "Mostrar as partilhas",
+ "home.column_settings.show_reblogs": "Mostrar compartilhamentos",
"home.column_settings.show_replies": "Mostrar as respostas",
- "home.settings": "Parâmetros da listagem",
+ "home.settings": "Configurações de colunas",
"lightbox.close": "Fechar",
- "lightbox.next": "Next",
- "lightbox.previous": "Previous",
+ "lightbox.next": "Próximo",
+ "lightbox.previous": "Anterior",
"loading_indicator.label": "Carregando...",
"media_gallery.toggle_visible": "Esconder/Mostrar",
"missing_indicator.label": "Não encontrado",
- "navigation_bar.blocks": "Utilizadores bloqueados",
+ "navigation_bar.blocks": "Usuários bloqueados",
"navigation_bar.community_timeline": "Local",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.follow_requests": "Seguidores pendentes",
"navigation_bar.info": "Mais informações",
"navigation_bar.logout": "Sair",
- "navigation_bar.mutes": "Utilizadores silenciados",
+ "navigation_bar.mutes": "Usuários silenciados",
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Global",
- "notification.favourite": "{name} adicionou o teu post aos favoritos",
- "notification.follow": "{name} seguiu-te",
- "notification.mention": "{name} mencionou-te",
- "notification.reblog": "{name} partilhou o teu post",
+ "navigation_bar.pins": "Postagens fixadas",
+ "notification.favourite": "{name} adicionou a sua postagem aos favoritos",
+ "notification.follow": "{name} te seguiu",
+ "notification.mention": "{name} te mencionou",
+ "notification.reblog": "{name} compartilhou a sua postagem",
"notifications.clear": "Limpar notificações",
- "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
+ "notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações permanentemente?",
"notifications.column_settings.alert": "Notificações no computador",
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Menções:",
- "notifications.column_settings.push": "Push notifications",
- "notifications.column_settings.push_meta": "This device",
- "notifications.column_settings.reblog": "Partilhas:",
+ "notifications.column_settings.push": "Enviar notificações",
+ "notifications.column_settings.push_meta": "Este aparelho",
+ "notifications.column_settings.reblog": "Compartilhamento:",
"notifications.column_settings.show": "Mostrar nas colunas",
"notifications.column_settings.sound": "Reproduzir som",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.done": "Pronto",
+ "onboarding.next": "Próximo",
+ "onboarding.page_five.public_timelines": "A timeline local mostra postagens públicas de todos os usuários no {domain}. A timeline federada mostra todas as postagens de todas as pessoas que pessoas no {domain} seguem. Estas são as timelines públicas, uma ótima maneira de conhecer novas pessoas.",
+ "onboarding.page_four.home": "A página inicial mostra postagens de pessoas que você segue.",
+ "onboarding.page_four.notifications": "A coluna de notificações te mostra quando alguém interage com você.",
+ "onboarding.page_one.federation": "Mastodon é uma rede d servidores independentes se juntando para fazer uma grande rede social. Nós chamamos estes servidores de instâncias.",
+ "onboarding.page_one.handle": "Você está no {domain}, então o seu nome de usuário completo é {handle}",
+ "onboarding.page_one.welcome": "Seja bem-vindo(a) ao Mastodon!",
+ "onboarding.page_six.admin": "O administrador de sua instância é {admin}.",
+ "onboarding.page_six.almost_done": "Quase acabando...",
"onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
+ "onboarding.page_six.apps_available": "Há {apps} disponíveis para iOS, Android e outras plataformas.",
+ "onboarding.page_six.github": "Mastodon é um software gratuito e de código aberto. Você pode reportar bugs, prequisitar novas funções ou contribuir para o código no {github}.",
+ "onboarding.page_six.guidelines": "diretrizes da comunidade",
+ "onboarding.page_six.read_guidelines": "Por favor, leia as {guidelines} do {domain}!",
+ "onboarding.page_six.various_app": "aplicativos móveis",
+ "onboarding.page_three.profile": "Edite o seu perfil para mudar o seu o seu avatar, bio e nome de exibição. No menu de configurações, você também encontrará outras preferências.",
+ "onboarding.page_three.search": "Use a barra de buscas para encontrar pessoas e consultar hashtahs, como #illustrations e #introductions. Para procurar por uma pessoa que não estiver nesta instância, use o nome de usuário completo dela.",
+ "onboarding.page_two.compose": "Escreva postagens na coluna de escrita. Você pode hospedar imagens, mudar as configurações de privacidade e adicionar alertas de conteúdo através dos ícones abaixo.",
+ "onboarding.skip": "Pular",
"privacy.change": "Ajustar a privacidade da mensagem",
- "privacy.direct.long": "Apenas para utilizadores mencionados",
- "privacy.direct.short": "Directo",
- "privacy.private.long": "Apenas para os seguidores",
- "privacy.private.short": "Privado",
+ "privacy.direct.long": "Apenas para usuários mencionados",
+ "privacy.direct.short": "Direta",
+ "privacy.private.long": "Apenas para seus seguidores",
+ "privacy.private.short": "Privada",
"privacy.public.long": "Publicar em todos os feeds",
- "privacy.public.short": "Público",
- "privacy.unlisted.long": "Não publicar nos feeds públicos",
- "privacy.unlisted.short": "Não listar",
+ "privacy.public.short": "Pública",
+ "privacy.unlisted.long": "Não publicar em feeds públicos",
+ "privacy.unlisted.short": "Não listada",
"reply_indicator.cancel": "Cancelar",
"report.placeholder": "Comentários adicionais",
"report.submit": "Enviar",
"report.target": "Denunciar",
"search.placeholder": "Pesquisar",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
- "standalone.public_title": "A look inside...",
- "status.cannot_reblog": "This post cannot be boosted",
+ "standalone.public_title": "Dê uma espiada...",
+ "status.cannot_reblog": "Esta postagem não pode ser compartilhada",
"status.delete": "Eliminar",
- "status.embed": "Embed",
+ "status.embed": "Incorporar",
"status.favourite": "Adicionar aos favoritos",
"status.load_more": "Carregar mais",
- "status.media_hidden": "Media escondida",
+ "status.media_hidden": "Mídia escondida",
"status.mention": "Mencionar @{name}",
- "status.mute_conversation": "Mute conversation",
+ "status.mute_conversation": "Silenciar conversa",
"status.open": "Expandir",
- "status.pin": "Pin on profile",
- "status.reblog": "Partilhar",
- "status.reblogged_by": "{name} partilhou",
+ "status.pin": "Fixar no perfil",
+ "status.reblog": "Compartilhar",
+ "status.reblogged_by": "{name} compartilhou",
"status.reply": "Responder",
- "status.replyAll": "Reply to thread",
- "status.report": "Denúnciar @{name}",
+ "status.replyAll": "Responder à sequência",
+ "status.report": "Denunciar @{name}",
"status.sensitive_toggle": "Clique para ver",
"status.sensitive_warning": "Conteúdo sensível",
- "status.share": "Share",
+ "status.share": "Compartilhar",
"status.show_less": "Mostrar menos",
"status.show_more": "Mostrar mais",
- "status.unmute_conversation": "Unmute conversation",
- "status.unpin": "Unpin from profile",
+ "status.unmute_conversation": "Desativar silêncio desta conversa",
+ "status.unpin": "Desafixar do perfil",
"tabs_bar.compose": "Criar",
"tabs_bar.federated_timeline": "Global",
- "tabs_bar.home": "Home",
+ "tabs_bar.home": "Página inicial",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificações",
"upload_area.title": "Arraste e solte para enviar",
- "upload_button.label": "Adicionar media",
+ "upload_button.label": "Adicionar mídia",
"upload_form.undo": "Anular",
- "upload_progress.label": "A gravar...",
+ "upload_progress.label": "Salvando...",
"video_player.expand": "Expandir vídeo",
"video_player.toggle_sound": "Ligar/Desligar som",
"video_player.toggle_visible": "Ligar/Desligar vídeo",
diff --git a/app/views/user_mailer/confirmation_instructions.pt-BR.html.erb b/app/views/user_mailer/confirmation_instructions.pt-BR.html.erb
new file mode 100644
index 000000000..80edcfda7
--- /dev/null
+++ b/app/views/user_mailer/confirmation_instructions.pt-BR.html.erb
@@ -0,0 +1,12 @@
+
Boas vindas, <%= @resource.email %>!
+
+
Você acabou de criar uma conta no <%= @instance %>.
+
+
Para confirmar o seu cadastro, por favor clique no link a seguir:
+<%= link_to 'Confirmar cadastro', confirmation_url(@resource, confirmation_token: @token) %>
+
+
Por favor, leia também os nossos <%= link_to 'termos de serviços', terms_url %>.
+
+
Atenciosamente,
+
+
A equipe do <%= @instance %>
diff --git a/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb b/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb
new file mode 100644
index 000000000..95efb3436
--- /dev/null
+++ b/app/views/user_mailer/confirmation_instructions.pt-BR.text.erb
@@ -0,0 +1,12 @@
+Boas vindas, <%= @resource.email %>!
+
+Você acabou de criar uma conta no <%= @instance %>.
+
+Para confirmar o seu cadastro, por favor clique no link a seguir:
+<%= confirmation_url(@resource, confirmation_token: @token) %>
+
+Por favor, leia também os nossos termos e condições de uso <%= terms_url %>
+
+Atenciosamente,
+
+A equipe do <%= @instance %>
diff --git a/app/views/user_mailer/password_change.pt-BR.html.erb b/app/views/user_mailer/password_change.pt-BR.html.erb
new file mode 100644
index 000000000..5f707ba09
--- /dev/null
+++ b/app/views/user_mailer/password_change.pt-BR.html.erb
@@ -0,0 +1,3 @@
+
Olá, <%= @resource.email %>!
+
+
Estamos te contatando para te notificar que a senha senha no <%= @instance %> foi modificada.
diff --git a/app/views/user_mailer/password_change.pt-BR.text.erb b/app/views/user_mailer/password_change.pt-BR.text.erb
new file mode 100644
index 000000000..d8b76648c
--- /dev/null
+++ b/app/views/user_mailer/password_change.pt-BR.text.erb
@@ -0,0 +1,3 @@
+Olá, <%= @resource.email %>!
+
+Estamos te contatando para te notificar que a senha senha no <%= @instance %> foi modificada.
diff --git a/app/views/user_mailer/reset_password_instructions.pt-BR.html.erb b/app/views/user_mailer/reset_password_instructions.pt-BR.html.erb
new file mode 100644
index 000000000..940438b7c
--- /dev/null
+++ b/app/views/user_mailer/reset_password_instructions.pt-BR.html.erb
@@ -0,0 +1,8 @@
+
Olá, <%= @resource.email %>!
+
+
Alguém solicitou um link para mudar a sua senha no <%= @instance %>. Você pode fazer isso através do link abaixo:
+
+
<%= link_to 'Mudar a minha senha', edit_password_url(@resource, reset_password_token: @token) %>
+
+
Se você não solicitou isso, por favor ignore este e-mail.
+
A senha senha não será modificada até que você acesse o link acima e crie uma nova.
diff --git a/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb b/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb
new file mode 100644
index 000000000..f574fe08f
--- /dev/null
+++ b/app/views/user_mailer/reset_password_instructions.pt-BR.text.erb
@@ -0,0 +1,8 @@
+Olá, <%= @resource.email %>!
+
+Alguém solicitou um link para mudar a sua senha no <%= @instance %>. Você pode fazer isso através do link abaixo:
+
+<%= edit_password_url(@resource, reset_password_token: @token) %>
+
+Se você não solicitou isso, por favor ignore este e-mail.
+A senha senha não será modificada até que você acesse o link acima e crie uma nova.
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index c647fabbd..13736b3a3 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -2,60 +2,60 @@
pt-BR:
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.
+ confirmed: O seu endereço de e-mail foi confirmado.
+ send_instructions: Você receberá uma mensagem em sua caixa de entrada com instruções sobre como confirmar o seu endereço de e-mail dentro de alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ send_paranoid_instructions: Se o seu endereço de e-mail já existir em nossa base de dados, você receberá uma mensagem em sua caixa de entrada com instruções sobre confirmá-lo dentro de alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
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.
+ invalid: "%{authentication_keys} ou senha inválida."
+ last_attempt: Você tem apenas mais uma tentativa sobrando antes que a sua conta seja bloqueada.
+ locked: A sua conta está bloqueada.
+ not_found_in_database: "%{authentication_keys} ou senha inválida."
+ timeout: A sua sessão expirou. Por favor, entre novamente para continuar.
+ unauthenticated: Você precisa entrar ou registar-se antes de continuar.
+ unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
mailer:
confirmation_instructions:
subject: 'Mastodon: Instruções de confirmação'
password_change:
- subject: 'Mastodon: Password nova'
+ subject: 'Mastodon: Senha modificada'
reset_password_instructions:
- subject: 'Mastodon: Instruções para editar a password'
+ subject: 'Mastodon: Instruções para mudança de senha'
unlock_instructions:
- subject: 'Mastodon: Instruções para desproteger a sua conta'
+ subject: 'Mastodon: Instruções de desbloqueio'
omniauth_callbacks:
- failure: Could not authenticate you from %{kind} because "%{reason}".
- success: Successfully authenticated from %{kind} account.
+ failure: Não foi possível autenticá-lo como %{kind} porque "%{reason}".
+ success: Autenticado com sucesso como %{kind}.
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.
+ no_token: Você não pode acessar esta página se não tiver vindo de uma mensagem de mudança de senha. Se este for o caso, por favor verifique se a URL utilizada está completa.
+ send_instructions: Se o seu endereço de e-mail já estiver cadastrado em nossa base de dados, você receberá uma mensagem com um link para realizar a mudança de senha em alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ send_paranoid_instructions: Se o seu endereço de e-mail já estiver cadastrado em nossa base de dados, você receberá uma mensagem com um link para realizar a mudança de senha em alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ updated: A sua senha foi alterada. A sua sessão está aberta.
+ updated_not_active: A sua senha 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.
+ signed_up: Bem vindo! A sua conta foi registrada com sucesso.
+ signed_up_but_inactive: A sua conta foi registrada. 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 registrada. No entanto, não abrimos a sua sessão porque a sua conta está bloqueada.
+ signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Por favor, siga o link para ativar a sua conta e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
+ update_needs_confirmation: Você mudou o seu endereço de e-mail ou a sua senha, mas é necessário confirmar a mudança. Por favor siga o link que foi enviado para o seu novo endereço de e-mail e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
updated: A sua conta foi alterada com sucesso.
sessions:
- already_signed_out: Sessão fechada.
+ already_signed_out: Sessão encerrada.
signed_in: Sessão iniciada.
- signed_out: Sessão fechada.
+ signed_out: Sessão encerrada.
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.
+ send_instructions: Você receberá uma mensagem com instruções para desbloquear a sua conta em alguns instantes. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ send_paranoid_instructions: Se a sua conta já existe, você receberá uma mensagem com instruções para desbloquear a sua conta em alguns instantes. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ unlocked: A sua conta foi desbloqueada com sucesso. 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
+ confirmation_period_expired: precisa ser confirmada em até %{period}, por favor, solicite novo link de confirmação
+ expired: expirou, por favor solicite uma nova
not_found: não encontrado
- not_locked: não está protegido
+ not_locked: não está bloqueada
not_saved:
- one: '1 erro impediu este %{resource} de ser guardado:'
- other: "%{count} erros impediram este %{resource} de ser guardado:"
+ one: '1 erro impediu este %{resource} de ser salvo(a):'
+ other: "%{count} erros impediram este %{resource} de ser salvo(a):"
diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml
index 85ea3bfcc..f0f3c6893 100644
--- a/config/locales/doorkeeper.pt-BR.yml
+++ b/config/locales/doorkeeper.pt-BR.yml
@@ -3,17 +3,19 @@ pt-BR:
activerecord:
attributes:
doorkeeper/application:
- name: Nome
- redirect_uri: Redirect URI
+ name: Nome do aplicativo
+ redirect_uri: URI de redirecionamento
+ scopes: Autorizações
+ website: Website do aplicativo
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.
+ invalid_uri: precisa ser uma URI válida.
+ relative_uri: precisa ser uma URI absoluta.
+ secured_uri: precisa ser uma URI HTTPS/SSL.
doorkeeper:
applications:
buttons:
@@ -21,92 +23,97 @@ pt-BR:
cancel: Cancelar
destroy: Destruir
edit: Editar
- submit: Submeter
+ submit: Enviar
confirmations:
- destroy: Tem a certeza?
+ destroy: Você tem certeza?
edit:
- title: Editar aplicação
+ title: Editar aplicativo
form:
- error: Oops! Verifique que o formulário não tem erros
+ error: Oops! Verifique o seu formulário para saber de possíveis 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.
+ redirect_uri: Use uma linha para cada URI
+ scopes: Separe autorizações com espaços. Deixe em branco para usar autorizações padrões.
index:
- callback_url: Callback URL
+ application: Aplicativos
+ callback_url: URL de retorno
+ delete: Excluir
name: Nome
- new: Nova Aplicação
- title: As suas aplicações
+ new: Novo aplicativo
+ scopes: Autorizações
+ show: Mostrar
+ title: Seus aplicativos
new:
- title: Nova aplicação
+ title: Novos aplicativos
show:
actions: Ações
- application_id: Id de Aplicação
- callback_urls: Callback urls
- scopes: Scopes
- secret: Segredo
- title: 'Aplicação: %{name}'
+ application_id: Chave do cliente
+ callback_urls: URLs de retorno
+ scopes: Autorizações
+ secret: Segredo do cliente
+ title: 'Application: %{name}'
authorizations:
buttons:
- authorize: Autorize
- deny: Não autorize
+ authorize: Autorizar
+ deny: Negar
error:
title: Ocorreu um erro
new:
- able_to: Vai poder
- prompt: Aplicação %{client_name} requisita acesso à sua conta
- title: Autorização é necessária
+ able_to: Será capaz de
+ prompt: O aplicativo %{client_name} solicita 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?
+ revoke: Você tem certeza?
index:
- application: Aplicação
- created_at: Criada em
- date_format: "%Y-%m-%d %H:%M:%S"
- title: As suas aplicações autorizadas
+ application: Aplicativos
+ created_at: Autorizados
+ date_format: "%d-%m-%Y %H:%M:%S"
+ scopes: Autorizações
+ title: Aplicativos autorizados
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.
+ access_denied: O proprietário ou servidor de autorização negou a solicitação.
+ credential_flow_not_configured: Cadeira de Credenciais de Senha do Proprietário falhou porque Doorkeeper.configure.resource_owner_from_credentials não foram configuradas.
+ invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação incluído ou método de autenticação não suportado.
+ invalid_grant: A garantia de autorização é inválida, expirou, foi revogada, não é equivalente à URI de redirecionamento usada da solicitação de autorização ou foi emitida por outro cliente.
+ invalid_redirect_uri: A URI de redirecionamento incluída não é válida.
+ invalid_request: A solicitação não possui um parâmetro obrigatório, inclui um valor não suportado ou está mal formatada.
+ invalid_resource_owner: As credenciais do proprietário não são válidas ou o proprietário não pôde ser encontrado.
+ invalid_scope: A autorização requirida é inválida, desconhecida ou está mal formatada.
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.
+ resource_owner_authenticator_not_configured: Procura pelo proprietário falhou porque Doorkeeper.configure.resource_owner_authenticator não foi configurado.
+ server_error: O servidor de autorização encontrou uma condição inesperada que preveniu a solicitação de ser respondida.
+ temporarily_unavailable: O servidor de autorização é incapaz de lidar com a solicitação no momento por causa d múltiplas requisições ou manutenção programada.
+ unauthorized_client: O cliente não possui autorização para performar esta solicitação usando este método.
+ unsupported_grant_type: O tipo de garantia de autorização não é suportada pelo servidor de autorização.
+ unsupported_response_type: O servidor de autorização não suporta este tipo de resposta.
flash:
applications:
create:
- notice: Aplicação criada.
+ notice: Aplicativo criado.
destroy:
- notice: Aplicação eliminada.
+ notice: Aplicativo deletado.
update:
- notice: Aplicação alterada.
+ notice: Aplicativo atualizado.
authorized_applications:
destroy:
- notice: Aplicação revogada.
+ notice: Aplicativo revogado.
layouts:
admin:
nav:
- applications: Aplicações
- oauth2_provider: OAuth2 Provider
+ applications: Aplicativo
+ oauth2_provider: Provedor de OAuth2
application:
- title: Autorização OAuth necessária
+ title: Autorização OAuth obrigatória
scopes:
- follow: siga, bloqueie, desbloqueie, e deixe de seguir contas
- read: tenha acesso aos dados da sua conta
- write: públique por si
+ follow: seguir, bloquear, desbloquear e deixar de seguir outras contas
+ read: ler os dados da sua conta
+ write: postar em seu nome
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 750120299..00941d215 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1,52 +1,78 @@
---
pt-BR:
about:
- about_mastodon_html: 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. Escolha um servidor que você confie — qualquer um que escolher, você poderá interagir com todo o resto. Qualquer um pode ter uma instância Mastodon e assim participar na rede social federada sem problemas.
- about_this: Sobre essa instância
- closed_registrations: Registros estão fechadas para essa instância.
+ about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos e software gratuito e de código aberto. É descentralizada como e-mail.
+ about_this: Sobre
+ closed_registrations: Cadastros estão atualmente fechados nesta instância. No entanto! Você pode procurar uma instância diferente na qual possa criar uma conta e acessar a mesma rede por lá.
contact: Contato
+ contact_missing: Não definido
+ contact_unavailable: N/A
description_headline: O que é %{domain}?
domain_count_after: outras instâncias
domain_count_before: Conectado a
- other_instances: Outras instâncias
- source_code: Source code
- status_count_after: status
- status_count_before: Quem autorizou
+ extended_description_html:
+
Um bom lugar para as regras
+
A descrição extendida ainda não foi definida.
+ features:
+ humane_approach_body: Aprendendo com erros de outras redes, Mastodon tem como objetivo fazer decisões éticas de design para combater o desuso de redes sociais.
+ humane_approach_title: Uma abordagem mais humana
+ not_a_product_body: Mastodon não é uma rede comercial. Sem propagandas, coleta de dados, jardins fechados. Não há uma autoridade central.
+ not_a_product_title: Você é uma pessoa e não um produto
+ real_conversation_body: Com 500 caracteres à sua disposição e suporte para conteúdo granular e avisos de conteúdo, você pode se expressar da maneira que desejar.
+ real_conversation_title: Feito para conversas reais
+ within_reach_body: Vários apps para iOS, Android e outras plataformas graças a um ecossistema de API amigável para desenvolvedores proporcionam que você possa se manter atualizado sobre seus amigos de qualquer lugar.
+ within_reach_title: Sempre a seu alcance
+ find_another_instance: Encontre outra instância
+ generic_description: "%{domain} é um servidor na rede"
+ hosted_on: Mastodon hospedado em %{domain}
+ learn_more: Saiba mais
+ other_instances: Lista de instâncias
+ source_code: Código fonte
+ status_count_after: postagens
+ status_count_before: Autores de
user_count_after: usuários
- user_count_before: Lugar de
+ user_count_before: Casa de
+ what_is_mastodon: O que é Mastodon?
accounts:
follow: Seguir
followers: Seguidores
following: Seguindo
+ media: Mídia
nothing_here: Não há nada aqui!
- people_followed_by: Pessoas seguidas por %{name}
+ people_followed_by: Pessoas que %{name} segue
people_who_follow: Pessoas que seguem %{name}
- posts: Posts
- remote_follow: Acesso remoto
- unfollow: Unfollow
+ posts: Toots
+ posts_with_replies: Toots com respostas
+ remote_follow: Siga remotamente
+ reserved_username: Este usuário está reservado
+ roles:
+ admin: Administrador
+ unfollow: Deixar de seguir
admin:
accounts:
are_you_sure: Você tem certeza?
- confirm: Confirme
+ confirm: Confirmar
confirmed: Confirmado
- disable_two_factor_authentication: Desabilitar senha de 2 passos
- display_name: Nome mostrado
- domain: Domain
+ disable_two_factor_authentication: Desativar 2FA
+ display_name: Nome de exibição
+ domain: Domínio
edit: Editar
email: E-mail
- feed_url: URL do Feed
+ feed_url: Feed URL
followers: Seguidores
- follows: Seguindo
+ follows: Segue
+ inbox_url: Inbox URL
+ ip: IP
location:
all: Todos
local: Local
remote: Remoto
- title: Local
- media_attachments: Mídia anexadas
+ title: Localização
+ media_attachments: Mídia(s) anexada(s)
moderation:
all: Todos
- silenced: Silenciado
- suspended: Supenso
+ silenced: Silenciados
+ suspended: Suspensos
title: Moderação
most_recent_activity: Atividade mais recente
most_recent_ip: IP mais recente
@@ -55,206 +81,281 @@ pt-BR:
alphabetic: Alfabética
most_recent: Mais recente
title: Ordem
- perform_full_suspension: Fazer suspensão completa
+ outbox_url: Outbox URL
+ perform_full_suspension: Efetue suspensão total
profile_url: URL do perfil
+ protocol: Protocolo
public: Público
- push_subscription_expires: PuSH subscription expires
- reset_password: Resetar senha
+ push_subscription_expires: Inscrição PuSH expira
+ redownload: Atualizar avatar
+ reset: Anular
+ reset_password: Modificar senha
+ resubscribe: Reinscrever-se
salmon_url: Salmon URL
+ search: Pesquisar
show:
- created_reports: Reports criados por esta conta
- report: report
- targeted_reports: Reports feitos sobre esta conta
+ created_reports: Relatórios criados por esta conta
+ report: relatórios
+ targeted_reports: Relatórios feitos sobre esta conta
silence: Silêncio
- statuses: Status
+ statuses: Postagens
+ subscribe: Inscrever-se
title: Contas
- undo_silenced: Desfazer silenciar
- undo_suspension: Desfazer supensão
- username: Usuário
+ undo_silenced: Retirar silêncio
+ undo_suspension: Retirar suspensão
+ unsubscribe: Desinscrever-se
+ username: Nome de usuário
web: Web
domain_blocks:
- add_new: Adicionar nova
- created_msg: Bloqueio do domínio está sendo processado
- destroyed_msg: Bloqueio de domínio está sendo desfeito
+ add_new: Adicionar novo
+ created_msg: Bloqueio de domínio está sendo processado
+ destroyed_msg: Bloqueio de domínio desfeito
domain: Domínio
new:
create: Criar bloqueio
- hint: O bloqueio de dominio não vai previnir a criação de entradas no banco de dados, mas irá, retroativamente e automaticamente aplicar métodos de moderação específica nessas contas.
+ hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai reatroativa e automaticamente aplicar métodos específicos de moderação nestas contas.
severity:
- desc_html: "Silenciar irá fazer com que os posts dessas contas sejam invisíveis para todos que não a seguem. Supender irá remover todos o conteúdo das contas, mídia e dados do perfil."
- silence: Silenciar
- suspend: Suspender
+ desc_html: "O Silêncio fará com que as postagens da conta fiquem invisíveis para qualquer um que não a esteja seguindo. A Suspensão removerá todo o conteúdo da conta, mídia e dados de perfil. Use Nenhum se você apenas deseja rejeitar arquivos de mídia."
+ noop: Nenhum
+ silence: Silêncio
+ suspend: Suspensão
title: Novo bloqueio de domínio
reject_media: Rejeitar arquivos de mídia
- reject_media_hint: Remove localmente arquivos armazenados e rejeita fazer o download de novos no futuro. Irrelevante em suspensões.
+ reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para suspensões.
severities:
- silence: Silenciar
- suspend: Suspender
- severity: Severidade
+ noop: Nenhum
+ silence: Silêncio
+ suspend: Suspensão
+ severity: Rigidez
show:
affected_accounts:
- one: Uma conta no banco de dados afetada
- other: "%{count} contas no banco de dados afetada"
+ one: Uma conta no banco de dados foi afetada
+ other: "%{count} contas no banco de dados foram afetadas"
retroactive:
- silence: Desilenciar todas as contas existentes nesse domínio
- suspend: Desuspender todas as contas existentes nesse domínio
- title: Desfazer bloqueio de domínio para %{domain}
- title: Bloqueio de domínio
- undo: Desfazer
+ silence: Retirar silêncio de todas as contas existentes neste domínio
+ suspend: Retirar suspensão de todas as contas neste domínio
+ title: Retirar bloqueio de domínio de %{domain}
+ undo: Retirar
+ title: Bloqueios de domínio
+ undo: Retirar
instances:
account_count: Contas conhecidas
domain_name: Domínio
title: Instâncias conhecidas
reports:
+ action_taken_by: Ação realizada por
+ are_you_sure: Você tem certeza?
comment:
- label: Commentário
- none: None
- delete: Deletar
+ label: Comentário
+ none: Nenhum
+ delete: Excluir
id: ID
- mark_as_resolved: Marque como resolvido
- report: 'Report #%{id}'
- report_contents: Conteúdo
+ mark_as_resolved: Marcar como resolvido
+ nsfw:
+ 'false': Mostrar mídias anexadas
+ 'true': Esconder mídias anexadas
+ report: 'Reportar #%{id}'
+ report_contents: Conteúdos
reported_account: Conta reportada
- reported_by: Reportado por
+ reported_by: Reportada por
resolved: Resolvido
- silence_account: Conta silenciada
+ silence_account: Silenciar conta
status: Status
- suspend_account: Conta suspensa
- target: Target
- title: Reports
- unresolved: Unresolved
- view: View
+ suspend_account: Suspender conta
+ target: Alvo
+ title: Denúncias
+ unresolved: Não resolvido
+ view: Visualizar
settings:
+ bootstrap_timeline_accounts:
+ desc_html: Separe nomes de usuário através de vírgulas. Funciona apenas com contas locais e destrancadas. O padrão quando vazio são todos os administradores locais.
+ title: Usuários a serem seguidos por padrão por novas contas
contact_information:
- email: Entre um endereço de email público
- username: Entre com usuário
+ email: E-mail
+ username: Contate usuário
registrations:
closed_message:
- desc_html: Mostrar na página inicial quando registros estão fecados Você pode usar tags HTML
- title: Mensagem de registro fechados
+ desc_html: Exibido na página inicial quando cadastros estão fechados. Você pode usar tags HTML.
+ title: Mensagem de cadastros fechados
+ deletion:
+ desc_html: Permitir que qualquer um delete a sua conta
+ title: Exclusão aberta de contas
open:
- title: Aberto para registro
+ desc_html: Permitir que qualquer um crie uma conta
+ title: Cadastro aberto
site_description:
- desc_html: Mostrar como parágrafo e usado como meta tag. Vôce pode usar tags HTML, em particular <a> e <em>.
- title: Descrição do site
+ desc_html: Parágrafo introdutório na página inicial e em meta tags. Você pode usar tags HTML, em especial <a> e <em>.
+ title: Descrição da instância
site_description_extended:
- desc_html: Mostrar na página de informação extendiada Você pode usar tags HTML
- title: Descrição extendida do site
- site_title: Título do site
- title: Preferências do site
+ desc_html: Um ótimo lugar para seu código de conduta, regras, diretrizes e outras coisas para diferenciar a sua instância. Você pode usar tags HTML.
+ title: Informação estendida customizada
+ site_terms:
+ desc_html: Você pode escrever a sua própria política de privacidade, termos de serviço, entre outras coisas.Você pode usar tags HTML.
+ title: Termos de serviço customizados
+ site_title: Nome da instância
+ timeline_preview:
+ desc_html: Exibir a timeline pública na página inicial
+ title: Prévia da timeline
+ title: Configurações do site
+ statuses:
+ back_to_account: Voltar para página da conta
+ batch:
+ delete: Deletar
+ nsfw_off: NSFW OFF
+ nsfw_on: NSFW ON
+ execute: Executar
+ failed_to_execute: Falha em executar
+ media:
+ hide: Esconder mídia
+ show: Mostrar mídia
+ title: Mídia
+ no_media: Não há mídia
+ title: Postagens da conta
+ with_media: Com mídia
subscriptions:
- callback_url: URL de Callback
+ callback_url: Callback URL
confirmed: Confirmado
expires_in: Expira em
last_delivery: Última entrega
title: WebSub
topic: Tópico
title: Administração
+ admin_mailer:
+ new_report:
+ body: "%{reporter} reportou %{target}"
+ subject: Nova denúncia sobre %{instance} (#%{id})
application_mailer:
- settings: 'Mudar preferências de email: %{link}'
- signature: notificações Mastodon de %{instance}
- view: 'View:'
+ salutation: "%{name},"
+ settings: 'Change e-mail preferences: %{link}'
+ signature: Notificações do Mastodon de %{instance}
+ view: 'Visualizar:'
applications:
- invalid_url: URL dada é inválida
+ created: Aplicação criada com sucesso
+ destroyed: Aplicação excluída com sucesso
+ invalid_url: A URL provida é inválida
+ regenerate_token: Regenerar token de acesso
+ token_regenerated: Token de acesso renegerado com sucesso
+ warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém!
+ your_token: Seu token de acesso
auth:
- change_password: Mudar senha
+ agreement_html: Cadastrando-se você concorda com nossos termos de serviço e política de privacidade.
+ change_password: Segurança
+ delete_account: Excluir conta
+ delete_account_html: Se você deseja excluir a sua conta, você pode prosseguir para cá. Uma confirmação será requisitada.
didnt_get_confirmation: Não recebeu instruções de confirmação?
- forgot_password: Esqueceu a senha?
+ forgot_password: Esqueceu a sua senha?
+ invalid_reset_password_token: Token de modificação de senha é inválido ou expirou. Por favor, requisite um novo.
login: Entrar
logout: Sair
- register: Registar
+ register: Cadastrar-se
resend_confirmation: Reenviar instruções de confirmação
- reset_password: Resetar senha
- set_new_password: Editar password
+ reset_password: Modificar senha
+ set_new_password: Definir uma nova senha
authorize_follow:
- error: Infelizmente houve um erro olhando uma conta remota
+ error: Infelizmente, ocorreu um erro quando visualizando a conta remota.
follow: Seguir
+ follow_request: 'Você mandou uma solicitação de seguidor para:'
+ following: 'Sucesso! Você agora está seguindo:'
+ post_follow:
+ close: Ou você pode simplesmente fechar esta janela.
+ return: Retornar ao perfil do usuário
+ web: Voltar para a página inicial
title: Seguir %{acct}
datetime:
distance_in_words:
about_x_hours: "%{count}h"
- about_x_months: "%{count}mo"
- about_x_years: "%{count}y"
- almost_x_years: "%{count}y"
+ about_x_months: "%{count} meses"
+ about_x_years: "%{count} anos"
+ almost_x_years: "%{count} anos"
half_a_minute: Agora
- less_than_x_minutes: "%{count}m"
+ less_than_x_minutes: "%{count} meses"
less_than_x_seconds: Agora
- over_x_years: "%{count}y"
- x_days: "%{count}d"
- x_minutes: "%{count}m"
- x_months: "%{count}mo"
- x_seconds: "%{count}s"
+ over_x_years: "%{count} anos"
+ x_days: "%{count} dias"
+ x_minutes: "%{count} minutos"
+ x_months: "%{count} meses"
+ x_seconds: "%{count} segundos"
+ deletes:
+ bad_password_msg: Boa tentativa, hackers! Senha incorreta.
+ confirm_password: Insira a sua senha atual para verificar a sua identidade
+ description_html: Isto vai permanente e irreversivelmente remover conteúdo de sua conta e desativá-la. O seu nome de usuário permanecerá reservado para previnir futuros roubos de identidade.
+ proceed: Excluir conta
+ success_msg: A sua conta foi excluída com sucesso
+ warning_html: Apenas a exclusão de conteúdo desta instância em particular é garantida. Conteúdo que tenha sido largamente compartilhado muito provavelmente deixará traços. Servidores offline e servidores que se desinscreveram de suas atualizações não irão atualizar as suas bases de dados.
+ warning_title: Disponibilidade de conteúdo disseminado
errors:
- '403': Você não tem permissão para ver essa página.
- '404': A página que você procura não existe.
- '410': A página que você procura não existe mais.
+ '403': Você não tem permissão para ver esta página.
+ '404': A página pela qual você está procurando não existe.
+ '410': A página pela qual você está procurando não existe mais.
'422':
- content: Verificação de segurança falhou. Você está bloqueando cookies?
- title: Verificação de segurança falhou
+ content: A verificação de segurança falhou. Você desativou o uso de cookies?
+ title: Falha na verificação de segurança
+ '429': Muitas requisições
+ noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Alternativamente, experimente um dos apps nativos para o Mastodon para a sua plataforma.
exports:
- blocks: Você bloqueia
+ blocks: Você bloqueou
csv: CSV
follows: Você segue
- mutes: Você selencia
- storage: Mídia de dados
+ mutes: Você silenciou
+ storage: Armazenamento de mídia
followers:
domain: Domínio
- explanation_html: Se você quer garantir a privacidade doe seu status, você precisa saber quem te segue. Seu status privado é enviado a todas as instancias que você tem seguidores. Você pode querer reavaliar e remover os seguidores que você não confia que sua privacidade vai ser mantida pelos administradores ou softwares de outras instancias.
- followers_count: Númbero de seguidores
- lock_link: Bloquear sua conta
- purge: Remove dos seguidores
+ explanation_html: Se você quer garantir a privacidade de suas postagens, você deve ficar atento a quem está te seguindo.Suas postagens privadas são enviadas para todas as instâncias em que você tem seguidores. Convém revisá-las e remover seguidores se você acredita que a sua privacidade não será respeitada pela equipe ou software destas instâncias.
+ followers_count: Número de seguidores
+ lock_link: Tranque a sua conta
+ purge: Remover de seus seguidores
success:
- one: Em processo de bloquear seguidores de um domínio...
- other: Em processo de bloqueio-leve dos seguidores de %{count} domínios...
- true_privacy_html: Saiba que privaicade de verdade só pode ser atingida com criptografia ponto-a-ponto.
- unlocked_warning_html: Qualquer um que te seguir para ver seus status privado imediatamente. %{lock_link} para poder rever e rejeitar seguidores.
- unlocked_warning_title: Sua conta não está bloqueada
+ one: No processo de bloqueio suave de seguidores de outro domínio...
+ other: No processo de bloqueio suave de seguidores de outros %{count} domínios...
+ true_privacy_html: Lembre-se de que a verdadeira privacidade só pode ser alcançada através de encriptação ponto-a-ponto.
+ unlocked_warning_html: Qualquer pessoa pode te seguir e ver as suas postagens privadas. %{lock_link} para ser capaz de revisar e rejeitar seguidores.
+ unlocked_warning_title: A sua conta não está trancada
generic:
- changes_saved_msg: Mudanças guardadas!
+ changes_saved_msg: Mudanças salvas com sucesso!
powered_by: powered by %{link}
- save_changes: Guardar alterações
+ save_changes: Salvar mudanças
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
+ one: Algo não está certo! Por favor, reveja o erro abaixo
+ other: Algo não está certo! Por favor, reveja os %{count} erros abaixo
imports:
- preface: Você pode importar certos dados, como as pessoas que você segue ou estão bloqueadas para sua conta nessa instancia, de arquivos com dados criados por outra instancia.
- success: Seus dados foram carregados com sucesso and serão processados em algum tempo
+ preface: Você pode importar dados que você exportou de outra instância, como a lista de pessoas que você segue ou bloqueou.
+ success: Os seus dados foram enviados com sucesso e serão processados em instantes
types:
blocking: Lista de bloqueio
- following: Lista de seguidos
- muting: Lista de silenciados
- upload: Carregar
- landing_strip_html: "%{name} is a user on %{link_to_root_path}. You can follow them or interact with them if you have an account anywhere in the fediverse."
- landing_strip_signup_html: If you don't, you can sign up here.
+ following: Pessoas que você segue
+ muting: Lista de silêncio
+ upload: Enviar
+ landing_strip_html: "%{name} é um usuário no %{link_to_root_path}. Você pode seguí-lo ou interagir com ele se você tiver uma conta em qualquer lugar no fediverso."
+ landing_strip_signup_html: Se não, você pode se cadastrar aqui.
media_attachments:
validations:
- images_and_video: Cannot attach a video to a status that already contains images
- too_many: Cannot attach more than 4 files
+ images_and_video: Não é possível anexar um vídeo a uma postagem que já contém imagens.
+ too_many: Não é possível anexar mais de quatro imagens.
notification_mailer:
digest:
- body: 'Isto é um resumo do que você perdeu em %{instance} desde sua última visita %{since}:'
- mention: "%{name} mencionou você em:"
+ body: 'Aqui está um resumo do que você perdeu no %{instance} desde o seu último acesso em %{since}:'
+ mention: "%{name} te mencionou em:"
new_followers_summary:
- one: Você tem um novo seguidor!
- other: Você conseguiu %{count} novos seguidores! Incrível
+ one: Você tem um novo seguidor! Yay!
+ other: Você tem %{count} novos seguidores! Maravilha!
subject:
- one: "1 nova notificação desde sua última visita \U0001F418"
- other: "%{count} novas notificações desde a última visita \U0001F418"
+ one: "Uma nova notificação desde o seu último acesso \U0001F418"
+ other: "%{count} novas notificações desde o seu último acesso \U0001F418"
favourite:
- body: 'O seu post foi favoritado por %{name}:'
- subject: "%{name} favouritou o seu post"
+ body: 'Sua postagem foi favoritada por %{name}:'
+ subject: "%{name} favoritou a sua postagem"
follow:
- body: "%{name} seguiu você!"
- subject: "%{name} segue você"
+ body: "%{name} está te seguindo!"
+ subject: "%{name} está te seguindo"
follow_request:
- body: "%{name} pediu para te seguir"
- subject: 'Seguidor pendente: %{name}'
+ body: "%{name} requisitou autorização para te seguir"
+ subject: 'Pending follower: %{name}'
mention:
body: 'Você foi mencionado por %{name} em:'
- subject: Foi mencionado por %{name}
+ subject: Você foi mencionado por %{name}
reblog:
- body: 'O seu post foi reblogado por %{name}:'
- subject: "%{name} reblogou o seu post"
+ body: 'Sua postagem foi compartilhada por %{name}:'
+ subject: "%{name} compartilhou a sua postagem"
number:
human:
decimal_units:
@@ -267,56 +368,190 @@ pt-BR:
trillion: T
unit: ''
pagination:
- next: Next
- prev: Prev
+ next: Próximo
+ prev: Anterior
truncate: "…"
+ push_notifications:
+ favourite:
+ title: "%{name} favoritou a sua postagem"
+ follow:
+ title: "%{name} está te seguindo"
+ group:
+ title: "%{count} notificações"
+ mention:
+ action_boost: Compartilhar
+ action_expand: Mostrar mais
+ action_favourite: Favoritar
+ title: "%{name} mencionou você"
+ reblog:
+ title: "%{name} compartilhou a sua postagem"
remote_follow:
- acct: Entre seu usuário@domínio do qual quer seguir
- missing_resource: Não foi possível achar a URL de redirecionamento para sua conta
- proceed: Prossiga para seguir
- prompt: 'Você vai seguir:'
+ acct: Insira o seu usuário@domínio do qual você quer seguir
+ missing_resource: Não foi possível encontrar a URL de direcionamento para a sua conta
+ proceed: Prosseguir para seguir
+ prompt: 'Você irá seguir:'
+ sessions:
+ activity: Última atividade
+ browser: Navegador
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ firefox: Firefox
+ generic: Unknown browser
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
+ current_session: Sessão atual
+ description: "%{browser} em %{platform}"
+ explanation: Estes são os navegadores que estão conectados com a sua conta do Mastodon.
+ ip: IP
+ platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: Mac
+ other: unknown platform
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Revogar
+ revoke_success: Sessão revogada com sucesso
+ title: Sessões
settings:
- authorized_apps: Aplicativos autorizados
- back: Voltar ao Mastodon
+ authorized_apps: Apps autorizados
+ back: Voltar para o Mastodon
+ delete: Exclusão de conta
+ development: Desenvolvimento
edit_profile: Editar perfil
- export: Importar dados
+ export: Exportar dados
followers: Seguidores autorizados
import: Importar
preferences: Preferências
- settings: Settings
- two_factor_authentication: Autenticação Two-factor
+ settings: Configurações
+ two_factor_authentication: Autenticação em dois passos
+ your_apps: Seus aplicativos
statuses:
- open_in_web: Abrir no browser
- over_character_limit: limite de caracter excedeu %{max}
+ open_in_web: Abrir na web
+ over_character_limit: limite de caracteres de %{max} excedido
+ pin_errors:
+ ownership: Toots de outras pessoas não podem ser fixados
+ private: Toot não-público não pode ser fixado
+ reblog: Um compartilhamento não pode ser fixado
show_more: Mostrar mais
visibilities:
- private: Seguidores-apenas
+ private: Apenas seguidores
private_long: Mostrar apenas para seguidores
public: Público
- public_long: Qualquer um pode ver
- unlisted: Público, mas não mostre no timeline público
- unlisted_long: Todo mundo pode ver mas não será listado nas timeline públicas
+ public_long: Todos podem ver
+ unlisted: Não listado
+ unlisted_long: Todos podem ver, porém não será postado nas timelines públicas
stream_entries:
- click_to_show: Clique pra mostrar
- reblogged: boosted
+ click_to_show: Clique para mostrar
+ pinned: Toot fixado
+ reblogged: compartilhado
sensitive_content: Conteúdo sensível
+ terms:
+ body_html: |
+
Política de privacidade
+
+
Que informações nós coletamos?
+
+
Coletamos informações quando você se cadastra em nosso site e capturamos dados quando você participa do fórum lendo, escrevendo e analisando o conteúdo aqui compartilhado.
+
+
Quando você se registrar em nosso site, será requisitado que você ceda seu nome e endereço de e-mail. Você pode, porém, visitar nosso site sem se cadastrar. Seu endereço de e-mail será verificado por uma mensagem contendo um link único. Se este link for visitado, saberemos que você controla este endereço de e-mail.
+
+
Quando registrado e postando, nós gravamos o endereço de IP de onde a postagem se originou. Nós também podemos reter logs de serviores que incluem o endereço de IP em cada requisição para o nosso servidor.
+
+
Para que usamos essas informações?
+
+
Quaisquer das informações que coletamos podem ser usadas das seguintes formas:
+
+
+
Para personalizar a sua experiência — suas informações nos ajudam a nos adequar melhor às suas necessidades individuais.
+
Para melhorar nosso site — nós continuamente nos esforçamos para aprimorar nosso site baseados na informação e no feedback que recebemos de você.
+
Para aprimorar o serviço ao consumidor — suas informações nos ajudam a responder efetivamente às suas requisições e solicitações por suporte.
+
Para mandar e-mails periódicos — O endereço de e-mail que você forneceu pode ser usado para lhe enviar informações, notificações que você requisitar sobre mudanças a determinados tópicos ou menções ao seu nome de usuário, responder requisições e/ou solicitações e perguntas.
+
+
+
Como protegemos as suas informações?
+
+
Nós implementamos uma variedade de medidas de segurança para manter a segurança de suas informações pessoais quando você insere, submete ou acessa as suas informações pessoais.
+
+
Qual a sua política de retenção de dados?
+
+
Faremos esforços de boa fé para:
+
+
+
Reter logs de servidor contendo o endereço IP de todas as requisições a este servidor por não mais que 90 dias.
+
Reter os endereços IP associados a usuários cadastrados e suas postagens por não mais que 5 anos.
+
+
+
Nós usamos cookies?
+
+
Sim. Cookies são pequenos arquivos que um site ou o provedor de serviço transfere para o armazenamento interno de seu computador através de seu navegador (se você permitir). Estes cookies habilitam o site para reconhecer o seu navegador e, se você ter um cadastro, associá-lo a esta conta.
+
+
Nós usamos cookies para entender e salvar as suas preferências para futuras visitas e compilar dados agregados sobre o tráfego do site para que possamos oferecer melhores experiências e ferramentas no futuro. Nós podemos contratar serviços de terceiros para nos auxiliar a entender melhor nossos visitantes. Estes provedores de serviço não são autoriza usar as informações coletadas em nosso nome exceto para nos ajudar a conduzir e aprimorar nosso funcionamento.
+
+
Nós revelamos informações para terceiros?
+
+
Nós não vendemos, tocamos ou transferimos para terceiros informações pessoais que te identificam. Isso não inclui partes em que confiamos para nos ajudar a operar nosso site, conduzir nosso funcionamento ou servir você desde que estes terceiros concordem em manter essas informações em segredo. Nós também podemos prover as suas informações para obedecer ordens judiciais, reforçar nossas políticas ou proteger nossos direitos ou de outrem, propriedades ou segurança. Entretanto, informações pessoais não identificáveis podem ser enviadas para outras partes para marketing, propaganda e outros usos.
+
+
Links de terceiros
+
+
Ocasionalmente, à nossa discrição, podemos icluir ou oferecer produtos ou serviços de terceiros em nosso site. Estes terceiros têm políticas de privacidade separadas e independentes. Nós, portanto, não nos responsabilizamos pelo conteúdo e atividades destes sites de terceiros. Occasionally, at our discretion, we may include or offer third party products or services on our site. Não obstante, nós procuramos proteger a integridade de nosso site e todo feedback sobre estes sites de terceiros é bem-vindo.
+
+
Obediência ao Ato de Proteção da Privacidade Online de Crianças
+
+
Nosso site, produtos e serviços são todos direcionados a pessoas que têm pelo menos 13 anos de idade. Se este servidor estiver nos EUA, e você tiver menos de 13 anos, pelos requerimentos da COPPA (Children's Online Privacy Protection Act) não use este site.
+
+
Política de Apenas Privacidade Online
+
+
Esta política de privacidade online se aplica somente a informações coletadas por nosso site e não a informações coletadas offline.
+
+
Seu Consentimento
+
+
Usando o nosso site, você concorda com a nossa política de privacidade.
+
+
Mudanças em nossa Política de Privacidade
+
+
Se decidirmos mudar a nossa política de privacidade, publicaremos as mudanças nesta página.
+
+
Este documento é CC-BY-SA. A sua última atualização aconteceu em 31 de maio de 2013.
' }
+
+ it 'does not touch the shortcodes' do
+ is_expected.to match(/
:coolcat::coolcat:<\/p>/)
+ end
+ end
+
+ context 'with emoji at the end' do
+ let(:text) { '
Beep boop :coolcat:
' }
+
+ it 'converts shortcode to image tag' do
+ is_expected.to match(/ Hello :coolcat:' }
+
+ it 'returns records used via shortcodes in text' do
+ is_expected.to include(emojo)
+ end
+ end
+ end
+end
--
cgit
From d43944143af079017c494f046aa171b797f5e680 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Tue, 19 Sep 2017 03:27:08 +0200
Subject: Run i18n-tasks normalize (#5003)
---
config/locales/activerecord.ca.yml | 1 +
config/locales/activerecord.en.yml | 1 +
config/locales/activerecord.fa.yml | 1 +
config/locales/activerecord.fr.yml | 1 +
config/locales/activerecord.he.yml | 1 +
config/locales/activerecord.id.yml | 1 +
config/locales/activerecord.it.yml | 1 +
config/locales/activerecord.ja.yml | 1 +
config/locales/activerecord.nl.yml | 1 +
config/locales/activerecord.oc.yml | 1 +
config/locales/activerecord.pl.yml | 1 +
config/locales/activerecord.ru.yml | 1 +
config/locales/activerecord.uk.yml | 1 +
config/locales/ar.yml | 2 +-
config/locales/devise.bg.yml | 14 +++---
config/locales/devise.de.yml | 84 ++++++++++++++++++------------------
config/locales/devise.eo.yml | 2 +-
config/locales/devise.es.yml | 4 +-
config/locales/devise.fa.yml | 4 +-
config/locales/devise.fi.yml | 2 +-
config/locales/devise.fr.yml | 4 +-
config/locales/devise.he.yml | 52 +++++++++++-----------
config/locales/devise.hu.yml | 4 +-
config/locales/devise.ja.yml | 12 +++---
config/locales/devise.nl.yml | 2 +-
config/locales/devise.oc.yml | 8 ++--
config/locales/devise.pl.yml | 2 +-
config/locales/devise.zh-TW.yml | 2 +-
config/locales/doorkeeper.es.yml | 6 +--
config/locales/doorkeeper.he.yml | 4 +-
config/locales/doorkeeper.hu.yml | 2 +-
config/locales/doorkeeper.nl.yml | 8 ++--
config/locales/doorkeeper.oc.yml | 2 +-
config/locales/doorkeeper.zh-HK.yml | 12 ++----
config/locales/doorkeeper.zh-TW.yml | 4 +-
config/locales/es.yml | 32 +++++++-------
config/locales/nl.yml | 4 +-
config/locales/pt-BR.yml | 6 +--
config/locales/simple_form.ar.yml | 4 +-
config/locales/simple_form.bg.yml | 4 +-
config/locales/simple_form.ca.yml | 4 +-
config/locales/simple_form.de.yml | 8 ++--
config/locales/simple_form.eo.yml | 4 +-
config/locales/simple_form.es.yml | 2 +-
config/locales/simple_form.fa.yml | 12 +++---
config/locales/simple_form.fi.yml | 4 +-
config/locales/simple_form.he.yml | 36 ++++++++--------
config/locales/simple_form.hr.yml | 4 +-
config/locales/simple_form.hu.yml | 4 +-
config/locales/simple_form.id.yml | 4 +-
config/locales/simple_form.ko.yml | 4 +-
config/locales/simple_form.nl.yml | 10 ++---
config/locales/simple_form.no.yml | 15 +++----
config/locales/simple_form.pt-BR.yml | 4 +-
config/locales/simple_form.pt.yml | 4 +-
config/locales/simple_form.th.yml | 12 +++---
config/locales/simple_form.tr.yml | 10 ++---
config/locales/simple_form.uk.yml | 4 +-
config/locales/simple_form.zh-CN.yml | 4 +-
config/locales/simple_form.zh-TW.yml | 4 +-
60 files changed, 227 insertions(+), 225 deletions(-)
diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml
index d4d3d1e40..12e347ad9 100644
--- a/config/locales/activerecord.ca.yml
+++ b/config/locales/activerecord.ca.yml
@@ -1,3 +1,4 @@
+---
ca:
activerecord:
errors:
diff --git a/config/locales/activerecord.en.yml b/config/locales/activerecord.en.yml
index c3354fa25..428aaf727 100644
--- a/config/locales/activerecord.en.yml
+++ b/config/locales/activerecord.en.yml
@@ -1,3 +1,4 @@
+---
en:
activerecord:
errors:
diff --git a/config/locales/activerecord.fa.yml b/config/locales/activerecord.fa.yml
index eaff8f077..1cd50eec7 100644
--- a/config/locales/activerecord.fa.yml
+++ b/config/locales/activerecord.fa.yml
@@ -1,3 +1,4 @@
+---
fa:
activerecord:
errors:
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index 858777c0e..c4b04c73a 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -1,3 +1,4 @@
+---
fr:
activerecord:
errors:
diff --git a/config/locales/activerecord.he.yml b/config/locales/activerecord.he.yml
index e4b16d289..e3b363efc 100644
--- a/config/locales/activerecord.he.yml
+++ b/config/locales/activerecord.he.yml
@@ -1,3 +1,4 @@
+---
he:
activerecord:
errors:
diff --git a/config/locales/activerecord.id.yml b/config/locales/activerecord.id.yml
index fd606cd3a..9fa093e9d 100644
--- a/config/locales/activerecord.id.yml
+++ b/config/locales/activerecord.id.yml
@@ -1,3 +1,4 @@
+---
id:
activerecord:
errors:
diff --git a/config/locales/activerecord.it.yml b/config/locales/activerecord.it.yml
index be2f0b4c1..4cec9fb63 100644
--- a/config/locales/activerecord.it.yml
+++ b/config/locales/activerecord.it.yml
@@ -1,3 +1,4 @@
+---
it:
activerecord:
errors:
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index 975912f0f..7bc4fc308 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -1,3 +1,4 @@
+---
ja:
activerecord:
attributes:
diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml
index b39c8cd78..eeabab34a 100644
--- a/config/locales/activerecord.nl.yml
+++ b/config/locales/activerecord.nl.yml
@@ -1,3 +1,4 @@
+---
nl:
activerecord:
errors:
diff --git a/config/locales/activerecord.oc.yml b/config/locales/activerecord.oc.yml
index a26018f43..e52f79188 100644
--- a/config/locales/activerecord.oc.yml
+++ b/config/locales/activerecord.oc.yml
@@ -1,3 +1,4 @@
+---
oc:
activerecord:
errors:
diff --git a/config/locales/activerecord.pl.yml b/config/locales/activerecord.pl.yml
index f82e1b875..bd8e40a6a 100644
--- a/config/locales/activerecord.pl.yml
+++ b/config/locales/activerecord.pl.yml
@@ -1,3 +1,4 @@
+---
pl:
activerecord:
attributes:
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 316637888..1a7ac9978 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -1,3 +1,4 @@
+---
ru:
activerecord:
errors:
diff --git a/config/locales/activerecord.uk.yml b/config/locales/activerecord.uk.yml
index 24febc1bc..00b2b8d8b 100644
--- a/config/locales/activerecord.uk.yml
+++ b/config/locales/activerecord.uk.yml
@@ -1,3 +1,4 @@
+---
uk:
activerecord:
errors:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 604b09600..666b8cb97 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -94,7 +94,7 @@ ar:
one: "إشعار واحد منذ زيارتك الأخيرة \U0001F418"
other: "%{count} إشعارات جديدة منذ زيارتك الأخيرة \U0001F418"
favourite:
- body: 'أُعجب %{name} بمنشورك'
+ body: أُعجب %{name} بمنشورك
subject: "%{name} favourited your status"
follow:
body: "%{name} من متتبعيك الآن !"
diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml
index 7485b8236..8e1ba6eb4 100644
--- a/config/locales/devise.bg.yml
+++ b/config/locales/devise.bg.yml
@@ -11,7 +11,7 @@ bg:
invalid: Невалиден имейл адрес или парола.
last_attempt: Разполагаш с още един опит преди профилът ти да бъде заключен.
locked: Профилът ти е заключен.
- not_found_in_database: "Невалидни стойности за %{authentication_keys} или парола."
+ not_found_in_database: Невалидни стойности за %{authentication_keys} или парола.
timeout: Сесията ти изтече, моля влез отново, за да продължиш.
unauthenticated: Преди да продължиш, трябва да влезеш в профила си или да се регистрираш.
unconfirmed: Преди да продължиш, трябва да потвърдиш регистрацията си.
@@ -21,12 +21,12 @@ bg:
password_change:
subject: 'Mastodon: Паролата е променена'
reset_password_instructions:
- subject: 'Инструкции за смяна на паролата'
+ subject: Инструкции за смяна на паролата
unlock_instructions:
- subject: 'Инструкции за отключване'
+ subject: Инструкции за отключване
omniauth_callbacks:
- failure: "Не успяхме да те упълномощим чрез %{kind}, защото \"%{reason}\"."
- success: "Успешно упълномощаване чрез %{kind} профил."
+ failure: Не успяхме да те упълномощим чрез %{kind}, защото "%{reason}".
+ success: Успешно упълномощаване чрез %{kind} профил.
passwords:
no_token: Може да достъпваш тази страница само от имейл за промяна на паролата. Ако тази страница е отворена от такъв имейл, увери се, че използваш целия URL-адрес, който сме ти изпратили.
send_instructions: Ще получиш писмо с инструкции как да промениш паролата си до няколко минути.
@@ -52,10 +52,10 @@ bg:
errors:
messages:
already_confirmed: е вече потвърден, моля опитай да влезеш в профила си с него
- confirmation_period_expired: "трябва да се потвърди в рамките на %{period}, моля направи нова заявка за потвърждение"
+ confirmation_period_expired: трябва да се потвърди в рамките на %{period}, моля направи нова заявка за потвърждение
expired: е изтекъл, моля заяви нов
not_found: не е намерен
not_locked: не бе заключен
not_saved:
- one: "Една грешка попречи този %{resource} да бъде записан:"
+ one: 'Една грешка попречи този %{resource} да бъде записан:'
other: "%{count} грешки попречиха този %{resource} да бъде записан:"
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 58bfaa3d6..035a4713c 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -2,60 +2,60 @@
de:
devise:
confirmations:
- confirmed: "Vielen Dank für deine Registrierung. Bitte melde dich jetzt an."
- send_instructions: "Du erhältst in wenigen Minuten eine E-Mail, mit der du deine Registrierung bestätigen kannst."
- send_paranoid_instructions: "Falls Deine E-Mail-Adresse in unserer Datenbank existiert, erhältst Du in wenigen Minuten eine E-Mail mit der du deine Registrierung bestätigen kannst."
+ confirmed: Vielen Dank für deine Registrierung. Bitte melde dich jetzt an.
+ send_instructions: Du erhältst in wenigen Minuten eine E-Mail, mit der du deine Registrierung bestätigen kannst.
+ send_paranoid_instructions: Falls Deine E-Mail-Adresse in unserer Datenbank existiert, erhältst Du in wenigen Minuten eine E-Mail mit der du deine Registrierung bestätigen kannst.
failure:
- already_authenticated: "Du bist bereits angemeldet."
- inactive: "Dein Account ist nicht aktiv."
- invalid: "Ungültige Anmeldedaten."
- last_attempt: "Du hast noch einen Versuch bevor dein Account gesperrt wird."
- locked: "Dein Account ist gesperrt."
- not_found_in_database: "E-Mail-Adresse oder Passwort ungültig."
- timeout: "Deine Sitzung ist abgelaufen, bitte melde dich erneut an."
- unauthenticated: "Du musst Dich anmelden oder registrieren, bevor du fortfahren kannst."
- unconfirmed: "Du musst deinen Account bestätigen, bevor du fortfahren kannst."
+ already_authenticated: Du bist bereits angemeldet.
+ inactive: Dein Account ist nicht aktiv.
+ invalid: Ungültige Anmeldedaten.
+ last_attempt: Du hast noch einen Versuch bevor dein Account gesperrt wird.
+ locked: Dein Account ist gesperrt.
+ not_found_in_database: E-Mail-Adresse oder Passwort ungültig.
+ timeout: Deine Sitzung ist abgelaufen, bitte melde dich erneut an.
+ unauthenticated: Du musst Dich anmelden oder registrieren, bevor du fortfahren kannst.
+ unconfirmed: Du musst deinen Account bestätigen, bevor du fortfahren kannst.
mailer:
confirmation_instructions:
- subject: "Mastodon: Anleitung zur Bestätigung deines Accounts"
+ subject: 'Mastodon: Anleitung zur Bestätigung deines Accounts'
password_change:
subject: 'Mastodon: Passwort wurde geändert'
reset_password_instructions:
- subject: "Mastodon: Anleitung um dein Passwort zurückzusetzen"
+ subject: 'Mastodon: Anleitung um dein Passwort zurückzusetzen'
unlock_instructions:
- subject: "Mastodon: Anleitung um deinen Account freizuschalten"
+ subject: 'Mastodon: Anleitung um deinen Account freizuschalten'
omniauth_callbacks:
- failure: "Du konntest nicht mit deinem %{kind}-Account angemeldet werden, weil '%{reason}'."
- success: "Du hast dich erfolgreich mit Deinem %{kind}-Account angemeldet."
+ failure: Du konntest nicht mit deinem %{kind}-Account angemeldet werden, weil '%{reason}'.
+ success: Du hast dich erfolgreich mit Deinem %{kind}-Account angemeldet.
passwords:
- no_token: "Du kannst diese Seite nur über den Link aus der E-Mail zum Passwort-Zurücksetzen aufrufen. Wenn du einen solchen Link aufgerufen hast, stelle bitte sicher, dass du die vollständige Adresse aufrufst."
- send_instructions: "Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst."
- send_paranoid_instructions: "Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst."
- updated: "Dein Passwort wurde geändert. Du bist jetzt angemeldet."
- updated_not_active: "Dein Passwort wurde geändert."
+ no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Passwort-Zurücksetzen aufrufen. Wenn du einen solchen Link aufgerufen hast, stelle bitte sicher, dass du die vollständige Adresse aufrufst.
+ send_instructions: Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst.
+ send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst.
+ updated: Dein Passwort wurde geändert. Du bist jetzt angemeldet.
+ updated_not_active: Dein Passwort wurde geändert.
registrations:
- destroyed: "Dein Account wurde gelöscht."
- signed_up: "Du hast dich erfolgreich registriert."
- signed_up_but_inactive: "Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account inaktiv ist."
- signed_up_but_locked: "Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account gesperrt ist."
- signed_up_but_unconfirmed: "Du hast Dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail mit der Anleitung, wie Du Deinen Account freischalten kannst."
- update_needs_confirmation: "Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhälst in wenigen Minuten eine E-Mail, mit der du die Änderung deiner E-Mail-Adresse abschließen kannst."
- updated: "Deine Daten wurden aktualisiert."
+ destroyed: Dein Account wurde gelöscht.
+ signed_up: Du hast dich erfolgreich registriert.
+ signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account inaktiv ist.
+ signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account gesperrt ist.
+ signed_up_but_unconfirmed: Du hast Dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail mit der Anleitung, wie Du Deinen Account freischalten kannst.
+ update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhälst in wenigen Minuten eine E-Mail, mit der du die Änderung deiner E-Mail-Adresse abschließen kannst.
+ updated: Deine Daten wurden aktualisiert.
sessions:
- already_signed_out: "Erfolgreich abgemeldet."
- signed_in: "Erfolgreich angemeldet."
- signed_out: "Erfolgreich abgemeldet."
+ already_signed_out: Erfolgreich abgemeldet.
+ signed_in: Erfolgreich angemeldet.
+ signed_out: Erfolgreich abgemeldet.
unlocks:
- send_instructions: "Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren können."
- send_paranoid_instructions: "Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren kannst."
- unlocked: "Dein Account wurde entsperrt. Du bist jetzt angemeldet."
+ send_instructions: Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren können.
+ send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren kannst.
+ unlocked: Dein Account wurde entsperrt. Du bist jetzt angemeldet.
errors:
messages:
- already_confirmed: "wurde bereits bestätigt."
- confirmation_period_expired: "muss innerhalb %{period} bestätigt werden, bitte fordere einen neuen Link an."
- expired: "ist abgelaufen, bitte neu anfordern."
- not_found: "wurde nicht gefunden."
- not_locked: "ist nicht gesperrt"
+ already_confirmed: wurde bereits bestätigt.
+ confirmation_period_expired: muss innerhalb %{period} bestätigt werden, bitte fordere einen neuen Link an.
+ expired: ist abgelaufen, bitte neu anfordern.
+ not_found: wurde nicht gefunden.
+ not_locked: ist nicht gesperrt
not_saved:
- one: "Konnte %{resource} nicht speichern: ein Fehler."
- other: "Konnte %{resource} nicht speichern: %{count} Fehler."
+ one: 'Konnte %{resource} nicht speichern: ein Fehler.'
+ other: 'Konnte %{resource} nicht speichern: %{count} Fehler.'
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index b786647dd..a2303ec1e 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -58,4 +58,4 @@ eo:
not_locked: ne estis ŝlosita
not_saved:
one: '1 eraro malpermesis al tiu %{resource} esti konservita:'
- other: '%{count} eraroj malpermesis al tiu %{resource} esti konservita:'
+ other: "%{count} eraroj malpermesis al tiu %{resource} esti konservita:"
diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml
index 634a5e97f..5a689f347 100644
--- a/config/locales/devise.es.yml
+++ b/config/locales/devise.es.yml
@@ -34,8 +34,8 @@ es:
updated: Su contraseña ha sido cambiada con éxito. Ahora ya está registrado.
updated_not_active: Su contraseña ha sido cambiada con éxito.
registrations:
- destroyed: ¡Adios! Su cuenta ha sido cancelada con éxito. Esperamos verle pronto de nuevo.
- signed_up: ¡Bienvenido! Se ha registrado con éxito.
+ destroyed: "¡Adios! Su cuenta ha sido cancelada con éxito. Esperamos verle pronto de nuevo."
+ signed_up: "¡Bienvenido! Se ha registrado con éxito."
signed_up_but_inactive: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta no ha sido activada todavía.
signed_up_but_locked: Se ha registrado con éxito. Sin embargo, no podemos identificarle porque su cuenta está bloqueada.
signed_up_but_unconfirmed: Un mensaje con un enlace de confirmación ha sido enviado a su correo electrónico. Por favor siga el enlace para activar su cuenta.
diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml
index 18f63b25d..f78412f91 100644
--- a/config/locales/devise.fa.yml
+++ b/config/locales/devise.fa.yml
@@ -57,5 +57,5 @@ fa:
not_found: پیدا نشد
not_locked: قفل نبود
not_saved:
- one: 'خطایی نگذاشت که این %{resource} ذخیره شود'
- other: "به خاطر %{count} خطا، این %{resource} ذخیره نشد"
+ one: خطایی نگذاشت که این %{resource} ذخیره شود
+ other: به خاطر %{count} خطا، این %{resource} ذخیره نشد
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index bf4f530dc..91ab9559c 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -29,7 +29,7 @@ fi:
success: Onnistuneesti varmennettu %{kind} tilillä.
passwords:
no_token: Et pääse tälle sivulle ilman salasanan vaihto sähköpostia. Jos tulet tämmöisestä postista, varmista että sinulla on täydellinen URL.
- send_instructions: Jos sähköpostisi on meidän tietokannassa, saat pian ohjeet salasanan palautukseen.
+ send_instructions: Jos sähköpostisi on meidän tietokannassa, saat pian ohjeet salasanan palautukseen.
send_paranoid_instructions: Jos sähköpostisi on meidän tietokannassa, saat pian ohjeet salasanan palautukseen.
updated: Salasanasi vaihdettu onnistuneesti. Olet nyt kirjautunut sisään.
updated_not_active: Salasanasi vaihdettu onnistuneesti.
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 6805e4f38..237ae8f6f 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -17,7 +17,7 @@ fr:
unconfirmed: Vous devez valider votre compte pour continuer.
mailer:
confirmation_instructions:
- subject: "Merci de confirmer votre inscription sur %{instance}"
+ subject: Merci de confirmer votre inscription sur %{instance}
password_change:
subject: Votre mot de passe a été modifié avec succés.
reset_password_instructions:
@@ -58,4 +58,4 @@ fr:
not_locked: n’était pas verrouillé⋅e
not_saved:
one: 'Une erreur a empêché ce(tte) %{resource} d’être sauvegardé⋅e :'
- other: '%{count} erreurs ont empêché %{resource} d’être sauvegardé⋅e :'
+ other: "%{count} erreurs ont empêché %{resource} d’être sauvegardé⋅e :"
diff --git a/config/locales/devise.he.yml b/config/locales/devise.he.yml
index 975c2a360..ddb688625 100644
--- a/config/locales/devise.he.yml
+++ b/config/locales/devise.he.yml
@@ -2,19 +2,19 @@
he:
devise:
confirmations:
- confirmed: 'כתובת הדוא"ל אומתה בהצלחה.'
- send_instructions: 'נשלח אליך דוא"ל עם הוראות לאימות כתובת הדוא"ל שאמור להתקבל בדקות הקרובות. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
- send_paranoid_instructions: 'אם כתובת הדוא"ל שלך קיימת במסד הנתונים, יתקבל בדקות הקרובות דוא"ל עם הוראות לאימות כתובתך. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
+ confirmed: כתובת הדוא"ל אומתה בהצלחה.
+ send_instructions: נשלח אליך דוא"ל עם הוראות לאימות כתובת הדוא"ל שאמור להתקבל בדקות הקרובות. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
+ send_paranoid_instructions: אם כתובת הדוא"ל שלך קיימת במסד הנתונים, יתקבל בדקות הקרובות דוא"ל עם הוראות לאימות כתובתך. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
failure:
- already_authenticated: 'חשבון זה כבר מחובר.'
- inactive: 'חשבון זה טרם הופעל.'
- invalid: '%{authentication_keys} או סיסמא לא נכונים.'
- last_attempt: 'יש לך עוד ניסיון אחד לפני נעילת החשבון.'
- locked: 'חשבון זה נעול.'
+ already_authenticated: חשבון זה כבר מחובר.
+ inactive: חשבון זה טרם הופעל.
+ invalid: "%{authentication_keys} או סיסמא לא נכונים."
+ last_attempt: יש לך עוד ניסיון אחד לפני נעילת החשבון.
+ locked: חשבון זה נעול.
not_found_in_database: "%{authentication_keys} או סיסמא לא נכונים."
- timeout: 'פג תוקף השהיה בחשבון. נא להכנס מחדש על מנת להמשיך.'
- unauthenticated: 'יש להרשם או להכנס לחשבון על מנת להמשיך.'
- unconfirmed: 'יש לאמת את כתובת הדוא"ל על מנת להמשיך.'
+ timeout: פג תוקף השהיה בחשבון. נא להכנס מחדש על מנת להמשיך.
+ unauthenticated: יש להרשם או להכנס לחשבון על מנת להמשיך.
+ unconfirmed: יש לאמת את כתובת הדוא"ל על מנת להמשיך.
mailer:
confirmation_instructions:
subject: 'מסטודון: הוראות אימות'
@@ -25,29 +25,29 @@ he:
unlock_instructions:
subject: 'מסטודון: הוראות לביטול נעילה'
omniauth_callbacks:
- failure: "לא ניתן לאמת את חשבונך מ־%{kind} מהסיבה: \"%{reason}\"."
- success: "נכשל אימות מחשבון %{kind}."
+ failure: 'לא ניתן לאמת את חשבונך מ־%{kind} מהסיבה: "%{reason}".'
+ success: נכשל אימות מחשבון %{kind}.
passwords:
- no_token: 'לא ניתן לגשת לעמוד זה, אלא מדוא"ל איפוס סיסמא. אם לא הגעת מדוא"ל איפוס סיסמא, יש לוודא שכתובת הקישורית הוקלדה בשלמותה.'
- send_instructions: 'בדקות הקרובות יתקבל דוא"ל עם הוראות לאיפוס סיסמתך. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
- send_paranoid_instructions: 'אם כתובת הדוא"ל שלך קיימת במסד הנתונים, יתקבל בדקות הקרובות דוא"ל עם הוראות לאחזור סיסמא. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
- updated: 'סיסמתך שונתה בהצלחה. הינך כעת במצב מחובר.'
- updated_not_active: 'סיסמתך שונתה בהצלחה.'
+ no_token: לא ניתן לגשת לעמוד זה, אלא מדוא"ל איפוס סיסמא. אם לא הגעת מדוא"ל איפוס סיסמא, יש לוודא שכתובת הקישורית הוקלדה בשלמותה.
+ send_instructions: בדקות הקרובות יתקבל דוא"ל עם הוראות לאיפוס סיסמתך. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
+ send_paranoid_instructions: אם כתובת הדוא"ל שלך קיימת במסד הנתונים, יתקבל בדקות הקרובות דוא"ל עם הוראות לאחזור סיסמא. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
+ updated: סיסמתך שונתה בהצלחה. הינך כעת במצב מחובר.
+ updated_not_active: סיסמתך שונתה בהצלחה.
registrations:
- destroyed: 'בייוש! חשבונך בוטל בהצלחה. אנחנו מקווים לראות אותך שוב בקרוב.'
- signed_up: 'ברוכים הבאים! נרשמת בהצלחה.'
- signed_up_but_inactive: 'נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך עוד לא הופעל.'
- signed_up_but_locked: 'נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך נעול.'
- signed_up_but_unconfirmed: 'דוא"ל עם קישורית לאימות נשלך לכתובתך. נא לעקוב אחר הקישורית על מנת להפעיל את החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
- update_needs_confirmation: 'עדכת את חשבונך בהצלחה, אך יש צורך לאמת את כתובת הדוא"ל החדשה שלך. נא לבדוק בחשבון הדוא"ל לקבלת קישורית אימות על מנת לאמת את הכתובת החדשה. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
+ destroyed: בייוש! חשבונך בוטל בהצלחה. אנחנו מקווים לראות אותך שוב בקרוב.
+ signed_up: ברוכים הבאים! נרשמת בהצלחה.
+ signed_up_but_inactive: נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך עוד לא הופעל.
+ signed_up_but_locked: נרשמת בהצלחה. למרות זאת לא הצליחה הכניסה לחשבון מאחר וחשבונך נעול.
+ signed_up_but_unconfirmed: דוא"ל עם קישורית לאימות נשלך לכתובתך. נא לעקוב אחר הקישורית על מנת להפעיל את החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
+ update_needs_confirmation: עדכת את חשבונך בהצלחה, אך יש צורך לאמת את כתובת הדוא"ל החדשה שלך. נא לבדוק בחשבון הדוא"ל לקבלת קישורית אימות על מנת לאמת את הכתובת החדשה. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
updated: חשבונך עודכן בהצלחה.
sessions:
already_signed_out: יצאת מהחשבון בהצלחה.
signed_in: נכנסת לחשבון בהצלחה.
signed_out: יצאת מהחשבון בהצלחה.
unlocks:
- send_instructions: 'בדקות הקרובות ישלח אליך דוא"ל עם הוראות לביטול נעילת החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
- send_paranoid_instructions: 'אם חשבונך קיים, בדקות הקרובות ישלח אליך דוא"ל עם הוראות לביטול נעילת החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.'
+ send_instructions: בדקות הקרובות ישלח אליך דוא"ל עם הוראות לביטול נעילת החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
+ send_paranoid_instructions: אם חשבונך קיים, בדקות הקרובות ישלח אליך דוא"ל עם הוראות לביטול נעילת החשבון. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות.
unlocked: נעילת חשבונך בוטלה בהצלחה. נא להכנס לחשבון על מנת להמשיך.
errors:
messages:
diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml
index 2eb7da45c..911ba7b94 100644
--- a/config/locales/devise.hu.yml
+++ b/config/locales/devise.hu.yml
@@ -28,7 +28,7 @@ hu:
failure: "%{kind} nem hitelesíthető, mert %{reason}."
success: Sikeres hitelesítés %{kind} fiókról.
passwords:
- no_token: Nem férhetsz hozzá az oldalhoz jelszó visszaállító e-mail nélkül. Ha egy jelszó visszaállító e-mail hozott ide, ellenőrizd, hogy a megadott teljes URL-t használd.
+ no_token: Nem férhetsz hozzá az oldalhoz jelszó visszaállító e-mail nélkül. Ha egy jelszó visszaállító e-mail hozott ide, ellenőrizd, hogy a megadott teljes URL-t használd.
send_instructions: Pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat.
send_paranoid_instructions: Ha létezik az e-mail cím, pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat.
updated: Jelszavad sikeresen frissült. Bejelentkeztél.
@@ -36,7 +36,7 @@ hu:
registrations:
destroyed: Viszlát! A fiókod sikeresen törölve. Reméljük hamarosan viszontláthatunk.
signed_up: Üdvözlünk! Sikeresen regisztráltál.
- signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod még nem lett aktiválva.
+ signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod még nem lett aktiválva.
signed_up_but_locked: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod le lett zárva.
signed_up_but_unconfirmed: Egy üzenet a megerősítési linkkel kiküldésre került az e-mail címedre. Kérjük használd a linket a fiókod aktiválásához.
update_needs_confirmation: Sikeresen frissítetted a fiókodat, de szükségünk van az e-mail címed megerősítésére. Kérlek ellenőrizd az e-mailedet és kövesd a levélben szereplő megerősítési linket az e-mail címed megerősítéséhez.
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 5d61ccdec..2001abe96 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -8,10 +8,10 @@ ja:
failure:
already_authenticated: 既にログイン済みです。
inactive: あなたのアカウントはまだ有効化されていません。
- invalid: '%{authentication_keys}かパスワードが誤っています。'
+ invalid: "%{authentication_keys}かパスワードが誤っています。"
last_attempt: あと1回失敗するとアカウントがロックされます。
locked: アカウントはロックされました。
- not_found_in_database: '%{authentication_keys}かパスワードが誤っています'
+ not_found_in_database: "%{authentication_keys}かパスワードが誤っています"
timeout: セッションの有効期限が切れました。続行するには再度ログインしてください。
unauthenticated: 続行するにはログインするか、アカウントを作成してください。
unconfirmed: 続行するにはメールアドレスを確認する必要があります。
@@ -25,8 +25,8 @@ ja:
unlock_instructions:
subject: 'Mastodon: アカウントのロックの解除'
omniauth_callbacks:
- failure: '%{reason}によって%{kind}からのアクセスを認証できませんでした。'
- success: '%{kind}からのアクセスは正常に認証されました。'
+ failure: "%{reason}によって%{kind}からのアクセスを認証できませんでした。"
+ success: "%{kind}からのアクセスは正常に認証されました。"
passwords:
no_token: パスワード再発行のメール以外からこのページにアクセスすることはできません。 パスワード再発行のメールからアクセスしたのにもかかわらずこのメッセージが表示される場合は、アクセスしたURLが間違っていないか確認してください。
send_instructions: パスワード再発行の方法が記載されたメールが間もなく送信されます。
@@ -52,10 +52,10 @@ ja:
errors:
messages:
already_confirmed: は確認されました。ログインを試してください。
- confirmation_period_expired: '%{period}以内に確認が必要です。再度試してください。'
+ confirmation_period_expired: "%{period}以内に確認が必要です。再度試してください。"
expired: は期限切れです。再度試してください。
not_found: 見つかりません。
not_locked: ロックされていません。
not_saved:
- one: 'エラーが発生したため、%{resource}の保存に失敗しました。'
+ one: エラーが発生したため、%{resource}の保存に失敗しました。
other: "%{count}個のエラーが発生したため、保存に失敗しました。 %{resource}"
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index f8f59e660..ff79d036e 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -24,7 +24,7 @@ nl:
reset_password_instructions:
subject: 'Mastodon: Wachtwoord opnieuw instellen'
unlock_instructions:
- subject: 'Mastodon: Instructies om opschorten account ongedaan te maken'
+ subject: 'Mastodon: Instructies om opschorten account ongedaan te maken'
omniauth_callbacks:
failure: Kon je niet aanmelden met jouw %{kind} account, omdat "%{reason}".
success: Successvol aangemeld met jouw %{kind} account.
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index 99e62a10e..5cccb48ff 100644
--- a/config/locales/devise.oc.yml
+++ b/config/locales/devise.oc.yml
@@ -17,13 +17,13 @@ oc:
unconfirmed: Vos cal confirmar vòstra adreça de corrièl abans de contunhar.
mailer:
confirmation_instructions:
- subject: "Mercés de confirmar vòstra inscripcion sus %{instance}"
+ subject: Mercés de confirmar vòstra inscripcion sus %{instance}
password_change:
- subject: 'Mastodon : senhal cambiat'
+ subject: Mastodon : senhal cambiat
reset_password_instructions:
- subject: 'Mastodon : instruccions per reïnicializar lo senhal'
+ subject: Mastodon : instruccions per reïnicializar lo senhal
unlock_instructions:
- subject: 'Mastodon : instuccions de desblocatge'
+ subject: Mastodon : instuccions de desblocatge
omniauth_callbacks:
failure: Fracàs al moment de vos autentificar de %{kind} perque "%{reason}".
success: Sètz ben autentificat dempuèi lo compte %{kind}.
diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml
index d537efc6e..4b1eb2c60 100644
--- a/config/locales/devise.pl.yml
+++ b/config/locales/devise.pl.yml
@@ -58,4 +58,4 @@ pl:
not_locked: było zablokowane
not_saved:
one: '1 błąd uniemożliwił zapisanie zasobu %{resource}:'
- other: "Błędy (%{count}) uniemożliwiły zapisanie zasobu %{resource}:"
+ other: 'Błędy (%{count}) uniemożliwiły zapisanie zasobu %{resource}:'
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index c38839b9a..e627653f1 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -57,5 +57,5 @@ zh-TW:
not_found: 找不到
not_locked: 並未被鎖定
not_saved:
- one: '1 個錯誤使 %{resource} 無法被儲存︰'
+ one: 1 個錯誤使 %{resource} 無法被儲存︰
other: "%{count} 個錯誤使 %{resource} 無法被儲存︰"
diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml
index af21ab76d..ca6e620d8 100644
--- a/config/locales/doorkeeper.es.yml
+++ b/config/locales/doorkeeper.es.yml
@@ -25,11 +25,11 @@ es:
edit: Editar
submit: Enviar
confirmations:
- destroy: ¿Está seguro?
+ destroy: "¿Está seguro?"
edit:
title: Editar aplicación
form:
- error: ¡Uuups! Compruebe su formulario
+ error: "¡Uuups! Compruebe su formulario"
help:
native_redirect_uri: Utilice %{native_redirect_uri} para pruebas locales
redirect_uri: Utilice una línea por URI
@@ -68,7 +68,7 @@ es:
buttons:
revoke: Revocar
confirmations:
- revoke: ¿Está seguro?
+ revoke: "¿Está seguro?"
index:
application: Aplicación
created_at: Creado el
diff --git a/config/locales/doorkeeper.he.yml b/config/locales/doorkeeper.he.yml
index 1d366b179..78e72a56f 100644
--- a/config/locales/doorkeeper.he.yml
+++ b/config/locales/doorkeeper.he.yml
@@ -1,5 +1,5 @@
---
-he :
+he:
activerecord:
attributes:
doorkeeper/application:
@@ -72,7 +72,7 @@ he :
errors:
messages:
access_denied: בעלי המשאב או שרת ההרשאה דחו את הבקשה.
- credential_flow_not_configured: 'התהליך "Resource Owner Password Credentials" נכשל בשל חוסר בתצורת Doorkeeper.configure.resource_owner_from_credentials.'
+ credential_flow_not_configured: התהליך "Resource Owner Password Credentials" נכשל בשל חוסר בתצורת Doorkeeper.configure.resource_owner_from_credentials.
invalid_client: הרשאת הלקוח נכשלה עקב לקוח שאינו ידוע, חוסר בהרשאת לקוח או שיטת הרשאה שאינה נתמכת.
invalid_grant: חוזה ההרשאה המצורף אינו חוקי, אינו תקף, מבוטל, או שאינו מתאים לקישורית ההפניה שבשימוש על ידי בקשת ההרשאה, או שהופק על ידי לקוח אחר.
invalid_redirect_uri: קישורית ההפניה המצורפת אינה חוקית.
diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml
index 583e0ad9f..54e732f0c 100644
--- a/config/locales/doorkeeper.hu.yml
+++ b/config/locales/doorkeeper.hu.yml
@@ -84,7 +84,7 @@ hu:
unknown: Hozzáférési kulcs érvénytelen
resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan.
server_error: Hitelesítő szervert váratlan esemény érte, mely meggátolta a kérés teljesítését.
- temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést egy átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt.
+ temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést egy átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt.
unauthorized_client: A kliens nincs feljogosítva a kérés teljesítésére.
unsupported_grant_type: A hitelesítés módja nem támogatott a hitelesítő kiszolgálón.
unsupported_response_type: A hitelesítő kiszolgáló nem támogatja ezt a választ.
diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml
index 66936d381..f97aa8111 100644
--- a/config/locales/doorkeeper.nl.yml
+++ b/config/locales/doorkeeper.nl.yml
@@ -44,7 +44,7 @@ nl:
show: Tonen
title: Jouw toepassingen
new:
- title: Nieuwe toepassing
+ title: Nieuwe toepassing
show:
actions: Acties
application_id: Client-key
@@ -70,10 +70,10 @@ nl:
confirmations:
revoke: Weet je het zeker?
index:
- application: Toepassing
+ application: Toepassing
created_at: Aangemaakt op
date_format: "%d-%m-%Y %H:%M:%S"
- title: Jouw geautoriseerde toepassingen
+ title: Jouw geautoriseerde toepassingen
errors:
messages:
access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek.
@@ -92,7 +92,7 @@ nl:
server_error: De autorisatieserver is is een onverwachte situatie tegengekomen die het verzoek verhinderde.
temporarily_unavailable: De autorisatieserver is momenteel niet in staat het verzoek te behandelen als gevolg van een tijdelijke overbelasting of onderhoud aan de server.
unauthorized_client: De client is niet bevoegd om dit verzoek op deze manier uit te voeren.
- unsupported_grant_type: Het type autorisatie wordt niet door de autorisatieserver ondersteund
+ unsupported_grant_type: Het type autorisatie wordt niet door de autorisatieserver ondersteund
unsupported_response_type: De autorisatieserver ondersteund dit antwoordtype niet
flash:
applications:
diff --git a/config/locales/doorkeeper.oc.yml b/config/locales/doorkeeper.oc.yml
index 1606b92c4..6069b77ad 100644
--- a/config/locales/doorkeeper.oc.yml
+++ b/config/locales/doorkeeper.oc.yml
@@ -51,7 +51,7 @@ oc:
callback_urls: urls de rapèls
scopes: Encastres
secret: Secret
- title: 'Aplicacion : %{name}'
+ title: Aplicacion : %{name}
authorizations:
buttons:
authorize: Autorizar
diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml
index ac1e3180a..c8edc2b72 100644
--- a/config/locales/doorkeeper.zh-HK.yml
+++ b/config/locales/doorkeeper.zh-HK.yml
@@ -72,12 +72,9 @@ zh-HK:
errors:
messages:
access_denied: 資源擁有者或授權伺服器不接受請求。
- credential_flow_not_configured: 資源擁有者密碼認證程序 (Resource Owner Password Credentials
- flow) 失敗,原因是 Doorkeeper.configure.resource_owner_from_credentials 沒有設定。
- invalid_client: 用戶程式認證 (Client authentication) 失敗,原因是用戶程式未有登記、沒有指定用戶程式 (client)、或者使用了不支援的認證方法
- (method)。
- invalid_grant: 授權申請 (authorization grant) 不正確、過期、已被取消,或者無法對應授權請求 (authorization
- request) 內的轉接 URI,或者屬於別的用戶程式。
+ credential_flow_not_configured: 資源擁有者密碼認證程序 (Resource Owner Password Credentials flow) 失敗,原因是 Doorkeeper.configure.resource_owner_from_credentials 沒有設定。
+ invalid_client: 用戶程式認證 (Client authentication) 失敗,原因是用戶程式未有登記、沒有指定用戶程式 (client)、或者使用了不支援的認證方法 (method)。
+ invalid_grant: 授權申請 (authorization grant) 不正確、過期、已被取消,或者無法對應授權請求 (authorization request) 內的轉接 URI,或者屬於別的用戶程式。
invalid_redirect_uri: 不正確的轉接網址。
invalid_request: 請求缺少了必要的參數、包含了不支援的參數、或者其他輸入錯誤。
invalid_resource_owner: 資源擁有者的登入資訊錯誤、或者無法找到該資源擁有者。
@@ -86,8 +83,7 @@ zh-HK:
expired: access token 已經過期
revoked: access token 已被取消
unknown: access token 不正確
- resource_owner_authenticator_not_configured: 無法找到資源擁有者,原因是 Doorkeeper.configure.resource_owner_authenticator
- 沒有設定。
+ resource_owner_authenticator_not_configured: 無法找到資源擁有者,原因是 Doorkeeper.configure.resource_owner_authenticator 沒有設定。
server_error: 認證伺服器遇上未知狀況,令請求無法通過。
temporarily_unavailable: 認證伺服器由於臨時負荷過重或者維護,目前未能處理請求。
unauthorized_client: 用戶程式無權用此方法 (method) 請行這個請求。
diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml
index 5110c8aa3..01e62df73 100644
--- a/config/locales/doorkeeper.zh-TW.yml
+++ b/config/locales/doorkeeper.zh-TW.yml
@@ -10,7 +10,7 @@ zh-TW:
doorkeeper/application:
attributes:
redirect_uri:
- fragment_present: 'URI 不可包含 "#fragment" 部份'
+ fragment_present: URI 不可包含 "#fragment" 部份
invalid_uri: 必需有正確的 URI.
relative_uri: 必需為絕對 URI.
secured_uri: 必需使用有 HTTPS/SSL 加密的 URI.
@@ -45,7 +45,7 @@ zh-TW:
callback_urls: 回傳網址
scopes: 權限範圍
secret: 密碼
- title: '應用程式︰ %{name}'
+ title: 應用程式︰ %{name}
authorizations:
buttons:
authorize: 允許
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 6e544e19d..ca3bdd983 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -32,7 +32,7 @@ es:
status_count_before: Qué han escrito
user_count_after: usuarios registrados
user_count_before: Tenemos
- what_is_mastodon: ¿Qué es Mastodon?
+ what_is_mastodon: "¿Qué es Mastodon?"
accounts:
follow: Seguir
followers: Seguidores
@@ -50,7 +50,7 @@ es:
unfollow: Dejar de seguir
admin:
accounts:
- are_you_sure: ¿Estás seguro?
+ are_you_sure: "¿Estás seguro?"
confirm: Confirmar
confirmed: Confirmado
disable_two_factor_authentication: Desactivar autenticación de dos factores
@@ -148,7 +148,7 @@ es:
title: Instancias conocidas
reports:
action_taken_by: Acción tomada por
- are_you_sure: ¿Estás seguro?
+ are_you_sure: "¿Estás seguro?"
comment:
label: Comentario
none: Ninguno
@@ -238,18 +238,18 @@ es:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
+ invalid_url: La URL proporcionada es incorrecta
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
your_token: Tu token de acceso
- invalid_url: La URL proporcionada es incorrecta
auth:
agreement_html: Al registrarte aceptas nuestros y términos y condiciones del servicio y nuestras políticas de privacidda.
change_password: Cambiar contraseña
delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación.
- invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo.
didnt_get_confirmation: "¿No recibió el correo de confirmación?"
forgot_password: "¿Olvidaste tu contraseña?"
+ invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo.
login: Iniciar sesión
logout: Cerrar sesión
register: Registrarse
@@ -260,7 +260,7 @@ es:
error: Desafortunadamente, ha ocurrido un error buscando la cuenta remota
follow: Seguir
follow_request: 'Tienes una solicitud de seguimiento de:'
- following: '¡Éxito! Ahora estás siguiendo a:'
+ following: "¡Éxito! Ahora estás siguiendo a:"
post_follow:
close: O, puedes simplemente cerrar esta ventana.
return: Regresar al perfil del usuario
@@ -281,7 +281,7 @@ es:
x_months: "%{count}m"
x_seconds: "%{count}s"
deletes:
- bad_password_msg: ¡Buen intento, hackers! Contraseña incorrecta
+ bad_password_msg: "¡Buen intento, hackers! Contraseña incorrecta"
confirm_password: Ingresa tu contraseña actual para demostrar tu identidad
description_html: Esto removerá el contenido de tu cuenta y la desactivará permanente e irrevesiblemente. Tu nombre de usuario quedará reservado para prevenir futuros robos de identidad.
proceed: Eliminar cuenta
@@ -461,9 +461,9 @@ es:
unlisted_long: Todos pueden ver, pero no está listado en las líneas de tiempo públicas
stream_entries:
click_to_show: Click para mostrar
+ pinned: Toot fijado
reblogged: retooteado
sensitive_content: Contenido sensible
- pinned: Toot fijado
terms:
body_html: |
Políticas de privacidad
@@ -533,24 +533,24 @@ es:
Este documento está publicado bajo la licencia CC-BY-SA. Última vez actualizado el 31 de Mayo del 2013.
- title: "Términos del Servicio y Políticas de Privacidad de %{instance}"
+ title: Términos del Servicio y Políticas de Privacidad de %{instance}
time:
formats:
default: "%d de %b del %Y, %H:%M"
two_factor_authentication:
- generate_recovery_codes: generar códigos de recuperación
- lost_recovery_codes: Los códigos de recuperación te permiten obtener acceso a tu cuenta si pierdes tu teléfono. Si has perdido tus códigos de recuperación, puedes regenerarlos aquí. Tus viejos códigos de recuperación se harán inválidos.
- recovery_codes: Hacer copias de seguridad de tus códigos de recuperación
- recovery_instructions_html: Si pierdes acceso a tu teléfono, puedes usar uno de los siguientes códigos de recuperación para obtener acceso a tu cuenta. Mantenlos a salvo. Por ejemplo, puedes imprimirlos y guardarlos con otros documentos importantes.
+ code_hint: Ingresa el código generado por tu aplicación de autenticación para confirmar
description_html: Si habilitas la autenticación de dos factores, se requerirá estar en posesión de su teléfono, lo que generará tokens para que usted pueda iniciar sesión.
disable: Deshabilitar
enable: Habilitar
enabled_success: Verificación de dos factores activada exitosamente
+ generate_recovery_codes: generar códigos de recuperación
instructions_html: "Escanea este código QR desde Google Authenticator o una aplicación similar en su teléfono. Desde ahora, esta aplicación va a generar tokens que tienes que ingresar cuando quieras iniciar sesión."
- code_hint: Ingresa el código generado por tu aplicación de autenticación para confirmar
+ lost_recovery_codes: Los códigos de recuperación te permiten obtener acceso a tu cuenta si pierdes tu teléfono. Si has perdido tus códigos de recuperación, puedes regenerarlos aquí. Tus viejos códigos de recuperación se harán inválidos.
+ recovery_codes: Hacer copias de seguridad de tus códigos de recuperación
+ recovery_instructions_html: Si pierdes acceso a tu teléfono, puedes usar uno de los siguientes códigos de recuperación para obtener acceso a tu cuenta. Mantenlos a salvo. Por ejemplo, puedes imprimirlos y guardarlos con otros documentos importantes.
setup: Configurar
- wrong_code: ¡El código ingresado es inválido! ¿El dispositivo y tiempo del servidor están correctos?
+ wrong_code: "¡El código ingresado es inválido! ¿El dispositivo y tiempo del servidor están correctos?"
users:
invalid_email: La dirección de correo es incorrecta
invalid_otp_token: Código de dos factores incorrecto
- signed_in_as: "Sesión iniciada como:"
+ signed_in_as: 'Sesión iniciada como:'
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index a8bea6141..06035b6c5 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -437,9 +437,9 @@ nl:
open_in_web: In de webapp openen
over_character_limit: Limiet van %{max} tekens overschreden
pin_errors:
- limit: Te veel toots vastgezet
+ limit: Te veel toots vastgezet
ownership: Een toot van iemand anders kan niet worden vastgezet
- private: Alleen openbare toots kunnen worden vastgezet
+ private: Alleen openbare toots kunnen worden vastgezet
reblog: Een boost kan niet worden vastgezet
show_more: Meer tonen
visibilities:
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index e0bf06c08..f2b46927b 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -10,9 +10,7 @@ pt-BR:
description_headline: O que é %{domain}?
domain_count_after: outras instâncias
domain_count_before: Conectado a
- extended_description_html:
-
Um bom lugar para as regras
-
A descrição extendida ainda não foi definida.
+ extended_description_html: "
Um bom lugar para as regras
A descrição extendida ainda não foi definida.
"
features:
humane_approach_body: Aprendendo com erros de outras redes, Mastodon tem como objetivo fazer decisões éticas de design para combater o desuso de redes sociais.
humane_approach_title: Uma abordagem mais humana
@@ -115,7 +113,7 @@ pt-BR:
create: Criar bloqueio
hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai reatroativa e automaticamente aplicar métodos específicos de moderação nestas contas.
severity:
- desc_html: "O Silêncio fará com que as postagens da conta fiquem invisíveis para qualquer um que não a esteja seguindo. A Suspensão removerá todo o conteúdo da conta, mídia e dados de perfil. Use Nenhum se você apenas deseja rejeitar arquivos de mídia."
+ desc_html: O Silêncio fará com que as postagens da conta fiquem invisíveis para qualquer um que não a esteja seguindo. A Suspensão removerá todo o conteúdo da conta, mídia e dados de perfil. Use Nenhum se você apenas deseja rejeitar arquivos de mídia.
noop: Nenhum
silence: Silêncio
suspend: Suspensão
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index b2b33c8ff..932b166d7 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -4,10 +4,10 @@ ar:
hints:
defaults:
avatar: PNG, GIF أو JPG. على الأكثر 2 ميغابيت . سوف يتم تصغيرها إلى 120x120px
- display_name: '%{count} أحرف متبقية'
+ display_name: %{count} أحرف متبقية
header: PNG, GIF or JPG. على الأكثر 2 ميغابيت . سوف يتم تصغيرها إلى 700x335px
locked: يتطلب منك الموافقة يدويا على كل طلب للإشتراك بحسابك و منشوراتك تعرض لمتابعيك فقط دون غيرهم
- note: '%{count} أحرف متبقية'
+ note: %{count} أحرف متبقية
imports:
data: ملف CSV تم تصديره من خادوم مثيل آخر لماستدون
sessions:
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 55b80277d..2ea70d51c 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -39,8 +39,8 @@ bg:
follow_request: Изпращай e-mail, когато някой пожелае да те последва
mention: Изпращай e-mail, когато някой те спомене
reblog: Изпращай e-mail, когато някой сподели твоя публикация
- 'no': 'Не'
+ 'no': Не
required:
mark: "*"
text: задължително
- 'yes': 'Да'
+ 'yes': Да
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 7bcc21e66..b5b7f26d2 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -8,8 +8,8 @@ ca:
one: 1 character left
other: %{count} characters left
header: PNG, GIF o JPG. Màxim 2MB. Serà escalat a 700x335px
- locked: Requereix que aprovis manualment seguidors i les publicacions seran mostrades només als teus seguidors
- note:
+ locked: Requereix que aprovis manualment seguidors i les publicacions seran mostrades només als teus seguidors
+ note:
one: 1 character left
other: %{count} characters left
imports:
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index c07dc2846..a6ba839c6 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -4,10 +4,10 @@ de:
hints:
defaults:
avatar: PNG, GIF oder JPG. Maximal 2MB. Wird auf 120x120px herunterskaliert
- display_name: '%{count} Zeichen verbleiben'
+ display_name: %{count} Zeichen verbleiben
header: PNG, GIF oder JPG. Maximal 2MB. Wird auf 700x335px herunterskaliert
locked: Erlaubt dir, Profile zu überprüfen, bevor sie dir folgen können
- note: '%{count} Zeichen verbleiben'
+ note: %{count} Zeichen verbleiben
imports:
data: CSV-Datei, die von einer anderen Mastodon-Instanz exportiert wurde
sessions:
@@ -44,8 +44,8 @@ de:
follow_request: E-Mail senden, wenn mir jemand folgen möchte
mention: E-Mail senden, wenn mich jemand erwähnt
reblog: E-Mail senden, wenn jemand meinen Beitrag teilt
- 'no': 'Nein'
+ 'no': Nein
required:
mark: "*"
text: Pflichtfeld
- 'yes': 'Ja'
+ 'yes': Ja
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 7c501bb93..a3824d349 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -39,8 +39,8 @@ eo:
follow_request: Sendi retpoŝt-mesaĝon, kiam iu petas sekvi vin
mention: Sendi retpoŝt-mesaĝon, kiam iu mencias vin
reblog: Sendi retpoŝt-mesaĝon, kiam iu diskonigas mesaĝon de vi
- 'no': 'Ne'
+ 'no': Ne
required:
mark: "*"
text: bezonata
- 'yes': 'Jes'
+ 'yes': Jes
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index a6185915e..63a0710d1 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -8,7 +8,7 @@ es:
one: 1 caracter restante
other: %{count} caracteres restantes
header: PNG, GIF o JPG. Máximo 2MB. Será escalado a 700x335px
- locked: Requiere que manualmente apruebes seguidores y las publicaciones serán mostradas solamente a tus seguidores
+ locked: Requiere que manualmente apruebes seguidores y las publicaciones serán mostradas solamente a tus seguidores
note:
one: 1 caracter restante
other: %{count} caracteres restantes
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index dd72a19bd..bdc4f32bf 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -5,13 +5,13 @@ fa:
defaults:
avatar: یکی از قالبهای PNG یا GIF یا JPG. بیشترین اندازه ۲ مگابایت. تصویر به اندازهٔ ۱۲۰×۱۲۰ پیکسل تبدیل خواهد شد.
display_name:
- one: '1 حرف باقی مانده'
- other: '%{count} حرف باقی مانده'
+ one: 1 حرف باقی مانده
+ other: %{count} حرف باقی مانده
header: یکی از قالبهای PNG یا GIF یا JPG. بیشترین اندازه ۲ مگابایت. تصویر به اندازهٔ ۳۳۵×۷۰۰ پیکسل تبدیل خواهد شد
locked: باید پیگیران تازه را خودتان تأیید کنید. حریم خصوصی پیشفرض نوشتهها را روی پیگیران تنظیم میکند
note:
- one: '1 حرف باقی مانده'
- other: '%{count} حرف باقی مانده'
+ one: 1 حرف باقی مانده
+ other: %{count} حرف باقی مانده
setting_noindex: روی نمایهٔ عمومی و صفحهٔ نوشتههای شما تأثیر میگذارد
imports:
data: پروندهٔ CSV که از سرور ماستدون دیگری برونسپاری شده
@@ -57,8 +57,8 @@ fa:
follow_request: وقتی کسی درخواست پیگیری کرد ایمیل بفرست
mention: وقتی کسی از شما نام برد ایمیل بفرست
reblog: وقتی کسی نوشتهٔ شما را بازبوقید ایمیل بفرست
- 'no': 'خیر'
+ 'no': خیر
required:
mark: "*"
text: ضروری
- 'yes': 'بله'
+ 'yes': بله
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index 2bacd6d2c..8ca4378b1 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -39,8 +39,8 @@ fi:
follow_request: Lähetä s-posti kun joku pyytää seurata sinua
mention: Lähetä s-posti kun joku mainitsee sinut
reblog: Lähetä s-posti kun joku buustaa julkaisusi
- 'no': 'Ei'
+ 'no': Ei
required:
mark: "*"
text: vaaditaan
- 'yes': 'Kyllä'
+ 'yes': Kyllä
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 532054449..d6af5e7ac 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -3,19 +3,19 @@ he:
simple_form:
hints:
defaults:
- avatar: 'PNG, GIF או JPG. מקסימום 2MB. גודל התמונה יוקטן ל-120x120px'
+ avatar: PNG, GIF או JPG. מקסימום 2MB. גודל התמונה יוקטן ל-120x120px
display_name:
- one: 'נותרה אותאחת'
- other: 'נותרו%{count} אותיות'
- header: 'PNG, GIF או JPG. מקסימום 2MB. גודל התמונה יוקטן 700x335px'
- locked: 'מחייב אישור עוקבים באופן ידני. פרטיות ההודעות תהיה עוקבים-בלבד אלא אם יצוין אחרת'
+ one: נותרה אותאחת
+ other: נותרו%{count} אותיות
+ header: PNG, GIF או JPG. מקסימום 2MB. גודל התמונה יוקטן 700x335px
+ locked: מחייב אישור עוקבים באופן ידני. פרטיות ההודעות תהיה עוקבים-בלבד אלא אם יצוין אחרת
note:
- one: 'נותרה אותאחת'
- other: 'נותרו %{count} אותיות'
+ one: נותרה אותאחת
+ other: נותרו %{count} אותיות
imports:
- data: 'קובץ CSV שיוצא משרת מסטודון אחר'
+ data: קובץ CSV שיוצא משרת מסטודון אחר
sessions:
- otp: 'נא להקליד קוד אימות דו-שלבי ממכשירך או קוד אחזור גישה.'
+ otp: נא להקליד קוד אימות דו-שלבי ממכשירך או קוד אחזור גישה.
user:
filtered_languages: בחירת שפות להסתרה מציר הזמן הציבורי שלך.
labels:
@@ -26,7 +26,7 @@ he:
current_password: סיסמא נוכחית
data: מידע
display_name: שם להצגה
- email: 'כתובת דוא"ל'
+ email: כתובת דוא"ל
header: ראשה
locale: שפה
locked: הפוך חשבון לפרטי
@@ -44,14 +44,14 @@ he:
must_be_follower: חסימת התראות משאינם עוקבים
must_be_following: חסימת התראות משאינם נעקבים
notification_emails:
- digest: 'שליחת הודעות דוא"ל מסכמות'
- favourite: 'שליחת דוא"ל כשמחבבים חצרוץ'
- follow: 'שליחת דוא"ל כשנוספות עוקבות'
- follow_request: 'שליחת דוא"ל כשמבקשים לעקוב'
- mention: 'שליחת דוא"ל כשפונים אלייך'
- reblog: 'שליחת דוא"ל כשמהדהדים חצרוץ שלך'
- 'no': 'לא'
+ digest: שליחת הודעות דוא"ל מסכמות
+ favourite: שליחת דוא"ל כשמחבבים חצרוץ
+ follow: שליחת דוא"ל כשנוספות עוקבות
+ follow_request: שליחת דוא"ל כשמבקשים לעקוב
+ mention: שליחת דוא"ל כשפונים אלייך
+ reblog: שליחת דוא"ל כשמהדהדים חצרוץ שלך
+ 'no': לא
required:
mark: "*"
text: שדה חובה
- 'yes': 'כן'
+ 'yes': כן
diff --git a/config/locales/simple_form.hr.yml b/config/locales/simple_form.hr.yml
index 0b7761a7f..3010423a7 100644
--- a/config/locales/simple_form.hr.yml
+++ b/config/locales/simple_form.hr.yml
@@ -40,8 +40,8 @@ hr:
follow_request: Pošalji mi e-mail kad mi netko pošalje zahtjev da me želi slijediti
mention: Pošalji mi e-mail kad me netko spomene
reblog: Pošalji mi e-mail kad netko rebloga moj status
- 'no': 'Ne'
+ 'no': Ne
required:
mark: "*"
text: traženo
- 'yes': 'Da'
+ 'yes': Da
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 89eb70767..c4dc3aead 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -20,8 +20,8 @@ hu:
follow: E-mail küldése amikor valaki követni kezd téged
mention: E-mail küldése amikor valaki megemlít téged
reblog: E-mail küldése amikor valaki reblogolja az állapotod
- 'no': 'Nem'
+ 'no': Nem
required:
mark: "*"
text: kötelező
- 'yes': 'Igen'
+ 'yes': Igen
diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml
index a6e6a77a1..b00b4ef4f 100644
--- a/config/locales/simple_form.id.yml
+++ b/config/locales/simple_form.id.yml
@@ -43,8 +43,8 @@ id:
follow_request: Kirim email saat seseorang meminta untuk mengikuti anda
mention: Kirim email saat seseorang menyebut anda
reblog: Kirim email saat seseorang mem-boost status anda
- 'no': 'Tidak'
+ 'no': Tidak
required:
mark: "*"
text: wajib
- 'yes': 'Ya'
+ 'yes': Ya
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index b7dbc8bef..abbad7430 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -51,8 +51,8 @@ ko:
follow_request: 누군가 나를 팔로우 하길 원할 때 이메일 보내기
mention: 누군가 나에게 답장했을 때 이메일 보내기
reblog: 누군가 내 Toot을 부스트 했을 때 이메일 보내기
- 'no': '아니오'
+ 'no': 아니오
required:
mark: "*"
text: 필수 항목
- 'yes': '네'
+ 'yes': 네
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 82f6cd426..fabb5840a 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -12,11 +12,11 @@ nl:
other: %{count} tekens over
setting_noindex: Heeft invloed op jouw openbare profiel en toots
imports:
- data: CSV-bestand dat op een andere Mastodon-server werd geëxporteerd
+ data: CSV-bestand dat op een andere Mastodon-server werd geëxporteerd
sessions:
- otp: Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcode's.
+ otp: Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcode's.
user:
- filtered_languages: De geselecteerde talen worden uit de lokale en globale tijdlijn verwijderd.
+ filtered_languages: De geselecteerde talen worden uit de lokale en globale tijdlijn verwijderd.
labels:
defaults:
avatar: Avatar
@@ -54,8 +54,8 @@ nl:
follow_request: Verstuur een e-mail wanneer iemand jou wilt volgen
mention: Verstuur een e-mail wanneer iemand jou vermeld
reblog: Verstuur een e-mail wanneer iemand jouw toot heeft geboost
- 'no': 'Nee'
+ 'no': Nee
required:
mark: "*"
text: vereist
- 'yes': 'Ja'
+ 'yes': Ja
diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml
index cc9ad4c6f..194e1582f 100644
--- a/config/locales/simple_form.no.yml
+++ b/config/locales/simple_form.no.yml
@@ -1,19 +1,17 @@
+---
'no':
simple_form:
hints:
defaults:
- avatar: 'PNG, GIF eller JPG. Maksimalt 2MB. Vil bli nedskalert til 120x120px'
+ avatar: PNG, GIF eller JPG. Maksimalt 2MB. Vil bli nedskalert til 120x120px
display_name: Maksimalt 30 tegn
- header: 'PNG, GIF eller JPG. Maksimalt 2MB. Vil bli nedskalert til 700x335px'
- locked: >-
- Krever at du manuelt godkjenner følgere og setter standardbeskyttelse
- av poster til kun-følgere
+ header: PNG, GIF eller JPG. Maksimalt 2MB. Vil bli nedskalert til 700x335px
+ locked: Krever at du manuelt godkjenner følgere og setter standardbeskyttelse av poster til kun-følgere
note: Maksimalt 160 tegn
imports:
data: CSV-fil eksportert fra en annen Mastodon instans
sessions:
- otp: >-
- Skriv tofaktorkoden fra din telefon eller bruk en av gjenopprettingskodene.
+ otp: Skriv tofaktorkoden fra din telefon eller bruk en av gjenopprettingskodene.
labels:
defaults:
avatar: Profilbilde
@@ -48,7 +46,6 @@
reblog: Send e-post når noen fremhever din status
'no': Nei
required:
- mark: '*'
+ mark: "*"
text: påkrevd
'yes': Ja
-
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index bc6766689..22cae5271 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -57,8 +57,8 @@ pt-BR:
follow_request: Mandar um e-maill quando alguém solicitar ser seu seguidor
mention: Mandar um e-mail quando alguém te mencionar
reblog: Mandar um e-mail quando alguém compartilhar suas postagens
- 'no': 'Não'
+ 'no': Não
required:
mark: "*"
text: obrigatório
- 'yes': 'Sim'
+ 'yes': Sim
diff --git a/config/locales/simple_form.pt.yml b/config/locales/simple_form.pt.yml
index ba3326b23..0df7a9bb9 100644
--- a/config/locales/simple_form.pt.yml
+++ b/config/locales/simple_form.pt.yml
@@ -42,8 +42,8 @@ pt:
follow: Enviar email quando alguém te segue
mention: Enviar email quando alguém te menciona
reblog: Enviar email quando alguém partilhar um post teu
- 'no': 'Não'
+ 'no': Não
required:
mark: "*"
text: necessário
- 'yes': 'Sim'
+ 'yes': Sim
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index c58758da4..87c673600 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -5,13 +5,13 @@ th:
defaults:
avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 120x120px
display_name:
- one: '1 character left'
- other: '%{count} characters left'
+ one: 1 character left
+ other: %{count} characters left
header: PNG, GIF or JPG. At most 2MB. Will be downscaled to 700x335px
locked: Requires you to manually approve followers and defaults post privacy to followers-only
note:
- one: '1 character left'
- other: '%{count} characters left'
+ one: 1 character left
+ other: %{count} characters left
imports:
data: CSV file exported from another Mastodon instance
sessions:
@@ -48,8 +48,8 @@ th:
follow_request: Send e-mail when someone requests to follow you
mention: Send e-mail when someone mentions you
reblog: Send e-mail when someone boosts your status
- 'no': 'ไม่'
+ 'no': ไม่
required:
mark: "*"
text: required
- 'yes': 'ใช่'
+ 'yes': ใช่
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 80b6c771c..0e171b793 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -1,14 +1,13 @@
-
---
tr:
simple_form:
hints:
defaults:
avatar: En fazla 2MB olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. 120x120px büyüklüğüne indirgenecektir
- display_name: '%{count} karakter kaldı'
+ display_name: %{count} karakter kaldı
header: En fazla 2MB olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. 700x335px büyüklüğüne indirgenecektir.
locked: Takipçilerinizi manuel olarak kabul etmenizi ve gönderilerinizi varsayılan olarak sadece takipçilerinizin göreceği şekilde paylaşmanızı sağlar.
- note: '%{count} karakter kaldı'
+ note: %{count} karakter kaldı
imports:
data: Diğer Mastodon sunucusundan dışarı aktardığınız CSV dosyası
sessions:
@@ -45,9 +44,8 @@ tr:
follow_request: Biri bana takip isteği gönderdiğinde, bana e-posta gönder
mention: Biri benden bahsettiğinde, bana e-posta gönder
reblog: Biri durumumu paylaştığında, bana e-posta gönder
- 'no': 'Hayır'
+ 'no': Hayır
required:
mark: "*"
text: gerekli
- 'yes': 'Evet'
-
+ 'yes': Evet
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 16608c129..ff7f2d4ca 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -44,8 +44,8 @@ uk:
follow_request: Надсилати листа, коли хтось запитує дозволу на підписку
mention: Надсилати листа, коли хтось згадує Вас
reblog: Надсилати листа, коли хтось передмухує Ваш статус
- 'no': 'Ні'
+ 'no': Ні
required:
mark: "*"
text: обов'язкове
- 'yes': 'Так'
+ 'yes': Так
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 6f4edaf48..eafaa972e 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -46,8 +46,8 @@ zh-CN:
follow_request: 当有用户要求关注你时,发电邮通知
mention: 当有用户在嘟文中提及你时,发电邮通知
reblog: 当有用户转嘟了你的嘟文时,发电邮通知
- 'no': '否'
+ 'no': 否
required:
mark: "*"
text: 必填
- 'yes': '是'
+ 'yes': 是
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 0bb135ca1..c82f07e2d 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -42,8 +42,8 @@ zh-TW:
follow_request: 當有使用者要求關注您時,發信通知
mention: 當有使用者在文章提及您時,發信通知
reblog: 當有使用者轉推您的文章時,發信通知
- 'no': '否'
+ 'no': 否
required:
mark: "*"
text: 必填
- 'yes': '是'
+ 'yes': 是
--
cgit
From 09a94b575e90dc7f6e179a1ec717156e725f915a Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Tue, 19 Sep 2017 03:52:38 +0200
Subject: Admin interface for listing, adding and removing custom emojis
(#5002)
* Admin interface for listing, adding and removing custom emojis
* Only display local ones in the list
---
app/controllers/admin/custom_emojis_controller.rb | 34 ++++++++++++++++++++++
app/services/block_domain_service.rb | 9 ++++++
.../admin/custom_emojis/_custom_emoji.html.haml | 7 +++++
app/views/admin/custom_emojis/index.html.haml | 14 +++++++++
app/views/admin/custom_emojis/new.html.haml | 12 ++++++++
config/locales/en.yml | 12 ++++++++
config/navigation.rb | 1 +
config/routes.rb | 2 ++
8 files changed, 91 insertions(+)
create mode 100644 app/controllers/admin/custom_emojis_controller.rb
create mode 100644 app/views/admin/custom_emojis/_custom_emoji.html.haml
create mode 100644 app/views/admin/custom_emojis/index.html.haml
create mode 100644 app/views/admin/custom_emojis/new.html.haml
diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb
new file mode 100644
index 000000000..616a279b3
--- /dev/null
+++ b/app/controllers/admin/custom_emojis_controller.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Admin
+ class CustomEmojisController < BaseController
+ def index
+ @custom_emojis = CustomEmoji.where(uri: nil)
+ end
+
+ def new
+ @custom_emoji = CustomEmoji.new
+ end
+
+ def create
+ @custom_emoji = CustomEmoji.new(resource_params)
+
+ if @custom_emoji.save
+ redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.created_msg')
+ else
+ render :new
+ end
+ end
+
+ def destroy
+ CustomEmoji.find(params[:id]).destroy
+ redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.destroyed_msg')
+ end
+
+ private
+
+ def resource_params
+ params.require(:custom_emoji).permit(:shortcode, :image)
+ end
+ end
+end
diff --git a/app/services/block_domain_service.rb b/app/services/block_domain_service.rb
index 1473bc841..eefdc0dbf 100644
--- a/app/services/block_domain_service.rb
+++ b/app/services/block_domain_service.rb
@@ -26,6 +26,7 @@ class BlockDomainService < BaseService
def clear_media!
clear_account_images
clear_account_attachments
+ clear_emojos
end
def suspend_accounts!
@@ -51,6 +52,10 @@ class BlockDomainService < BaseService
end
end
+ def clear_emojos
+ emojis_from_blocked_domains.destroy_all
+ end
+
def blocked_domain
domain_block.domain
end
@@ -62,4 +67,8 @@ class BlockDomainService < BaseService
def media_from_blocked_domain
MediaAttachment.joins(:account).merge(blocked_domain_accounts).reorder(nil)
end
+
+ def emojis_from_blocked_domains
+ CustomEmoji.where(domain: blocked_domain)
+ end
end
diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml
new file mode 100644
index 000000000..ff1aa9925
--- /dev/null
+++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml
@@ -0,0 +1,7 @@
+%tr
+ %td
+ = image_tag custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:"
+ %td
+ %samp= ":#{custom_emoji.shortcode}:"
+ %td
+ = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml
new file mode 100644
index 000000000..d5f32e84b
--- /dev/null
+++ b/app/views/admin/custom_emojis/index.html.haml
@@ -0,0 +1,14 @@
+- content_for :page_title do
+ = t('admin.custom_emojis.title')
+
+.table-wrapper
+ %table.table
+ %thead
+ %tr
+ %th= t('admin.custom_emojis.emoji')
+ %th= t('admin.custom_emojis.shortcode')
+ %th
+ %tbody
+ = render @custom_emojis
+
+= link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button'
diff --git a/app/views/admin/custom_emojis/new.html.haml b/app/views/admin/custom_emojis/new.html.haml
new file mode 100644
index 000000000..672afe435
--- /dev/null
+++ b/app/views/admin/custom_emojis/new.html.haml
@@ -0,0 +1,12 @@
+- content_for :page_title do
+ = t('.title')
+
+= simple_form_for @custom_emoji, url: admin_custom_emojis_path do |f|
+ = render 'shared/error_messages', object: @custom_emoji
+
+ .fields-group
+ = f.input :shortcode, placeholder: t('admin.custom_emojis.shortcode'), hint: t('admin.custom_emojis.shortcode_hint')
+ = f.input :image, input_html: { accept: 'image/png' }, hint: t('admin.custom_emojis.image_hint')
+
+ .actions
+ = f.button :button, t('admin.custom_emojis.upload'), type: :submit
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 0f6bac9e1..9013f0ac9 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -108,6 +108,18 @@ en:
unsubscribe: Unsubscribe
username: Username
web: Web
+ custom_emojis:
+ created_msg: Emoji successfully created!
+ delete: Delete
+ destroyed_msg: Emojo successfully destroyed!
+ emoji: Emoji
+ image_hint: PNG up to 50KB
+ new:
+ title: Add new custom emoji
+ shortcode: Shortcode
+ shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+ title: Custom emojis
+ upload: Upload
domain_blocks:
add_new: Add new
created_msg: Domain block is now being processed
diff --git a/config/navigation.rb b/config/navigation.rb
index 4b454b3fc..0a6ab6d3d 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -28,6 +28,7 @@ SimpleNavigation::Configuration.run do |navigation|
admin.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }
admin.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }
admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url
+ admin.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
end
primary.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }
diff --git a/config/routes.rb b/config/routes.rb
index bf5428869..d38f5308a 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -136,6 +136,8 @@ Rails.application.routes.draw do
resources :users, only: [] do
resource :two_factor_authentication, only: [:destroy]
end
+
+ resources :custom_emojis, only: [:index, :new, :create, :destroy]
end
get '/admin', to: redirect('/admin/settings/edit', status: 302)
--
cgit
From dce869dfc7d4e6338da2f0d72b0a9fb2bf6d5351 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Tue, 19 Sep 2017 05:05:48 +0200
Subject: Define emoji context for ActivityPub (#5004)
* Define emoji context for ActivityPub
* Fix the emojo
* Use general Mastodon context instead
---
app/lib/activitypub/adapter.rb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb
index 3228a3f03..790d2025c 100644
--- a/app/lib/activitypub/adapter.rb
+++ b/app/lib/activitypub/adapter.rb
@@ -14,6 +14,8 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
'atomUri' => 'ostatus:atomUri',
'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
'conversation' => 'ostatus:conversation',
+ 'toot' => 'http://joinmastodon.org/ns#',
+ 'Emoji' => 'toot:Emoji',
},
],
}.freeze
--
cgit
From 1664e52cbb5ec08db896127640bd0554cee1d384 Mon Sep 17 00:00:00 2001
From: Yamagishi Kazutoshi
Date: Tue, 19 Sep 2017 12:06:13 +0900
Subject: Fix custom emojis index (#5006)
---
app/controllers/admin/custom_emojis_controller.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb
index 616a279b3..572ad1ac2 100644
--- a/app/controllers/admin/custom_emojis_controller.rb
+++ b/app/controllers/admin/custom_emojis_controller.rb
@@ -3,7 +3,7 @@
module Admin
class CustomEmojisController < BaseController
def index
- @custom_emojis = CustomEmoji.where(uri: nil)
+ @custom_emojis = CustomEmoji.where(domain: nil)
end
def new
--
cgit
From 813e6507293948ff3f0f78bf15422c61ff1d8342 Mon Sep 17 00:00:00 2001
From: Akihiko Odaki
Date: Tue, 19 Sep 2017 12:06:27 +0900
Subject: Remove ubuntu-toolchain-r-test (#5005)
---
.travis.yml | 2 --
1 file changed, 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 71a117810..52ff15c01 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,11 +26,9 @@ addons:
postgresql: 9.4
apt:
sources:
- - ubuntu-toolchain-r-test
- trusty-media
packages:
- ffmpeg
- - g++-6
- libprotobuf-dev
- protobuf-compiler
- libicu-dev
--
cgit
From 41e6c8b151da937acbb73b14df74fbd230dea981 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Tue, 19 Sep 2017 06:53:16 +0200
Subject: Fix incomplete account records being read (#4998)
* Fix incomplete account records being read
- Put account processing into redis lock
- Do not save until record is complete
* Fix spaces
---
app/controllers/media_proxy_controller.rb | 2 +-
.../activitypub/process_account_service.rb | 80 +++++++++++++++-------
2 files changed, 57 insertions(+), 25 deletions(-)
diff --git a/app/controllers/media_proxy_controller.rb b/app/controllers/media_proxy_controller.rb
index 6a83cf9dc..155670837 100644
--- a/app/controllers/media_proxy_controller.rb
+++ b/app/controllers/media_proxy_controller.rb
@@ -18,7 +18,7 @@ class MediaProxyController < ApplicationController
def redownload!
@media_attachment.file_remote_url = @media_attachment.remote_url
- @media_attachment.touch(:created_at)
+ @media_attachment.created_at = Time.now.utc
@media_attachment.save!
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index a45681078..811209537 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -12,14 +12,21 @@ class ActivityPub::ProcessAccountService < BaseService
@uri = @json['id']
@username = username
@domain = domain
- @account = Account.find_by(uri: @uri)
@collections = {}
- old_public_key = @account&.public_key
- create_account if @account.nil?
- upgrade_account if @account.ostatus?
- update_account
- RefollowWorker.perform_async(@account.id) if !old_public_key.nil? && old_public_key != @account.public_key
+ RedisLock.acquire(lock_options) do |lock|
+ if lock.acquired?
+ @account = Account.find_by(uri: @uri)
+ @old_public_key = @account&.public_key
+ @old_protocol = @account&.protocol
+
+ create_account if @account.nil?
+ update_account
+ end
+ end
+
+ after_protocol_change! if protocol_changed?
+ after_key_change! if key_changed?
@account
rescue Oj::ParseError
@@ -37,33 +44,46 @@ class ActivityPub::ProcessAccountService < BaseService
@account.suspended = true if auto_suspend?
@account.silenced = true if auto_silence?
@account.private_key = nil
- @account.save!
end
def update_account
@account.last_webfingered_at = Time.now.utc
@account.protocol = :activitypub
- @account.inbox_url = @json['inbox'] || ''
- @account.outbox_url = @json['outbox'] || ''
- @account.shared_inbox_url = (@json['endpoints'].is_a?(Hash) ? @json['endpoints']['sharedInbox'] : @json['sharedInbox']) || ''
- @account.followers_url = @json['followers'] || ''
- @account.url = url || @uri
- @account.display_name = @json['name'] || ''
- @account.note = @json['summary'] || ''
- @account.avatar_remote_url = image_url('icon') unless skip_download?
- @account.header_remote_url = image_url('image') unless skip_download?
- @account.public_key = public_key || ''
- @account.locked = @json['manuallyApprovesFollowers'] || false
- @account.statuses_count = outbox_total_items if outbox_total_items.present?
- @account.following_count = following_total_items if following_total_items.present?
- @account.followers_count = followers_total_items if followers_total_items.present?
+
+ set_immediate_attributes!
+ set_fetchable_attributes!
+
@account.save_with_optional_media!
end
- def upgrade_account
+ def set_immediate_attributes!
+ @account.inbox_url = @json['inbox'] || ''
+ @account.outbox_url = @json['outbox'] || ''
+ @account.shared_inbox_url = (@json['endpoints'].is_a?(Hash) ? @json['endpoints']['sharedInbox'] : @json['sharedInbox']) || ''
+ @account.followers_url = @json['followers'] || ''
+ @account.url = url || @uri
+ @account.display_name = @json['name'] || ''
+ @account.note = @json['summary'] || ''
+ @account.locked = @json['manuallyApprovesFollowers'] || false
+ end
+
+ def set_fetchable_attributes!
+ @account.avatar_remote_url = image_url('icon') unless skip_download?
+ @account.header_remote_url = image_url('image') unless skip_download?
+ @account.public_key = public_key || ''
+ @account.statuses_count = outbox_total_items if outbox_total_items.present?
+ @account.following_count = following_total_items if following_total_items.present?
+ @account.followers_count = followers_total_items if followers_total_items.present?
+ end
+
+ def after_protocol_change!
ActivityPub::PostUpgradeWorker.perform_async(@account.domain)
end
+ def after_key_change!
+ RefollowWorker.perform_async(@account.id)
+ end
+
def image_url(key)
value = first_of_value(@json[key])
@@ -122,15 +142,27 @@ class ActivityPub::ProcessAccountService < BaseService
end
def auto_suspend?
- domain_block && domain_block.suspend?
+ domain_block&.suspend?
end
def auto_silence?
- domain_block && domain_block.silence?
+ domain_block&.silence?
end
def domain_block
return @domain_block if defined?(@domain_block)
@domain_block = DomainBlock.find_by(domain: @domain)
end
+
+ def key_changed?
+ !@old_public_key.nil? && @old_public_key != @account.public_key
+ end
+
+ def protocol_changed?
+ !@old_protocol.nil? && @old_protocol != @account.protocol
+ end
+
+ def lock_options
+ { redis: Redis.current, key: "process_account:#{@uri}" }
+ end
end
--
cgit
From 4aea3f88a6d30f102a79c2da7fcfac96465ba1a8 Mon Sep 17 00:00:00 2001
From: unarist
Date: Tue, 19 Sep 2017 23:03:45 +0900
Subject: Hide sensitive image in default on the public pages (#5009)
Additionally, this restores previous background / text color for media spoiler.
---
app/javascript/styles/stream_entries.scss | 13 +++++++++++++
app/views/stream_entries/_detailed_status.html.haml | 2 +-
app/views/stream_entries/_simple_status.html.haml | 2 +-
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/app/javascript/styles/stream_entries.scss b/app/javascript/styles/stream_entries.scss
index ba6d89107..4f323a378 100644
--- a/app/javascript/styles/stream_entries.scss
+++ b/app/javascript/styles/stream_entries.scss
@@ -243,6 +243,19 @@
}
}
+ .media-spoiler {
+ background: $ui-primary-color;
+ color: $white;
+ transition: all 100ms linear;
+
+ &:hover,
+ &:active,
+ &:focus {
+ background: darken($ui-primary-color, 5%);
+ color: unset;
+ }
+ }
+
.pre-header {
padding: 14px 0;
padding-left: (48px + 14px * 2);
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index 692d5a6d5..6860c6bf3 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -24,7 +24,7 @@
- video = status.media_attachments.first
%div{ data: { component: 'Video', props: Oj.dump(src: video.file.url(:original), preview: video.file.url(:small), sensitive: status.sensitive?, width: 670, height: 380) }}
- else
- %div{ data: { component: 'MediaGallery', props: Oj.dump(height: 380, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }) }}
+ %div{ data: { component: 'MediaGallery', props: Oj.dump(height: 380, sensitive: status.sensitive?, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }) }}
- elsif status.preview_cards.first
%div{ data: { component: 'Card', props: Oj.dump('maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_cards.first, serializer: REST::PreviewCardSerializer).as_json) }}
diff --git a/app/views/stream_entries/_simple_status.html.haml b/app/views/stream_entries/_simple_status.html.haml
index f9a530d38..c0ea11633 100644
--- a/app/views/stream_entries/_simple_status.html.haml
+++ b/app/views/stream_entries/_simple_status.html.haml
@@ -25,4 +25,4 @@
- video = status.media_attachments.first
%div{ data: { component: 'Video', props: Oj.dump(src: video.file.url(:original), preview: video.file.url(:small), sensitive: status.sensitive?, width: 610, height: 343) }}
- else
- %div{ data: { component: 'MediaGallery', props: Oj.dump(height: 343, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }) }}
+ %div{ data: { component: 'MediaGallery', props: Oj.dump(height: 343, sensitive: status.sensitive?, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }) }}
--
cgit