From 127d51bda7638f61c2461f0940ab9e3727cd03ea Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Sun, 10 Sep 2017 17:25:39 +0200 Subject: [PATCH 01/81] 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 88125f6923..a2437efc59 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 From 04183a9675637e68d1173d3524215f529e938fc6 Mon Sep 17 00:00:00 2001 From: Masoud Abkenar Date: Mon, 11 Sep 2017 01:35:27 +0200 Subject: [PATCH 02/81] 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 d05b26eb9f..284c5a812e 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 ba726fc75a..56fc7213ba 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: 'واردشده به نام:' From d639474d8c4d11f0a78bdfa1a513d97a3d38586d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna=20e=20s=C3=B3?= Date: Sun, 10 Sep 2017 20:40:29 -0300 Subject: [PATCH 03/81] 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 + .../password_change.pt-BR.html.erb | 3 + .../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 e861bf73ff..87f8097aae 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 0000000000..80edcfda7b --- /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 0000000000..95efb3436a --- /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 0000000000..5f707ba094 --- /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 0000000000..d8b76648cf --- /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 0000000000..940438b7cb --- /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 0000000000..f574fe08f9 --- /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 c647fabbd8..13736b3a35 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 85ea3bfccf..f0f3c68931 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 7501202995..00941d2156 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.

+ + + +

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.

+ +

Originalmente adaptado da política de privacidade do Discourse.

+ title: "%{instance} Termos de Serviço e Política de Privacidade" time: formats: - default: "%d %b, %Y, %H:%M" + default: "%b %d, %Y, %H:%M" two_factor_authentication: - code_hint: Entre o código gerado pelo seu aplicativo para confirmar - description_html: Se você habilitar autenticação two-factor , quando logar será necessário o seu telefone que vai gerar os tokens usado. - disable: Disabilitar - enable: Habilitar - enabled_success: Autenticador Two-factor habilitador com sucesso - generate_recovery_codes: Gerar códigos para recuperar conta - instructions_html: "Scaneie este código QR no seu Google Authenticator ou aplicativo similar no seu telefone. A partir de agora seu aplicativo irá gerar tokens que deverão ser digitados para você logar." - lost_recovery_codes: Códigos de recuperação permite que você recupere o acesso a sua conta se você perder seu telefone. Se você perder os códigos de recuperação, você pode regera-los aqui. Seus códigos antigos serão invalidados. - manual_instructions: 'Se você não puder scanear o código QR e precisa digita-los manualmente, aqui está o segredo em texto.:' - recovery_codes_regenerated: Códigos de recuperação foram gerados com sucesso - recovery_instructions_html: Se algum dia você perder o acesso ao seu telefone, você pode usar um dos códigos de abaixo para recupera o acesso a sua conta. Guarde os códigos de acesso em local seguro, por exemplo imprimindo ou guardados com documentos importantes. + code_hint: Insira o código gerado pelo seu aplicativo auteticador para confirmar + description_html: Se você ativar a autenticação em dois passos, o acesso à sua conta exigirá posse de seu celular, que irá gerar tokens para validação. + disable: Desativar + enable: Ativar + enabled: A autenticação em dois passos está ativada + enabled_success: Autenticação em dois passos ativada com sucesso + generate_recovery_codes: Gerar códigos de recuperação + instructions_html: "Escaneie este QR Code no Google Authenticator ou aplicativo TOTP similar com o seu celular. De agora em diante, este aplicativo irá gerar tokens que você terá que inserir quando desejar acessar a sua conta." + lost_recovery_codes: Códigos de recuperação permitem que você recupere acesso à sua conta caso perca o seu celular. Se você perdeu seus códigos de recuperação, você pode gerá-los novamente aqui. Seus códigos de recuperaçãp anteriores serão invalidados. + manual_instructions: 'Se você não pode escanear o QR code e precisa inserí-lo manualmente, aqui está o segredo em texto:' + recovery_codes: Códigos de recuperação de reserva + recovery_codes_regenerated: Códigos de recuperação regenerados com sucesso + recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para reganhar acesso à sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los com outros documentos importantes. setup: Configurar - wrong_code: O código digitado é inválido! Os relógios do servidor e do dispositivo estão corretos? + wrong_code: O código inserido é invalido! O horário do servidor e o horário do seu aparelho estão corretos? users: - invalid_email: Endereço e-mail inválido - invalid_otp_token: Código two-factor inválido + invalid_email: O endereço de e-mail é inválido + invalid_otp_token: Código de autenticação inválido + signed_in_as: 'Acesso como:' diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 733e168926..bc67666893 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -1,51 +1,64 @@ --- pt-BR: simple_form: - labels: + hints: defaults: - avatar: PNG, GIF or JPG. Máximo 2MB. Será reduzido para 120x120px - display_name: '%{count} caracteres restantes' - header: PNG, GIF or JPG. Máximo 2MB. Será reduzido para 700x335px - locked: Requer você aprovação manualmente seguidores e posts padrão de privacidade para seguidores-apenas - note: '%{count} caracteres restantes' + avatar: PNG, GIF or JPG. Arquivos de até 2MB. Eles serão diminuídos para 120x120px + display_name: + one: 1 caracter restante + other: %{count} caracteres restantes + header: PNG, GIF or JPG. Arquivos de até 2MB. Eles serão diminuídos para 700x335px + locked: Requer aprovação manual de seguidores + note: + one: 1 caracter restante + other: %{count} caracteres restantes + setting_noindex: Afeta seu perfil público e as páginas de suas postagens imports: - data: Arquivo CSV exportado de outra instancia Mastodon + data: Arquivo CSV exportado de outra instância do Mastodon sessions: - otp: Entre com o código de 2 passos do seu telefone ou use os códiogos de recuperação. + otp: Insira o código de autenticação do seu celular ou use um dos códigos de recuperação. + user: + filtered_languages: Selecione os idiomas que devem ser removidos de suas timelines públicas. labels: defaults: avatar: Avatar - confirm_new_password: Confirme nova senha - confirm_password: Confirme a senha + confirm_new_password: Confirmar nova senha + confirm_password: Confirmar senha current_password: Senha atual data: Dados - display_name: Nome - email: Endereço de email - header: Header - locale: Linguagem - locked: Conta bloqueada + display_name: Nome de exibição + email: Endereço de e-mail + filtered_languages: Idiomas filtrados + header: Cabeçalho + locale: Idioma + locked: Trancar conta new_password: Nova senha - note: Biografia - otp_attempt: Autenticação 2 passos + note: Bio + otp_attempt: Código de autenticação em dois passos password: Senha - setting_auto_play_gif: Tocar GIFs animados automaticamente - setting_boost_modal: Mostrar dialogo de confirmação antes de fazer boost - setting_default_privacy: Postar privacidade - severity: Severidade - type: Importar tipo - username: Usuário + setting_auto_play_gif: Reproduzir GIFs automaticamente + setting_boost_modal: Mostrar diálogo de confirmação antes de compartilhar postagem + setting_default_privacy: Privacidade das postagens + setting_default_sensitive: Sempre marcar mídia como sensível + setting_delete_modal: Mostrar diálogo de confirmação antes de deletar uma postagem + setting_noindex: Não quero ser indexado por mecanismos de busca + setting_system_font_ui: Usar a fonte padrão de seu sistema + setting_unfollow_modal: Mostrar diálogo de confirmação antes de deixar de seguir alguém + severity: Gravidade + type: Tipo de importação + username: Nome de usuário interactions: must_be_follower: Bloquear notificações de não-seguidores - must_be_following: Bloquear notificações de pessoas que você + must_be_following: Bloquear notificações de pessoas que você não segue notification_emails: - digest: Enviar resumo de emails - favourite: Enviar email quando alguém favorita um post seu - follow: Enviar email quando alguém seguir você - follow_request: Enviar email quando alguém requisitar te seguir - mention: Enviar email quando alguém mencionar você - reblog: Enviar email quando alguém reblogar um post seu + digest: Mandar e-mails com relatórios + favourite: Mandar um e-mail quando alguém favoritar suas postagens + follow: Mandar um e-mail quando alguém te seguir + 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' required: mark: "*" - text: necessário + text: obrigatório 'yes': 'Sim' From 759bbdd9caf3e6df3acf7808b90aa374f2ff05c0 Mon Sep 17 00:00:00 2001 From: Patrick Figel Date: Mon, 11 Sep 2017 15:11:13 +0200 Subject: [PATCH 04/81] Add OpenStack Keystone V3 support (#4889) Keystone V2 is deprecated in favour of V3. This adds the necessary connection parameters for establishing a V3 connection. Connections to V2 endpoints are still possible and the configuration should remain compatible. This also introduces a SWIFT_REGION variable for multi-region OpenStack environments and a SWIFT_CACHE_TTL that controls how long tokens and other meta-data is cached for. Caching tokens avoids rate-limiting errors that would result in media uploads becoming unavailable during high load or when using tasks like media:remove_remote. fog-openstack only supports token caching for V3 endpoints, so a recommendation for using V3 was added. --- .env.production.sample | 8 ++++++++ config/initializers/paperclip.rb | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.env.production.sample b/.env.production.sample index 3e054db844..e022a84059 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -101,11 +101,19 @@ SMTP_FROM_ADDRESS=notifications@example.com # Swift (optional) # SWIFT_ENABLED=true # SWIFT_USERNAME= +# For Keystone V3, the value for SWIFT_TENANT should be the project name # SWIFT_TENANT= # SWIFT_PASSWORD= +# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid +# issues with token rate-limiting during high load. # SWIFT_AUTH_URL= # SWIFT_CONTAINER= # SWIFT_OBJECT_URL= +# SWIFT_REGION= +# Defaults to 'default' +# SWIFT_DOMAIN_NAME= +# Defaults to 60 seconds. Set to 0 to disable +# SWIFT_CACHE_TTL= # Optional alias for S3 if you want to use Cloudfront or Cloudflare in front # S3_CLOUDFRONT_HOST= diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index e9f455251b..f27aae7ec9 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -47,9 +47,12 @@ elsif ENV['SWIFT_ENABLED'] == 'true' fog_credentials: { provider: 'OpenStack', openstack_username: ENV.fetch('SWIFT_USERNAME'), - openstack_tenant: ENV.fetch('SWIFT_TENANT'), + openstack_project_name: ENV.fetch('SWIFT_TENANT'), openstack_api_key: ENV.fetch('SWIFT_PASSWORD'), openstack_auth_url: ENV.fetch('SWIFT_AUTH_URL'), + openstack_domain_name: ENV['SWIFT_DOMAIN_NAME'] || 'default', + openstack_region: ENV['SWIFT_REGION'], + openstack_cache_ttl: ENV['SWIFT_CACHE_TTL'] || 60, }, fog_directory: ENV.fetch('SWIFT_CONTAINER'), fog_host: ENV.fetch('SWIFT_OBJECT_URL'), From b25c112d31b40eff5dc4f153034563fe4aa42efd Mon Sep 17 00:00:00 2001 From: unarist Date: Mon, 11 Sep 2017 23:19:54 +0900 Subject: [PATCH 05/81] Reset preview image if avatar/header image selection was cancelled (#4893) --- app/javascript/packs/public.js | 4 ++-- app/views/settings/profiles/show.html.haml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index 1a274c4cbd..ca6f9eac6e 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -124,7 +124,7 @@ function main() { delegate(document, '#account_avatar', 'change', ({ target }) => { const avatar = document.querySelector('.card.compact .avatar img'); const [file] = target.files || []; - const url = URL.createObjectURL(file); + const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc; avatar.src = url; }); @@ -132,7 +132,7 @@ function main() { delegate(document, '#account_header', 'change', ({ target }) => { const header = document.querySelector('.card.compact'); const [file] = target.files || []; - const url = URL.createObjectURL(file); + const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc; header.style.backgroundImage = `url(${url})`; }); diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml index e0fb613f83..7a06cd0146 100644 --- a/app/views/settings/profiles/show.html.haml +++ b/app/views/settings/profiles/show.html.haml @@ -8,8 +8,8 @@ = f.input :display_name, placeholder: t('simple_form.labels.defaults.display_name'), hint: t('simple_form.hints.defaults.display_name', count: 30 - @account.display_name.size).html_safe = f.input :note, placeholder: t('simple_form.labels.defaults.note'), hint: t('simple_form.hints.defaults.note', count: 160 - @account.note.size).html_safe - .card.compact{ style: "background-image: url(#{@account.header.url(:original)})" } - .avatar= image_tag @account.avatar.url(:original) + .card.compact{ style: "background-image: url(#{@account.header.url(:original)})", data: { original_src: @account.header.url(:original) } } + .avatar= image_tag @account.avatar.url(:original), data: { original_src: @account.avatar.url(:original) } .fields-group = f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.avatar') From 05b12e52acc07c24178b6e56de3ecf25a9368b5b Mon Sep 17 00:00:00 2001 From: Grey Baker Date: Mon, 11 Sep 2017 22:03:14 +0100 Subject: [PATCH 06/81] Bump rails from 5.1.3 to 5.1.4 (#4875) Bumps [rails](https://github.com/rails/rails) from 5.1.3 to 5.1.4. - [Commits](https://github.com/rails/rails/compare/v5.1.3...v5.1.4) --- Gemfile | 2 +- Gemfile.lock | 74 ++++++++++++++++++++++++++-------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/Gemfile b/Gemfile index 637bf53eeb..a4799a1bfb 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ ruby '>= 2.3.0', '< 2.5.0' gem 'pkg-config', '~> 1.2' gem 'puma', '~> 3.8' -gem 'rails', '~> 5.1.0' +gem 'rails', '~> 5.1.4' gem 'uglifier', '~> 3.2' gem 'hamlit-rails', '~> 0.2' diff --git a/Gemfile.lock b/Gemfile.lock index ddb97dd940..b5a0df3eaa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,25 +1,25 @@ GEM remote: https://rubygems.org/ specs: - actioncable (5.1.3) - actionpack (= 5.1.3) + actioncable (5.1.4) + actionpack (= 5.1.4) nio4r (~> 2.0) websocket-driver (~> 0.6.1) - actionmailer (5.1.3) - actionpack (= 5.1.3) - actionview (= 5.1.3) - activejob (= 5.1.3) + actionmailer (5.1.4) + actionpack (= 5.1.4) + actionview (= 5.1.4) + activejob (= 5.1.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.1.3) - actionview (= 5.1.3) - activesupport (= 5.1.3) + actionpack (5.1.4) + actionview (= 5.1.4) + activesupport (= 5.1.4) rack (~> 2.0) - rack-test (~> 0.6.3) + rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.1.3) - activesupport (= 5.1.3) + actionview (5.1.4) + activesupport (= 5.1.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -30,16 +30,16 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.2) active_record_query_trace (1.5.4) - activejob (5.1.3) - activesupport (= 5.1.3) + activejob (5.1.4) + activesupport (= 5.1.4) globalid (>= 0.3.6) - activemodel (5.1.3) - activesupport (= 5.1.3) - activerecord (5.1.3) - activemodel (= 5.1.3) - activesupport (= 5.1.3) + activemodel (5.1.4) + activesupport (= 5.1.4) + activerecord (5.1.4) + activemodel (= 5.1.4) + activesupport (= 5.1.4) arel (~> 8.0) - activesupport (5.1.3) + activesupport (5.1.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (~> 0.7) minitest (~> 5.1) @@ -334,20 +334,20 @@ GEM rack-cors (0.4.1) rack-protection (2.0.0) rack - rack-test (0.6.3) - rack (>= 1.0) + rack-test (0.7.0) + rack (>= 1.0, < 3) rack-timeout (0.4.2) - rails (5.1.3) - actioncable (= 5.1.3) - actionmailer (= 5.1.3) - actionpack (= 5.1.3) - actionview (= 5.1.3) - activejob (= 5.1.3) - activemodel (= 5.1.3) - activerecord (= 5.1.3) - activesupport (= 5.1.3) + rails (5.1.4) + actioncable (= 5.1.4) + actionmailer (= 5.1.4) + actionpack (= 5.1.4) + actionview (= 5.1.4) + activejob (= 5.1.4) + activemodel (= 5.1.4) + activerecord (= 5.1.4) + activesupport (= 5.1.4) bundler (>= 1.3.0) - railties (= 5.1.3) + railties (= 5.1.4) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.2) actionpack (~> 5.x, >= 5.0.1) @@ -363,9 +363,9 @@ GEM railties (~> 5.0) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (5.1.3) - actionpack (= 5.1.3) - activesupport (= 5.1.3) + railties (5.1.4) + actionpack (= 5.1.4) + activesupport (= 5.1.4) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) @@ -472,7 +472,7 @@ GEM sprockets (3.7.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.0) + sprockets-rails (3.2.1) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) @@ -588,7 +588,7 @@ DEPENDENCIES rack-attack (~> 5.0) rack-cors (~> 0.4) rack-timeout (~> 0.4) - rails (~> 5.1.0) + rails (~> 5.1.4) rails-controller-testing (~> 1.0) rails-i18n (~> 5.0) rails-settings-cached (~> 0.6) From 4b1d1a698db1ccaac77a0649e6c52c5c6d7c91f0 Mon Sep 17 00:00:00 2001 From: Grey Baker Date: Mon, 11 Sep 2017 22:43:19 +0100 Subject: [PATCH 07/81] Bump puma from 3.9.1 to 3.10.0 (#4879) Bumps [puma](https://github.com/puma/puma) from 3.9.1 to 3.10.0. - [Release notes](https://github.com/puma/puma/releases/tag/v3.10.0) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v3.9.1...v3.10.0) --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a4799a1bfb..051f09f782 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ ruby '>= 2.3.0', '< 2.5.0' gem 'pkg-config', '~> 1.2' -gem 'puma', '~> 3.8' +gem 'puma', '~> 3.10' gem 'rails', '~> 5.1.4' gem 'uglifier', '~> 3.2' diff --git a/Gemfile.lock b/Gemfile.lock index b5a0df3eaa..31893dc3f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -323,7 +323,7 @@ GEM pry-rails (0.3.6) pry (>= 0.10.4) public_suffix (3.0.0) - puma (3.9.1) + puma (3.10.0) pundit (1.1.0) activesupport (>= 3.0.0) rabl (0.13.1) @@ -582,7 +582,7 @@ DEPENDENCIES pghero (~> 1.7) pkg-config (~> 1.2) pry-rails (~> 0.3) - puma (~> 3.8) + puma (~> 3.10) pundit (~> 1.1) rabl (~> 0.13) rack-attack (~> 5.0) From e054961051c758c7b247beb164e9fd91d136a801 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 11 Sep 2017 23:50:37 +0200 Subject: [PATCH 08/81] Fix error when following locked accounts (#4896) --- app/controllers/api/v1/accounts_controller.rb | 15 ++----- .../api/v1/accounts_controller_spec.rb | 43 ++++++++++++++----- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 656cacd8ab..b3fc4e5612 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -15,16 +15,9 @@ class Api::V1::AccountsController < Api::BaseController def follow FollowService.new.call(current_user.account, @account.acct) - unless @account.locked? - relationships = AccountRelationshipsPresenter.new( - [@account.id], - current_user.account_id, - following_map: { @account.id => true }, - requested_map: { @account.id => false } - ) - end + options = @account.locked? ? {} : { following_map: { @account.id => true }, requested_map: { @account.id => false } } - render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships + render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships(options) end def block @@ -58,7 +51,7 @@ class Api::V1::AccountsController < Api::BaseController @account = Account.find(params[:id]) end - def relationships - AccountRelationshipsPresenter.new([@account.id], current_user.account_id) + def relationships(options = {}) + AccountRelationshipsPresenter.new([@account.id], current_user.account_id, options) end end diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb index 05df2f8444..c770649ecd 100644 --- a/spec/controllers/api/v1/accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts_controller_spec.rb @@ -18,25 +18,48 @@ RSpec.describe Api::V1::AccountsController, type: :controller do end describe 'POST #follow' do - let(:other_account) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob')).account } + let(:other_account) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', locked: locked)).account } before do post :follow, params: { id: other_account.id } end - it 'returns http success' do - expect(response).to have_http_status(:success) - end + context 'with unlocked account' do + let(:locked) { false } + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'returns JSON with following=true and requested=false' do + json = body_as_json - it 'returns JSON with following=true and requested=false' do - json = body_as_json + expect(json[:following]).to be true + expect(json[:requested]).to be false + end - expect(json[:following]).to be true - expect(json[:requested]).to be false + it 'creates a following relation between user and target user' do + expect(user.account.following?(other_account)).to be true + end end - it 'creates a following relation between user and target user' do - expect(user.account.following?(other_account)).to be true + context 'with locked account' do + let(:locked) { true } + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'returns JSON with following=false and requested=true' do + json = body_as_json + + expect(json[:following]).to be false + expect(json[:requested]).to be true + end + + it 'creates a follow request relation between user and target user' do + expect(user.account.requested?(other_account)).to be true + end end end From 703fd425ffeaea26f4f2cc870fdd6a52dc414a00 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 12 Sep 2017 00:16:03 +0200 Subject: [PATCH 09/81] Fix count numbers from ActivityPub not being saved (#4899) They are marked as read-only by Rails, but we know what we are doing, so we are un-marking them as such. The mastodon:maintenance:update_counter_caches task is not really supposed to be run anymore (it was a one-time thing during an upgrade) however, just in case, I have modified it to not touch ActivityPub accounts. Also, no point writing to logger from these rake tasks, since they are not to be run from cron. Better to give stdout feedback. --- app/models/account.rb | 4 ++++ lib/tasks/mastodon.rake | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/models/account.rb b/app/models/account.rb index 5293345594..864b3cb6e6 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -172,6 +172,10 @@ class Account < ApplicationRecord end class << self + def readonly_attributes + super - %w(statuses_count following_count followers_count) + end + def domains reorder(nil).pluck('distinct accounts.domain') end diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 3c65ece4be..2aef752ca7 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -90,9 +90,9 @@ namespace :mastodon do desc 'Set unknown attachment type for remote-only attachments' task set_unknown: :environment do - Rails.logger.debug 'Setting unknown attachment type for remote-only attachments...' + puts 'Setting unknown attachment type for remote-only attachments...' MediaAttachment.where(file_file_name: nil).where.not(type: :unknown).in_batches.update_all(type: :unknown) - Rails.logger.debug 'Done!' + puts 'Done!' end desc 'Redownload avatars/headers of remote users. Optionally limit to a particular domain with DOMAIN' @@ -188,24 +188,24 @@ namespace :mastodon do namespace :maintenance do desc 'Update counter caches' task update_counter_caches: :environment do - Rails.logger.debug 'Updating counter caches for accounts...' + puts 'Updating counter caches for accounts...' - Account.unscoped.select('id').find_in_batches do |batch| + Account.unscoped.where.not(protocol: :activitypub).select('id').find_in_batches do |batch| Account.where(id: batch.map(&:id)).update_all('statuses_count = (select count(*) from statuses where account_id = accounts.id), followers_count = (select count(*) from follows where target_account_id = accounts.id), following_count = (select count(*) from follows where account_id = accounts.id)') end - Rails.logger.debug 'Updating counter caches for statuses...' + puts 'Updating counter caches for statuses...' Status.unscoped.select('id').find_in_batches do |batch| Status.where(id: batch.map(&:id)).update_all('favourites_count = (select count(*) from favourites where favourites.status_id = statuses.id), reblogs_count = (select count(*) from statuses as reblogs where reblogs.reblog_of_id = statuses.id)') end - Rails.logger.debug 'Done!' + puts 'Done!' end desc 'Generate static versions of GIF avatars/headers' task add_static_avatars: :environment do - Rails.logger.debug 'Generating static avatars/headers for GIF ones...' + puts 'Generating static avatars/headers for GIF ones...' Account.unscoped.where(avatar_content_type: 'image/gif').or(Account.unscoped.where(header_content_type: 'image/gif')).find_each do |account| begin @@ -217,7 +217,7 @@ namespace :mastodon do end end - Rails.logger.debug 'Done!' + puts 'Done!' end desc 'Ensure referencial integrity' From f221fea1768d06cc594db803c1369e6dac8183f3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 12 Sep 2017 00:16:18 +0200 Subject: [PATCH 10/81] Fix #4894 - Merge context hash into final JSON hash after key transform (#4898) --- app/lib/activitypub/adapter.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb index 6ed66a2393..3228a3f03d 100644 --- a/app/lib/activitypub/adapter.rb +++ b/app/lib/activitypub/adapter.rb @@ -28,7 +28,7 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base def serializable_hash(options = nil) options = serialization_options(options) - serialized_hash = CONTEXT.merge(ActiveModelSerializers::Adapter::Attributes.new(serializer, instance_options).serializable_hash(options)) - self.class.transform_key_casing!(serialized_hash, instance_options) + serialized_hash = ActiveModelSerializers::Adapter::Attributes.new(serializer, instance_options).serializable_hash(options) + CONTEXT.merge(self.class.transform_key_casing!(serialized_hash, instance_options)) end end From e46f2d995f0b830ccf5703e6d4b6123b4f93b344 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 12 Sep 2017 00:57:18 +0200 Subject: [PATCH 11/81] Fix nil error for old toots that don't have a conversation (#4900) --- app/serializers/activitypub/note_serializer.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index d42f542639..7d53537b50 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -73,6 +73,8 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer end def conversation + return if object.conversation.nil? + if object.conversation.uri? object.conversation.uri else From d4fd2a39e69c88120133ea4e73eb3b163a98f008 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 12 Sep 2017 05:39:38 +0200 Subject: [PATCH 12/81] Clean up and improve generated OpenGraph tags (#4901) - Return all images as og:image - Return videos as og:image (preview) and og:video - Return profile:username on profiles --- app/helpers/application_helper.rb | 4 ++++ app/serializers/oembed_serializer.rb | 2 +- app/views/accounts/_og.html.haml | 17 +++++++------- app/views/accounts/show.html.haml | 2 +- .../stream_entries/_og_description.html.haml | 4 ++-- app/views/stream_entries/_og_image.html.haml | 22 +++++++++++++++---- app/views/stream_entries/show.html.haml | 10 ++++----- .../stream_entries/show.html.haml_spec.rb | 8 +++---- 8 files changed, 44 insertions(+), 25 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 61d4442c12..6d625e7db9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -42,4 +42,8 @@ module ApplicationHelper content_tag(:i, nil, attributes.merge(class: class_names.join(' '))) end + + def opengraph(property, content) + tag(:meta, content: content, property: property) + end end diff --git a/app/serializers/oembed_serializer.rb b/app/serializers/oembed_serializer.rb index af03fd47ac..0c8350e2d2 100644 --- a/app/serializers/oembed_serializer.rb +++ b/app/serializers/oembed_serializer.rb @@ -45,7 +45,7 @@ class OEmbedSerializer < ActiveModel::Serializer height: height, } - content_tag(:iframe, nil, attributes) + content_tag(:script, nil, src: full_asset_url('embed.js'), async: true) + content_tag(:iframe, nil, attributes) + content_tag(:script, nil, src: full_asset_url('embed.js', skip_pipeline: true), async: true) end def width diff --git a/app/views/accounts/_og.html.haml b/app/views/accounts/_og.html.haml index 3ad39f391d..1d16be590a 100644 --- a/app/views/accounts/_og.html.haml +++ b/app/views/accounts/_og.html.haml @@ -1,8 +1,9 @@ -%meta{ property: 'og:url', content: url }/ -%meta{ property: 'og:site_name', content: site_title }/ -%meta{ property: 'og:title', content: [yield(:page_title).strip.presence, site_title].compact.join(' - ') }/ -%meta{ property: 'og:description', content: account.note }/ -%meta{ property: 'og:image', content: full_asset_url(account.avatar.url(:original)) }/ -%meta{ property: 'og:image:width', content: '120' }/ -%meta{ property: 'og:image:height', content: '120' }/ -%meta{ property: 'twitter:card', content: 'summary' }/ += opengraph 'og:url', url += opengraph 'og:site_name', site_title += opengraph 'og:title', [yield(:page_title).strip.presence, site_title].compact.join(' - ') += opengraph 'og:description', account.note += opengraph 'og:image', full_asset_url(account.avatar.url(:original)) += opengraph 'og:image:width', '120' += opengraph 'og:image:height', '120' += opengraph 'twitter:card', 'summary' += opengraph 'profile:username', account.local_username_and_domain diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml index e0f9f869ac..6c90b2c04f 100644 --- a/app/views/accounts/show.html.haml +++ b/app/views/accounts/show.html.haml @@ -9,7 +9,7 @@ %link{ rel: 'alternate', type: 'application/atom+xml', href: account_url(@account, format: 'atom') }/ %link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@account) }/ - %meta{ property: 'og:type', content: 'profile' }/ + = opengraph 'og:type', 'profile' = render 'og', account: @account, url: short_account_url(@account, only_path: false) - if show_landing_strip? diff --git a/app/views/stream_entries/_og_description.html.haml b/app/views/stream_entries/_og_description.html.haml index 5762aca041..d2fa99e63e 100644 --- a/app/views/stream_entries/_og_description.html.haml +++ b/app/views/stream_entries/_og_description.html.haml @@ -1,4 +1,4 @@ - if activity.is_a?(Status) && activity.spoiler_text? - %meta{ property: 'og:description', content: activity.spoiler_text }/ + = opengraph 'og:description', activity.spoiler_text - else - %meta{ property: 'og:description', content: activity.content }/ + = opengraph 'og:description', activity.content diff --git a/app/views/stream_entries/_og_image.html.haml b/app/views/stream_entries/_og_image.html.haml index f725209d82..66d9619b25 100644 --- a/app/views/stream_entries/_og_image.html.haml +++ b/app/views/stream_entries/_og_image.html.haml @@ -1,6 +1,20 @@ - if activity.is_a?(Status) && activity.non_sensitive_with_media? - %meta{ property: 'og:image', content: full_asset_url(activity.media_attachments.first.file.url(:small)) }/ + - activity.media_attachments.each do |media| + - if media.image? + = opengraph 'og:image', full_asset_url(media.file.url(:original)) + = opengraph 'og:image:type', media.file_content_type + = opengraph 'og:image:width', media.file.meta['original']['width'] + = opengraph 'og:image:height', media.file.meta['original']['height'] + - elsif media.video? + = opengraph 'og:image', full_asset_url(media.file.url(:small)) + = opengraph 'og:image:type', 'image/png' + = opengraph 'og:image:width', media.file.meta['small']['width'] + = opengraph 'og:image:height', media.file.meta['small']['height'] + = opengraph 'og:video', full_asset_url(media.file.url(:original)) + = opengraph 'og:video:type', media.file_content_type + = opengraph 'og:video:width', media.file.meta['small']['width'] + = opengraph 'og:video:height', media.file.meta['small']['height'] - else - %meta{ property: 'og:image', content: full_asset_url(account.avatar.url(:original)) }/ - %meta{ property: 'og:image:width', content: '120' }/ - %meta{ property: 'og:image:height', content: '120' }/ + = opengraph 'og:image', full_asset_url(account.avatar.url(:original)) + = opengraph 'og:image:width', '120' + = opengraph 'og:image:height','120' diff --git a/app/views/stream_entries/show.html.haml b/app/views/stream_entries/show.html.haml index 5ef72f8041..1bb8a32b25 100644 --- a/app/views/stream_entries/show.html.haml +++ b/app/views/stream_entries/show.html.haml @@ -6,15 +6,15 @@ %link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: account_stream_entry_url(@account, @stream_entry), format: 'json') }/ %link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@stream_entry.activity) }/ - %meta{ property: 'og:site_name', content: site_title }/ - %meta{ property: 'og:type', content: 'article' }/ - %meta{ property: 'og:title', content: "#{@account.username} on #{site_hostname}" }/ - %meta{ property: 'og:url', content: account_stream_entry_url(@account, @stream_entry) }/ + = opengraph 'og:site_name', site_title + = opengraph 'og:type', 'article' + = opengraph 'og:title', "#{@account.username} on #{site_hostname}" + = opengraph 'og:url', account_stream_entry_url(@account, @stream_entry) = render 'stream_entries/og_description', activity: @stream_entry.activity = render 'stream_entries/og_image', activity: @stream_entry.activity, account: @account - %meta{ property: 'twitter:card', content: 'summary' }/ + = opengraph 'twitter:card', 'summary_large_image' - if show_landing_strip? = render partial: 'shared/landing_strip', locals: { account: @stream_entry.account } diff --git a/spec/views/stream_entries/show.html.haml_spec.rb b/spec/views/stream_entries/show.html.haml_spec.rb index 6cc3b117aa..59ea409907 100644 --- a/spec/views/stream_entries/show.html.haml_spec.rb +++ b/spec/views/stream_entries/show.html.haml_spec.rb @@ -80,9 +80,9 @@ describe 'stream_entries/show.html.haml', without_verify_partial_doubles: true d header_tags = view.content_for(:header_tags) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) end end From 94fdf7da707a65b4b37780e7a07a8f83eb18bf7c Mon Sep 17 00:00:00 2001 From: unarist Date: Wed, 13 Sep 2017 06:06:10 +0900 Subject: [PATCH 13/81] Add section for protocol specific information on the admin page (#4910) This PR adds section for protocol specific information, then always show both of OStatus and ActivityPub. Specifically, this will help admins to check PuSH subscription status and unsubscribe manually, even `protocol` has been changed. This also includes below changes: * Add `overflow: hidden` to prevent float leaking * Add missing fields for ActivityPub --- app/javascript/styles/admin.scss | 8 ++ app/views/admin/accounts/show.html.haml | 109 ++++++++++++++---------- config/locales/en.yml | 2 + 3 files changed, 75 insertions(+), 44 deletions(-) diff --git a/app/javascript/styles/admin.scss b/app/javascript/styles/admin.scss index fa7859e38f..87bc710af6 100644 --- a/app/javascript/styles/admin.scss +++ b/app/javascript/styles/admin.scss @@ -97,6 +97,14 @@ margin-bottom: 40px; } + h3 { + color: $ui-secondary-color; + font-size: 20px; + line-height: 28px; + font-weight: 400; + margin-bottom: 30px; + } + h6 { font-size: 16px; color: $ui-secondary-color; diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 89355281a3..3775b67216 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -37,29 +37,6 @@ %th= t('admin.accounts.protocol') %td= @account.protocol.humanize - - if @account.ostatus? - %tr - %th= t('admin.accounts.feed_url') - %td= link_to @account.remote_url, @account.remote_url - %tr - %th= t('admin.accounts.push_subscription_expires') - %td - - if @account.subscribed? - %time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) } - = l @account.subscription_expires_at - - else - = t('admin.accounts.not_subscribed') - %tr - %th= t('admin.accounts.salmon_url') - %td= link_to @account.salmon_url, @account.salmon_url - - elsif @account.activitypub? - %tr - %th= t('admin.accounts.inbox_url') - %td= link_to @account.inbox_url, @account.inbox_url - %tr - %th= t('admin.accounts.outbox_url') - %td= link_to @account.outbox_url, @account.outbox_url - %tr %th= t('admin.accounts.follows') %td= @account.following_count @@ -82,29 +59,73 @@ %th= t('.targeted_reports') %td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id) -%div{ style: 'float: right' } - - if @account.local? - = link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' - - if @account.user&.otp_required_for_login? - = link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' - - else - - if @account.ostatus? +%div{ style: 'overflow: hidden' } + %div{ style: 'float: right' } + - if @account.local? + = link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' + - if @account.user&.otp_required_for_login? + = link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' + - else + = link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' + + %div{ style: 'float: left' } + - if @account.silenced? + = link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button' + - else + = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button' + + - if @account.local? + - unless @account.user_confirmed? + = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' + + - if @account.suspended? + = link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button' + - else + = link_to t('admin.accounts.perform_full_suspension'), admin_account_suspension_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' + +- unless @account.local? + %hr + %h3 OStatus + + .table-wrapper + %table.table + %tbody + %tr + %th= t('admin.accounts.feed_url') + %td= link_to @account.remote_url, @account.remote_url + %tr + %th= t('admin.accounts.push_subscription_expires') + %td + - if @account.subscribed? + %time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) } + = l @account.subscription_expires_at + - else + = t('admin.accounts.not_subscribed') + %tr + %th= t('admin.accounts.salmon_url') + %td= link_to @account.salmon_url, @account.salmon_url + + %div{ style: 'overflow: hidden' } + %div{ style: 'float: right' } = link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button' - if @account.subscribed? = link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' - = link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' - -%div{ style: 'float: left' } - - if @account.silenced? - = link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button' - - else - = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button' - - if @account.local? - - unless @account.user_confirmed? - = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' + %hr + %h3 ActivityPub - - if @account.suspended? - = link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button' - - else - = link_to t('admin.accounts.perform_full_suspension'), admin_account_suspension_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' + .table-wrapper + %table.table + %tbody + %tr + %th= t('admin.accounts.inbox_url') + %td= link_to @account.inbox_url, @account.inbox_url + %tr + %th= t('admin.accounts.outbox_url') + %td= link_to @account.outbox_url, @account.outbox_url + %tr + %th= t('admin.accounts.shared_inbox_url') + %td= link_to @account.shared_inbox_url, @account.shared_inbox_url + %tr + %th= t('admin.accounts.followers_url') + %td= link_to @account.followers_url, @account.followers_url diff --git a/config/locales/en.yml b/config/locales/en.yml index 64fc556f3d..e31f883ac6 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -60,6 +60,7 @@ en: email: E-mail feed_url: Feed URL followers: Followers + followers_url: Followers URL follows: Follows inbox_url: Inbox URL ip: IP @@ -93,6 +94,7 @@ en: resubscribe: Resubscribe salmon_url: Salmon URL search: Search + shared_inbox_url: Shared Inbox URL show: created_reports: Reports created by this account report: report From 284c777b19f2ad587607b3f8d35047b89d88ac9e Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 12 Sep 2017 23:10:40 +0200 Subject: [PATCH 14/81] =?UTF-8?q?[WiP]=20Whenever=20a=20remote=20keypair?= =?UTF-8?q?=20changes,=20unfollow=20them=20and=20re-subscribe=20to=20?= =?UTF-8?q?=E2=80=A6=20(#4907)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Whenever a remote keypair changes, unfollow them and re-subscribe to them In Mastodon (it could be different for other OStatus or AP-enabled software), a keypair change is indicative of whole user (or instance) data loss. In this situation, the “new” user might be different, and almost certainly has an empty followers list. In this case, Mastodon instances will disagree on follower lists, leading to unreliable delivery and “shadow followers”, that is users believed by a remote instance to be followers, without the affected user knowing. Drawbacks of this change are: 1. If an user legitimately changes public key for some reason without losing data (not possible in Mastodon at the moment), they will have their remote followers unsubscribed/re-subscribed needlessly. 2. Depending of the number of remote followers, this may generate quite some traffic. 3. If the user change is an attempt at usurpation, the remote followers will unknowingly follow the usurper. Note that this is *not* a change of behavior, Mastodon already behaves like that, although delivery might be unreliable, and the usurper would not have known the former user's followers. * Rename ResubscribeWorker to RefollowWorker * Process followers in batches --- .../activitypub/process_account_service.rb | 2 ++ .../resolve_remote_account_service.rb | 2 ++ app/workers/refollow_worker.rb | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 app/workers/refollow_worker.rb diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index b54e447ad0..badb267206 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -17,7 +17,9 @@ class ActivityPub::ProcessAccountService < BaseService create_account if @account.nil? upgrade_account if @account.ostatus? + old_public_key = @account.public_key update_account + RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key @account rescue Oj::ParseError diff --git a/app/services/resolve_remote_account_service.rb b/app/services/resolve_remote_account_service.rb index 7031c98f5e..7536015015 100644 --- a/app/services/resolve_remote_account_service.rb +++ b/app/services/resolve_remote_account_service.rb @@ -85,8 +85,10 @@ class ResolveRemoteAccountService < BaseService def handle_ostatus create_account if @account.nil? + old_public_key = @account.public_key update_account update_account_profile if update_profile? + RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key end def update_profile? diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb new file mode 100644 index 0000000000..9c42d42712 --- /dev/null +++ b/app/workers/refollow_worker.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class RefollowWorker + include Sidekiq::Worker + + sidekiq_options queue: 'pull', retry: false + + def perform(target_account_id) + target_account = Account.find(target_account_id) + + target_account.followers.where(domain: nil).find_each do |follower| + # Locally unfollow remote account + follower.unfollow!(target_account) + + # Schedule re-follow + begin + FollowService.new.call(follower, target_account) + rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound, Mastodon::UnexpectedResponseError, HTTP::Error, OpenSSL::SSL::SSLError + next + end + end + end +end From 061e4e7e839f0aa20999ca3d40be8156ae71db1a Mon Sep 17 00:00:00 2001 From: Daigo 3 Dango Date: Tue, 12 Sep 2017 21:30:13 -1000 Subject: [PATCH 15/81] Specify libicu explicitly in Aptfile (#4920) It seems libicu-dev no longer installs libicu55 needed by charlock_holmes. --- Aptfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Aptfile b/Aptfile index 48dff1a770..5dac836079 100644 --- a/Aptfile +++ b/Aptfile @@ -1,4 +1,5 @@ ffmpeg +libicu[0-9][0-9] libicu-dev libidn11 libidn11-dev From 05c2d8ec3c22f8c5b8e4f867bd99d50f52d7b2ee Mon Sep 17 00:00:00 2001 From: abcang Date: Wed, 13 Sep 2017 17:24:33 +0900 Subject: [PATCH 16/81] Fix height cache (#4909) --- .../mastodon/actions/height_cache.js | 17 ++++++++++ app/javascript/mastodon/actions/statuses.js | 17 ---------- .../intersection_observer_article.js | 33 ++++++++++--------- .../mastodon/components/scrollable_list.js | 17 ++++++++-- ...intersection_observer_article_container.js | 17 ++++++++++ .../mastodon/containers/status_container.js | 6 +--- app/javascript/mastodon/features/ui/index.js | 4 +-- .../mastodon/reducers/height_cache.js | 23 +++++++++++++ app/javascript/mastodon/reducers/index.js | 2 ++ app/javascript/mastodon/reducers/statuses.js | 18 ---------- 10 files changed, 93 insertions(+), 61 deletions(-) create mode 100644 app/javascript/mastodon/actions/height_cache.js create mode 100644 app/javascript/mastodon/containers/intersection_observer_article_container.js create mode 100644 app/javascript/mastodon/reducers/height_cache.js diff --git a/app/javascript/mastodon/actions/height_cache.js b/app/javascript/mastodon/actions/height_cache.js new file mode 100644 index 0000000000..4c752993fe --- /dev/null +++ b/app/javascript/mastodon/actions/height_cache.js @@ -0,0 +1,17 @@ +export const HEIGHT_CACHE_SET = 'HEIGHT_CACHE_SET'; +export const HEIGHT_CACHE_CLEAR = 'HEIGHT_CACHE_CLEAR'; + +export function setHeight (key, id, height) { + return { + type: HEIGHT_CACHE_SET, + key, + id, + height, + }; +}; + +export function clearHeight () { + return { + type: HEIGHT_CACHE_CLEAR, + }; +}; diff --git a/app/javascript/mastodon/actions/statuses.js b/app/javascript/mastodon/actions/statuses.js index 0b5e72c171..2204e0b14a 100644 --- a/app/javascript/mastodon/actions/statuses.js +++ b/app/javascript/mastodon/actions/statuses.js @@ -23,9 +23,6 @@ export const STATUS_UNMUTE_REQUEST = 'STATUS_UNMUTE_REQUEST'; export const STATUS_UNMUTE_SUCCESS = 'STATUS_UNMUTE_SUCCESS'; export const STATUS_UNMUTE_FAIL = 'STATUS_UNMUTE_FAIL'; -export const STATUS_SET_HEIGHT = 'STATUS_SET_HEIGHT'; -export const STATUSES_CLEAR_HEIGHT = 'STATUSES_CLEAR_HEIGHT'; - export function fetchStatusRequest(id, skipLoading) { return { type: STATUS_FETCH_REQUEST, @@ -218,17 +215,3 @@ export function unmuteStatusFail(id, error) { error, }; }; - -export function setStatusHeight (id, height) { - return { - type: STATUS_SET_HEIGHT, - id, - height, - }; -}; - -export function clearStatusesHeight () { - return { - type: STATUSES_CLEAR_HEIGHT, - }; -}; diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.js index 3477678188..bb83a4da09 100644 --- a/app/javascript/mastodon/components/intersection_observer_article.js +++ b/app/javascript/mastodon/components/intersection_observer_article.js @@ -7,10 +7,13 @@ import getRectFromEntry from '../features/ui/util/get_rect_from_entry'; export default class IntersectionObserverArticle extends ImmutablePureComponent { static propTypes = { - intersectionObserverWrapper: PropTypes.object, + intersectionObserverWrapper: PropTypes.object.isRequired, id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), index: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), listLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + saveHeightKey: PropTypes.string, + cachedHeight: PropTypes.number, + onHeightChange: PropTypes.func, children: PropTypes.node, }; @@ -34,13 +37,10 @@ export default class IntersectionObserverArticle extends ImmutablePureComponent } componentDidMount () { - if (!this.props.intersectionObserverWrapper) { - // TODO: enable IntersectionObserver optimization for notification statuses. - // These are managed in notifications/index.js rather than status_list.js - return; - } - this.props.intersectionObserverWrapper.observe( - this.props.id, + const { intersectionObserverWrapper, id } = this.props; + + intersectionObserverWrapper.observe( + id, this.node, this.handleIntersection ); @@ -49,20 +49,21 @@ export default class IntersectionObserverArticle extends ImmutablePureComponent } componentWillUnmount () { - if (this.props.intersectionObserverWrapper) { - this.props.intersectionObserverWrapper.unobserve(this.props.id, this.node); - } + const { intersectionObserverWrapper, id } = this.props; + intersectionObserverWrapper.unobserve(id, this.node); this.componentMounted = false; } handleIntersection = (entry) => { + const { onHeightChange, saveHeightKey, id } = this.props; + if (this.node && this.node.children.length !== 0) { // save the height of the fully-rendered element this.height = getRectFromEntry(entry).height; - if (this.props.onHeightChange) { - this.props.onHeightChange(this.props.status, this.height); + if (onHeightChange && saveHeightKey) { + onHeightChange(saveHeightKey, id, this.height); } } @@ -94,16 +95,16 @@ export default class IntersectionObserverArticle extends ImmutablePureComponent } render () { - const { children, id, index, listLength } = this.props; + const { children, id, index, listLength, cachedHeight } = this.props; const { isIntersecting, isHidden } = this.state; - if (!isIntersecting && isHidden) { + if (!isIntersecting && (isHidden || cachedHeight)) { return (
diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 723dd322b0..3d78b3ffa8 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -1,7 +1,7 @@ import React, { PureComponent } from 'react'; import { ScrollContainer } from 'react-router-scroll'; import PropTypes from 'prop-types'; -import IntersectionObserverArticle from './intersection_observer_article'; +import IntersectionObserverArticleContainer from '../containers/intersection_observer_article_container'; import LoadMore from './load_more'; import IntersectionObserverWrapper from '../features/ui/util/intersection_observer_wrapper'; import { throttle } from 'lodash'; @@ -9,6 +9,10 @@ import { List as ImmutableList } from 'immutable'; export default class ScrollableList extends PureComponent { + static contextTypes = { + router: PropTypes.object, + }; + static propTypes = { scrollKey: PropTypes.string.isRequired, onScrollToBottom: PropTypes.func, @@ -173,9 +177,16 @@ export default class ScrollableList extends PureComponent { {prepend} {React.Children.map(this.props.children, (child, index) => ( - + {child} - + ))} {loadMore} diff --git a/app/javascript/mastodon/containers/intersection_observer_article_container.js b/app/javascript/mastodon/containers/intersection_observer_article_container.js new file mode 100644 index 0000000000..b6f162199a --- /dev/null +++ b/app/javascript/mastodon/containers/intersection_observer_article_container.js @@ -0,0 +1,17 @@ +import { connect } from 'react-redux'; +import IntersectionObserverArticle from '../components/intersection_observer_article'; +import { setHeight } from '../actions/height_cache'; + +const makeMapStateToProps = (state, props) => ({ + cachedHeight: state.getIn(['height_cache', props.saveHeightKey, props.id]), +}); + +const mapDispatchToProps = (dispatch) => ({ + + onHeightChange (key, id, height) { + dispatch(setHeight(key, id, height)); + }, + +}); + +export default connect(makeMapStateToProps, mapDispatchToProps)(IntersectionObserverArticle); diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index a727a87d19..c61b7d00d6 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -18,7 +18,7 @@ import { blockAccount, muteAccount, } from '../actions/accounts'; -import { muteStatus, unmuteStatus, deleteStatus, setStatusHeight } from '../actions/statuses'; +import { muteStatus, unmuteStatus, deleteStatus } from '../actions/statuses'; import { initReport } from '../actions/reports'; import { openModal } from '../actions/modal'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; @@ -138,10 +138,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } }, - onHeightChange (status, height) { - dispatch(setStatusHeight(status.get('id'), height)); - }, - }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status)); diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 41ce0f8b54..30a52a4482 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -11,7 +11,7 @@ import { debounce } from 'lodash'; import { uploadCompose } from '../../actions/compose'; import { refreshHomeTimeline } from '../../actions/timelines'; import { refreshNotifications } from '../../actions/notifications'; -import { clearStatusesHeight } from '../../actions/statuses'; +import { clearHeight } from '../../actions/height_cache'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; import UploadArea from './components/upload_area'; import ColumnsAreaContainer from './containers/columns_area_container'; @@ -68,7 +68,7 @@ export default class UI extends React.PureComponent { handleResize = debounce(() => { // The cached heights are no longer accurate, invalidate - this.props.dispatch(clearStatusesHeight()); + this.props.dispatch(clearHeight()); this.setState({ width: window.innerWidth }); }, 500, { diff --git a/app/javascript/mastodon/reducers/height_cache.js b/app/javascript/mastodon/reducers/height_cache.js new file mode 100644 index 0000000000..2f5716fae9 --- /dev/null +++ b/app/javascript/mastodon/reducers/height_cache.js @@ -0,0 +1,23 @@ +import { Map as ImmutableMap } from 'immutable'; +import { HEIGHT_CACHE_SET, HEIGHT_CACHE_CLEAR } from '../actions/height_cache'; + +const initialState = ImmutableMap(); + +const setHeight = (state, key, id, height) => { + return state.update(key, ImmutableMap(), map => map.set(id, height)); +}; + +const clearHeights = () => { + return ImmutableMap(); +}; + +export default function statuses(state = initialState, action) { + switch(action.type) { + case HEIGHT_CACHE_SET: + return setHeight(state, action.key, action.id, action.height); + case HEIGHT_CACHE_CLEAR: + return clearHeights(); + default: + return state; + } +}; diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js index 3aaf259c2a..0a8c3ce6c4 100644 --- a/app/javascript/mastodon/reducers/index.js +++ b/app/javascript/mastodon/reducers/index.js @@ -19,6 +19,7 @@ import compose from './compose'; import search from './search'; import media_attachments from './media_attachments'; import notifications from './notifications'; +import height_cache from './height_cache'; const reducers = { timelines, @@ -41,6 +42,7 @@ const reducers = { search, media_attachments, notifications, + height_cache, }; export default combineReducers(reducers); diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index eec2a5f165..7f906bef61 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -15,8 +15,6 @@ import { CONTEXT_FETCH_SUCCESS, STATUS_MUTE_SUCCESS, STATUS_UNMUTE_SUCCESS, - STATUS_SET_HEIGHT, - STATUSES_CLEAR_HEIGHT, } from '../actions/statuses'; import { TIMELINE_REFRESH_SUCCESS, @@ -95,18 +93,6 @@ const filterStatuses = (state, relationship) => { return state; }; -const setHeight = (state, id, height) => { - return state.update(id, ImmutableMap(), map => map.set('height', height)); -}; - -const clearHeights = (state) => { - state.forEach(status => { - state = state.deleteIn([status.get('id'), 'height']); - }); - - return state; -}; - const initialState = ImmutableMap(); export default function statuses(state = initialState, action) { @@ -148,10 +134,6 @@ export default function statuses(state = initialState, action) { return deleteStatus(state, action.id, action.references); case ACCOUNT_BLOCK_SUCCESS: return filterStatuses(state, action.relationship); - case STATUS_SET_HEIGHT: - return setHeight(state, action.id, action.height); - case STATUSES_CLEAR_HEIGHT: - return clearHeights(state); default: return state; } From a47a5ab5cd31350b772cf0abe1462b4b226292c2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 13 Sep 2017 11:04:32 +0200 Subject: [PATCH 17/81] Fix #4918 - Limit pinned toots to 5 (#4923) --- app/validators/status_pin_validator.rb | 1 + config/locales/en.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/validators/status_pin_validator.rb b/app/validators/status_pin_validator.rb index f557df6af6..9760e1138c 100644 --- a/app/validators/status_pin_validator.rb +++ b/app/validators/status_pin_validator.rb @@ -5,5 +5,6 @@ class StatusPinValidator < ActiveModel::Validator pin.errors.add(:status, I18n.t('statuses.pin_errors.reblog')) if pin.status.reblog? pin.errors.add(:status, I18n.t('statuses.pin_errors.ownership')) if pin.account_id != pin.status.account_id pin.errors.add(:status, I18n.t('statuses.pin_errors.private')) unless %w(public unlisted).include?(pin.status.visibility) + pin.errors.add(:status, I18n.t('statuses.pin_errors.limit')) if pin.account.status_pins.count > 4 end end diff --git a/config/locales/en.yml b/config/locales/en.yml index e31f883ac6..0cd57a64f8 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -448,6 +448,7 @@ en: open_in_web: Open in web over_character_limit: character limit of %{max} exceeded pin_errors: + limit: Too many toots pinned ownership: Someone else's toot cannot be pinned private: Non-public toot cannot be pinned reblog: A boost cannot be pinned From 34f7c3de2531bd5989f53d694023aa7d91ccaaae Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 13 Sep 2017 11:05:02 +0200 Subject: [PATCH 18/81] Fix #4917 - Add missing suspend checks (#4921) --- app/services/activitypub/fetch_remote_status_service.rb | 2 ++ app/services/activitypub/process_collection_service.rb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index 68ca58d629..a95931afe0 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -17,6 +17,8 @@ class ActivityPub::FetchRemoteStatusService < BaseService actor = ActivityPub::TagManager.instance.uri_to_resource(actor_id, Account) actor = ActivityPub::FetchRemoteAccountService.new.call(actor_id) if actor.nil? + return if actor.suspended? + ActivityPub::Activity.factory(activity, actor).perform end diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb index bc04c50ba1..0c6736a3fd 100644 --- a/app/services/activitypub/process_collection_service.rb +++ b/app/services/activitypub/process_collection_service.rb @@ -7,9 +7,9 @@ class ActivityPub::ProcessCollectionService < BaseService @account = account @json = Oj.load(body, mode: :strict) - return if @account.suspended? || !supported_context? - + return unless supported_context? return if different_actor? && verify_account!.nil? + return if @account.suspended? case @json['type'] when 'Collection', 'CollectionPage' From 405b24ca30dd4ee2a4f644cb00102a9b915e6e24 Mon Sep 17 00:00:00 2001 From: nullkal Date: Wed, 13 Sep 2017 18:34:07 +0900 Subject: [PATCH 19/81] Make instance names in into links to user list in the instance (#4924) --- app/views/admin/instances/_instance.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/instances/_instance.html.haml b/app/views/admin/instances/_instance.html.haml index 435cd8f642..6efbbbe60a 100644 --- a/app/views/admin/instances/_instance.html.haml +++ b/app/views/admin/instances/_instance.html.haml @@ -1,6 +1,6 @@ %tr %td.domain - = instance.domain + = link_to instance.domain, admin_accounts_path(by_domain: instance.domain) %td.count = instance.accounts_count %td From 7f432a97a03e5568edbba0194500d0b33ad8acfa Mon Sep 17 00:00:00 2001 From: nullkal Date: Wed, 13 Sep 2017 19:30:07 +0900 Subject: [PATCH 20/81] Add instance search feature (#4925) --- app/controllers/admin/instances_controller.rb | 12 +++++++- app/models/account.rb | 1 + app/models/instance_filter.rb | 28 +++++++++++++++++++ app/views/admin/instances/index.html.haml | 10 +++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 app/models/instance_filter.rb diff --git a/app/controllers/admin/instances_controller.rb b/app/controllers/admin/instances_controller.rb index 3296e08db8..22f02e5d08 100644 --- a/app/controllers/admin/instances_controller.rb +++ b/app/controllers/admin/instances_controller.rb @@ -14,8 +14,12 @@ module Admin private + def filtered_instances + InstanceFilter.new(filter_params).results + end + def paginated_instances - Account.remote.by_domain_accounts.page(params[:page]) + filtered_instances.page(params[:page]) end helper_method :paginated_instances @@ -27,5 +31,11 @@ module Admin def subscribeable_accounts Account.with_followers.remote.where(domain: params[:by_domain]) end + + def filter_params + params.permit( + :domain_name + ) + end end end diff --git a/app/models/account.rb b/app/models/account.rb index 864b3cb6e6..f175c70818 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -104,6 +104,7 @@ class Account < ApplicationRecord scope :by_domain_accounts, -> { group(:domain).select(:domain, 'COUNT(*) AS accounts_count').order('accounts_count desc') } scope :matches_username, ->(value) { where(arel_table[:username].matches("#{value}%")) } scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } + scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } delegate :email, :current_sign_in_ip, diff --git a/app/models/instance_filter.rb b/app/models/instance_filter.rb new file mode 100644 index 0000000000..5073cf1faa --- /dev/null +++ b/app/models/instance_filter.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class InstanceFilter + attr_reader :params + + def initialize(params) + @params = params + end + + def results + scope = Account.remote.by_domain_accounts + params.each do |key, value| + scope.merge!(scope_for(key, value)) if value.present? + end + scope + end + + private + + def scope_for(key, value) + case key.to_s + when 'domain_name' + Account.matches_domain(value) + else + raise "Unknown filter: #{key}" + end + end +end diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml index edbd3b2173..3314ce0778 100644 --- a/app/views/admin/instances/index.html.haml +++ b/app/views/admin/instances/index.html.haml @@ -1,6 +1,16 @@ - content_for :page_title do = t('admin.instances.title') += form_tag admin_instances_url, method: 'GET', class: 'simple_form' do + .fields-group + - %i(domain_name).each do |key| + .input.string.optional + = text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}") + + .actions + %button= t('admin.instances.search') + = link_to t('admin.instances.reset'), admin_instances_path, class: 'button negative' + .table-wrapper %table.table %thead From 53a5e16c5f9a348d525d8df8ac7648f46a179fa3 Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 13 Sep 2017 14:22:16 +0200 Subject: [PATCH 21/81] Fix ActivityPub handling of replies with WEB_DOMAIN (#4895) (#4904) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix ActivityPub handling of replies when LOCAL_DOMAIN ≠ WEB_DOMAIN (#4895) For all intents and purposes, `local_url?` is used to check if an URL refers to the Web UI or the various API endpoints of the local instances. Those things reside on `WEB_DOMAIN` and not `LOCAL_DOMAIN`. * Change local_url? spec, as all URLs handled by Mastodon are based on WEB_DOMAIN --- app/lib/tag_manager.rb | 2 +- spec/lib/tag_manager_spec.rb | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb index f33a20c6f7..1d0a24e42e 100644 --- a/app/lib/tag_manager.rb +++ b/app/lib/tag_manager.rb @@ -87,7 +87,7 @@ class TagManager def local_url?(url) uri = Addressable::URI.parse(url).normalize domain = uri.host + (uri.port ? ":#{uri.port}" : '') - TagManager.instance.local_domain?(domain) + TagManager.instance.web_domain?(domain) end def uri_for(target) diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb index 1cd6e0a6fe..6c78302319 100644 --- a/spec/lib/tag_manager_spec.rb +++ b/spec/lib/tag_manager_spec.rb @@ -63,23 +63,23 @@ RSpec.describe TagManager do describe '#local_url?' do around do |example| - original_local_domain = Rails.configuration.x.local_domain + original_web_domain = Rails.configuration.x.web_domain example.run - Rails.configuration.x.local_domain = original_local_domain + Rails.configuration.x.web_domain = original_web_domain end it 'returns true if the normalized string with port is local URL' do - Rails.configuration.x.local_domain = 'domain:42' + Rails.configuration.x.web_domain = 'domain:42' expect(TagManager.instance.local_url?('https://DoMaIn:42/')).to eq true end it 'returns true if the normalized string without port is local URL' do - Rails.configuration.x.local_domain = 'domain' + Rails.configuration.x.web_domain = 'domain' expect(TagManager.instance.local_url?('https://DoMaIn/')).to eq true end it 'returns false for string with irrelevant characters' do - Rails.configuration.x.local_domain = 'domain' + Rails.configuration.x.web_domain = 'domain' expect(TagManager.instance.local_url?('https://domainn/')).to eq false end end From 5d895c39886a5a2befa7d95ca3356032244ffaf3 Mon Sep 17 00:00:00 2001 From: MitarashiDango Date: Wed, 13 Sep 2017 22:20:03 +0900 Subject: [PATCH 22/81] fix share intent. (#4926) --- app/javascript/mastodon/features/standalone/compose/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.js index 96d07fefb8..0d764575fd 100644 --- a/app/javascript/mastodon/features/standalone/compose/index.js +++ b/app/javascript/mastodon/features/standalone/compose/index.js @@ -2,6 +2,7 @@ import React from 'react'; import ComposeFormContainer from '../../compose/containers/compose_form_container'; import NotificationsContainer from '../../ui/containers/notifications_container'; import LoadingBarContainer from '../../ui/containers/loading_bar_container'; +import ModalContainer from '../../ui/containers/modal_container'; export default class Compose extends React.PureComponent { @@ -10,6 +11,7 @@ export default class Compose extends React.PureComponent {
+
); From 00b28a45b008d7f9accc3586a21ed3439dd5344f Mon Sep 17 00:00:00 2001 From: Jeroen Date: Wed, 13 Sep 2017 16:12:29 +0200 Subject: [PATCH 23/81] Updating Dutch translation (#4927) * Update doorkeeper.nl.yml * Update nl.yml * Update simple_form.nl.yml * Update nl.json * Update en.json * Update en.json * Update nl.json --- app/javascript/mastodon/locales/nl.json | 17 +++++---- config/locales/doorkeeper.nl.yml | 49 ++++++++++++++----------- config/locales/nl.yml | 19 +++++++++- config/locales/simple_form.nl.yml | 14 +++++-- 4 files changed, 66 insertions(+), 33 deletions(-) diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index d6775e1e4d..2cadc7ac2b 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -12,7 +12,7 @@ "account.mute": "Negeer @{name}", "account.posts": "Toots", "account.report": "Rapporteer @{name}", - "account.requested": "Wacht op goedkeuring", + "account.requested": "Wacht op goedkeuring. Klik om volgverzoek te annuleren.", "account.share": "Profiel van @{name} delen", "account.unblock": "Deblokkeer @{name}", "account.unblock_domain": "{domain} niet meer negeren", @@ -34,10 +34,11 @@ "column.mutes": "Genegeerde gebruikers", "column.notifications": "Meldingen", "column.public": "Globale tijdlijn", + "column.pins": "Vastgezette toots", "column_back_button.label": "terug", "column_header.hide_settings": "Instellingen verbergen", - "column_header.moveLeft_settings": "Move column to the left", - "column_header.moveRight_settings": "Move column to the right", + "column_header.moveLeft_settings": "Kolom naar links verplaatsen", + "column_header.moveRight_settings": "Kolom naar rechts verplaatsen", "column_header.pin": "Vastmaken", "column_header.show_settings": "Instellingen tonen", "column_header.unpin": "Losmaken", @@ -63,8 +64,8 @@ "confirmations.mute.message": "Weet je het zeker dat je {name} wilt negeren?", "confirmations.unfollow.confirm": "Ontvolgen", "confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?", - "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", + "embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.", + "embed.preview": "Zo komt het eruit te zien:", "emoji_button.activity": "Activiteiten", "emoji_button.flags": "Vlaggen", "emoji_button.food": "Eten en drinken", @@ -85,6 +86,7 @@ "follow_request.authorize": "Goedkeuren", "follow_request.reject": "Afkeuren", "getting_started.appsshort": "Apps", + "getting_started.donate": "Doneren", "getting_started.faq": "FAQ", "getting_started.heading": "Beginnen", "getting_started.open_source_notice": "Mastodon is open-sourcesoftware. Je kunt bijdragen of problemen melden op GitHub via {github}.", @@ -111,6 +113,7 @@ "navigation_bar.mutes": "Genegeerde gebruikers", "navigation_bar.preferences": "Instellingen", "navigation_bar.public_timeline": "Globale tijdlijn", + "navigation_bar.pins": "Vastgezette toots", "notification.favourite": "{name} markeerde jouw toot als favoriet", "notification.follow": "{name} volgt jou nu", "notification.mention": "{name} vermeldde jou", @@ -171,7 +174,7 @@ "status.mention": "Vermeld @{name}", "status.mute_conversation": "Negeer conversatie", "status.open": "Toot volledig tonen", - "status.pin": "Pin on profile", + "status.pin": "Aan profielpagina vastmaken", "status.reblog": "Boost", "status.reblogged_by": "{name} boostte", "status.reply": "Reageren", @@ -183,7 +186,7 @@ "status.show_less": "Minder tonen", "status.show_more": "Meer tonen", "status.unmute_conversation": "Conversatie niet meer negeren", - "status.unpin": "Unpin from profile", + "status.unpin": "Van profielpagina losmaken", "tabs_bar.compose": "Schrijven", "tabs_bar.federated_timeline": "Globaal", "tabs_bar.home": "Start", diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index 77cf2503b4..ae1f8bc529 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -3,9 +3,10 @@ nl: activerecord: attributes: doorkeeper/application: - name: Naam + name: Naam toepassing redirect_uri: Redirect-URI - scopes: Scopes + scopes: Toestemmingen + website: Website toepassing errors: models: doorkeeper/application: @@ -26,27 +27,31 @@ nl: confirmations: destroy: Weet je het zeker? edit: - title: Applicatie bewerken + title: Toepassing bewerken form: error: Oops! Controleer het formulier op fouten help: native_redirect_uri: Gebruik %{native_redirect_uri} voor lokale tests redirect_uri: 'Gebruik één regel per URI. ' - scopes: Scopes met spaties van elkaar scheiden. Laat leeg om de standaardscopes te gebruiken. + scopes: Toestemmingen met spaties van elkaar scheiden. Laat leeg om de standaardtoestemmingen te gebruiken. index: + application: Toepassing callback_url: Callback-URL + delete: Verwijderen name: Naam - new: Nieuwe applicatie - title: Jouw applicaties + new: Nieuwe toepassing + scopes: Toestemmingen + show: Tonen + title: Jouw toepassingen new: - title: Nieuwe applicatie + title: Nieuwe toepassing show: actions: Acties - application_id: Applicatie-ID + application_id: Client-key callback_urls: Callback-URL's - scopes: Scopes - secret: Secret - title: 'Applicatie: %{name}' + scopes: Toestemmingen + secret: Client-secret + title: 'Toepassing: %{name}' authorizations: buttons: authorize: Autoriseren @@ -54,7 +59,7 @@ nl: error: title: Er is een fout opgetreden new: - able_to: Deze applicatie zal in staat zijn om + able_to: Deze toepassing zal in staat zijn om prompt: "%{client_name} autoriseren om uw account te gebruiken?" title: Autorisatie vereist show: @@ -65,10 +70,10 @@ nl: confirmations: revoke: Weet je het zeker? index: - application: Applicatie + application: Toepassing created_at: Aangemaakt op date_format: "%d-%m-%Y %H:%M:%S" - title: Jouw geautoriseerde applicaties + title: Jouw geautoriseerde toepassingen errors: messages: access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek. @@ -92,23 +97,23 @@ nl: flash: applications: create: - notice: Applicatie aangemaakt. + notice: Toepassing aangemaakt. destroy: - notice: Applicatie verwijderd. + notice: Toepassing verwijderd. update: - notice: Applicatie bewerkt. + notice: Toepassing bewerkt. authorized_applications: destroy: - notice: Applicatie ingetrokken. + notice: Toepassing ingetrokken. layouts: admin: nav: - applications: Applicaties + applications: Toepassingen home: Home oauth2_provider: OAuth2-provider application: title: OAuth-autorisatie vereist scopes: - follow: accounts te volgen, te negeren en te blokkeren. - read: jouw accountgegevens te lezen - write: namens jou berichten te plaatsen + follow: accounts volgen, negeren en blokkeren + read: berichten lezen + write: berichten plaatsen diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 2b7a1a5115..c2b4b6da69 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -41,8 +41,11 @@ nl: people_followed_by: Mensen die %{name} volgt people_who_follow: Mensen die %{name} volgen posts: Toots + posts_with_replies: Toots met reacties remote_follow: Extern volgen reserved_username: Deze gebruikersnaam is gereserveerd + roles: + admin: Beheerder unfollow: Ontvolgen admin: accounts: @@ -56,7 +59,9 @@ nl: email: E-mail feed_url: Feed-URL followers: Volgers + followers_url: Volgers-URL follows: Volgt + inbox_url: Inbox-URL ip: IP location: all: Alles @@ -86,6 +91,7 @@ nl: resubscribe: Opnieuw abonneren salmon_url: Salmon-URL search: Zoeken + shared_inbox_url: Gedeelde inbox-URL show: created_reports: Toots door dit account gerapporteerd report: gerapporteerd @@ -160,6 +166,9 @@ nl: unresolved: Onopgelost view: Weergeven settings: + bootstrap_timeline_accounts: + desc_html: Meerdere gebruikersnamen met komma's scheiden. Alleen lokale en niet opgeschorte accounts werken. Laat leeg voor alle lokale beheerders. + title: Standaard te volgen accounts voor nieuwe gebruikers contact_information: email: Vul een openbaar gebruikt e-mailadres in username: Vul een gebruikersnaam in @@ -272,7 +281,7 @@ nl: content: Veiligheidsverificatie mislukt. Blokkeer je toevallig cookies? title: Veiligheidsverificatie mislukt '429': Te veel verbindingsaanvragen. - noscript_html: Schakel JavaScript in om de webapplicatie van Mastodon te gebruiken. Als alternatief kan je een Mastodon-app zoeken voor jouw platform. + noscript_html: Schakel JavaScript in om de webapp van Mastodon te kunnen gebruiken. Als alternatief kan je een Mastodon-app zoeken voor jouw platform. exports: blocks: Jij blokkeert csv: CSV @@ -412,6 +421,7 @@ nl: authorized_apps: Geautoriseerde apps back: Terug naar Mastodon delete: Account deletion + development: Ontwikkelaars edit_profile: Profiel bewerken export: Export followers: Geautoriseerde volgers @@ -419,9 +429,15 @@ nl: preferences: Voorkeuren settings: Instellingen two_factor_authentication: Tweestapsverificatie + your_apps: Jouw toepassingen statuses: open_in_web: In de webapp openen over_character_limit: Limiet van %{max} tekens overschreden + pin_errors: + limit: Te veel toots vastgezet + ownership: Een toot van iemand anders kan niet worden vastgezet + private: Alleen openbare toots kunnen worden vastgezet + reblog: Een boost kan niet worden vastgezet show_more: Meer tonen visibilities: private: Alleen volgers @@ -432,6 +448,7 @@ nl: unlisted_long: Aan iedereen tonen, maar niet op openbare tijdlijnen stream_entries: click_to_show: Klik om te tonen + pinned: Vastgemaakte toot reblogged: boostte sensitive_content: Gevoelige inhoud terms: diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 351d1800c1..82f6cd4262 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -7,7 +7,10 @@ nl: display_name: Maximaal 30 tekens header: PNG, GIF of JPG. Maximaal 2MB. Wordt teruggeschaald naar 700x335px locked: Vereist dat je handmatig volgers moet accepteren en stelt de privacy van toots standaard in op alleen volgers - note: Maximaal 160 tekens + note: + one: 1 teken over + 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 sessions: @@ -32,8 +35,13 @@ nl: otp_attempt: Tweestaps-aanmeldcode password: Wachtwoord setting_auto_play_gif: Speel geanimeerde GIF's automatisch af - setting_boost_modal: Vraag voor het boosten een bevestiging - setting_default_privacy: Tootprivacy + setting_boost_modal: Vraag voor het boosten van een toot een bevestiging + setting_default_privacy: Zichtbaarheid toots + setting_default_sensitive: Media altijd als gevoelig markeren + setting_delete_modal: Vraag voor het verwijderen van een toot een bevestiging + setting_noindex: Jouw toots niet door zoekmachines laten indexeren + setting_system_font_ui: Standaardlettertype van jouw systeem gebruiken + setting_unfollow_modal: Vraag voor het ontvolgen van iemand een bevestiging type: Importtype username: gebruikersnaam interactions: From 5bcb431a46b6d56d0e82721a1b9fef71f7609321 Mon Sep 17 00:00:00 2001 From: m4sk1n Date: Wed, 13 Sep 2017 20:57:33 +0200 Subject: [PATCH 24/81] i18n: Update Polish translation (#4929) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Mikołajczak --- config/locales/pl.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/locales/pl.yml b/config/locales/pl.yml index a2437efc59..da0451d564 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -60,6 +60,7 @@ pl: email: Adres e-mail feed_url: Adres kanału followers: Śledzący + followers_url: Adres śledzących follows: Śledzeni ip: Adres IP location: @@ -90,6 +91,7 @@ pl: resubscribe: Ponów subskrypcję salmon_url: Adres Salmon search: Szukaj + shared_inbox_url: Adres udostępnianej skrzynki show: created_reports: Zgłoszenia tego użytkownika report: zgłoszeń @@ -448,6 +450,7 @@ pl: open_in_web: Otwórz w przeglądarce over_character_limit: limit %{max} znaków przekroczony pin_errors: + limit: Nie możesz przypiąć więcej wpisów ownership: Nie możesz przypiąć cudzego wpisu private: Nie możesz przypiąć niepublicznego wpisu reblog: Nie możesz przypiąć podbicia wpisu From 9ff429aa6d081322ee0556b13640088a2fed9587 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 14 Sep 2017 00:04:30 +0200 Subject: [PATCH 25/81] Uploads for admin site settings (#4913) * Improve OpenGraph tags for about pages * Add thumbnail admin setting * Fix error * Fix up --- app/controllers/admin/settings_controller.rb | 14 +++++- app/javascript/images/mastodon_small.jpg | Bin 25199 -> 0 bytes app/javascript/images/preview.jpg | Bin 0 -> 292252 bytes app/models/site_upload.rb | 44 ++++++++++++++++++ app/presenters/instance_presenter.rb | 4 ++ app/serializers/rest/instance_serializer.rb | 8 +++- app/views/about/_og.html.haml | 10 ++++ app/views/about/more.html.haml | 11 +---- app/views/about/show.html.haml | 11 +---- app/views/admin/settings/edit.html.haml | 5 ++ config/locales/en.yml | 3 ++ .../20170913000752_create_site_uploads.rb | 10 ++++ db/schema.rb | 14 +++++- spec/fabricators/site_upload_fabricator.rb | 3 ++ spec/models/site_upload_spec.rb | 5 ++ spec/views/about/show.html.haml_spec.rb | 9 ++-- 16 files changed, 123 insertions(+), 28 deletions(-) delete mode 100644 app/javascript/images/mastodon_small.jpg create mode 100644 app/javascript/images/preview.jpg create mode 100644 app/models/site_upload.rb create mode 100644 app/views/about/_og.html.haml create mode 100644 db/migrate/20170913000752_create_site_uploads.rb create mode 100644 spec/fabricators/site_upload_fabricator.rb create mode 100644 spec/models/site_upload_spec.rb diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index c5e6fe4e50..a2f86b8a9e 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -14,6 +14,7 @@ module Admin open_deletion timeline_preview bootstrap_timeline_accounts + thumbnail ).freeze BOOLEAN_SETTINGS = %w( @@ -22,14 +23,23 @@ module Admin timeline_preview ).freeze + UPLOAD_SETTINGS = %w( + thumbnail + ).freeze + def edit @admin_settings = Form::AdminSettings.new end def update settings_params.each do |key, value| - setting = Setting.where(var: key).first_or_initialize(var: key) - setting.update(value: value_for_update(key, value)) + if UPLOAD_SETTINGS.include?(key) + upload = SiteUpload.where(var: key).first_or_initialize(var: key) + upload.update(file: value) + else + setting = Setting.where(var: key).first_or_initialize(var: key) + setting.update(value: value_for_update(key, value)) + end end flash[:notice] = I18n.t('generic.changes_saved_msg') diff --git a/app/javascript/images/mastodon_small.jpg b/app/javascript/images/mastodon_small.jpg deleted file mode 100644 index 9c88ce3f7bdec476d00ab5cf45820fa650e2a166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25199 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 B@7MqU diff --git a/app/javascript/images/preview.jpg b/app/javascript/images/preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec28567484445dd96612b642c4b90df996744d44 GIT binary patch literal 292252 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

!o?EnZ2{Z#AqigB4H^j?blPKlvR<7eRUrqgCe8 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 literal 0 HcmV?d00001 diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb new file mode 100644 index 0000000000..8ffdc83131 --- /dev/null +++ b/app/models/site_upload.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true +# == Schema Information +# +# Table name: site_uploads +# +# id :integer not null, primary key +# var :string default(""), not null +# file_file_name :string +# file_content_type :string +# file_file_size :integer +# file_updated_at :datetime +# meta :json +# created_at :datetime not null +# updated_at :datetime not null +# + +class SiteUpload < ApplicationRecord + has_attached_file :file + + validates_attachment_content_type :file, content_type: /\Aimage\/.*\z/ + validates :var, presence: true, uniqueness: true + + before_save :set_meta + after_commit :clear_cache + + def cache_key + "site_uploads/#{var}" + end + + private + + def set_meta + tempfile = file.queued_for_write[:original] + + return if tempfile.nil? + + geometry = Paperclip::Geometry.from_file(tempfile) + self.meta = { width: geometry.width.to_i, height: geometry.height.to_i } + end + + def clear_cache + Rails.cache.delete(cache_key) + end +end diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index 8104b75316..c9e3c31a16 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -35,4 +35,8 @@ class InstancePresenter def source_url Mastodon::Version.source_url end + + def thumbnail + @thumbnail ||= Rails.cache.fetch('site_uploads/thumbnail') { SiteUpload.find_by(var: 'thumbnail') } + end end diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index a971379094..2898011fd8 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -1,8 +1,10 @@ # frozen_string_literal: true class REST::InstanceSerializer < ActiveModel::Serializer + include RoutingHelper + attributes :uri, :title, :description, :email, - :version, :urls, :stats + :version, :urls, :stats, :thumbnail def uri Rails.configuration.x.local_domain @@ -24,6 +26,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer Mastodon::Version.to_s end + def thumbnail + full_asset_url(instance_presenter.thumbnail.file.url) if instance_presenter.thumbnail + end + def stats { user_count: instance_presenter.user_count, diff --git a/app/views/about/_og.html.haml b/app/views/about/_og.html.haml new file mode 100644 index 0000000000..dbd476915b --- /dev/null +++ b/app/views/about/_og.html.haml @@ -0,0 +1,10 @@ +- thumbnail = @instance_presenter.thumbnail += opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname) += opengraph 'og:url', about_url += opengraph 'og:type', 'website' += opengraph 'og:title', @instance_presenter.site_title += opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) += opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request)) += opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' += opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' += opengraph 'twitter:card', 'summary_large_image' diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml index 094188472e..1a4e746430 100644 --- a/app/views/about/more.html.haml +++ b/app/views/about/more.html.haml @@ -3,16 +3,7 @@ - content_for :header_tags do = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous' - - %meta{ property: 'og:site_name', content: site_title }/ - %meta{ property: 'og:url', content: about_url }/ - %meta{ property: 'og:type', content: 'website' }/ - %meta{ property: 'og:title', content: site_hostname }/ - %meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) }/ - %meta{ property: 'og:image', content: asset_pack_path('mastodon_small.jpg', protocol: :request) }/ - %meta{ property: 'og:image:width', content: '400' }/ - %meta{ property: 'og:image:height', content: '400' }/ - %meta{ property: 'twitter:card', content: 'summary' }/ + = render partial: 'og' .landing-page .header-wrapper.compact diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml index 93270fe3d6..0d311b895f 100644 --- a/app/views/about/show.html.haml +++ b/app/views/about/show.html.haml @@ -4,16 +4,7 @@ - content_for :header_tags do %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json) = javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous' - - %meta{ property: 'og:site_name', content: site_title }/ - %meta{ property: 'og:url', content: about_url }/ - %meta{ property: 'og:type', content: 'website' }/ - %meta{ property: 'og:title', content: site_hostname }/ - %meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) }/ - %meta{ property: 'og:image', content: asset_pack_path('mastodon_small.jpg', protocol: :request) }/ - %meta{ property: 'og:image:width', content: '400' }/ - %meta{ property: 'og:image:height', content: '400' }/ - %meta{ property: 'twitter:card', content: 'summary' }/ + = render partial: 'og' .landing-page .header-wrapper diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index 50d019ec42..468166035f 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -10,6 +10,11 @@ %hr/ + .fields-group + = f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: t('admin.settings.thumbnail.desc_html') + + %hr/ + .fields-group = f.input :timeline_preview, as: :boolean, wrapper: :with_label, label: t('admin.settings.timeline_preview.title'), hint: t('admin.settings.timeline_preview.desc_html') diff --git a/config/locales/en.yml b/config/locales/en.yml index 0cd57a64f8..8b5f52b024 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -195,6 +195,9 @@ en: desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags title: Custom terms of service site_title: Instance name + thumbnail: + desc_html: Used for previews via OpenGraph and API. 1200x630px recommended + title: Instance thumbnail timeline_preview: desc_html: Display public timeline on landing page title: Timeline preview diff --git a/db/migrate/20170913000752_create_site_uploads.rb b/db/migrate/20170913000752_create_site_uploads.rb new file mode 100644 index 0000000000..2246e48cdd --- /dev/null +++ b/db/migrate/20170913000752_create_site_uploads.rb @@ -0,0 +1,10 @@ +class CreateSiteUploads < ActiveRecord::Migration[5.1] + def change + create_table :site_uploads do |t| + t.string :var, default: '', null: false, index: { unique: true } + t.attachment :file + t.json :meta + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index d8af0a1f8e..f2ca2af696 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170905165803) do +ActiveRecord::Schema.define(version: 20170913000752) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -288,6 +288,18 @@ ActiveRecord::Schema.define(version: 20170905165803) do t.index ["thing_type", "thing_id", "var"], name: "index_settings_on_thing_type_and_thing_id_and_var", unique: true end + create_table "site_uploads", force: :cascade do |t| + t.string "var", default: "", null: false + t.string "file_file_name" + t.string "file_content_type" + t.integer "file_file_size" + t.datetime "file_updated_at" + t.json "meta" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["var"], name: "index_site_uploads_on_var", unique: true + end + create_table "status_pins", force: :cascade do |t| t.bigint "account_id", null: false t.bigint "status_id", null: false diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb new file mode 100644 index 0000000000..8f4e43ac9b --- /dev/null +++ b/spec/fabricators/site_upload_fabricator.rb @@ -0,0 +1,3 @@ +Fabricator(:site_upload) do + +end diff --git a/spec/models/site_upload_spec.rb b/spec/models/site_upload_spec.rb new file mode 100644 index 0000000000..8745d54b8f --- /dev/null +++ b/spec/models/site_upload_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SiteUpload, type: :model do + +end diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb index aa151dd277..724643cbcd 100644 --- a/spec/views/about/show.html.haml_spec.rb +++ b/spec/views/about/show.html.haml_spec.rb @@ -15,15 +15,16 @@ describe 'about/show.html.haml', without_verify_partial_doubles: true do version_number: '1.0', source_url: 'https://github.com/tootsuite/mastodon', open_registrations: false, + thumbnail: nil, closed_registrations_message: 'yes') assign(:instance_presenter, instance_presenter) render header_tags = view.content_for(:header_tags) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) + expect(header_tags).to match(%r{}) end end From aaac0c55560ee3532d7a8a8854d9d5d001cb5591 Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 14 Sep 2017 00:05:25 +0200 Subject: [PATCH 26/81] Fix refollowing (#4931) * Make RefollowWorker ActivityPub-only to avoid potential identifier mismatches * Don't call RefollowWorker on new accounts --- app/services/activitypub/process_account_service.rb | 4 ++-- app/services/resolve_remote_account_service.rb | 2 -- app/workers/refollow_worker.rb | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index badb267206..a45681078e 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -15,11 +15,11 @@ class ActivityPub::ProcessAccountService < BaseService @account = Account.find_by(uri: @uri) @collections = {} + old_public_key = @account&.public_key create_account if @account.nil? upgrade_account if @account.ostatus? - old_public_key = @account.public_key update_account - RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key + RefollowWorker.perform_async(@account.id) if !old_public_key.nil? && old_public_key != @account.public_key @account rescue Oj::ParseError diff --git a/app/services/resolve_remote_account_service.rb b/app/services/resolve_remote_account_service.rb index 7536015015..7031c98f5e 100644 --- a/app/services/resolve_remote_account_service.rb +++ b/app/services/resolve_remote_account_service.rb @@ -85,10 +85,8 @@ class ResolveRemoteAccountService < BaseService def handle_ostatus create_account if @account.nil? - old_public_key = @account.public_key update_account update_account_profile if update_profile? - RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key end def update_profile? diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb index 9c42d42712..66bcd27c3e 100644 --- a/app/workers/refollow_worker.rb +++ b/app/workers/refollow_worker.rb @@ -7,6 +7,7 @@ class RefollowWorker def perform(target_account_id) target_account = Account.find(target_account_id) + return unless target_account.protocol == :activitypub target_account.followers.where(domain: nil).find_each do |follower| # Locally unfollow remote account From fbec33df627bfcc5975fc13139437e576bb36f1b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 14 Sep 2017 03:39:10 +0200 Subject: [PATCH 27/81] Redesign video player (#4911) * Redesign video player * Use new video player on static public pages too * Use media gallery component on static public pages too * Pause video when hiding it * Full-screen sizing on WebKit * Add aria labels to video player buttons * Display link card on public status page * Fix fullscreen from modal sizing issue * Remove contain: strict property to fix fullscreen from columns --- app/javascript/mastodon/components/status.js | 19 +- .../mastodon/containers/card_container.js | 18 ++ .../containers/media_gallery_container.js | 34 ++ .../mastodon/containers/video_container.js | 26 ++ .../features/status/components/card.js | 10 +- .../status/components/detailed_status.js | 19 +- .../features/ui/components/video_modal.js | 22 +- .../features/ui/util/async-components.js | 4 + .../mastodon/features/video/index.js | 304 ++++++++++++++++++ app/javascript/mastodon/locales/ar.json | 11 + app/javascript/mastodon/locales/bg.json | 11 + app/javascript/mastodon/locales/ca.json | 11 + app/javascript/mastodon/locales/de.json | 11 + .../mastodon/locales/defaultMessages.json | 62 ++++ app/javascript/mastodon/locales/en.json | 13 +- app/javascript/mastodon/locales/eo.json | 11 + app/javascript/mastodon/locales/es.json | 11 + app/javascript/mastodon/locales/fa.json | 13 +- app/javascript/mastodon/locales/fi.json | 11 + app/javascript/mastodon/locales/fr.json | 13 +- app/javascript/mastodon/locales/he.json | 11 + app/javascript/mastodon/locales/hr.json | 12 +- app/javascript/mastodon/locales/hu.json | 11 + app/javascript/mastodon/locales/id.json | 11 + app/javascript/mastodon/locales/io.json | 11 + app/javascript/mastodon/locales/it.json | 11 + app/javascript/mastodon/locales/ja.json | 13 +- app/javascript/mastodon/locales/ko.json | 13 +- app/javascript/mastodon/locales/nl.json | 11 + app/javascript/mastodon/locales/no.json | 11 + app/javascript/mastodon/locales/oc.json | 13 +- app/javascript/mastodon/locales/pl.json | 9 + app/javascript/mastodon/locales/pt-BR.json | 13 +- app/javascript/mastodon/locales/pt.json | 11 + app/javascript/mastodon/locales/ru.json | 11 + app/javascript/mastodon/locales/th.json | 11 + app/javascript/mastodon/locales/tr.json | 11 + app/javascript/mastodon/locales/uk.json | 11 + app/javascript/mastodon/locales/zh-CN.json | 11 + app/javascript/mastodon/locales/zh-HK.json | 11 + app/javascript/mastodon/locales/zh-TW.json | 11 + app/javascript/packs/public.js | 30 +- app/javascript/styles/components.scss | 197 +++++++++++- app/javascript/styles/stream_entries.scss | 150 +-------- .../stream_entries/_detailed_status.html.haml | 15 +- .../stream_entries/_simple_status.html.haml | 17 +- 46 files changed, 1064 insertions(+), 217 deletions(-) create mode 100644 app/javascript/mastodon/containers/card_container.js create mode 100644 app/javascript/mastodon/containers/media_gallery_container.js create mode 100644 app/javascript/mastodon/containers/video_container.js create mode 100644 app/javascript/mastodon/features/video/index.js diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 30a0c10cb0..82359156df 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -9,7 +9,7 @@ import StatusContent from './status_content'; import StatusActionBar from './status_action_bar'; import { FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { MediaGallery, VideoPlayer } from '../features/ui/util/async-components'; +import { MediaGallery, Video } from '../features/ui/util/async-components'; // We use the component (and not the container) since we do not want // to use the progress bar to show download progress @@ -88,6 +88,10 @@ export default class Status extends ImmutablePureComponent { return

; } + handleOpenVideo = startTime => { + this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), startTime); + } + render () { let media = null; let statusAvatar; @@ -127,9 +131,18 @@ export default class Status extends ImmutablePureComponent { if (status.get('media_attachments').some(item => item.get('type') === 'unknown')) { } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') { + const video = status.getIn(['media_attachments', 0]); + media = ( - - {Component => } + + {Component => } ); } else { diff --git a/app/javascript/mastodon/containers/card_container.js b/app/javascript/mastodon/containers/card_container.js new file mode 100644 index 0000000000..11b9f88d4c --- /dev/null +++ b/app/javascript/mastodon/containers/card_container.js @@ -0,0 +1,18 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Card from '../features/status/components/card'; +import { fromJS } from 'immutable'; + +export default class CardContainer extends React.PureComponent { + + static propTypes = { + locale: PropTypes.string, + card: PropTypes.array.isRequired, + }; + + render () { + const { card, ...props } = this.props; + return ; + } + +} diff --git a/app/javascript/mastodon/containers/media_gallery_container.js b/app/javascript/mastodon/containers/media_gallery_container.js new file mode 100644 index 0000000000..812c3d4e50 --- /dev/null +++ b/app/javascript/mastodon/containers/media_gallery_container.js @@ -0,0 +1,34 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { IntlProvider, addLocaleData } from 'react-intl'; +import { getLocale } from '../locales'; +import MediaGallery from '../components/media_gallery'; +import { fromJS } from 'immutable'; + +const { localeData, messages } = getLocale(); +addLocaleData(localeData); + +export default class MediaGalleryContainer extends React.PureComponent { + + static propTypes = { + locale: PropTypes.string.isRequired, + media: PropTypes.array.isRequired, + }; + + handleOpenMedia = () => {} + + render () { + const { locale, media, ...props } = this.props; + + return ( + + + + ); + } + +} diff --git a/app/javascript/mastodon/containers/video_container.js b/app/javascript/mastodon/containers/video_container.js new file mode 100644 index 0000000000..2fd353096d --- /dev/null +++ b/app/javascript/mastodon/containers/video_container.js @@ -0,0 +1,26 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { IntlProvider, addLocaleData } from 'react-intl'; +import { getLocale } from '../locales'; +import Video from '../features/video'; + +const { localeData, messages } = getLocale(); +addLocaleData(localeData); + +export default class VideoContainer extends React.PureComponent { + + static propTypes = { + locale: PropTypes.string.isRequired, + }; + + render () { + const { locale, ...props } = this.props; + + return ( + + + ); + } + +} diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.js index 6b13e15ccd..41c4300d32 100644 --- a/app/javascript/mastodon/features/status/components/card.js +++ b/app/javascript/mastodon/features/status/components/card.js @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import punycode from 'punycode'; import classnames from 'classnames'; @@ -22,10 +23,15 @@ export default class Card extends React.PureComponent { static propTypes = { card: ImmutablePropTypes.map, + maxDescription: PropTypes.number, + }; + + static defaultProps = { + maxDescription: 50, }; renderLink () { - const { card } = this.props; + const { card, maxDescription } = this.props; let image = ''; let provider = card.get('provider_name'); @@ -52,7 +58,7 @@ export default class Card extends React.PureComponent {
{card.get('title')} -

{(card.get('description') || '').substring(0, 50)}

+

{(card.get('description') || '').substring(0, maxDescription)}

{provider}
diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 940a2699b7..b11b417805 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -5,12 +5,12 @@ import Avatar from '../../../components/avatar'; import DisplayName from '../../../components/display_name'; import StatusContent from '../../../components/status_content'; import MediaGallery from '../../../components/media_gallery'; -import VideoPlayer from '../../../components/video_player'; import AttachmentList from '../../../components/attachment_list'; import Link from 'react-router-dom/Link'; import { FormattedDate, FormattedNumber } from 'react-intl'; import CardContainer from '../containers/card_container'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import Video from '../../video'; export default class DetailedStatus extends ImmutablePureComponent { @@ -34,6 +34,10 @@ export default class DetailedStatus extends ImmutablePureComponent { e.stopPropagation(); } + handleOpenVideo = startTime => { + this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), startTime); + } + render () { const status = this.props.status.get('reblog') ? this.props.status.get('reblog') : this.props.status; @@ -44,7 +48,18 @@ export default class DetailedStatus extends ImmutablePureComponent { if (status.get('media_attachments').some(item => item.get('type') === 'unknown')) { media = ; } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') { - media = ; + const video = status.getIn(['media_attachments', 0]); + + media = ( +