diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml index 4d636601e8..bd1eb7ecda 100644 --- a/app/views/admin/accounts/index.html.haml +++ b/app/views/admin/accounts/index.html.haml @@ -1,30 +1,30 @@ - content_for :page_title do - Accounts + = t('admin.accounts.title') .filters .filter-subset - %strong Location + %strong= t('admin.accounts.location.title') %ul - %li= filter_link_to 'All', local: nil, remote: nil - %li= filter_link_to 'Local', local: '1', remote: nil - %li= filter_link_to 'Remote', remote: '1', local: nil + %li= filter_link_to t('admin.accounts.location.all'), local: nil, remote: nil + %li= filter_link_to t('admin.accounts.location.local'), local: '1', remote: nil + %li= filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil .filter-subset - %strong Moderation + %strong= t('admin.accounts.moderation.title') %ul - %li= filter_link_to 'All', silenced: nil, suspended: nil - %li= filter_link_to 'Silenced', silenced: '1' - %li= filter_link_to 'Suspended', suspended: '1' + %li= filter_link_to t('admin.accounts.moderation.all'), silenced: nil, suspended: nil + %li= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1' + %li= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1' .filter-subset - %strong Order + %strong= t('admin.accounts.order.title') %ul - %li= filter_link_to 'Alphabetic', recent: nil - %li= filter_link_to 'Most recent', recent: '1' + %li= filter_link_to t('admin.accounts.order.alphabetic'), recent: nil + %li= filter_link_to t('admin.accounts.order.most_recent'), recent: '1' %table.table %thead %tr - %th Username - %th Domain + %th= t('admin.accounts.username') + %th= t('admin.accounts.domain') %th= fa_icon 'paper-plane-o' %th %tbody @@ -36,14 +36,14 @@ = link_to account.domain, admin_accounts_path(by_domain: account.domain) %td - if account.local? - Local + = t('admin.accounts.location.local') - elsif account.subscribed? %i.fa.fa-check - else %i.fa.fa-times %td - = table_link_to 'circle', 'Web', web_path("accounts/#{account.id}") - = table_link_to 'globe', 'Public', TagManager.instance.url_for(account) - = table_link_to 'pencil', 'Edit', admin_account_path(account.id) + = table_link_to 'circle', t('admin.accounts.web'), web_path("accounts/#{account.id}") + = table_link_to 'globe', t('admin.accounts.public'), TagManager.instance.url_for(account) + = table_link_to 'pencil', t('admin.accounts.edit'), admin_account_path(account.id) = paginate @accounts diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 22901aed1e..6d2a4d1235 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -4,24 +4,24 @@ %table.table %tbody %tr - %th Username + %th= t('admin.accounts.username') %td= @account.username %tr - %th Domain + %th= t('admin.accounts.domain') %td= @account.domain %tr - %th Display name + %th= t('admin.accounts.display_name') %td= @account.display_name - if @account.local? %tr - %th E-mail + %th= t('admin.accounts.email') %td= @account.user.email %tr - %th Most recent IP + %th= t('admin.accounts.most_recent_ip') %td= @account.user.current_sign_in_ip %tr - %th Most recent activity + %th= t('admin.accounts.most_recent_activity') %td - if @account.user.current_sign_in_at = l @account.user.current_sign_in_at @@ -29,44 +29,44 @@ Never - else %tr - %th Profile URL + %th= t('admin.accounts.profile_url') %td= link_to @account.url %tr - %th Feed URL + %th= t('admin.accounts.feed_url') %td= link_to @account.remote_url %tr - %th PuSH subscription expires + %th= t('admin.accounts.push_subscription_expires') %td - if @account.subscribed? = l @account.subscription_expires_at - else - Not subscribed + = t('admin.accounts.not_subscribed') %tr - %th Salmon URL + %th= t('admin.accounts.salmon_url') %td= link_to @account.salmon_url %tr - %th Follows + %th= t('admin.accounts.follows') %td= @account.following_count %tr - %th Followers + %th= t('admin.accounts.followers') %td= @account.followers_count %tr - %th Statuses + %th= t('admin.accounts.statuses') %td= @account.statuses_count %tr - %th Media attachments + %th= t('admin.accounts.media_attachments') %td = @account.media_attachments.count = surround '(', ')' do = number_to_human_size @account.media_attachments.sum('file_file_size') - if @account.silenced? - = link_to 'Undo silence', admin_account_silence_path(@account.id), method: :delete, class: 'button' + = link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button' - else - = link_to 'Silence', admin_account_silence_path(@account.id), method: :post, class: 'button' + = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button' - if @account.suspended? - = link_to 'Undo suspension', admin_account_suspension_path(@account.id), method: :delete, class: 'button' + = link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button' - else - = link_to 'Perform full suspension', admin_account_suspension_path(@account.id), method: :post, data: { confirm: 'Are you sure?' }, class: 'button' + = 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' diff --git a/app/views/admin/domain_blocks/index.html.haml b/app/views/admin/domain_blocks/index.html.haml index fe6ff683ff..6f4ba9b579 100644 --- a/app/views/admin/domain_blocks/index.html.haml +++ b/app/views/admin/domain_blocks/index.html.haml @@ -1,11 +1,11 @@ - content_for :page_title do - Domain Blocks + = t('admin.domain_block.title') %table.table %thead %tr - %th Domain - %th Severity + %th= t('admin.domain_block.domain') + %th= t('admin.domain_block.severity') %tbody - @blocks.each do |block| %tr @@ -14,4 +14,4 @@ %td= block.severity = paginate @blocks -= link_to 'Add new', new_admin_domain_block_path, class: 'button' += link_to t('admin.domain_block.add_new'), new_admin_domain_block_path, class: 'button' diff --git a/app/views/admin/domain_blocks/new.html.haml b/app/views/admin/domain_blocks/new.html.haml index fbd39d6cfa..53aab21ff4 100644 --- a/app/views/admin/domain_blocks/new.html.haml +++ b/app/views/admin/domain_blocks/new.html.haml @@ -1,18 +1,14 @@ - content_for :page_title do - New domain block + = t('admin.domain_block.new.title') = simple_form_for @domain_block, url: admin_domain_blocks_path do |f| = render 'shared/error_messages', object: @domain_block - %p.hint The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts. + %p.hint= t('admin.domain_block.new.hint') - = f.input :domain, placeholder: 'Domain' - = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false + = f.input :domain, placeholder: t('admin.domain_block.domain') + = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: lambda { |type| I18n.t("admin.domain_block.new.severity.#{type}") } - %p.hint - %strong Silence - will make the account's posts invisible to anyone who isn't following them. - %strong Suspend - will remove all of the account's content, media, and profile data. + %p.hint= t('admin.domain_block.new.severity.desc_html') .actions - = f.button :button, 'Create block', type: :submit + = f.button :button, t('admin.domain_block.new.create'), type: :submit diff --git a/app/views/admin/pubsubhubbub/index.html.haml b/app/views/admin/pubsubhubbub/index.html.haml index dcbb11c114..6b1d1ba4ad 100644 --- a/app/views/admin/pubsubhubbub/index.html.haml +++ b/app/views/admin/pubsubhubbub/index.html.haml @@ -1,14 +1,14 @@ - content_for :page_title do - PubSubHubbub + = t('admin.pubsubhubbub.title') %table.table %thead %tr - %th Topic - %th Callback URL - %th Confirmed - %th Expires in - %th Last delivery + %th= t('admin.pubsubhubbub.topic') + %th= t('admin.pubsubhubbub.callback_url') + %th= t('admin.pubsubhubbub.confirmed') + %th= t('admin.pubsubhubbub.expires_in') + %th= t('admin.pubsubhubbub.last_delivery') %tbody - @subscriptions.each do |subscription| %tr diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index 68dc070169..d5deec8f62 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -1,12 +1,12 @@ - content_for :page_title do - = t('reports.reports') + = t('admin.reports.title') .filters .filter-subset - %strong= t('reports.status') + %strong= t('admin.reports.status') %ul - %li= filter_link_to t('reports.unresolved'), action_taken: nil - %li= filter_link_to t('reports.resolved'), action_taken: '1' + %li= filter_link_to t('admin.reports.unresolved'), action_taken: nil + %li= filter_link_to t('admin.reports.resolved'), action_taken: '1' = form_tag do @@ -14,10 +14,10 @@ %thead %tr %th - %th= t('reports.id') - %th= t('reports.target') - %th= t('reports.reported_by') - %th= t('reports.comment.label') + %th= t('admin.reports.id') + %th= t('admin.reports.target') + %th= t('admin.reports.reported_by') + %th= t('admin.reports.comment.label') %th %tbody - @reports.each do |report| @@ -27,6 +27,6 @@ %td= link_to report.target_account.acct, admin_account_path(report.target_account.id) %td= link_to report.account.acct, admin_account_path(report.account.id) %td= truncate(report.comment, length: 30, separator: ' ') - %td= table_link_to 'circle', t('reports.view'), admin_report_path(report) + %td= table_link_to 'circle', t('admin.reports.view'), admin_report_path(report) = paginate @reports diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index ecbb98482b..a7430f396d 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -1,16 +1,16 @@ - content_for :page_title do - = t('reports.report', id: @report.id) + = t('admin.reports.report', id: @report.id) .report-accounts .report-accounts__item - %strong= t('reports.reported_account') + %strong= t('admin.reports.reported_account') = render partial: 'authorize_follow/card', locals: { account: @report.target_account } .report-accounts__item - %strong= t('reports.reported_by') + %strong= t('admin.reports.reported_by') = render partial: 'authorize_follow/card', locals: { account: @report.account } %p - %strong= t('reports.comment.label') + %strong= t('admin.reports.comment.label') \: = @report.comment.presence || t('reports.comment.none') @@ -22,7 +22,7 @@ .activity-stream.activity-stream-headless .entry= render partial: 'stream_entries/simple_status', locals: { status: status } .report-status__actions - = link_to remove_admin_report_path(@report, status_id: status.id), method: :post, class: 'icon-button', style: 'font-size: 24px; width: 24px; height: 24px', title: t('reports.delete') do + = link_to remove_admin_report_path(@report, status_id: status.id), method: :post, class: 'icon-button', style: 'font-size: 24px; width: 24px; height: 24px', title: t('admin.reports.delete') do = fa_icon 'trash' - if !@report.action_taken? @@ -30,10 +30,10 @@ %div{ style: 'overflow: hidden' } %div{ style: 'float: right' } - = link_to t('reports.silence_account'), silence_admin_report_path(@report), method: :post, class: 'button' - = link_to t('reports.suspend_account'), suspend_admin_report_path(@report), method: :post, class: 'button' + = link_to t('admin.reports.silence_account'), silence_admin_report_path(@report), method: :post, class: 'button' + = link_to t('admin.reports.suspend_account'), suspend_admin_report_path(@report), method: :post, class: 'button' %div{ style: 'float: left' } - = link_to t('reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' + = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' - elsif !@report.action_taken_by_account.nil? %hr/ diff --git a/config/locales/en.yml b/config/locales/en.yml index fdb9f45e92..9ed1e6a1ae 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -40,6 +40,83 @@ en: remote_follow: Remote follow unfollow: Unfollow admin: + accounts: + are_you_sure: Are you sure? + display_name: Display name + domain: Domain + edit: Edit + email: E-mail + feed_url: Feed URL + followers: Followers + follows: Follows + location: + all: All + local: Local + remote: Remote + title: Location + media_attachments: Media attachments + moderation: + all: All + silenced: Silenced + suspended: Suspended + title: Moderation + most_recent_activity: Most recent activity + most_recent_ip: Most recent IP + not_subscribed: Not subscribed + order: + alphabetic: Alphabetic + most_recent: Most recent + title: Order + perform_full_suspension: Perform full suspension + profile_url: Profile URL + public: Public + push_subscription_expires: PuSH subscription expires + salmon_url: Salmon URL + silence: Silence + statuses: Statuses + title: Accounts + undo_silenced: Undo silence + undo_suspension: Undo suspension + username: Username + web: Web + domain_block: + add_new: Add new + domain: Domain + new: + create: Create block + hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts. + severity: + desc_html: "Silence will make the account's posts invisible to anyone who isn't following them. Suspend will remove all of the account's content, media, and profile data." + silence: Silence + suspend: Suspend + title: New domain block + severity: Severity + title: Domain Blocks + pubsubhubbub: + callback_url: Callback URL + confirmed: Confirmed + expires_in: Expires in + last_delivery: Last delivery + title: PubSubHubbub + topic: Topic + reports: + comment: + label: Comment + none: None + delete: Delete + id: ID + mark_as_resolved: Mark as resolved + report: 'Report #%{id}' + reported_account: Reported account + reported_by: Reported by + resolved: Resolved + silence_account: Silence account + status: Status + suspend_account: Suspend account + target: Target + title: Reports + unresolved: Unresolved + view: View settings: click_to_edit: Click to edit contact_information: @@ -63,6 +140,7 @@ en: title: Extended site description site_title: Site title title: Site Settings + title: Administration application_mailer: settings: 'Change e-mail preferences: %{link}' signature: Mastodon notifications from %{instance} diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c5e89634cb..9e590f100e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -40,6 +40,83 @@ fr: remote_follow: Suivre à distance unfollow: Ne plus suivre admin: + accounts: + are_you_sure: Êtes-vous certain ? + display_name: Nom affiché + domain: Domaine + edit: Éditer + email: Courriel + feed_url: URL du flux + followers: Abonné⋅es + follows: Abonnements + location: + all: Tous + local: Local + remote: Distant + title: Situation + media_attachments: Fichiers médias + moderation: + all: Tous + silenced: Muets + suspended: Suspendus + title: Modération + most_recent_activity: Dernière activité + most_recent_ip: Adresse IP la plus récente + not_subscribed: Non abonné + order: + alphabetic: Alphabétique + most_recent: Plus récent + title: Tri + perform_full_suspension: Effectuer une suspension complète + profile_url: URL du profil + public: Public + push_subscription_expires: Expiration de l'abonnement PuSH + salmon_url: URL Salmon + silence: Rendre muet + statuses: Statuts + title: Comptes + undo_silenced: Annuler la mu + undo_suspension: Annuler la suspension + username: Nom d'utilisateur + web: Web + domain_block: + add_new: Ajouter + domain: Domaine + new: + create: Créer le blocage + hint: Le blocage de domaine n'empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes. + severity: + desc_html: "Silence rendra les messages des comptes concernés invisibles à ceux qui ne les suivent pas. Suspend supprimera tout le contenu des comptes concernés, les médias, et les données du profil." + silence: Muet + suspend: Suspendre + title: Nouveau blocage de domaine + severity: Séverité + title: Blocage de domaines + pubsubhubbub: + callback_url: URL de rappel + confirmed: Confirmé + expires_in: Expire dans + last_delivery: Dernière livraison + title: PubSubHubbub + topic: Sujet + reports: + comment: + label: Commentaire + none: Aucun + delete: Supprimer + id: ID + mark_as_resolved: Marqué comme résolu + report: 'Signalement #%{id}' + reported_account: Compte signalé + reported_by: Signalé par + resolved: Résolus + silence_account: Rendre le compte muet + status: Statut + suspend_account: Suspendre le compte + target: Cible + title: Signalements + unresolved: Non résolus + view: Voir settings: click_to_edit: Cliquez pour éditer contact_information: @@ -63,6 +140,7 @@ fr: title: Description étendue du site site_title: Titre du site title: Paramètres du site + title: Administration application_mailer: settings: 'Changer les préférences courriel : %{link}' signature: Notifications de Mastodon depuis %{instance} diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index e66c6e384c..74649da510 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -28,6 +28,7 @@ en: password: Password setting_boost_modal: Show confirmation dialog before boosting setting_default_privacy: Post privacy + severity: Severity type: Import type username: Username interactions: diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index afcaeae8f1..ae4975143c 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -26,7 +26,9 @@ fr: note: Présentation otp_attempt: Code d'identification à deux facteurs password: Mot de passe + setting_boost_modal: Afficher un dialogue de confirmation avant de partager setting_default_privacy: Confidentialité des statuts + severity: Séverité type: Type d'import username: Identifiant interactions: diff --git a/config/navigation.rb b/config/navigation.rb index b92b872023..3d5ba17415 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -14,14 +14,14 @@ SimpleNavigation::Configuration.run do |navigation| settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url end - primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_reports_url, if: proc { current_user.admin? } do |admin| - admin.item :reports, safe_join([fa_icon('flag fw'), 'Reports']), admin_reports_url, highlights_on: %r{/admin/reports} - admin.item :accounts, safe_join([fa_icon('users fw'), 'Accounts']), admin_accounts_url, highlights_on: %r{/admin/accounts} - admin.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), 'PubSubHubbub']), admin_pubsubhubbub_index_url - admin.item :domain_blocks, safe_join([fa_icon('lock fw'), 'Domain Blocks']), admin_domain_blocks_url, highlights_on: %r{/admin/domain_blocks} + primary.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_reports_url, if: proc { current_user.admin? } do |admin| + admin.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_url, highlights_on: %r{/admin/reports} + admin.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_url, highlights_on: %r{/admin/accounts} + admin.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), t('admin.pubsubhubbub.title')]), admin_pubsubhubbub_index_url + admin.item :domain_blocks, safe_join([fa_icon('lock fw'), t('admin.domain_block.title')]), admin_domain_blocks_url, highlights_on: %r{/admin/domain_blocks} admin.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url admin.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url - admin.item :settings, safe_join([fa_icon('cogs fw'), 'Site Settings']), admin_settings_url + admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), admin_settings_url end primary.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }