diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 4d636601e..bd1eb7ecd 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 22901aed1..6d2a4d123 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 fe6ff683f..6f4ba9b57 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 fbd39d6cf..53aab21ff 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 dcbb11c11..6b1d1ba4a 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 68dc07016..d5deec8f6 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 ecbb98482..a7430f396 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 fdb9f45e9..9ed1e6a1a 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 c5e89634c..9e590f100 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 e66c6e384..74649da51 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 afcaeae8f..ae4975143 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 b92b87202..3d5ba1741 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' }