Translate admin (#1702)

* Translate the domain_block panel

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

* Translate PubSubHubbub section

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

* translate account section and correct typos

* move reports translation & translate sidebar

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

* normalize l18n
pull/1719/head
Thomas Citharel 2017-04-13 21:49:07 +02:00 committed by Eugen
parent d9dc0fe84e
commit c0c56db0fa
12 changed files with 235 additions and 80 deletions

View File

@ -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

View File

@ -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'

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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: "<strong>Silence</strong> will make the account's posts invisible to anyone who isn't following them. <strong>Suspend</strong> 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}

View File

@ -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: "<strong>Silence</strong> rendra les messages des comptes concernés invisibles à ceux qui ne les suivent pas. <strong>Suspend</strong> 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}

View File

@ -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:

View File

@ -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:

View File

@ -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' }