diff --git a/.circleci/config.yml b/.circleci/config.yml
index 70d03f6b94..02b505457b 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -11,6 +11,7 @@ aliases:
RAILS_ENV: test
PARALLEL_TEST_PROCESSORS: 4
ALLOW_NOPAM: true
+ DISABLE_SIMPLECOV: true
working_directory: ~/projects/mastodon/
- &attach_workspace
@@ -90,7 +91,7 @@ aliases:
command: ./bin/rails parallel:create parallel:load_schema parallel:prepare
- run:
name: Run Tests
- command: bundle exec parallel_test ./spec/ --group-by filesize --type rspec
+ command: ./bin/retry bundle exec parallel_test ./spec/ --group-by filesize --type rspec
jobs:
install:
@@ -150,7 +151,7 @@ jobs:
- image: circleci/node:8.11.1-stretch
steps:
- *attach_workspace
- - run: yarn test:jest
+ - run: ./bin/retry yarn test:jest
check-i18n:
<<: *defaults
diff --git a/.env.production.sample b/.env.production.sample
index eddd38d906..f569c1cd90 100644
--- a/.env.production.sample
+++ b/.env.production.sample
@@ -113,6 +113,8 @@ SMTP_FROM_ADDRESS=notifications@example.com
# For Keystone V3, the value for SWIFT_TENANT should be the project name
# SWIFT_TENANT=
# SWIFT_PASSWORD=
+# Some OpenStack V3 providers require PROJECT_ID (optional)
+# SWIFT_PROJECT_ID=
# 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=
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/bug_report.md
similarity index 80%
rename from .github/ISSUE_TEMPLATE.md
rename to .github/ISSUE_TEMPLATE/bug_report.md
index c78bcb492a..602530db0e 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,3 +1,9 @@
+---
+name: Bug Report
+about: Create a report to help us improve
+
+---
+
[Issue text goes here].
* * * *
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000000..46602fd2c0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,11 @@
+---
+name: Feature Request
+about: Suggest an idea for this project
+
+---
+
+[Issue text goes here].
+
+* * * *
+
+- [ ] I searched or browsed the repo’s other issues to ensure this is not a duplicate.
diff --git a/Gemfile b/Gemfile
index 500628ad1d..71f5823dfe 100644
--- a/Gemfile
+++ b/Gemfile
@@ -113,7 +113,6 @@ group :test do
gem 'microformats', '~> 4.0'
gem 'rails-controller-testing', '~> 1.0'
gem 'rspec-sidekiq', '~> 3.0'
- gem 'rspec-retry', '~> 0.5', require: false
gem 'simplecov', '~> 0.16', require: false
gem 'webmock', '~> 3.3'
gem 'parallel_tests', '~> 2.21'
diff --git a/Gemfile.lock b/Gemfile.lock
index 36554c1ed1..41307654cc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -503,8 +503,6 @@ GEM
rspec-expectations (~> 3.7.0)
rspec-mocks (~> 3.7.0)
rspec-support (~> 3.7.0)
- rspec-retry (0.5.7)
- rspec-core (> 3.3)
rspec-sidekiq (3.0.3)
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
@@ -729,7 +727,6 @@ DEPENDENCIES
redis-rails (~> 5.0)
rqrcode (~> 0.10)
rspec-rails (~> 3.7)
- rspec-retry (~> 0.5)
rspec-sidekiq (~> 3.0)
rubocop (~> 0.55)
ruby-progressbar (~> 1.4)
diff --git a/app/controllers/admin/confirmations_controller.rb b/app/controllers/admin/confirmations_controller.rb
index 34dfb458ec..8d3477e660 100644
--- a/app/controllers/admin/confirmations_controller.rb
+++ b/app/controllers/admin/confirmations_controller.rb
@@ -3,6 +3,7 @@
module Admin
class ConfirmationsController < BaseController
before_action :set_user
+ before_action :check_confirmation, only: [:resend]
def create
authorize @user, :confirm?
@@ -11,10 +12,28 @@ module Admin
redirect_to admin_accounts_path
end
+ def resend
+ authorize @user, :confirm?
+
+ @user.resend_confirmation_instructions
+
+ log_action :confirm, @user
+
+ flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success')
+ redirect_to admin_accounts_path
+ end
+
private
def set_user
@user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound)
end
+
+ def check_confirmation
+ if @user.confirmed?
+ flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed')
+ redirect_to admin_accounts_path
+ end
+ end
end
end
diff --git a/app/controllers/admin/reported_statuses_controller.rb b/app/controllers/admin/reported_statuses_controller.rb
index 522f68c98e..d3c2f5e9e9 100644
--- a/app/controllers/admin/reported_statuses_controller.rb
+++ b/app/controllers/admin/reported_statuses_controller.rb
@@ -3,7 +3,6 @@
module Admin
class ReportedStatusesController < BaseController
before_action :set_report
- before_action :set_status, only: [:update, :destroy]
def create
authorize :status, :update?
@@ -14,20 +13,6 @@ module Admin
redirect_to admin_report_path(@report)
end
- def update
- authorize @status, :update?
- @status.update!(status_params)
- log_action :update, @status
- redirect_to admin_report_path(@report)
- end
-
- def destroy
- authorize @status, :destroy?
- RemovalWorker.perform_async(@status.id)
- log_action :destroy, @status
- render json: @status
- end
-
private
def status_params
@@ -51,9 +36,5 @@ module Admin
def set_report
@report = Report.find(params[:report_id])
end
-
- def set_status
- @status = @report.statuses.find(params[:id])
- end
end
end
diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb
index d5787acfb9..382bfc4a23 100644
--- a/app/controllers/admin/statuses_controller.rb
+++ b/app/controllers/admin/statuses_controller.rb
@@ -5,7 +5,6 @@ module Admin
helper_method :current_params
before_action :set_account
- before_action :set_status, only: [:update, :destroy]
PER_PAGE = 20
@@ -26,40 +25,18 @@ module Admin
def create
authorize :status, :update?
- @form = Form::StatusBatch.new(form_status_batch_params.merge(current_account: current_account))
+ @form = Form::StatusBatch.new(form_status_batch_params.merge(current_account: current_account, action: action_from_button))
flash[:alert] = I18n.t('admin.statuses.failed_to_execute') unless @form.save
redirect_to admin_account_statuses_path(@account.id, current_params)
end
- def update
- authorize @status, :update?
- @status.update!(status_params)
- log_action :update, @status
- redirect_to admin_account_statuses_path(@account.id, current_params)
- end
-
- def destroy
- authorize @status, :destroy?
- RemovalWorker.perform_async(@status.id)
- log_action :destroy, @status
- render json: @status
- end
-
private
- def status_params
- params.require(:status).permit(:sensitive)
- end
-
def form_status_batch_params
params.require(:form_status_batch).permit(:action, status_ids: [])
end
- def set_status
- @status = @account.statuses.find(params[:id])
- end
-
def set_account
@account = Account.find(params[:account_id])
end
@@ -72,5 +49,15 @@ module Admin
page: page > 1 && page,
}.select { |_, value| value.present? }
end
+
+ def action_from_button
+ if params[:nsfw_on]
+ 'nsfw_on'
+ elsif params[:nsfw_off]
+ 'nsfw_off'
+ elsif params[:delete]
+ 'delete'
+ end
+ end
end
end
diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb
index a3c4008e64..259d07be87 100644
--- a/app/controllers/api/v1/accounts/credentials_controller.rb
+++ b/app/controllers/api/v1/accounts/credentials_controller.rb
@@ -21,7 +21,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
private
def account_params
- params.permit(:display_name, :note, :avatar, :header, :locked, fields_attributes: [:name, :value])
+ params.permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value])
end
def user_settings_params
diff --git a/app/controllers/api/v1/statuses/pins_controller.rb b/app/controllers/api/v1/statuses/pins_controller.rb
index bba6a6f480..54f8be667d 100644
--- a/app/controllers/api/v1/statuses/pins_controller.rb
+++ b/app/controllers/api/v1/statuses/pins_controller.rb
@@ -39,7 +39,7 @@ class Api::V1::Statuses::PinsController < Api::BaseController
adapter: ActivityPub::Adapter
).as_json
- ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account)
+ ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account.id)
end
def distribute_remove_activity!
@@ -49,6 +49,6 @@ class Api::V1::Statuses::PinsController < Api::BaseController
adapter: ActivityPub::Adapter
).as_json
- ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account)
+ ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account.id)
end
end
diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb
index 2b8330f2e3..f9b003dcd8 100644
--- a/app/controllers/settings/profiles_controller.rb
+++ b/app/controllers/settings/profiles_controller.rb
@@ -24,7 +24,7 @@ class Settings::ProfilesController < Settings::BaseController
private
def account_params
- params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, fields_attributes: [:name, :value])
+ params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value])
end
def set_account
diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb
index f78e5fbc3f..f6d86a18e8 100644
--- a/app/helpers/settings_helper.rb
+++ b/app/helpers/settings_helper.rb
@@ -6,6 +6,7 @@ module SettingsHelper
ar: 'العربية',
bg: 'Български',
ca: 'Català',
+ co: 'Corsu',
de: 'Deutsch',
el: 'Ελληνικά',
eo: 'Esperanto',
diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb
index c6f12ecd41..707c8e26ce 100644
--- a/app/helpers/stream_entries_helper.rb
+++ b/app/helpers/stream_entries_helper.rb
@@ -4,8 +4,8 @@ module StreamEntriesHelper
EMBEDDED_CONTROLLER = 'statuses'
EMBEDDED_ACTION = 'embed'
- def display_name(account)
- account.display_name.presence || account.username
+ def display_name(account, **options)
+ Formatter.instance.format_display_name(account, options)
end
def account_description(account)
diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js
index 5f1274fab6..c015d3a994 100644
--- a/app/javascript/mastodon/actions/importer/normalizer.js
+++ b/app/javascript/mastodon/actions/importer/normalizer.js
@@ -1,20 +1,29 @@
import escapeTextContentForBrowser from 'escape-html';
import emojify from '../../features/emoji/emoji';
+import { unescapeHTML } from '../../utils/html';
const domParser = new DOMParser();
+const makeEmojiMap = record => record.emojis.reduce((obj, emoji) => {
+ obj[`:${emoji.shortcode}:`] = emoji;
+ return obj;
+}, {});
+
export function normalizeAccount(account) {
account = { ...account };
+ const emojiMap = makeEmojiMap(account);
const displayName = account.display_name.length === 0 ? account.username : account.display_name;
- account.display_name_html = emojify(escapeTextContentForBrowser(displayName));
- account.note_emojified = emojify(account.note);
+
+ account.display_name_html = emojify(escapeTextContentForBrowser(displayName), emojiMap);
+ account.note_emojified = emojify(account.note, emojiMap);
if (account.fields) {
account.fields = account.fields.map(pair => ({
...pair,
name_emojified: emojify(escapeTextContentForBrowser(pair.name)),
- value_emojified: emojify(pair.value),
+ value_emojified: emojify(pair.value, emojiMap),
+ value_plain: unescapeHTML(pair.value),
}));
}
@@ -42,11 +51,7 @@ export function normalizeStatus(status, normalOldStatus) {
normalStatus.hidden = normalOldStatus.get('hidden');
} else {
const searchContent = [status.spoiler_text, status.content].join('\n\n').replace(/
/g, '\n').replace(/<\/p>
/g, '\n\n');
-
- const emojiMap = normalStatus.emojis.reduce((obj, emoji) => {
- obj[`:${emoji.shortcode}:`] = emoji;
- return obj;
- }, {});
+ const emojiMap = makeEmojiMap(normalStatus);
normalStatus.search_index = domParser.parseFromString(searchContent, 'text/html').documentElement.textContent;
normalStatus.contentHtml = emojify(normalStatus.content, emojiMap);
diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js
index 7aa070f569..393268811e 100644
--- a/app/javascript/mastodon/actions/notifications.js
+++ b/app/javascript/mastodon/actions/notifications.js
@@ -8,6 +8,7 @@ import {
importFetchedStatuses,
} from './importer';
import { defineMessages } from 'react-intl';
+import { unescapeHTML } from '../utils/html';
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
@@ -31,13 +32,6 @@ const fetchRelatedRelationships = (dispatch, notifications) => {
}
};
-const unescapeHTML = (html) => {
- const wrapper = document.createElement('div');
- html = html.replace(/
|
|\n/g, ' ');
- wrapper.innerHTML = html;
- return wrapper.textContent;
-};
-
export function updateNotifications(notification, intlMessages, intlLocale) {
return (dispatch, getState) => {
const showInColumn = getState().getIn(['settings', 'notifications', 'shows', notification.type], true);
diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js
index 982d34718e..0a6e7c6272 100644
--- a/app/javascript/mastodon/components/dropdown_menu.js
+++ b/app/javascript/mastodon/components/dropdown_menu.js
@@ -43,6 +43,7 @@ class DropdownMenu extends React.PureComponent {
componentDidMount () {
document.addEventListener('click', this.handleDocumentClick, false);
document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
+ if (this.focusedItem) this.focusedItem.focus();
this.setState({ mounted: true });
}
@@ -55,6 +56,46 @@ class DropdownMenu extends React.PureComponent {
this.node = c;
}
+ setFocusRef = c => {
+ this.focusedItem = c;
+ }
+
+ handleKeyDown = e => {
+ const items = Array.from(this.node.getElementsByTagName('a'));
+ const index = items.indexOf(e.currentTarget);
+ let element;
+
+ switch(e.key) {
+ case 'Enter':
+ this.handleClick(e);
+ break;
+ case 'ArrowDown':
+ element = items[index+1];
+ if (element) {
+ element.focus();
+ }
+ break;
+ case 'ArrowUp':
+ element = items[index-1];
+ if (element) {
+ element.focus();
+ }
+ break;
+ case 'Home':
+ element = items[0];
+ if (element) {
+ element.focus();
+ }
+ break;
+ case 'End':
+ element = items[items.length-1];
+ if (element) {
+ element.focus();
+ }
+ break;
+ }
+ }
+
handleClick = e => {
const i = Number(e.currentTarget.getAttribute('data-index'));
const { action, to } = this.props.items[i];
@@ -79,7 +120,7 @@ class DropdownMenu extends React.PureComponent {
return (
- | - |
---|
A descrizzione stesa ùn hè micca stata riempiuta.
+ features: + humane_approach_body: Mastodon hà amparatu da i sbagli di l’altre rete suciale, è prova à fà scelte di cuncezzione più etiche per luttà contr’à l’abusu di i media suciali. + humane_approach_title: Una mentalità più umana + not_a_product_body: Mastodon ùn hè micca una rete cummerciale. Micca pubblicità, micca pruspizzione di dati, micca ambienti chjosi, è micca auturità centrale. + not_a_product_title: Site una parsona, micca un pruduttu + real_conversation_body: Cù 500 caratteri dispunibuli, diffusione persunalizata di u cuntinutu è avertimenti per media sensibili, pudete cumunicà cum’è voi vulete. + real_conversation_title: Fattu per una vera cunversazione + within_reach_body: Parechje app per iOS, Android è altre piattaforme, create cù un sistemu d’API accessibile à i prugrammatori, vi permettenu d’avè accessu à i vostri amichi senza prublemi. + within_reach_title: Sempre accessibile + generic_description: "%{domain} hè un servore di a rete" + hosted_on: Mastodon allughjatu nant’à %{domain} + learn_more: Amparà di più + other_instances: Lista di l’istanze + source_code: Codice di fonte + status_count_after: statuti + status_count_before: chì anu pubblicatu + user_count_after: parsone quì + user_count_before: Ci sò + what_is_mastodon: Quale hè Mastodon? + accounts: + follow: Siguità + followers: Abbunati + following: Abbunamenti + media: Media + moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:" + nothing_here: Ùn c’hè nunda quì! + people_followed_by: Seguitati da %{name} + people_who_follow: Seguitanu %{name} + posts: Statuti + posts_with_replies: Statuti è risposte + remote_follow: Siguità d’altrò + reserved_username: Stu cugnome hè riservatu + roles: + admin: Amministratore + moderator: Muderatore + unfollow: Ùn siguità più + admin: + account_moderation_notes: + create: Creà + created_msg: Nota di muderazione creata! + delete: Toglie + destroyed_msg: Nota di muderazione sguassata! + accounts: + are_you_sure: Site sicuru·a? + avatar: Ritrattu di prufile + by_domain: Duminiu + change_email: + changed_msg: Email di u contu cambiatu! + current_email: Email attuale + label: Mudificà l’Email + new_email: Novu Email + submit: Cambià Email + title: Mudificà l’Email di %{username} + confirm: Cunfirmà + confirmed: Cunfirmata + demote: Ritrugradà + disable: Disattivà + disable_two_factor_authentication: Disattivà l’identificazione à 2 fattori + disabled: Disattivatu + display_name: Nome pubblicu + domain: Duminiu + edit: Mudificà + email: E-mail + enable: Attivà + enabled: Attivatu + feed_url: URL di u flussu + followers: Abbunati + followers_url: URL di l’abbunati + follows: Abbunamenti + inbox_url: URL di l’inbox + ip: IP + location: + all: Tutti + local: Lucale + remote: D’altrò + title: Lucalizazione + login_status: Statutu di cunnessione + media_attachments: Media aghjunti + memorialize: Trasfurmà in mimuriale + moderation: + all: Tutti + silenced: Silenzati + suspended: Suspesi + title: Muderazione + moderation_notes: Note di muderazione + most_recent_activity: Attività più ricente + most_recent_ip: IP più ricente + not_subscribed: Micca abbunatu + order: + alphabetic: Alfabeticu + most_recent: Più ricente + title: Urdine + outbox_url: URL di l’outbox + perform_full_suspension: Fà una suspensione cumpleta + profile_url: URL di u prufile + promote: Prumove + protocol: Prutucollu + public: Pubblicu + push_subscription_expires: Spirata di l’abbunamentu PuSH + redownload: Mette à ghjornu i ritratti + remove_avatar: Toglie l’avatar + reset: Reset + reset_password: Riinizializà a chjave d’accessu + resubscribe: Riabbunassi + role: Auturizazione + roles: + admin: Amministratore + moderator: Muderatore + staff: Squadra + user: Utilizatore + salmon_url: URL di Salmon + search: Cercà + shared_inbox_url: URL di l’inbox spartuta + show: + created_reports: Signalamenti creati da stu contu + report: Signalamentu + targeted_reports: Signalamenti creati contr’à stu contu + silence: Silenzà + statuses: Statuti + subscribe: Abbunassi + title: Conti + unconfirmed_email: E-mail micca cunfirmatu + undo_silenced: Ùn silenzà più + undo_suspension: Ùn suspende più + unsubscribe: Disabbunassi + username: Cugnome + web: Web + action_logs: + actions: + assigned_to_self_report: "%{name} s’hè assignatu u signalamentu %{target}" + change_email_user: "%{name} hà cambiatu l’indirizzu e-mail di %{target}" + confirm_user: "%{name} hà cunfirmatu l’indirizzu e-mail di %{target}" + create_custom_emoji: "%{name} hà caricatu una nov’emoji %{target}" + create_domain_block: "%{name} hà bluccatu u duminiu %{target}" + create_email_domain_block: "%{name} hà messu u duminiu e-mail %{target} nant’a lista nera" + demote_user: "%{name} hà ritrugradatu l’utilizatore %{target}" + destroy_domain_block: "%{name} hà sbluccatu u duminiu %{target}" + destroy_email_domain_block: "%{name} hà messu u duminiu e-mail %{target} nant’a lista bianca" + destroy_status: "%{name} hà toltu u statutu di %{target}" + disable_2fa_user: "%{name} hà disattivatu l’identificazione à dui fattori per %{target}" + disable_custom_emoji: "%{name} hà disattivatu l’emoji %{target}" + disable_user: "%{name} hà disattivatu a cunnessione per %{target}" + enable_custom_emoji: "%{name} hà attivatu l’emoji %{target}" + enable_user: "%{name} hà attivatu a cunnessione per %{target}" + memorialize_account: "%{name} hà trasfurmatu u contu di %{target} in una pagina mimuriale" + promote_user: "%{name} hà prumossu %{target}" + remove_avatar_user: "%{name} hà toltu u ritrattu di %{target}" + reopen_report: "%{name} hà riapertu u signalamentu %{target}" + reset_password_user: "%{name} hà riinizializatu a chjave d’accessu di %{target}" + resolve_report: "%{name} hà chjosu u signalamentu %{target}" + silence_account: "%{name} hà silenzatu u contu di %{target}" + suspend_account: "%{name} hà suspesu u contu di %{target}" + unassigned_report: "%{name} hà disassignatu u signalamentu %{target}" + unsilence_account: "%{name} hà fattu che u contu di %{target} ùn hè più silenzatu" + unsuspend_account: "%{name} hà fattu che u contu di %{target} ùn hè più suspesu" + update_custom_emoji: "%{name} hà messu à ghjornu l’emoji %{target}" + update_status: "%{name} hà cambiatu u statutu di %{target}" + title: Ghjurnale d’audit + custom_emojis: + by_domain: Duminiu + copied_msg: Copia lucale di l’emoji creata! + copy: Cupià + copy_failed_msg: Ùn s’hè micca pussutu creà una copia di l’emoji + created_msg: L’emoji hè stata creata! + delete: Toglie + destroyed_msg: L’emoji hè stata tolta! + disable: Disattivà + disabled_msg: L’emoji hè stata disattivata! + emoji: Emoji + enable: Attivà + enabled_msg: L’emoji hè stata attivata! + image_hint: PNG di 50Ko o menu + listed: Listata + new: + title: Aghjustà una nov’emoji + overwrite: Soprascrive + shortcode: Accorta + shortcode_hint: 2 caratteri o più, solu lettere, numeri è liniette basse + title: Emoji parsunalizate + unlisted: Micca listata + update_failed_msg: Ùn s’hè micca pussutu mette à ghjornu l’emoji + updated_msg: L’emoji hè stata messa à ghjornu! + upload: Caricà + domain_blocks: + add_new: Aghjustà + created_msg: U blucchime di u duminiu hè attivu + destroyed_msg: U blucchime di u duminiu ùn hè più attivu + domain: Duminiu + new: + create: Creà un blucchime + hint: U blucchime di duminiu ùn impedirà micca a creazione di conti indè a database, mà metudi di muderazione specifiche saranu applicati. + severity: + desc_html: CùSilenzà, solu l’abbunati di u contu viderenu i so missaghji. Suspende sguassarà tutti i cuntenuti è dati di u contu. Utilizate Nisuna s’è voi vulete solu righjittà fugliali media. + noop: Nisuna + silence: Silenzà + suspend: Suspende + title: Novu blucchime di duminiu + reject_media: Righjittà i fugliali media + reject_media_hint: Sguassa tutti i media caricati è ricusa caricamenti futuri. Inutile per una suspensione + severities: + noop: Nisuna + silence: Silenzà + suspend: Suspende + severity: Severità + show: + affected_accounts: + one: Un contu tuccatu indè a database + other: "%{count} conti tuccati indè a database" + retroactive: + silence: Ùn silenzà più i conti nant’à stu duminiu + suspend: Ùn suspende più i conti nant’à stu duminiu + title: Ùn bluccà più u duminiu %{domain} + undo: Annullà + title: Blucchimi di duminiu + undo: Annullà + email_domain_blocks: + add_new: Aghjustà + created_msg: U blucchime di u duminiu d’e-mail hè attivu + delete: Toglie + destroyed_msg: U blucchime di u duminiu d’e-mail ùn hè più attivu + domain: Duminiu + new: + create: Creà un blucchime + title: Nova iscrizzione nant’a lista nera e-mail + title: Lista nera e-mail + instances: + account_count: Conti cunnisciuti + domain_name: Duminiu + reset: Riinizializà + search: Cercà + title: Istanze cunnisciute + invites: + filter: + all: Tuttu + available: Dispunibuli + expired: Spirati + title: Filtrà + title: Invitazione + report_notes: + created_msg: Nota di signalamentu creata! + destroyed_msg: Nota di signalamentu sguassata! + reports: + account: + note: nota + report: palisà + action_taken_by: Intervenzione di + are_you_sure: Site sicuru·a? + assign_to_self: Assignallu à mè + assigned: Muderatore assignatu + comment: + none: Nisunu + created_at: Palisatu + id: ID + mark_as_resolved: Indicà cum’è chjosu + mark_as_unresolved: Indicà cum’è sempre apertu + notes: + create: Aghjunghje una nota + create_and_resolve: Chjude cù una nota + create_and_unresolve: Riapre cù una nota + delete: Toglie + placeholder: Per parlà di l’azzione piglate, o altre messe à ghjornu nant’à u signalamentu… + reopen: Riapre u signalamentu + report: 'Signalamente #%{id}' + report_contents: Cuntenuti + reported_account: Contu palisatu + reported_by: Palisatu da + resolved: Scioltu è chjosu + resolved_msg: Signalamentu scioltu! + silence_account: Silenzà u contu + status: Statutu + suspend_account: Suspende u contu + target: Oggettu + title: Signalamenti + unassign: Disassignà + unresolved: Micca sciolti + updated_at: Messi à ghjornu + view: Vede + settings: + activity_api_enabled: + desc_html: Numeri di statuti creati quì, utilizatori attivi, è arregistramenti novi tutte e settimane + title: Pubblicà statistiche nant’à l’attività di l’utilizatori + bootstrap_timeline_accounts: + desc_html: Cugnomi separati cù virgule. Solu pussibule cù conti lucali è pubblichi. Quandu a lista hè viota, tutti l’amministratori lucali saranu selezziunati. + title: Abbunamenti predefiniti per l’utilizatori novi + contact_information: + email: E-mail prufissiunale + username: Identificatore di cuntattu + hero: + desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di l’istanza sarà usata + title: Ritrattu di cuprendula + peers_api_enabled: + desc_html: Indirizzi st’istanza hà vistu indè u fediverse + title: Pubblicà a lista d’istanza cunnisciute + registrations: + closed_message: + desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML + title: Missaghju per l’arregistramenti chjosi + deletion: + desc_html: Auturizà tuttu u mondu di sguassà u so propiu contu + title: Auturizà à sguassà i conti + min_invite_role: + disabled: Nisunu + title: Auturizà l’invitazione da + open: + desc_html: Auturizà tuttu u mondu à creà un contu quì + title: Apre l’arregistramenti + show_known_fediverse_at_about_page: + desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati. + title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee + show_staff_badge: + desc_html: Mustrerà un badge Squadra nant’à un prufile d’utilizatore + title: Mustrà un badge staff + site_description: + desc_html: Paragrafu di prisentazione nant’a pagina d’accolta è i marchi meta. Pudete fà usu di marchi HTML, in particulare<a>
è <em>
.
+ title: Discrizzione di l’istanza
+ site_description_extended:
+ desc_html: Una bona piazza per e regule, infurmazione è altre cose chì l’utilizatori duverìanu sapè. Pudete fà usu di marchi HTML
+ title: Discrizzione stesa di u situ
+ site_terms:
+ desc_html: Quì pudete scrive e vostre regule di cunfidenzialità, cundizione d’usu o altre menzione legale. Pudete fà usu di marchi HTML
+ title: Termini persunalizati
+ site_title: Nome di l’istanza
+ thumbnail:
+ desc_html: Utilizatu per viste cù OpenGraph è l’API. Ricumandemu 1200x630px
+ title: Vignetta di l’istanza
+ timeline_preview:
+ desc_html: Vede a linea pubblica nant’a pagina d’accolta
+ title: Vista di e linee
+ title: Parametri di u situ
+ statuses:
+ back_to_account: Ritornu à a pagina di u contu
+ batch:
+ delete: Toglie
+ nsfw_off: Indicà cum’è micca sensibile
+ nsfw_on: Indicà cum’è sensibile
+ failed_to_execute: Esecuzione impussibule
+ media:
+ title: Media
+ no_media: Nisun media
+ title: Statutu di u contu
+ with_media: Cù media
+ subscriptions:
+ callback_url: URL di richjama
+ confirmed: Cunfirmatu
+ expires_in: Spira in
+ last_delivery: Ultima arricata
+ title: WebSub
+ topic: Sughjettu
+ title: Amministrazione
+ admin_mailer:
+ new_report:
+ body: "%{reporter} hà palisatu %{target}"
+ body_remote: Qualch’unu da %{domain} hà palisatu %{target}
+ subject: Novu signalamentu nant’à %{instance} (#%{id})
+ application_mailer:
+ notification_preferences: Cambià e priferenze e-mail
+ salutation: "%{name},"
+ settings: 'Cambià e priferenze e-mail: %{link}'
+ view: 'Vede:'
+ view_profile: Vede u prufile
+ view_status: Vede u statutu
+ applications:
+ created: Applicazione creata
+ destroyed: Applicazione sguassata
+ invalid_url: L’URL ch’è stata pruvista ùn hè valida
+ regenerate_token: Regenerate access token
+ token_regenerated: Access token successfully regenerated
+ warning: Be very careful with this data. Never share it with anyone!
+ your_token: Rigenerà a fiscia d’accessu
+ auth:
+ agreement_html: Arregistrassi vole dì chì site d’accunsentu per siguità e regule di l’istanza è e cundizione d’usu.
+ change_password: Chjave d’accessu
+ confirm_email: Cunfirmà l’e-mail
+ delete_account: Sguassà u contu
+ delete_account_html: S’è voi vulete toglie u vostru contu ghjè quì. Duverete cunfirmà a vostra scelta.
+ didnt_get_confirmation: Ùn avete micca ricevutu l’istruzione di cunfirmazione?
+ forgot_password: Chjave scurdata?
+ invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one.
+ login: Cunnettassi
+ logout: Scunnettassi
+ migrate_account: Cambià di contu
+ migrate_account_html: S’è voi vulete riindirizà stu contu versu un’altru, ghjè pussibule quì.
+ or: o
+ or_log_in_with: O cunnettatevi cù
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Arregistrassi
+ register_elsewhere: Arregistrassi altrò
+ resend_confirmation: Rimandà l’istruzzioni di cunfirmazione
+ reset_password: Cambià a chjave d’accessu
+ security: Sicurità
+ set_new_password: Creà una nova chjave d’accessu
+ authorize_follow:
+ already_following: You are already following this account
+ error: Peccatu, c’hè statu un prublemu ricercandu u contu.
+ follow: Siguità
+ follow_request: 'Avete dumandatu di siguità:'
+ following: 'Eccu! Avà seguitate:'
+ post_follow:
+ close: Or, you can just close this window.
+ return: Rivultà à u prufile di l’utilizatore
+ web: Andà à l’interfaccia web
+ title: Siguità %{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"
+ half_a_minute: Avà
+ less_than_x_minutes: "%{count}m"
+ less_than_x_seconds: Avà
+ over_x_years: "%{count}y"
+ x_days: "%{count}d"
+ x_minutes: "%{count}m"
+ x_months: "%{count}mo"
+ x_seconds: "%{count}s"
+ deletes:
+ bad_password_msg: È nò! Sta chjave ùn hè curretta
+ confirm_password: Entrate a vostra chjave d’accessu attuale per verificà a vostra identità
+ description_html: U contu sarà deattivatu è u cuntenutu sarà sguassatu di manera permanente è irreversibile. Ùn sarà micca pussibule piglià stu cugnome torna per evità l’impusture.
+ proceed: Sguassà u contu
+ success_msg: U vostru contu hè statu sguassatu
+ warning_html: Pudete esse sicuru·a solu chì u cuntenutu sarà sguassatu di st’istanza. S’ellu hè statu spartutu in altrò, sarà forse sempre quallà.
+ warning_title: Dispunibilità di i cuntenuti sparsi
+ errors:
+ '403': Ùn site micca auturizatu·a à vede sta pagina.
+ '404': Sta pagina ùn esiste micca.
+ '410': Sta pagina ùn esiste più.
+ '422':
+ content: C’hè statu un prublemu cù a verificazione di sicurità. Forse bluccate cookies?
+ title: Fiascu di verificazione
+ '429': Limitatu dop’à troppu richieste
+ '500':
+ content: Scusate, mà c’hè statu un prublemu cù u nostru servore.
+ title: Sta pagina ùn hè curretta
+ noscript_html: Mastodon nant’à u web hà bisognu di JavaScript per funziunà. Pudete ancu pruvà l’applicazione native per a vostra piattaforma.
+ exports:
+ archive_takeout:
+ date: Data
+ download: Scaricà l’archiviu
+ hint_html: Pudete dumandà un’archiviu di i vostri statuti è media caricati. I dati saranu in u furmattu ActivityPub è pudarenu esse letti da tutti i lugiziali chì u supportanu.
+ in_progress: Cumpilazione di l’archiviu...
+ request: Dumandà u vostr’archiviu
+ size: Pesu
+ blocks: Bluccate
+ csv: CSV
+ follows: Seguitate
+ mutes: Piattate
+ storage: I vostri media
+ followers:
+ domain: Duminiu
+ explanation_html: Per assicuravi di a cunfidenzialità di i vostri statuti, duvete avè primura di quale vi seguita. I vostri statuti privati sò mandati à tutte l’istanze induve avete abbunati. Pensate à u vostru livellu di cunfidenza in i so amministratori.
+ followers_count: Numeru d’abbunati
+ lock_link: Rendete u contu privatu
+ purge: Toglie di a lista d’abbunati
+ success:
+ one: Suppressione di l’abbunati d’un duminiu...
+ other: Suppressione di l’abbunati da %{count} duminii...
+ true_privacy_html: Ùn vi scurdate chì una vera cunfidenzialità pò solu esse ottenuta cù crittografia da un capu à l’altru.
+ unlocked_warning_html: Tuttu u mondu pò seguitavi è vede i vostri statuti privati. %{lock_link} per pudè cunfirmà o righjittà abbunamenti.
+ unlocked_warning_title: U vostru contu hè pubblicu
+ generic:
+ changes_saved_msg: Cambiamenti salvati!
+ powered_by: mossu da %{link}
+ save_changes: Salvà e mudificazione
+ validation_errors:
+ one: Qualcosa ùn và bè! Verificate un prublemu quì sottu.
+ other: Qualcosa ùn và bè! Verificate %{count} prublemi quì sottu.
+ imports:
+ preface: Pudete impurtà certi dati cumu e persone chì seguitate o bluccate nant’à u vostru contu nant’à st’istanza à partesi di fugliali creati nant’à un’altr’istanza.
+ success: I vostri dati sò stati impurtati è saranu trattati da quì à pocu.
+ types:
+ blocking: Persone chì bluccate
+ following: Persone chì seguitate
+ muting: Persone chì piattate
+ upload: Impurtà
+ in_memoriam_html: In mimoria.
+ invites:
+ delete: Disattivà
+ expired: Spirata
+ expires_in:
+ '1800': 30 minuti
+ '21600': 6 ore
+ '3600': 1 ora
+ '43200': 12 ore
+ '604800': 1 settimana
+ '86400': 1 ghjornu
+ expires_in_prompt: Mai
+ generate: Creà
+ max_uses:
+ one: 1 usu
+ other: "%{count} usi"
+ max_uses_prompt: Micca limita
+ prompt: Create è spartete ligami cù altre parsone per dà accessu à l’istanza
+ table:
+ expires_at: Spira
+ uses: Utiliza
+ title: Invità ghjente
+ landing_strip_html: "%{name} hè nant’à %{link_to_root_path}. Pudete seguitallu·a o cumunicà cù ellu·a cù un contu in qualche parte di u fediverse."
+ landing_strip_signup_html: Pudete ancu arrigistravi quì.
+ lists:
+ errors:
+ limit: Ùn pudete più creà altre liste.
+ media_attachments:
+ validations:
+ images_and_video: Ùn si pò micca aghjunghje un filmettu à un statutu chì hà digià ritratti
+ too_many: Ùn si pò micca aghjunghje più di 4 fugliali
+ migrations:
+ acct: cugnome@duminiu di u novu contu
+ currently_redirecting: "’U vostru prufile riindiriza tuttu versu à:’"
+ proceed: Salvà
+ updated_msg: I paramettri di migrazione sò stati messi à ghjornu!
+ moderation:
+ title: Muderazione
+ notification_mailer:
+ digest:
+ action: Vede tutte e nutificazione
+ body: Eccu cio ch’avete mancatu dapoi à a vostr’ultima visita u %{since}
+ mention: "%{name} v’hà mintuvatu·a in:"
+ new_followers_summary:
+ one: Avete ancu un’abbunatu novu!
+ other: Avete ancu %{count} abbunati novi!
+ subject:
+ one: "Una nutificazione nova dapoi à a vostr’ultima visita \U0001F418"
+ other: "%{count} nutificazione nove dapoi à a vostr’ultima visita \U0001F418"
+ title: Dapoi l’ultima volta…
+ favourite:
+ body: "%{name} hà aghjuntu u vostru statutu à i so favuriti :"
+ subject: "%{name} hà messu u vostru post in i so favuriti"
+ title: Novu favuritu
+ follow:
+ body: "%{name} s’hè abbunatu à u vostru contu !"
+ subject: "%{name} vi seguita"
+ title: Abbunatu novu
+ follow_request:
+ action: Vede e dumande d’abbunamentu
+ body: "%{name} vole abbunassi à u vostru contu"
+ subject: 'Dumanda d’abbunamentu: %{name}'
+ title: Nova dumanda d’abbunamentu
+ mention:
+ action: Risposta
+ body: "%{name} v’hà mintuvatu·a indè :"
+ subject: "%{name} v’hà mintuvatu·a"
+ title: Nova menzione
+ reblog:
+ body: 'U vostru statutu hè statu spartutu da %{name}:'
+ subject: "%{name} hà spartutu u vostru statutu"
+ title: Nova spartera
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: G
+ million: M
+ quadrillion: P
+ thousand: K
+ trillion: T
+ unit: ''
+ pagination:
+ newer: Più ricente
+ next: Dopu
+ older: Più vechju
+ prev: Nanzu
+ truncate: "…"
+ preferences:
+ languages: Lingue
+ other: Altre
+ publishing: Pubblicazione
+ web: Web
+ push_notifications:
+ favourite:
+ title: "%{name} hà aghjuntu u vostru statutu à i so favuriti"
+ follow:
+ title: "%{name} vi seguita"
+ group:
+ title: "%{count} nutificazioni"
+ mention:
+ action_boost: Sparte
+ action_expand: Vede di più
+ action_favourite: Aghjunghje à i favuriti
+ title: "%{name} v’hà mintuvatu·a"
+ reblog:
+ title: "%{name} hà spartutu u vostru statutu"
+ remote_follow:
+ acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu.
+ missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione
+ proceed: Cuntinuà per siguità
+ prompt: 'Avete da siguità:'
+ remote_unfollow:
+ error: Errore
+ title: Titulu
+ unfollowed: Disabbunatu
+ sessions:
+ activity: Ultima attività
+ browser: Navigatore
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Navigatore scunnisciutu
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
+ current_session: Sessione attuale
+ description: "%{browser} nant’à %{platform}"
+ explanation: Quessi sò i navigatori cunnettati à u vostru contu 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: piattaforma scunnisciuta
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Rivucà
+ revoke_success: Sessione rivucata
+ title: Sessioni
+ settings:
+ authorized_apps: Applicazione auturizate
+ back: Ritornu nant’à Mastodon
+ delete: Suppressione di u contu
+ development: Sviluppu
+ edit_profile: Mudificà u prufile
+ export: Spurtazione d’infurmazione
+ followers: Abbunati auturizati
+ import: Impurtazione
+ migrate: Migrazione di u contu
+ notifications: Nutificazione
+ preferences: Priferenze
+ settings: Parametri
+ two_factor_authentication: Identificazione à dui fattori
+ your_apps: E vostre applicazione
+ statuses:
+ attached:
+ description: 'Aghjuntu: %{attached}'
+ image:
+ one: "%{count} ritrattu"
+ other: "%{count} ritratti"
+ video:
+ one: "%{count} filmettu"
+ other: "%{count} filmetti"
+ content_warning: 'Avertimentu: %{warning}'
+ disallowed_hashtags:
+ one: 'cuntene l’hashtag disattivatu: %{tags}'
+ other: 'cuntene l’hashtag disattivati: %{tags}'
+ open_in_web: Apre nant’à u web
+ over_character_limit: Site sopr’à a limita di %{max} caratteri
+ pin_errors:
+ limit: Avete digià puntarulatu u numeru massimale di statuti
+ ownership: Pudete puntarulà solu unu di i vostri propii statuti
+ private: Ùn pudete micca puntarulà un statutu ch’ùn hè micca pubblicu
+ reblog: Ùn pudete micca puntarulà una spartera
+ show_more: Vede di più
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Solu per l’abbunati
+ private_long: Mustrà solu à l’abbunati
+ public: Pubblicu
+ public_long: Tuttu u mondu pò vede
+ unlisted: Micca listatu
+ unlisted_long: Tuttu u mondu pò vede, mà micca indè e linee pubbliche
+ stream_entries:
+ click_to_show: Cliccà per vede
+ pinned: Statutu puntarulatu
+ reblogged: spartutu
+ sensitive_content: Cuntenutu sensibile
+ terms:
+ body_html: |
+ Any of the information we collect from you may be used in the following ways:
+ +We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
+ +We will make a good faith effort to:
+ +You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
+ +You may irreversibly delete your account at any time.
+ +Yes. Cookies are small files that a site or its service provider transfers to your computer’s hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
+ +We use cookies to understand and save your preferences for future visits.
+ +We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
+ +Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
+ +When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
+ +Our site, products and services are all directed to people who are at least 13 years old. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Children’s Online Privacy Protection Act) do not use this site.
+ +If we decide to change our privacy policy, we will post those changes on this page.
+ +This document is CC-BY-SA. It was last updated March 7, 2018.
+ +Originally adapted from the Discourse privacy policy.
+ title: Termini d’usu è di cunfidenzialità per %{instance} + themes: + contrast: Cuntrastu altu + default: Mastodon + time: + formats: + default: "%d %b %Y, %H:%M" + two_factor_authentication: + code_hint: Entrate u codice generatu da l’applicazione per cunfirmà + description_html: S’ella hè attivata l’identificazione à dui fattori, duvete avè u vostru telefuninu pè ottene un codice di cunnezzione. + disable: Disattivà + enable: Attivà + enabled: Identificazione à dui fattori attivata + enabled_success: L’identificazione à dui fattori hè stata attivata. + generate_recovery_codes: Creà codici di ricuperazione + instructions_html: "Scanate stu QR code cù Google Authenticator, Authy o qualcosa cusì nant’à u vostru telefuninu. St’applicazione hà da creà codici da entrà ogni volta chì vi cunnettate." + lost_recovery_codes: I codici di ricuperazione à usu unicu vi permettenu di sempre avè accessu à u vostru contu s’è voi avete persu u vostru telefuninu. S’elli sò ancu persi, pudete creà codici novi quì. I vechji codici ùn marchjeranu più. + manual_instructions: S’ellu ùn hè micca pussibule scanà u QR code, pudete entre sta chjave sicreta:’ + recovery_codes: Codici di ricuperazione + recovery_codes_regenerated: Codici di ricuperazione ricreati + recovery_instructions_html: Pudete fà usu di i codici quì sottu per sempre avè accessu à u vostru contu s’ellu hè statu persu u vostru telefuninu. Guardateli in una piazza sicura. Per esempiu, stampati è cunservati cù altri ducumenti impurtanti. + setup: Installà + wrong_code: U codice ùn hè micca currettu! Site sicuru che l’ora di u telefuninu è di u servore sò esatte? + user_mailer: + backup_ready: + explanation: Avete dumandatu un’archiviu cumpletu di u vostru contu Mastodon. Avà hè prontu per scaricà! + subject: U vostru archiviu hè prontu à scaricà + title: Archiviu prontu + welcome: + edit_profile_action: Cunfigurazione di u prufile + edit_profile_step: Pudete persunalizà u vostru prufile cù un ritrattu di prufile o di cuprendula, un nome pubblicu persunalizatu, etc. Pudete ancu rende u contu privatu per duvè cunfirmà ogni dumanda d’abbunamentu. + explanation: Eccu alcune idee per principià + final_action: Principià à pustà + final_step: 'Andemu! Ancu senza abbunati i vostri missaghji pubblichi puderanu esse visti da altre persone, per esempiu nant’a linea lucale è l’hashtag. Pudete ancu prisintavi nant’à u hashtag #introductions!' + full_handle: U vostru identificatore cumplettu + full_handle_hint: Quessu ghjè cio chì direte à i vostri amichi per circavi, abbunassi à u vostru contu da altrò, o mandà missaghji. + review_preferences_action: Mudificà e priferenze + review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati. + subject: Benvenutu·a nant’à Mastodon + tip_bridge_html: S’è voi venite di Twitter, pudete truvà i vostri amichi da quallà chì sò nant’à Mastodon cù a bridge app. Mà ùn marchja chè s’elli l’anu ancu usata! + tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza. + tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche. + tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. + tip_mobile_webapp: Pudete aghjunghje Mastodon à a pagina d’accolta di u vostru navigatore di telefuninu per riceve nutificazione, cum’un applicazione. + tips: Cunsiglii + title: Benvenutu·a, %{name}! + users: + invalid_email: L’indirizzu e-mail ùn hè currettu. + invalid_otp_token: U codice d’identificazione ùn hè currettu. + seamless_external_login: Site cunnettatu·a dapoi un serviziu esternu, allora i parametri di chjave d’accessu è d’indirizzu e-mail ùn so micca dispunibili. + signed_in_as: 'Cunnettatu·a cum’è:' diff --git a/config/locales/de.yml b/config/locales/de.yml index 5fdcb1900f..751f337188 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -53,9 +53,7 @@ de: unfollow: Entfolgen admin: account_moderation_notes: - account: Moderator*in create: Erstellen - created_at: Datum created_msg: Moderationsnotiz erfolgreich erstellt! delete: Löschen destroyed_msg: Moderationsnotiz erfolgreich gelöscht! @@ -72,6 +70,7 @@ de: title: E-Mail-Adresse für %{username} ändern confirm: Bestätigen confirmed: Bestätigt + confirming: Bestätigung demote: Degradieren disable: Ausschalten disable_two_factor_authentication: 2FA abschalten @@ -80,6 +79,7 @@ de: domain: Domain edit: Bearbeiten email: E-Mail + email_status: E-Mail-Status enable: Freischalten enabled: Freigegeben feed_url: Feed-URL @@ -118,6 +118,10 @@ de: push_subscription_expires: PuSH-Abonnement läuft aus redownload: Avatar neu laden remove_avatar: Profilbild entfernen + resend_confirmation: + already_confirmed: Dieser Benutzer wurde bereits bestätigt + send: Bestätigungsmail erneut senden + success: Bestätigungs-E-Mail erfolgreich gesendet! reset: Zurücksetzen reset_password: Passwort zurücksetzen resubscribe: Wieder abonnieren @@ -269,7 +273,6 @@ de: comment: none: Kein created_at: Gemeldet - delete: Löschen id: ID mark_as_resolved: Als gelöst markieren mark_as_unresolved: Als ungelöst markieren @@ -279,9 +282,6 @@ de: create_and_unresolve: Mit Kommentar wieder öffnen delete: Löschen placeholder: Beschreibe, welche Maßnahmen ergriffen wurden oder andere Neuigkeiten zu dieser Meldung… - nsfw: - 'false': Medienanhänge wieder anzeigen - 'true': Medienanhänge verbergen reopen: Meldung wieder öffnen report: 'Meldung #%{id}' report_contents: Inhalt @@ -356,11 +356,8 @@ de: delete: Löschen nsfw_off: Als nicht heikel markieren nsfw_on: Als heikel markieren - execute: Ausführen failed_to_execute: Ausführen fehlgeschlagen media: - hide: Medien verbergen - show: Medien anzeigen title: Medien no_media: Keine Medien title: Beiträge des Kontos diff --git a/config/locales/devise.co.yml b/config/locales/devise.co.yml new file mode 100644 index 0000000000..d5bb708876 --- /dev/null +++ b/config/locales/devise.co.yml @@ -0,0 +1,82 @@ +--- +co: + devise: + confirmations: + confirmed: U vostru indirizzu email hè statu cunfirmatu. + send_instructions: Avete da riceve un’email cù l’istruzzione di cunfirmazione in qualchì minuta. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda. + send_paranoid_instructions: S’ellu esiste u vostru indirizzu email in a database, avete da riceve l’istruzzione pè cunfirmà u vostru contu in qualchì minuta. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda. + failure: + already_authenticated: Site digià cunnettatu·a. + inactive: U vostru contu ùn hè ancu attivatu. + invalid: L’ %{authentication_keys} o a chjave d’accessu ùn sò curretti. + last_attempt: Avete un’ultimu tintativu nanzu chì u vostru contu sia chjosu. + locked: U vostru contu hè chjosu. + not_found_in_database: L’ %{authentication_keys} o a chjave d’accessu ùn sò curretti. + timeout: A vostra sezzione hè spirata. Ricunnettatevi pè cuntinuà. + unauthenticated: Cunnettatevi o arregistratevi pè cuntinuà. + unconfirmed: Duvete cunfirmà u vostru contu pè cuntinuà. + mailer: + confirmation_instructions: + action: Verificà l’indirizzu email + explanation: Avete creatu un contu nant’à %{host} cù st’indirizzu email. Pudete attivallu cù un clic, o ignurà quessu missaghji s’ellu un era micca voi. + extra_html: Pensate à leghje e regule di l’istanza è i termini d’usu. + subject: 'Mastodon: Istruzzione di cunfirmazione per %{instance}' + title: Verificà l’indirizzu email + email_changed: + explanation: 'L’indirizzu email di u vostru contu hè stata cambiata per:' + extra: S’ellu un era micca voi ch’avete cambiatu u vostru email, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di l’istanza s’ellu ùn hè più pussibule di cunnettavi. + subject: 'Mastodon: Email cambiatu' + title: Novu indirizzu email + password_change: + explanation: A chjave d’accessu per u vostru contu hè stata cambiata. + extra: S’ellu un era micca voi ch’avete cambiatu a vostra chjave d’accessu, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di l’istanza s’ellu ùn hè più pussibule di cunnettavi. + subject: 'Mastodon: Chjave d’accessu cambiata' + title: Chjave cambiata + reconfirmation_instructions: + explanation: Cunfirmà u novu indirizzu per cambià l’email. + extra: S’ellu ùn era micca voi, ignurate stu missaghju. L’email ùn cambiarà micca s’è voi ùn cliccate micca u ligame. + subject: 'Mastodon: Cunfirmà l’email per %{instance}' + title: Verificà indirizzu email + reset_password_instructions: + action: Cambià a chjave d’accessu + explanation: Avete dumandatu una nova chjave d’accessu per u vostru contu. + extra: S’ellu ùn era micca voi, ignurate stu missaghju. A chjave d’accessu ùn cambiarà micca s’è voi ùn cliccate micca u ligame. + subject: 'Mastodon: Cambià a chjave d’accessu' + title: Cambià a chjave + unlock_instructions: + subject: 'Mastodon: Riapre u contu' + omniauth_callbacks: + failure: Ùn pudemu micca cunnettavi da %{kind} perchè "%{reason}". + success: Vi site cunnettatu·a da %{kind}. + passwords: + no_token: Ùn pudete micca vede sta pagina senza vene d’un e-mail di cambiamentu di chjave d’accessu. S’è voi venite quì dapoi st’e-mail, assicuratevi ch’avete utilizatu l’indirizzu URL cumpletu. + send_instructions: Avete da riceve l’istruzzione di cambiamentu di a chjave d’accessu in qualchì minuta. + send_paranoid_instructions: S’ellu esiste u vostr’e-mail in a database, avete da riceve un ligame di reinizialisazione. + updated: A vostra chjave d’accessu hè stata cambiata, è site cunnettatu·a. + updated_not_active: A vostra chjave d’accessu hè stata cambiata. + registrations: + destroyed: U vostru contu hè statu sguassatu. Avvedeci! + signed_up: Benvinutu! Site cunnettatu·a. + signed_up_but_inactive: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu deve esse attivatu. + signed_up_but_locked: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu hè chjosu. + signed_up_but_unconfirmed: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostru indirizzu e-mail. Aprite stu ligame pè attivà u vostru contu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda. + update_needs_confirmation: U vostru contu hè statu messu à ghjornu mà duvemu verificà u vostru novu e-mail. Un missaghju cù un ligame di cunfirmazione hè statu mandatu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda. + updated: U vostru contu hè statu messu à ghjornu. + sessions: + already_signed_out: Scunnettatu·a. + signed_in: Cunnettatu·a. + signed_out: Scunnettatu·a. + unlocks: + send_instructions: Avete da riceve un’e-mail cù l’istruzzione pè riapre u vostru contu in qualchì minuta. + send_paranoid_instructions: S’ellu esiste u vostru contu, avete da riceve un’e-mail dù l’istruzzione pè riapre u vostru contu. + unlocked: U vostru contu hè statu riapertu, pudete cunnettavi pè cuntinuà. + errors: + messages: + already_confirmed: hè digià cunfirmatu, pudete pruvà à cunnettà vi + confirmation_period_expired: deve esse cunfirmatu nanz’à %{period}, duvete fà un’altra dumanda + expired: hè spiratu, duvete fà un’altra dumanda + not_found: ùn hè micca statu trovu + not_locked: ùn era micca chjosu + not_saved: + one: Un prublemu hà impeditu a cunservazione di stu (sta) %{resource} + other: "%{count} prublemi anu impeditu a cunservazione di stu (sta) %{resource} :" diff --git a/config/locales/doorkeeper.co.yml b/config/locales/doorkeeper.co.yml new file mode 100644 index 0000000000..01b082e401 --- /dev/null +++ b/config/locales/doorkeeper.co.yml @@ -0,0 +1,119 @@ +--- +co: + activerecord: + attributes: + doorkeeper/application: + name: Nome di l’applicazione + redirect_uri: URI di ridirezzione + scopes: Scopi + website: Situ di l’applicazione + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: ùn pò cuntene un pezzu. + invalid_uri: duve esse un’URI curretta. + relative_uri: duve esse un’URI assoluta. + secured_uri: duve esse un’URL HTTPS/SSL. + doorkeeper: + applications: + buttons: + authorize: Appruvà + cancel: Sguassà + destroy: Strughje + edit: Mudificà + submit: Mandà + confirmations: + destroy: Site sicuru·a? + edit: + title: Mudificà l’applicazione + form: + error: Uups! V’invitemu à verificà u vostru formulariu per vede s’elli ùn ci sò sbaglii. + help: + native_redirect_uri: Utilizate %{native_redirect_uri} pè e prove lucale + redirect_uri: Utilizzate una linea per ogni URI + scopes: Separate i scopi cù spazii. Lasciate viotu per utilizzà i scopi predefiniti. + index: + application: Applicazione + callback_url: URL di richjama + delete: Toglie + name: Nome + new: Applicazione nova + scopes: Scopi + show: Vede + title: E vostre applicazione + new: + title: Applicazione nova + show: + actions: Azzioni + application_id: Chjave di u clientu + callback_urls: URL di richjama + scopes: Scopi + secret: Sicretu di u clientu + title: 'Applicazione : %{name}' + authorizations: + buttons: + authorize: Appruvà + deny: Ricusà + error: + title: C’hè statu un prublemu + new: + able_to: St’applicazione puderà + prompt: Parmette %{client_name} d’utilizzà u vostru contu? + title: Permessu riquestu + show: + title: Codice d’auturizazione da cupià indè l’applicazione + authorized_applications: + buttons: + revoke: Sguassà + confirmations: + revoke: Site sicuru·a? + index: + application: Applicazione + created_at: Auturizata u + date_format: "%d-%m-%Y %H:%M:%S" + scopes: Scopi + title: E vostre applicazione auturizate + errors: + messages: + access_denied: U pruprietariu di a risorsa o u servore d’autitinficazione hà ricusatu a dumanda. + credential_flow_not_configured: U flussu di l’identificazione di u pruprietariu di a risorsa hà fiascatu perchè Doorkeeper.configure.resource_owner_from_credentials ùn hè micca cunfiguratu. + invalid_client: L’autintificazione di u cliente hà fiascatu perchè u cliente ùn hè micca cunnisciutu, l’identificazione di u cliente ùn hè cumpresa, o u modu d’identificazione ùn marchja micca. + invalid_grant: L’accunsentu d’auturizazione furnitu ùn hè currettu, hè spiratu, sguassatu, ùn và micca cù l’indirizzu di ridirezzione usatu in a dumanda d’auturizazione, o hè statu emessu per un’altru cliente. + invalid_redirect_uri: L’URI di ridirezzione ùn hè curretta. + invalid_request: Ci manca un parametru riquestu indè a dumanda, cuntene un parametru ch’ùn esiste micca, o altru sbagliu di forma. + invalid_resource_owner: L’idintificanti di u pruprietariu di a risorsa ùn sò curretti, o u pruprietariu ùn pò micca esse trovu. + invalid_scope: U scopu dumandatu ùn hè currettu, hè scunnisciutu, o altru sbagliu di forma. + invalid_token: + expired: A marca d’accessu hè spirata + revoked: A marca d’accessu hè stata rivucata + unknown: A marca d’accessu ùn hè curretta + resource_owner_authenticator_not_configured: Ùn c’hè micca pussutu ricercà u pruprietariu di a risorsa perchè Doorkeeper.configure.resource_owner_authenticator ùn hè micca cunfiguratu. + server_error: C’hè statu un prublemu cù u servore d’auturizazione. + temporarily_unavailable: U servore d’auturizazione ùn pò micca trattà a dumanda avà perchè hè sopraccaricatu o in mantenimentu. + unauthorized_client: U cliente ùn pò micca fà sta dumanda cusì. + unsupported_grant_type: Stu tippu d’accunsentu ùn marchja micca nant’à stu servore d’auturizazione. + unsupported_response_type: Sta risposta ùn marchja micca nant’à stu servore d’auturizazione. + flash: + applications: + create: + notice: Applicazione creata. + destroy: + notice: Applicazione sguassata. + update: + notice: Applicazione messa à ghjornu. + authorized_applications: + destroy: + notice: Applicazione sguassata. + layouts: + admin: + nav: + applications: Applicazione + oauth2_provider: Furnitore OAuth2 + application: + title: Auturizazione OAuth riquestata. + scopes: + follow: bluccà, sbluccà, è reghje l’abbunamenti + read: leghje l’infurmazione di u vostru contu + write: mandà missaghji per voi diff --git a/config/locales/doorkeeper.sk.yml b/config/locales/doorkeeper.sk.yml index bda26429e8..65b3b496ee 100644 --- a/config/locales/doorkeeper.sk.yml +++ b/config/locales/doorkeeper.sk.yml @@ -33,14 +33,14 @@ sk: help: native_redirect_uri: Použite %{native_redirect_uri} pre lokálne testy redirect_uri: Iba jedna URI na riadok - scopes: Rozsahy oddeľujte medzerami. Nechajte prázdne pre štandardné rozsahy. + scopes: Oprávnenia oddeľujte medzerami. Nechajte prázdne pre štandardné oprávnenia. index: application: Aplikácia callback_url: Návratová URL delete: Zmazať name: Názov new: Nová aplikácia - scopes: Rozsahy + scopes: Oprávnenia show: Ukázať title: Vaše aplikácie new: @@ -49,7 +49,7 @@ sk: actions: Akcie application_id: Kľúč klienta callback_urls: Návratové URL adresy - scopes: Rozsahy + scopes: Oprávnenia secret: Tajné slovo klienta title: 'Aplikácia: %{name}' authorizations: @@ -73,7 +73,7 @@ sk: application: Aplikácia created_at: Autorizované date_format: "%Y-%m-%d %H:%M:%S" - scopes: Rozsahy + scopes: Oprávnenia title: Vaše autorizované aplikácie errors: messages: diff --git a/config/locales/el.yml b/config/locales/el.yml index 8741635e1d..da2b7a64a8 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1,12 +1,15 @@ --- el: about: + about_hashtag_html: Αυτά είναι δημόσια τουτ σημειωμένα με #%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse. about_mastodon_html: Το Mastodon είναι ένα κοινωνικό δίκτυο που βασίζεται σε ανοιχτά δικτυακά πρωτόκολλα και ελεύθερο λογισμικό ανοιχτού κώδικα. Είναι αποκεντρωμένο όπως το e-mail. about_this: Σχετικά administered_by: 'Διαχειρίζεται από:' closed_registrations: Αυτή τη στιγμή οι εγγραφές σε αυτό τον διακομιστή είναι κλειστές. Αλλά! Μπορείς να βρεις έναν άλλο διακομιστή για να ανοίξεις λογαριασμό και να έχεις πρόσβαση από εκεί στο ίδιο ακριβώς δίκτυο. contact: Επικοινωνία contact_missing: Δεν έχει οριστεί + contact_unavailable: Μ/Δ + description_headline: Τι είναι το %{domain}; domain_count_after: άλλοι διακομιστές domain_count_before: Συνδέεται με extended_description_html: | @@ -15,9 +18,12 @@ el: features: humane_approach_body: Μαθαίνοντας από τις αποτυχίες άλλων δικτύων, το Mastodon στοχεύει να κάνει σχεδιαστικά ηθικές επιλογές για να καταπολεμήσει την κακόβουλη χρήση των κοινωνικών δικτύων. humane_approach_title: Μια πιο ανθρώπινη προσέγγιση + not_a_product_body: Το Mastodon δεν είναι εμπορικό δίκτυο. Χωρίς διαφημίσεις, χωρίς εξόρυξη δεδομένων, χωρίς φραγμένες περιοχές. Δεν έχει κεντρική αρχή. not_a_product_title: Είσαι άτομο, όχι προϊόν + real_conversation_body: Με 500 χαρακτήρες στη διάθεσή σου και υποστήριξη για λεπτομερή έλεγχο και προειδοποιήσεις πολυμέσων, μπορείς να εκφραστείς με τον τρόπο που θέλεις. real_conversation_title: Φτιαγμένο για αληθινή συζήτηση within_reach_body: Οι πολλαπλές εφαρμογές για το iOS, το Android και τις υπόλοιπες πλατφόρμες, χάρη σε ένα φιλικό προς τους προγραμματιστές οικοσύστημα API, σου επιτρέπουν να κρατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε. + within_reach_title: Πάντα προσβάσιμο generic_description: "%{domain} είναι ένας εξυπηρετητής στο δίκτυο" hosted_on: Το Mastodon φιλοξενείται στο %{domain} learn_more: Μάθε περισσότερα @@ -26,6 +32,7 @@ el: status_count_after: καταστάσεις status_count_before: Ποιός συνέγραψε user_count_after: χρήστες + user_count_before: Σπίτι what_is_mastodon: Τι είναι το Mastodon; accounts: follow: Ακολούθησε @@ -38,3 +45,163 @@ el: people_who_follow: Χρήστες που ακολουθούν τον/την %{name} posts: Τουτ posts_with_replies: Τουτ και απαντήσεις + remote_follow: Απομακρυσμένη παρακολούθηση + reserved_username: Το όνομα χρήστη είναι κατειλημμένο + roles: + admin: Διαχειριστής + moderator: Μεσολαβητής + unfollow: Διακοπή παρακολούθησης + admin: + account_moderation_notes: + create: Δημιουργία + created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης! + delete: Διαγραφή + destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης! + accounts: + are_you_sure: Σίγουρα; + avatar: Αβατάρ + by_domain: Τομέας + change_email: + changed_msg: Επιτυχής αλλαγή email λογαριασμού! + current_email: Τρέχον email + label: Αλλαγή email + new_email: Νέο email + submit: Αλλαγή email + title: Αλλαγή email για %{username} + confirm: Επιβεβαίωση + confirmed: Επιβεβαιώθηκε + demote: Υποβίβαση + disable: Απενεργοποίηση + disable_two_factor_authentication: Απενεργοποίηση 2FA + disabled: Απενεργοποιημένο + display_name: Όνομα εμφάνισης + domain: Τομέας + edit: Αλλαγή + email: Email + enable: Ενεργοποίηση + enabled: Ενεργοποιημένο + feed_url: URL ροής + followers: Ακόλουθοι + followers_url: URL ακολούθων + follows: Ακολουθεί + inbox_url: URL εισερχομένων + ip: IP + location: + all: Όλα + local: Τοπικά + remote: Απομακρυσμένα + title: Τοποθεσία + login_status: Κατάσταση εισόδου + media_attachments: Συνημμένα πολυμέσα + memorialize: Μετατροπή σε νεκρολογία + moderation: + all: Όλα + silenced: Αποσιωπημένα + suspended: Σε αναστολή + title: Μεσολάβηση + moderation_notes: Σημειώσεις μεσολάβησης + most_recent_activity: Πιο πρόσφατη δραστηριότητα + most_recent_ip: Πιο πρόσφατη IP + not_subscribed: Άνευ εγγραφής + order: + alphabetic: Αλφαβητικά + most_recent: Πιο πρόσφατα + title: Ταξινόμηση + outbox_url: URL εξερχομένων + perform_full_suspension: Πλήρης αναστολή + profile_url: URL προφίλ + promote: Προβίβασε + protocol: Πρωτόκολλο + public: Δημόσιο + push_subscription_expires: Η εγγραφή PuSH λήγει + redownload: Ανανέωση αβατάρ + remove_avatar: Απομακρυσμένο αβατάρ + reset: Επαναφορά + reset_password: Επαναφορά συνθηματικού + resubscribe: Επανεγγραφή + role: Δικαιώματα + roles: + admin: Διαχειριστής + moderator: Μεσολαβητής + staff: Προσωπικό + user: Χρήστης + salmon_url: URL Salmon + search: Αναζήτηση + shared_inbox_url: URL κοινόχρηστων εισερχομένων + show: + created_reports: Αναφορές από αυτόν το λογαριασμό + report: ανάφερε + targeted_reports: Αναφορές για αυτόν το λογαριασμό + silence: Αποσιώπησε + statuses: Καταστάσεις + subscribe: Εγγραφή + title: Λογαριασμοί + unconfirmed_email: Ανεπιβεβαίωτο email + undo_silenced: Αναίρεση αποσιώπησης + undo_suspension: Αναίρεση παύσης + unsubscribe: Κατάργηση εγγραφής + username: Όνομα χρήστη + web: Διαδίκτυο + action_logs: + actions: + assigned_to_self_report: Ο/Η %{name} ανάθεσε την αναφορά %{target} στον εαυτό του/της + change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target} + confirm_user: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target} + create_custom_emoji: Ο/Η %{name} ανέβασε νέο emoji %{target} + create_domain_block: Ο/Η %{name} μπλόκαρε τον τομέα %{target} + create_email_domain_block: Ο/Η %{name} έβαλε τον τομέα email %{target} σε μαύρη λίστα + demote_user: Ο/Η %{name} υποβίβασε το χρήστη %{target} + destroy_domain_block: Ο/Η %{name} ξεμπλόκαρε τον τομέα %{target} + destroy_email_domain_block: Ο/Η %{name} έβαλε τον τομέα email %{target} σε λευκή λίστα + destroy_status: Ο/Η %{name} αφαίρεσε την κατάσταση του/της %{target} + disable_2fa_user: Ο/Η %{name} απενεργοποίησε την απαίτηση δύο παραγόντων για το χρήστη %{target} + disable_custom_emoji: Ο/Η %{name} απενεργοποίησε το emoji %{target} + disable_user: Ο/Η %{name} απενεργοποίησε την είσοδο για το χρήστη %{target} + enable_custom_emoji: Ο/Η %{name} ενεργοποίησε το emoji %{target} + enable_user: Ο/Η %{name} ενεργοποίησε την είσοδο του χρήστη %{target} + memorialize_account: Ο/Η %{name} μετέτρεψε το λογαριασμό του/της %{target} σε σελίδα νεκρολογίας + promote_user: Ο/Η %{name} προβίβασε το χρήστη %{target} + remove_avatar_user: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target} + reopen_report: Ο/Η %{name} ξανάνοιξε την αναφορά %{target} + reset_password_user: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target} + resolve_report: Ο/Η %{name} επέλυσε την αναφορά %{target} + silence_account: Ο/Η %{name} αποσιώπησε το λογαριασμό του/της %{target} + suspend_account: Ο/Η %{name} έπαυσε το λογαριασμό του/της %{target} + unassigned_report: Ο/Η %{name} αποδέσμευσε την αναφορά %{target} + unsilence_account: Ο/Η %{name} ήρε την αποσιώπηση του λογαριασμού του/της %{target} + unsuspend_account: Ο/Η %{name} ήρε την παύση του λογαριασμού του χρήστη %{target} + update_custom_emoji: Ο/Η %{name} ενημέρωσε το emoji %{target} + update_status: Ο/Η %{name} ενημέρωσε την κατάσταση του/της %{target} + title: Αρχείο ελέγχου + custom_emojis: + by_domain: Τομέας + copied_msg: Επιτυχής δημιουργία τοπικού αντίγραφου του emoji + copy: Αντιγραφή + copy_failed_msg: Αδυναμία δημιουργίας τοπικού αντίγραφου αυτού του emoji + created_msg: Επιτυχής δημιουργία του emoji! + delete: Διαγραφή + destroyed_msg: Επιτυχής καταστροφή του emojo! + disable: Απενεργοποίηση + disabled_msg: Επιτυχής απενεργοποίηση αυτού του emoji + emoji: Emoji + enable: Ενεργοποίηση + enabled_msg: Επιτυχής ενεργοποίηση αυτού του emoji + image_hint: PNG έως 50KB + listed: Αναφερθέντα + new: + title: Προσθήκη νέου προσαρμοσμένου emoji + overwrite: Αντικατάσταση + shortcode: Σύντομος κωδικός + shortcode_hint: Τουλάχιστον 2 χαρακτήρες, μόνο αλφαριθμητικοί και κάτω παύλες + title: Προσαρμοσμένα emoji + update_failed_msg: Αδυναμία ενημέρωσης του emoji + updated_msg: Επιτυχής ενημέρωση του Emoji! + upload: Ανέβασμα + domain_blocks: + add_new: Προσθήκη νέου + created_msg: Ο αποκλεισμός τομέα είναι υπό επεξεργασία + destroyed_msg: Ο αποκλεισμός τομέα άρθηκε + domain: Τομέας + new: + create: Δημιουργία αποκλεισμού + hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς. diff --git a/config/locales/en.yml b/config/locales/en.yml index 8e1b916c17..5e0992f741 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -49,13 +49,12 @@ en: reserved_username: The username is reserved roles: admin: Admin + bot: Bot moderator: Mod unfollow: Unfollow admin: account_moderation_notes: - account: Moderator - create: Create - created_at: Date + create: Leave note created_msg: Moderation note successfully created! delete: Delete destroyed_msg: Moderation note successfully destroyed! @@ -72,6 +71,7 @@ en: title: Change Email for %{username} confirm: Confirm confirmed: Confirmed + confirming: Confirming demote: Demote disable: Disable disable_two_factor_authentication: Disable 2FA @@ -80,6 +80,7 @@ en: domain: Domain edit: Edit email: E-mail + email_status: E-mail Status enable: Enable enabled: Enabled feed_url: Feed URL @@ -118,6 +119,10 @@ en: push_subscription_expires: PuSH subscription expires redownload: Refresh avatar remove_avatar: Remove avatar + resend_confirmation: + already_confirmed: This user is already confirmed + send: Resend confirmation email + success: Confirmation email successfully sent! reset: Reset reset_password: Reset password resubscribe: Resubscribe @@ -269,7 +274,6 @@ en: comment: none: None created_at: Reported - delete: Delete id: ID mark_as_resolved: Mark as resolved mark_as_unresolved: Mark as unresolved @@ -279,9 +283,6 @@ en: create_and_unresolve: Reopen with note delete: Delete placeholder: Describe what actions have been taken, or any other updates to this report… - nsfw: - 'false': Unhide media attachments - 'true': Hide media attachments reopen: Reopen report report: 'Report #%{id}' report_contents: Contents @@ -356,11 +357,8 @@ en: delete: Delete nsfw_off: Mark as not sensitive nsfw_on: Mark as sensitive - execute: Execute failed_to_execute: Failed to execute media: - hide: Hide media - show: Show media title: Media no_media: No media title: Account statuses @@ -466,7 +464,7 @@ en: archive_takeout: date: Date download: Download your archive - hint_html: You can request an archive of your toots and uploaded media. The exported data will be in ActivityPub format, readable by any compliant software. + hint_html: You can request an archive of your toots and uploaded media. The exported data will be in ActivityPub format, readable by any compliant software. You can request an archive every 7 days. in_progress: Compiling your archive... request: Request your archive size: Size @@ -844,5 +842,6 @@ en: users: invalid_email: The e-mail address is invalid invalid_otp_token: Invalid two-factor code + otp_lost_help_html: If you lost access to both, you may get in touch with %{email} seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Signed in as:' diff --git a/config/locales/eo.yml b/config/locales/eo.yml index c768d8a03d..47d591993b 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -52,9 +52,7 @@ eo: unfollow: Ne plu sekvi admin: account_moderation_notes: - account: Kontrolanto create: Krei - created_at: Dato created_msg: Kontrola noto sukcese kreita! delete: Forigi destroyed_msg: Kontrola noto sukcese detruita! @@ -63,6 +61,7 @@ eo: by_domain: Domajno confirm: Konfirmi confirmed: Konfirmita + confirming: Konfirmante demote: Degradi disable: Malebligi disable_two_factor_authentication: Malebligi 2FA @@ -71,6 +70,7 @@ eo: domain: Domajno edit: Redakti email: Retpoŝto + email_status: Retpoŝto Stato enable: Ebligi enabled: Ebligita feed_url: URL de la fluo @@ -108,6 +108,10 @@ eo: public: Publika push_subscription_expires: Eksvalidiĝo de la abono al PuSH redownload: Aktualigi profilbildon + resend_confirmation: + already_confirmed: Ĉi tiu uzanto jam estas konfirmita + send: Esend konfirmi retpoŝton + success: Konfirma retpoŝto sukcese sendis reset: Restarigi reset_password: Restarigi pasvorton resubscribe: Reaboni @@ -244,12 +248,8 @@ eo: are_you_sure: Ĉu vi certas? comment: none: Nenio - delete: Forigi id: ID mark_as_resolved: Marki kiel solvita - nsfw: - 'false': Malkaŝi aŭdovidajn kunsendaĵojn - 'true': Kaŝi aŭdovidajn kunsendaĵojn report: 'Signalo #%{id}' report_contents: Enhavo reported_account: Signalita konto @@ -320,11 +320,8 @@ eo: delete: Forigi nsfw_off: Malŝalti NSFW nsfw_on: Ŝalti NSFW - execute: Ekigi failed_to_execute: Ekigo malsukcesa media: - hide: Kaŝi aŭdovidaĵojn - show: Montri aŭdovidaĵojn title: Aŭdovidaĵoj no_media: Neniu aŭdovidaĵo title: Mesaĝoj de la konto diff --git a/config/locales/es.yml b/config/locales/es.yml index bf449bf92c..e7e4458124 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -53,9 +53,7 @@ es: unfollow: Dejar de seguir admin: account_moderation_notes: - account: Moderador create: Crear - created_at: Fecha created_msg: "¡Nota de moderación creada con éxito!" delete: Borrar destroyed_msg: "¡Nota de moderación destruida con éxito!" @@ -72,6 +70,7 @@ es: title: Cambiar el correo electrónico de %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmando demote: Degradar disable: Deshabilitar disable_two_factor_authentication: Desactivar autenticación de dos factores @@ -80,6 +79,7 @@ es: domain: Dominio edit: Editar email: E-mail + email_status: E-mail Status enable: Habilitar enabled: Habilitada feed_url: URL de notificaciones @@ -118,6 +118,10 @@ es: push_subscription_expires: Expiración de la suscripción PuSH redownload: Refrescar avatar remove_avatar: Eliminar el avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito" reset: Reiniciar reset_password: Reiniciar contraseña resubscribe: Re-suscribir @@ -269,7 +273,6 @@ es: comment: none: Ninguno created_at: Denunciado - delete: Eliminar id: ID mark_as_resolved: Marcar como resuelto mark_as_unresolved: Marcar como no resuelto @@ -279,9 +282,6 @@ es: create_and_unresolve: Reabrir con una nota delete: Eliminar placeholder: Especificar qué acciones se han tomado o cualquier otra novedad respecto a esta denuncia… - nsfw: - 'false': Mostrar multimedia - 'true': Ocultar multimedia reopen: Reabrir denuncia report: 'Reportar #%{id}' report_contents: Contenido @@ -356,11 +356,8 @@ es: delete: Eliminar nsfw_off: Marcar contenido como no sensible nsfw_on: Marcar contenido como sensible - execute: Ejecutar failed_to_execute: Falló al ejecutar media: - hide: Ocultar multimedia - show: Mostrar multimedia title: Multimedia no_media: No hay multimedia title: Estado de las cuentas @@ -376,6 +373,7 @@ es: admin_mailer: new_report: body: "%{reporter} ha reportado a %{target}" + body_remote: Alguien de %{domain} a reportado a %{target} subject: Nuevo reporte para la %{instance} (#%{id}) application_mailer: notification_preferences: Cambiar preferencias de correo electrónico diff --git a/config/locales/fa.yml b/config/locales/fa.yml index a3005547a5..5255e0e38f 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -52,9 +52,7 @@ fa: unfollow: پایان پیگیری admin: account_moderation_notes: - account: مدیر create: نوشتن - created_at: تاریخ created_msg: یادداشت مدیر با موفقیت ساخته شد! delete: پاک کردن destroyed_msg: یادداشت مدیر با موفقیت پاک شد! @@ -63,6 +61,7 @@ fa: by_domain: دامین confirm: تأیید confirmed: تأیید شد + confirming: تأیید demote: تنزلدادن disable: غیرفعال disable_two_factor_authentication: غیرفعالسازی ورود دومرحلهای @@ -71,6 +70,7 @@ fa: domain: دامین edit: ویرایش email: ایمیل + email_status: وضعیت ایمیل enable: فعال enabled: فعال feed_url: نشانی فید @@ -108,6 +108,10 @@ fa: public: عمومی push_subscription_expires: عضویت از راه PuSH منقضی شد redownload: بهروزرسانی تصویر نمایه + resend_confirmation: + already_confirmed: این کاربر قبلا تایید شده است + send: ایمیل تایید را دوباره بفرستید + success: ایمیل تایید با موفقیت ارسال شد reset: بازنشانی reset_password: بازنشانی رمز resubscribe: اشتراک دوباره @@ -244,12 +248,8 @@ fa: are_you_sure: آیا مطمئن هستید؟ comment: none: خالی - delete: پاککردن id: شناسه mark_as_resolved: علامتگذاری به عنوان حلشده - nsfw: - 'false': نمایش پیوستهای تصویری - 'true': نهفتن پیوستهای تصویری report: 'گزارش #%{id}' report_contents: محتوا reported_account: حساب گزارششده @@ -308,11 +308,8 @@ fa: delete: پاککردن nsfw_off: NSFW خاموش nsfw_on: NSFW روشن - execute: اجرا failed_to_execute: اجرا نشد media: - hide: نهفتن رسانه - show: نمایش رسانه title: رسانه no_media: بدون رسانه title: نوشتههای حساب diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 550ad1805e..fca58cc0f1 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -52,9 +52,7 @@ fi: unfollow: Lopeta seuraaminen admin: account_moderation_notes: - account: Moderaattori create: Luo - created_at: Päiväys created_msg: Moderointimerkinnän luonti onnistui! delete: Poista destroyed_msg: Moderointimerkinnän poisto onnistui! @@ -63,6 +61,7 @@ fi: by_domain: Verkko-osoite confirm: Vahvista confirmed: Vahvistettu + confirming: Vahvistavat demote: Alenna disable: Poista käytöstä disable_two_factor_authentication: Poista 2FA käytöstä @@ -71,6 +70,7 @@ fi: domain: Verkko-osoite edit: Muokkaa email: Sähköposti + email_status: Sähköpostin tila enable: Ota käyttöön enabled: Käytössä feed_url: Syötteen URL @@ -108,6 +108,10 @@ fi: public: Julkinen push_subscription_expires: PuSH-tilaus vanhenee redownload: Päivitä profiilikuva + resend_confirmation: + already_confirmed: Tämä käyttäjä on jo vahvistettu + send: Lähetä varmistusviesti uudelleen + success: Vahvistusviesti lähetettiin onnistuneesti reset: Palauta reset_password: Palauta salasana resubscribe: Tilaa uudelleen @@ -244,12 +248,8 @@ fi: are_you_sure: Oletko varma? comment: none: Ei mitään - delete: Poista id: Tunniste mark_as_resolved: Merkitse ratkaistuksi - nsfw: - 'false': Peru medialiitteiden piilotus - 'true': Piilota medialiitteet report: Raportti nro %{id} report_contents: Sisältö reported_account: Raportoitu tili @@ -320,11 +320,8 @@ fi: delete: Poista nsfw_off: NSFW POIS nsfw_on: NSFW PÄÄLLÄ - execute: Suorita failed_to_execute: Suoritus epäonnistui media: - hide: Piilota media - show: Näytä media title: Media no_media: Ei mediaa title: Tilin tilat diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 0579123dcb..e15d52f120 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -53,9 +53,7 @@ fr: unfollow: Ne plus suivre admin: account_moderation_notes: - account: Modérateur·ice create: Créer - created_at: Date created_msg: Note de modération créée avec succès ! delete: Supprimer destroyed_msg: Note de modération supprimée avec succès ! @@ -72,6 +70,7 @@ fr: title: Modifier le courriel pour %{username} confirm: Confirmer confirmed: Confirmé + confirming: Confirmant demote: Rétrograder disable: Désactiver disable_two_factor_authentication: Désactiver l’authentification à deux facteurs @@ -80,6 +79,7 @@ fr: domain: Domaine edit: Éditer email: Courriel + email_status: État de la messagerie enable: Activer enabled: Activé feed_url: URL du flux @@ -118,6 +118,10 @@ fr: push_subscription_expires: Expiration de l’abonnement PuSH redownload: Rafraîchir les avatars remove_avatar: Supprimer l'avatar + resend_confirmation: + already_confirmed: Cet utilisateur est déjà confirmé + send: Renvoyer un courriel de confirmation + success: Email de confirmation envoyé avec succès ! reset: Réinitialiser reset_password: Réinitialiser le mot de passe resubscribe: Se réabonner @@ -269,7 +273,6 @@ fr: comment: none: Aucun created_at: Signalé - delete: Supprimer id: ID mark_as_resolved: Marquer comme résolu mark_as_unresolved: Marquer comme non-résolu @@ -279,9 +282,6 @@ fr: create_and_unresolve: Ré-ouvrir avec une note delete: Effacer placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour de ce signalement… - nsfw: - 'false': Ré-afficher les médias - 'true': Masquer les médias reopen: Ré-ouvrir le signalement report: 'Signalement #%{id}' report_contents: Contenu @@ -356,11 +356,8 @@ fr: delete: Supprimer nsfw_off: Marquer comme non-sensible nsfw_on: Marquer comme sensible - execute: Exécuter failed_to_execute: Erreur d’exécution media: - hide: Masquer les médias - show: Montrer les médias title: Médias no_media: Aucun média title: État du compte diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 093fa70fe8..432da19f68 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -19,8 +19,8 @@ gl: humane_approach_body: Aprendendo dos erros de outras redes, Mastodon intenta tomar decisións éticas de deseño para loitar contra os usos incorrectos da rede. humane_approach_title: Unha aproximación máis humana not_a_product_body: Mastodon non é unha rede comercial. Sen anuncios, sen minería de datos, sen xardíns privados. Non hai autoridade centralizada. - not_a_product_title: Vostede é unha persona, non un producto - real_conversation_body: Con 500 caracteres a súa disposición e soporte para contido ao por menor e avisos sobre o contido, pode expresarse vostede do xeito que queira. + not_a_product_title: Vostede é unha persoa, non un producto + real_conversation_body: Con 500 caracteres a súa disposición, soporte para contido polo miúdo e avisos sobre o contido, pode expresarse vostede con libertade. real_conversation_title: Construído para conversacións reais within_reach_body: Existen múltiples aplicativos para iOS, Android e outras plataformas grazas a un entorno API amigable para o desenvolvedor que lle permite estar ao tanto cos seus amigos en calquer lugar. within_reach_title: Sempre en contacto @@ -53,9 +53,7 @@ gl: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Crear - created_at: Data created_msg: Nota a moderación creada con éxito! delete: Eliminar destroyed_msg: Nota a moderación destruída con éxito! @@ -72,6 +70,7 @@ gl: title: Cambiar o correo-e de %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmar demote: Degradar disable: Deshabilitar disable_two_factor_authentication: Deshabilitar 2FA @@ -80,6 +79,7 @@ gl: domain: Dominio edit: Editar email: E-mail + email_status: Estado del correo electrónico enable: Habilitar enabled: Habilitado feed_url: URL fonte @@ -118,6 +118,10 @@ gl: push_subscription_expires: A suscrición PuSH caduca redownload: Actualizar avatar remove_avatar: Eliminar avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Restablecer reset_password: Restablecer contrasinal resubscribe: Voltar a suscribir @@ -269,7 +273,6 @@ gl: comment: none: Nada created_at: Reportado - delete: Eliminar id: ID mark_as_resolved: Marcar como resolto mark_as_unresolved: Marcar como non resolto @@ -279,9 +282,6 @@ gl: create_and_unresolve: Voltar a abrir con nota delete: Eliminar placeholder: Describir qué decisións foron tomadas, ou calquer actualización a este informe… - nsfw: - 'false': Non agochar anexos de medios - 'true': Agochar anexos de medios reopen: Voltar a abrir o informe report: 'Informe #%{id}' report_contents: Contidos @@ -356,11 +356,8 @@ gl: delete: Eliminar nsfw_off: Marcar como non sensible nsfw_on: Marcar como sensible - execute: Executar failed_to_execute: Fallou a execución media: - hide: Agochar medios - show: Mostar medios title: Medios no_media: Sen medios title: Estados da conta @@ -376,6 +373,7 @@ gl: admin_mailer: new_report: body: "%{reporter} informou sobre %{target}" + body_remote: Alguén desde %{domain} informou sobre %{target} subject: Novo informe sobre %{instance} (#%{id}) application_mailer: notification_preferences: Cambiar os axustes de correo-e diff --git a/config/locales/he.yml b/config/locales/he.yml index d641c6e1a5..c127db3852 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -52,9 +52,7 @@ he: unfollow: הפסקת מעקב admin: account_moderation_notes: - account: מנחה דיון create: ליצור - created_at: תאריך created_msg: הודעת מנחה נוצרה בהצלחה! delete: למחוק destroyed_msg: הודעת מנחה נמחקה בהצלחה! @@ -63,6 +61,7 @@ he: by_domain: שם מתחם confirm: אישור confirmed: אושר + confirming: המאשר demote: הורדה בדרגה disable: לחסום disable_two_factor_authentication: ביטול הזדהות דו-שלבית @@ -71,6 +70,7 @@ he: domain: תחום edit: עריכה email: דוא"ל + email_status: סטטוס דוא"ל enable: לאפשר enabled: מאופשר feed_url: כתובת פיד @@ -108,6 +108,10 @@ he: public: פומבי push_subscription_expires: הרשמה להודעות בדחיפה פגה redownload: לקריאה מחדש של האווטאר + resend_confirmation: + already_confirmed: משתמש זה כבר אושר + send: שלח מחדש דוא"ל אימות + success: הודעת האימייל נשלחה בהצלחה! reset: איפוס reset_password: אתחול סיסמא resubscribe: להרשם מחדש @@ -181,12 +185,8 @@ he: are_you_sure: 100% על בטוח? comment: none: ללא - delete: מחיקה id: ID mark_as_resolved: סימון כפתור - nsfw: - 'false': לכל המשפחה - 'true': תוכן רגיש report: 'דווח על #%{id}' report_contents: תוכן reported_account: חשבון מדווח diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 7fe431d377..0cd0021c16 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -52,9 +52,7 @@ hu: unfollow: Követés abbahagyása admin: account_moderation_notes: - account: Moderátor create: Új bejegyzés - created_at: Dátum created_msg: Moderációs bejegyzés létrehozva! delete: Törlés destroyed_msg: Moderációs bejegyzés törölve! @@ -63,6 +61,7 @@ hu: by_domain: Domain confirm: Megerősítés confirmed: Megerősítve + confirming: Megerősítve demote: Lefokozás disable: Kikapcsolás disable_two_factor_authentication: Kétlépcsős azonosítás kikapcsolása @@ -71,6 +70,7 @@ hu: domain: Domain edit: Szerkesztés email: E-mail + email_status: E-mail állapot enable: Engedélyezés enabled: Engedélyezve feed_url: Hírcsatorna URL @@ -108,6 +108,10 @@ hu: public: Nyilvános push_subscription_expires: A PuSH feliratkozás elévül redownload: Profilkép frissítése + resend_confirmation: + already_confirmed: Ezt a felhasználót már megerősítették + send: Küldd újra a megerősítő email-t + success: A megerősítő e-mail sikeresen elküldve! reset: Visszaállítás reset_password: Jelszó visszaállítása resubscribe: Feliratkozás ismét @@ -244,12 +248,8 @@ hu: are_you_sure: Biztos vagy benne? comment: none: Egyik sem - delete: Törlés id: ID mark_as_resolved: Megjelölés megoldottként - nsfw: - 'false': Média-csatolmányok rejtésének feloldása - 'true': Média-csatolmányok elrejtése report: "#%{id} számú jelentés" report_contents: Tartalom reported_account: Bejelentett fiók @@ -314,11 +314,8 @@ hu: delete: Törlés nsfw_off: Szenzitív tartalom kikapcsolva nsfw_on: Szenzitív tartalom bekapcsolva - execute: Végrehajt failed_to_execute: Végrehajtás sikertelen media: - hide: Média elrejtése - show: Média megjelenítése title: Média no_media: Nem található médiafájl title: Felhasználó tülkjei diff --git a/config/locales/id.yml b/config/locales/id.yml index 5a63b8038a..4fb75f2b0e 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -29,10 +29,12 @@ id: are_you_sure: Anda yakin? confirm: Konfirmasi confirmed: Dikonfirmasi + confirming: Mengkonfirmasi display_name: Nama domain: Domain edit: Ubah email: E-mail + email_status: Status Email feed_url: URL Feed followers: Pengikut follows: Mengikut @@ -58,6 +60,10 @@ id: profile_url: URL profil public: Publik push_subscription_expires: Langganan PuSH telah kadaluarsa + resend_confirmation: + already_confirmed: Pengguna ini sudah dikonfirmasi + send: Kirim ulang email konfirmasi + success: Email konfirmasi berhasil dikirim! reset_password: Reset kata sandi salmon_url: URL Salmon show: @@ -107,7 +113,6 @@ id: reports: comment: none: Tidak ada - delete: Hapus id: ID mark_as_resolved: Tandai telah diseleseikan report: 'Laporkan #%{id}' diff --git a/config/locales/io.yml b/config/locales/io.yml index 7c25acc47a..bf15de4886 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -106,7 +106,6 @@ io: reports: comment: none: None - delete: Delete id: ID mark_as_resolved: Mark as resolved report: 'Report #%{id}' diff --git a/config/locales/it.yml b/config/locales/it.yml index 0518d20e61..b53645c9fd 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -49,9 +49,7 @@ it: unfollow: Non seguire più admin: account_moderation_notes: - account: Moderatore create: Crea - created_at: Data created_msg: Nota di moderazione creata con successo! delete: Elimina destroyed_msg: Nota di moderazione distrutta con successo! @@ -68,6 +66,7 @@ it: title: Cambia email per %{username} confirm: Conferma confirmed: Confermato + confirming: Confermando demote: Declassa disable: Disabilita disable_two_factor_authentication: Disabilita 2FA @@ -76,6 +75,7 @@ it: domain: Dominio edit: Modifica email: Email + email_status: Stato email enable: Abilita enabled: Abilitato feed_url: URL Feed @@ -113,6 +113,10 @@ it: public: Pubblico redownload: Aggiorna avatar remove_avatar: Rimuovi avatar + resend_confirmation: + already_confirmed: Questo utente è già confermato + send: Reinvia email di conferma + success: Email di conferma inviata con successo! reset: Reimposta reset_password: Reimposta password resubscribe: Riscriversi @@ -135,10 +139,21 @@ it: web: Web action_logs: actions: - change_email_user: "%{name} ha cambiato l'indirizzo e-mail per l'utente %{target}" + change_email_user: "%{name} ha cambiato l'indirizzo email per l'utente %{target}" confirm_user: "%{name} ha confermato l'indirizzo email per l'utente %{target}" create_custom_emoji: "%{name} ha caricato un nuovo emoji %{target}" create_domain_block: "%{name} ha bloccato il dominio %{target}" + disable_custom_emoji: "%{name} ha disabilitato l'emoji %{target}" + disable_user: "%{name} ha disabilitato il login per l'utente %{target}" + enable_custom_emoji: "%{name} ha abilitato l'emoji %{target}" + enable_user: "%{name} ha abilitato il login per l'utente %{target}" + remove_avatar_user: "%{name} ha eliminato l'avatar di %{target}" + reset_password_user: "%{name} ha reimpostato la password dell'utente %{target}" + silence_account: "%{name} ha silenziato l'account di %{target}" + suspend_account: "%{name} ha sospeso l'account di %{target}" + unsilence_account: "%{name} ha de-silenziato l'account di %{target}" + unsuspend_account: "%{name} ha annullato la sospensione dell'account di %{target}" + update_custom_emoji: "%{name} ha aggiornato l'emoji %{target}" custom_emojis: by_domain: Dominio copied_msg: Creata con successo una copia locale dell'emoji @@ -152,12 +167,13 @@ it: emoji: Emoji enable: Abilita enabled_msg: Questa emoji è stata abilitata con successo - image_hint: PNG fino a 50KB + image_hint: PNG fino a 50 KB listed: Elencato new: title: Aggiungi nuovo emoji personalizzato overwrite: Sovrascrivi shortcode: Shortcode + shortcode_hint: Almeno due caratteri, solo caratteri alfanumerici e trattino basso title: Emoji personalizzate unlisted: Non elencato update_failed_msg: Impossibile aggiornare questa emojii @@ -181,14 +197,21 @@ it: suspend: Sospendi severity: Severità show: + affected_accounts: + one: Interessato un solo account nel database + other: Interessati %{count} account nel database + retroactive: + silence: De-silenzia tutti gli account esistenti da questo dominio + suspend: Annulla la sospensione di tutti gli account esistenti da questo dominio + title: Annulla il blocco del dominio per %{domain} undo: Annulla title: Blocchi dominio undo: Annulla email_domain_blocks: add_new: Aggiungi nuovo - created_msg: Dominio e-mail aggiunto con successo alla lista nera + created_msg: Dominio email aggiunto con successo alla lista nera delete: Elimina - destroyed_msg: Dominio e-mail cancellato con successo dalla lista nera + destroyed_msg: Dominio email cancellato con successo dalla lista nera domain: Dominio new: create: Aggiungi dominio @@ -214,7 +237,6 @@ it: assigned: Moderatore assegnato comment: none: Nessuno - delete: Elimina id: ID mark_as_resolved: Segna come risolto mark_as_unresolved: Segna come non risolto @@ -223,9 +245,6 @@ it: create_and_resolve: Risolvi con nota create_and_unresolve: Riapri con nota delete: Elimina - nsfw: - 'false': Mostra gli allegati multimediali - 'true': Nascondi allegati multimediali report_contents: Contenuti resolved: Risolto silence_account: Silenzia account @@ -238,12 +257,19 @@ it: view: Mostra settings: activity_api_enabled: + desc_html: Conteggi degli status pubblicati localmente, degli utenti attivi e delle nuove registrazioni in gruppi settimanali title: Pubblica statistiche aggregate circa l'attività dell'utente + bootstrap_timeline_accounts: + title: Seguiti predefiniti per i nuovi utenti contact_information: username: Nome utente del contatto peers_api_enabled: + desc_html: Nomi di dominio che questa istanza ha incontrato nella fediverse title: Pubblica elenco di istanze scoperte registrations: + closed_message: + desc_html: Mostrato nella pagina iniziale quando le registrazioni sono chiuse. Puoi usare tag HTML + title: Messaggio per registrazioni chiuse deletion: desc_html: Consenti a chiunque di cancellare il proprio account title: Apri la cancellazione dell'account @@ -251,6 +277,9 @@ it: disabled: Nessuno open: desc_html: Consenti a chiunque di creare un account + title: Apri registrazioni + show_known_fediverse_at_about_page: + desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali. show_staff_badge: title: Mostra badge staff site_description: @@ -262,17 +291,16 @@ it: title: Anteprima timeline title: Impostazioni sito statuses: + back_to_account: Torna alla pagina dell'account batch: delete: Elimina nsfw_off: NSFW OFF nsfw_on: NSFW ON - execute: Esegui failed_to_execute: Impossibile eseguire media: - hide: Nascondi media - show: Mostra media title: Media no_media: Nessun media + title: Gli status dell'account with_media: con media subscriptions: callback_url: URL Callback @@ -283,7 +311,7 @@ it: application_mailer: notification_preferences: Cambia preferenze email salutation: "%{name}," - settings: 'Cambia le impostazioni per le e-mail: %{link}' + settings: 'Cambia le impostazioni per le email: %{link}' view: 'Guarda:' view_profile: Mostra profilo view_status: Mostra stati @@ -291,16 +319,23 @@ it: created: Applicazione creata con successo destroyed: Applicazione eliminata con successo invalid_url: L'URL fornito non è valido + regenerate_token: Rigenera token di accesso + token_regenerated: Token di accesso rigenerato + warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro! auth: + agreement_html: Iscrivendoti, accetti di seguire le regole dell'istanza e le nostre condizioni di servizio. change_password: Password confirm_email: Conferma email delete_account: Elimina account + delete_account_html: Se desideri cancellare il tuo account, puoi farlo qui. Ti sarà chiesta conferma. didnt_get_confirmation: Non hai ricevuto le istruzioni di conferma? forgot_password: Hai dimenticato la tua password? login: Entra logout: Logout migrate_account: Sposta ad un account differente + migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi configurarlo qui. or: o + or_log_in_with: Oppure accedi con register: Iscriviti register_elsewhere: Iscriviti su un altro server resend_confirmation: Invia di nuovo le istruzioni di conferma @@ -311,6 +346,11 @@ it: already_following: Stai già seguendo questo account error: Sfortunatamente c'è stato un errore nel consultare l'account remoto follow: Segui + follow_request: 'Hai mandato una richiesta di diventare seguace a:' + following: 'Accettato! Ora stai seguendo:' + post_follow: + close: Oppure puoi chiudere questa finestra. + return: Torna al profilo dell'utente title: Segui %{acct} datetime: distance_in_words: @@ -326,11 +366,41 @@ it: x_minutes: "%{count} minuti" x_months: "%{count} mesi" x_seconds: "%{count} secondi" + deletes: + bad_password_msg: Ci avete provato, hacker! Password errata + confirm_password: Inserisci la tua password attuale per verificare la tua identità + description_html: Questa azione eliminerà in modo permanente e irreversibile tutto il contenuto del tuo account e lo disattiverà. Il tuo nome utente resterà riservato per prevenire che qualcuno in futuro assuma la tua identità. + proceed: Cancella l'account + success_msg: Il tuo account è stato cancellato + warning_html: È garantita solo la cancellazione del contenuto solo da questa istanza. I contenuti che sono stati ampiamente condivisi probabilmente lasceranno delle tracce. I server offline e quelli che non ricevono più i tuoi aggiornamenti non aggiorneranno i loro database. + errors: + '403': Non sei autorizzato a visualizzare questa pagina. + '404': La pagina che stavi cercando non esiste. + '410': La pagina che stavi cercando non esiste più. + '422': + content: Verifica di sicurezza non riuscita. Stai bloccando i cookies? + title: Verifica di sicurezza non riuscita + noscript_html: Per usare l'interfaccia web di Mastodon dovi abilitare JavaScript. In alternativa puoi provare una delle app native per Mastodon per la tua piattaforma. exports: + archive_takeout: + date: Data + download: Scarica il tuo archivio + hint_html: Puoi richiedere un archivio dei tuoi toot e media caricati. I dati esportati sono in formato ActivityPub, leggibili da qualunque software che segue questo standard. + in_progress: Creazione archivio... + request: Richiedi il tuo archivio + size: Dimensioni blocks: Stai bloccando csv: CSV follows: Stai seguendo + mutes: Stai silenziando storage: Archiviazione media + followers: + domain: Dominio + explanation_html: Se vuoi garantire la privacy dei tuoi status, devi sapere chi ti sta seguendo. I tuoi status privati vengono inviati a tutte le istanze su cui hai dei seguaci. Puoi controllare chi sono i tuoi seguaci, ed eliminarli se non hai fiducia che la tua privacy venga rispettata dallo staff o dal software di quelle istanze. + followers_count: Numero di seguaci + purge: Elimina dai seguaci + true_privacy_html: Tieni presente che l'effettiva riservatezza si può ottenere solo con la crittografia end-to-end. + unlocked_warning_html: Chiunque può seguirti per vedere immediatamente i tuoi status privati. %{lock_link} per poter esaminare e respingere gli utenti che vogliono seguirti. generic: changes_saved_msg: Modifiche effettuate con successo! powered_by: offerto da %{link} @@ -344,38 +414,76 @@ it: types: blocking: Lista dei bloccati following: Lista dei seguaci + muting: Lista dei silenziati upload: Carica + in_memoriam_html: In Memoriam. + invites: + delete: Disattiva + expired: Scaduto + expires_in: + '1800': 30 minuti + '21600': 6 ore + '3600': 1 ora + '43200': 12 ore + '604800': 1 settimana + '86400': 1 giorno + expires_in_prompt: Mai + generate: Genera + max_uses_prompt: Nessun limite + prompt: Genera dei link e forniscili ad altri per concedere l'accesso a questa istanza + table: + expires_at: Scade + title: Invita persone landing_strip_html: "%{name} è un utente su %{link_to_root_path}. Puoi seguirlo o interagire con lui se possiedi un account ovunque nel fediverse." landing_strip_signup_html: Se non possiedi un account, puoi iscriverti qui. + lists: + errors: + limit: Hai raggiunto il numero massimo di liste media_attachments: validations: images_and_video: Impossibile allegare video a un post che contiene già immagini too_many: Impossibile allegare più di 4 file + migrations: + acct: utente@dominio del nuovo account + currently_redirecting: 'Il tuo profilo sarà ridirezionato a:' + proceed: Salva + updated_msg: L'impostazione per la migrazione dell'account è sta aggiornata! + moderation: + title: Moderazione notification_mailer: digest: + action: Vedi tutte le notifiche body: 'Ecco un breve riassunto di quello che ti sei perso su %{instance} dalla tua ultima visita del %{since}:' mention: "%{name} ti ha menzionato:" new_followers_summary: - one: Hai ricevuto un nuovo seguace! Urrà! - other: Hai ricevuto %{count} nuovi seguaci! Incredibile! + one: E inoltre hai ricevuto un nuovo seguace mentre eri assente! Urrà! + other: Inoltre, hai acquisito %{count} nuovi seguaci mentre eri assente! Incredibile! subject: one: "1 nuova notifica dalla tua ultima visita \U0001F418" other: "%{count} nuove notifiche dalla tua ultima visita \U0001F418" + title: In tua assenza… favourite: body: 'Il tuo status è stato apprezzato da %{name}:' subject: "%{name} ha apprezzato il tuo status" + title: Nuovo preferito follow: body: "%{name} ti sta seguendo!" subject: "%{name} ti sta seguendo" + title: Nuovo seguace follow_request: + action: Gestisci richieste di essere seguito body: "%{name} ha chiesto di seguirti" subject: 'Seguace in sospeso: %{name}' + title: Nuova richiesta di essere seguito mention: + action: Rispondi body: 'Sei stato menzionato da %{name} su:' subject: Sei stato menzionato da %{name} + title: Nuova menzione reblog: body: 'Il tuo status è stato condiviso da %{name}:' subject: "%{name} ha condiviso il tuo status" + title: Nuova condivisione number: human: decimal_units: @@ -388,35 +496,82 @@ it: trillion: T unit: '' pagination: + newer: Più recente next: Avanti + older: Più vecchio prev: Indietro truncate: "…" + preferences: + languages: Lingue + other: Altro + publishing: Pubblicazione + web: Web + push_notifications: + favourite: + title: "%{name} ha segnato il tuo status come apprezzato" + follow: + title: "%{name} ha iniziato a seguirti" + group: + title: "%{count} notifiche" + mention: + action_expand: Mostra altro + action_favourite: Apprezzato + reblog: + title: "%{name} ha condiviso il tuo status" remote_follow: acct: Inserisci il tuo username@dominio da cui vuoi seguire questo utente missing_resource: Impossibile trovare l'URL di reindirizzamento richiesto per il tuo account proceed: Conferma prompt: 'Stai per seguire:' + remote_unfollow: + error: Errore + title: Titolo + sessions: + browser: Browser + browsers: + blackberry: Blackberry + current_session: Sessione corrente + description: "%{browser} su %{platform}" + platforms: + other: piattaforma sconosciuta settings: authorized_apps: Applicazioni autorizzate back: Torna a Mastodon + delete: Cancellazione account + development: Sviluppo edit_profile: Modifica profilo export: Esporta impostazioni + followers: Seguaci autorizzati import: Importa + migrate: Migrazione dell'account + notifications: Notifiche preferences: Preferenze settings: Impostazioni - two_factor_authentication: Autenticazione a Due Fattori + two_factor_authentication: Autenticazione a due fattori + your_apps: Le tue applicazioni statuses: open_in_web: Apri sul Web over_character_limit: Limite caratteri superato di %{max} + pin_errors: + limit: Hai già fissato in cima il massimo numero di toot + ownership: Non puoi fissare in cima un toot di qualcun altro + private: Un toot non pubblico non può essere fissato in cima + reblog: Un toot condiviso non può essere fissato in cima show_more: Mostra di più visibilities: private: Mostra solo ai tuoi seguaci + private_long: Mostra solo ai seguaci public: Pubblico + public_long: Tutti lo possono vedere unlisted: Pubblico, ma non visibile sulla timeline pubblica + unlisted_long: Tutti lo possono vedere, ma non compare nelle timeline pubbliche stream_entries: click_to_show: Clicca per mostrare + pinned: Toot fissato in cima reblogged: condiviso sensitive_content: Materiale sensibile + themes: + contrast: Contrasto elevato time: formats: default: "%b %d, %Y, %H:%M" @@ -425,15 +580,39 @@ it: description_html: Se abiliti l'autorizzazione a due fattori, entrare nel tuo account ti richiederà di avere vicino il tuo telefono, il quale ti genererà un codice per eseguire l'accesso. disable: Disabilita enable: Abilita + enabled: È abilitata l'autenticazione a due fattori enabled_success: Autenticazione a due fattori attivata con successo + generate_recovery_codes: Genera codici di recupero instructions_html: "Scannerizza questo QR code con Google Authenticator o un'app TOTP simile sul tuo telefono. Da ora in poi, quell'applicazione genererà codici da inserire necessariamente per eseguire l'accesso." + lost_recovery_codes: I codici di recupero ti permettono di accedere al tuo account se perdi il telefono. Se hai perso i tuoi codici di recupero, puoi rigenerarli qui. Quelli vecchi saranno annullati. manual_instructions: 'Se non puoi scannerizzare il QR code e hai bisogno di inserirlo manualmente, questo è il codice segreto in chiaro:' + recovery_codes_regenerated: I codici di recupero sono stati rigenerati + recovery_instructions_html: Se perdi il telefono, puoi usare uno dei codici di recupero qui sotto per riottenere l'accesso al tuo account. Conserva i codici di recupero in un posto sicuro. Ad esempio puoi stamparli e conservarli insieme ad altri documenti importanti. setup: Configura wrong_code: Il codice inserito non è corretto! Assicurati che l'orario del server e l'orario del telefono siano corretti. user_mailer: + backup_ready: + explanation: Hai richiesto un backup completo del tuo account Mastodon. È pronto per essere scaricato! + subject: Il tuo archivio è pronto per essere scaricato + title: Esportazione archivio welcome: + edit_profile_step: Puoi personalizzare il tuo profilo caricando un avatar, un'intestazione, modificando il tuo nome visualizzato e così via. Se vuoi controllare i tuoi nuovi seguaci prima di autorizzarli a seguirti, puoi bloccare il tuo account. + explanation: Ecco alcuni suggerimenti per iniziare + final_action: Inizia a postare + final_step: 'Inizia a postare! Anche se non hai seguaci, i tuoi messaggi pubblici possono essere visti da altri, ad esempio nelle timeline locali e negli hashtag. Se vuoi puoi presentarti con l''hashtag #introductions.' + full_handle: Il tuo nome utente completo + full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un'altra istanza. + review_preferences_action: Cambia preferenze + review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF. + subject: Benvenuto/a su Mastodon + tip_bridge_html: Se vieni da Twitter, puoi trovare i tuoi amici su Mastodon usando laapp bridge. Ma funziona solo se anche loro la usano! + tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa. + tip_following: Per impostazione predefinita, segui l'amministratore/i del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata. + tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini! + tip_mobile_webapp: Se il tuo browser mobile ti dà la possibilità di aggiungere Mastodon allo schermo, puoi ricevere le notifiche. Funziona un po' come un'app natova! tips: Suggerimenti title: Benvenuto a bordo, %{name}! users: - invalid_email: L'indirizzo e-mail inserito non è valido + invalid_email: L'indirizzo email inserito non è valido invalid_otp_token: Codice d'accesso non valido + seamless_external_login: Ti sei collegato per mezzo di un servizio esterno, quindi le impostazioni di email e password non sono disponibili. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index be9e2da2c2..9186d45785 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -53,9 +53,7 @@ ja: unfollow: フォロー解除 admin: account_moderation_notes: - account: モデレータ create: 書き込む - created_at: 日付 created_msg: モデレーションメモを書き込みました! delete: 削除 destroyed_msg: モデレーションメモを削除しました! @@ -72,6 +70,7 @@ ja: title: "%{username} さんのメールアドレスを変更" confirm: 確認 confirmed: 確認済み + confirming: 確認中 demote: 降格 disable: 無効化 disable_two_factor_authentication: 二段階認証を無効にする @@ -80,6 +79,7 @@ ja: domain: ドメイン edit: 編集 email: メールアドレス + email_status: メールアドレスの状態 enable: 有効化 enabled: 有効 feed_url: フィードURL @@ -118,6 +118,10 @@ ja: push_subscription_expires: PuSH購読期限 redownload: アバターの更新 remove_avatar: アイコンを削除 + resend_confirmation: + already_confirmed: メールアドレスは確認済みです。 + send: 確認メールを再送 + success: 確認メールを再送信しました! reset: リセット reset_password: パスワード再設定 resubscribe: 再講読 @@ -269,7 +273,6 @@ ja: comment: none: なし created_at: レポート日時 - delete: 削除 id: ID mark_as_resolved: 解決済みとしてマーク mark_as_unresolved: 未解決として再び開く @@ -279,9 +282,6 @@ ja: create_and_unresolve: 書き込み、未解決として開く delete: 削除 placeholder: このレポートに取られた措置や、その他の更新を記述してください… - nsfw: - 'false': NSFW オフ - 'true': NSFW オン reopen: 再び開く report: レポート#%{id} report_contents: 内容 @@ -356,11 +356,8 @@ ja: delete: 削除 nsfw_off: 閲覧注意のマークを取り除く nsfw_on: 閲覧注意としてマークする - execute: 実行 failed_to_execute: 実行に失敗しました media: - hide: メディアを隠す - show: メディアを表示 title: メディア no_media: メディアなし title: トゥート一覧 @@ -376,6 +373,7 @@ ja: admin_mailer: new_report: body: "%{reporter} が %{target} を通報しました" + body_remote: "%{domain} の誰かが %{target} を通報しました" subject: "%{instance} の新しい通報 (#%{id})" application_mailer: notification_preferences: メール設定の変更 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 251c0c3d7b..d2583ba826 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -53,9 +53,7 @@ ko: unfollow: 팔로우 해제 admin: account_moderation_notes: - account: 모더레이터 create: 작성하기 - created_at: 작성 날짜 created_msg: 모더레이션 기록이 성공적으로 작성되었습니다! delete: 삭제 destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다! @@ -72,6 +70,7 @@ ko: title: "%{username}의 이메일 주소 변경" confirm: 확인 confirmed: 확인됨 + confirming: 확인 중 demote: 모더레이터 강등 disable: 비활성화 disable_two_factor_authentication: 2단계 인증을 비활성화 @@ -80,6 +79,7 @@ ko: domain: 도메인 edit: 편집 email: E-mail + email_status: 이메일 상태 enable: 활성화 enabled: 활성화된 feed_url: 피드 URL @@ -118,6 +118,10 @@ ko: push_subscription_expires: PuSH 구독 기간 만료 redownload: 아바타 업데이트 remove_avatar: 아바타 지우기 + resend_confirmation: + already_confirmed: 이 사용자는 이미 확인되었습니다. + send: 다시 확인 이메일 + success: 확인 이메일이 전송되었습니다. reset: 초기화 reset_password: 비밀번호 초기화 resubscribe: 다시 구독 @@ -271,7 +275,6 @@ ko: comment: none: 없음 created_at: 리포트 시각 - delete: 삭제 id: ID mark_as_resolved: 해결 완료 처리 mark_as_unresolved: 미해결로 표시 @@ -281,9 +284,6 @@ ko: create_and_unresolve: 노트 작성과 함께 미해결로 표시 delete: 삭제 placeholder: 이 리포트에 대한 조치, 다른 업데이트 사항에 대해 설명합니다… - nsfw: - 'false': NSFW 꺼짐 - 'true': NSFW 켜짐 reopen: 리포트 다시 열기 report: '신고 #%{id}' report_contents: 내용 @@ -358,11 +358,8 @@ ko: delete: 삭제 nsfw_off: NSFW 끄기 nsfw_on: NSFW 켜기 - execute: 실행 failed_to_execute: 실행을 실패하였습니다 media: - hide: 미디어 숨기기 - show: 미디어 보여주기 title: 미디어 no_media: 미디어 없음 title: 계정 툿 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 1ccc01a8f1..fdc1145ac3 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -53,9 +53,7 @@ nl: unfollow: Ontvolgen admin: account_moderation_notes: - account: Moderator create: Aanmaken - created_at: Datum created_msg: Aanmaken van opmerking voor moderatoren geslaagd! delete: Verwijderen destroyed_msg: Verwijderen van opmerking voor moderatoren geslaagd! @@ -72,6 +70,7 @@ nl: title: E-mailadres veranderen voor %{username} confirm: Bevestigen confirmed: Bevestigd + confirming: Bevestiging demote: Degraderen disable: Uitschakelen disable_two_factor_authentication: 2FA uitschakelen @@ -80,6 +79,7 @@ nl: domain: Domein edit: Bewerken email: E-mail + email_status: E-mail Status enable: Inschakelen enabled: Ingeschakeld feed_url: Feed-URL @@ -118,6 +118,10 @@ nl: push_subscription_expires: PuSH-abonnement verloopt op redownload: Avatar vernieuwen remove_avatar: Avatar verwijderen + resend_confirmation: + already_confirmed: Deze gebruiker is al bevestigd + send: Verzend bevestigingsmail opnieuw + success: Bevestigingsmail succesvol verzonden! reset: Opnieuw reset_password: Wachtwoord opnieuw instellen resubscribe: Opnieuw abonneren @@ -269,7 +273,6 @@ nl: comment: none: Geen created_at: Gerapporteerd op - delete: Verwijderen id: ID mark_as_resolved: Markeer als opgelost mark_as_unresolved: Markeer als onopgelost @@ -279,9 +282,6 @@ nl: create_and_unresolve: Heropenen met opmerking delete: Verwijderen placeholder: Beschrijf welke acties zijn ondernomen of andere opmerkingen over deze gerapporteerde toot… - nsfw: - 'false': Media tonen - 'true': Media verbergen reopen: Gerapporteerde toot heropenen report: 'Gerapporteerde toot #%{id}' report_contents: Inhoud @@ -356,11 +356,8 @@ nl: delete: Verwijderen nsfw_off: Als niet gevoelig markeren nsfw_on: Als gevoelig markeren - execute: Uitvoeren failed_to_execute: Uitvoeren mislukt media: - hide: Media verbergen - show: Media tonen title: Media no_media: Geen media title: Toots van account @@ -376,6 +373,7 @@ nl: admin_mailer: new_report: body: "%{reporter} heeft %{target} gerapporteerd" + body_remote: Iemand van %{domain} heeft %{target} gerapporteerd subject: Nieuwe toots gerapporteerd op %{instance} (#%{id}) application_mailer: notification_preferences: E-mailvoorkeuren wijzigen diff --git a/config/locales/no.yml b/config/locales/no.yml index 8b84182af6..837042f851 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -52,9 +52,7 @@ unfollow: Slutte følge admin: account_moderation_notes: - account: Moderator create: Lag - created_at: Dato created_msg: Moderasjonsnotat laget uten problem! delete: Slett destroyed_msg: Moderasjonsnotat slettet uten problem! @@ -63,6 +61,7 @@ by_domain: Domene confirm: Bekreft confirmed: Bekreftet + confirming: Bekrefte demote: Degrader disable: Deaktiver disable_two_factor_authentication: Skru av 2FA @@ -71,6 +70,7 @@ domain: Domene edit: Redigér email: E-post + email_status: E-poststatus enable: Aktiver enabled: Aktivert feed_url: Feed-URL @@ -108,6 +108,10 @@ public: Offentlig push_subscription_expires: PuSH-abonnent utløper redownload: Oppdater avatar + resend_confirmation: + already_confirmed: Denne brukeren er allerede bekreftet + send: Send bekreftelses-epost på nytt + success: Bekreftelses e-post er vellykket sendt! reset: Tilbakestill reset_password: Nullstill passord resubscribe: Abonner på nytt @@ -244,12 +248,8 @@ are_you_sure: Er du sikker? comment: none: Ingen - delete: Slett id: ID mark_as_resolved: Merk som løst - nsfw: - 'false': Vis mediavedlegg - 'true': Skjul mediavedlegg report: 'Rapportér #%{id}' report_contents: Innhold reported_account: Rapportert konto @@ -314,11 +314,8 @@ delete: Slett nsfw_off: NSFW AV nsfw_on: NSFW PÅ - execute: Utfør failed_to_execute: Utføring mislyktes media: - hide: Skjul media - show: Vis media title: Media no_media: Ingen media title: Kontostatuser diff --git a/config/locales/oc.yml b/config/locales/oc.yml index d5717c0b57..df8685bf00 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -49,13 +49,11 @@ oc: reserved_username: Aqueste nom d’utilizaire es reservat roles: admin: Admin - moderator: Mod + moderator: Moderador unfollow: Quitar de sègre admin: account_moderation_notes: - account: Moderator create: Crear - created_at: Data created_msg: Nòta de moderacion ben creada ! delete: Suprimir destroyed_msg: Nòta de moderacion ben suprimida ! @@ -72,6 +70,7 @@ oc: title: Cambiar l’adreça a %{username} confirm: Confirmar confirmed: Confirmat + confirming: Confirmando demote: Retrogradar disable: Desactivar disable_two_factor_authentication: Desactivar 2FA @@ -80,6 +79,7 @@ oc: domain: Domeni edit: Modificar email: Corrièl + email_status: Estado del correo electrónico enable: Activar enabled: Activat feed_url: Flux URL @@ -118,13 +118,17 @@ oc: push_subscription_expires: Fin de l’abonament PuSH redownload: Actualizar los avatars remove_avatar: Supriir l’avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Reïnicializar reset_password: Reïnicializar lo senhal resubscribe: Se tornar abonar role: Permissions roles: admin: Administrator - moderator: Moderator + moderator: Moderador staff: Personnal user: Uitlizaire salmon_url: URL Salmon @@ -164,10 +168,12 @@ oc: memorialize_account: "%{name} transformèt en memorial la pagina de perfil a %{target}" promote_user: "%{name} promoguèt %{target}" remove_avatar_user: "%{name} suprimèt l’avatar a %{target}" + reopen_report: "%{name} tornèt dobrir lo rapòrt %{target}" reset_password_user: "%{name} reïnicializèt lo senhal a %{target}" - resolve_report: "%{name} anullèt lo rapòrt de %{target}" + resolve_report: "%{name} anullèt lo rapòrt %{target}" silence_account: "%{name} metèt en silenci lo compte a %{target}" suspend_account: "%{name} susprenguèt lo compte a %{target}" + unassigned_report: "%{name} daissèt de tractar lo rapòrt %{target}" unsilence_account: "%{name} levèt lo silenci del compte a %{target}" unsuspend_account: "%{name} restabliguèt lo compte a %{target}" update_custom_emoji: "%{name} metèt a jorn l’emoji %{target}" @@ -262,10 +268,11 @@ oc: report: rapòrt action_taken_by: Mesura menada per are_you_sure: Es segur ? + assign_to_self: Me l’assignar + assigned: Moderador assignat comment: none: Pas cap created_at: Creacion - delete: Suprimir id: ID mark_as_resolved: Marcar coma resolgut mark_as_unresolved: Marcar coma pas resolgut @@ -274,21 +281,21 @@ oc: create_and_resolve: Resòlvre amb una nòta create_and_unresolve: Tornar dobrir amb una nòta placeholder: Explicatz las accions que son estadas menadas o çò qu’es estat fach per aqueste rapòrt… - nsfw: - 'false': Sens contengut sensible - 'true': Contengut sensible activat reopen: Tornar dobrir lo rapòrt report: 'senhalament #%{id}' report_contents: Contenguts reported_account: Compte senhalat reported_by: Senhalat per resolved: Resolgut + resolved_msg: Rapòrt corrèctament resolgut ! silence_account: Metre lo compte en silenci status: Estatut suspend_account: Suspendre lo compte target: Cibla title: Senhalament + unassign: Levar unresolved: Pas resolguts + updated_at: Actualizat view: Veire settings: activity_api_enabled: @@ -346,13 +353,10 @@ oc: back_to_account: Tornar a la pagina Compte batch: delete: Suprimir - nsfw_off: NSFW OFF - nsfw_on: NSFW ON - execute: Lançar + nsfw_off: Marcar coma pas sensible + nsfw_on: Marcar coma sensible failed_to_execute: Fracàs media: - hide: Amagar mèdia - show: Mostrar mèdia title: Mèdia no_media: Cap mèdia title: Estatuts del compte @@ -490,9 +494,7 @@ oc: less_than_x_minutes: one: Fa mens d’una minuta other: Fa mens de %{count} minutas - less_than_x_seconds: - one: Fa mens d’una segonda - other: Fa mens de %{count} segondas + less_than_x_seconds: Ara meteis over_x_years: one: Fa mai d’un an other: Fa mai de %{count} ans @@ -703,7 +705,7 @@ oc: micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser opera: Opera - otter: Otter + otter: Autre phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -753,6 +755,7 @@ oc: video: one: "%{count} vidèo" other: "%{count} vidèos" + content_warning: 'Avertiment de contengut : %{warning}' disallowed_hashtags: one: 'conten una etiqueta desactivada : %{tags}' other: 'conten las etiquetas desactivadas : %{tags}' diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 519207d38b..3ef648e342 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -53,9 +53,7 @@ pl: unfollow: Przestań śledzić admin: account_moderation_notes: - account: Autor - create: Dodaj - created_at: Data + create: Pozostaw notatkę created_msg: Pomyślnie dodano notatkę moderacyjną! delete: Usuń destroyed_msg: Pomyślnie usunięto notatkę moderacyjną! @@ -72,6 +70,7 @@ pl: title: Zmień adres e-mail dla %{username} confirm: Potwierdź confirmed: Potwierdzono + confirming: Potwierdzanie demote: Degraduj disable: Dezaktywuj disable_two_factor_authentication: Wyłącz uwierzytelnianie dwuetapowe @@ -80,6 +79,7 @@ pl: domain: Domena edit: Edytuj email: Adres e-mail + email_status: Stan e-maila enable: Aktywuj enabled: Aktywowano feed_url: Adres kanału @@ -118,6 +118,10 @@ pl: push_subscription_expires: Subskrypcja PuSH wygasa redownload: Odśwież awatar remove_avatar: Usun awatar + resend_confirmation: + already_confirmed: To konto zostało już potwierdzone + send: Wyślij ponownie e-mail z potwierdzeniem + success: E-mail z potwierdzeniem został wysłany! reset: Resetuj reset_password: Resetuj hasło resubscribe: Ponów subskrypcję @@ -270,7 +274,6 @@ pl: comment: none: Brak created_at: Zgłoszono - delete: Usuń id: ID mark_as_resolved: Oznacz jako rozwiązane mark_as_unresolved: Oznacz jako nierozwiązane @@ -280,9 +283,6 @@ pl: create_and_unresolve: Cofnij rozwiązanie i pozostaw notatkę delete: Usuń placeholder: Opisz wykonane akcje i inne szczegóły dotyczące tego zgłoszenia… - nsfw: - 'false': Nie oznaczaj jako NSFW - 'true': Oznaczaj jako NSFW reopen: Otwórz ponownie report: 'Zgłoszenie #%{id}' report_contents: Zawartość @@ -357,11 +357,8 @@ pl: delete: Usuń nsfw_off: Cofnij NSFW nsfw_on: Oznacz jako NSFW - execute: Wykonaj failed_to_execute: Nie udało się wykonać media: - hide: Ukryj zawartość multimedialną - show: Pokaż zawartość multimedialną title: Media no_media: Bez zawartości multimedialnej title: Wpisy konta @@ -377,6 +374,7 @@ pl: admin_mailer: new_report: body: Użytkownik %{reporter} zgłosił %{target} + body_remote: Użytkownik instancji %{domain} zgłosił %{target} subject: Nowe zgłoszenie na %{instance} (#%{id}) application_mailer: notification_preferences: Zmień ustawienia e-maili @@ -466,7 +464,7 @@ pl: archive_takeout: date: Data download: Pobierz swoje archiwum - hint_html: Możesz uzyskać archiwum swoich wpisów i wysłanej zawartości multimedialnej. Wyeksportowane dane będą dostępne w formacie ActivityPub, który możesz otworzyć w obsługujących go programach. + hint_html: Możesz uzyskać archiwum swoich wpisów i wysłanej zawartości multimedialnej. Wyeksportowane dane będą dostępne w formacie ActivityPub, który możesz otworzyć w obsługujących go programach. Możesz wyeksportować je po 7 dniach od poprzedniego eksportu. in_progress: Tworzenie archiwum… request: Uzyskaj archiwum size: Rozmiar diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index a575998a8d..e959ee19fb 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -53,9 +53,7 @@ pt-BR: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Criar - created_at: Data created_msg: Nota de moderação criada com sucesso! delete: Excluir destroyed_msg: Nota de moderação excluída com sucesso! @@ -72,6 +70,7 @@ pt-BR: title: Mudar e-mail para %{username} confirm: Confirmar confirmed: Confirmado + confirming: Confirmando demote: Rebaixar disable: Desativar disable_two_factor_authentication: Desativar 2FA @@ -80,6 +79,7 @@ pt-BR: domain: Domínio edit: Editar email: E-mail + email_status: Estado del correo electrónico enable: Ativar enabled: Ativado feed_url: URL do feed @@ -118,6 +118,10 @@ pt-BR: push_subscription_expires: Inscrição PuSH expira redownload: Atualizar avatar remove_avatar: Remover avatar + resend_confirmation: + already_confirmed: Este usuario ya está confirmado + send: Reenviar el correo electrónico de confirmación + success: "¡Correo electrónico de confirmación enviado con éxito!" reset: Anular reset_password: Modificar senha resubscribe: Reinscrever-se @@ -269,7 +273,6 @@ pt-BR: comment: none: Nenhum created_at: Denunciado - delete: Excluir id: ID mark_as_resolved: Marcar como resolvido mark_as_unresolved: Marcar como não resolvido @@ -279,9 +282,6 @@ pt-BR: create_and_unresolve: Reabrir com nota delete: Excluir placeholder: Descreva que ações foram tomadas, ou quaisquer atualizações sobre esta denúncia… - nsfw: - 'false': Mostrar mídias anexadas - 'true': Esconder mídias anexadas reopen: Reabrir denúncia report: 'Denúncia #%{id}' report_contents: Conteúdos @@ -356,11 +356,8 @@ pt-BR: delete: Deletar nsfw_off: Marcar como não-sensível nsfw_on: Marcar como sensível - 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 diff --git a/config/locales/pt.yml b/config/locales/pt.yml index fb2a6cad1c..7c10124ff6 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -52,9 +52,7 @@ pt: unfollow: Deixar de seguir admin: account_moderation_notes: - account: Moderador create: Criar - created_at: Data created_msg: Nota de moderação criada com sucesso! delete: Eliminar destroyed_msg: Nota de moderação excluída com sucesso! @@ -63,6 +61,7 @@ pt: by_domain: Domínio confirm: Confirme confirmed: Confirmado + confirming: Confirmer demote: Rebaixar disable: Desativar disable_two_factor_authentication: Desativar 2FA @@ -71,6 +70,7 @@ pt: domain: Domínio edit: Editar email: E-mail + email_status: État de la messagerie enable: Ativar enabled: Ativado feed_url: URL do Feed @@ -108,6 +108,10 @@ pt: public: Público push_subscription_expires: A Inscrição PuSH expira redownload: Atualizar avatar + resend_confirmation: + already_confirmed: Cet utilisateur est déjà confirmé + send: Renvoyer un courriel de confirmation + success: Email de confirmation envoyé avec succès! reset: Restaurar reset_password: Reset palavra-passe resubscribe: Reinscrever @@ -244,12 +248,8 @@ pt: are_you_sure: Tens a certeza? comment: none: Nenhum - delete: Eliminar id: ID mark_as_resolved: Marcar como resolvido - nsfw: - 'false': Mostrar imagens/vídeos - 'true': Esconder imagens/vídeos report: 'Denúncia #%{id}' report_contents: Conteúdos reported_account: Conta denunciada @@ -314,11 +314,8 @@ pt: delete: Eliminar nsfw_off: NSFW OFF nsfw_on: NSFW ON - execute: Executar failed_to_execute: Falhou ao executar media: - hide: Esconder média - show: Mostrar média title: Média no_media: Não há média title: Estado das contas diff --git a/config/locales/ru.yml b/config/locales/ru.yml index bf42257581..99825a765a 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -52,9 +52,7 @@ ru: unfollow: Отписаться admin: account_moderation_notes: - account: Модератор create: Создать - created_at: Дата created_msg: Заметка модератора успешно создана! delete: Удалить destroyed_msg: Заметка модератора успешно удалена! @@ -63,6 +61,7 @@ ru: by_domain: Домен confirm: Подтвердить confirmed: Подтверждено + confirming: подтверждающий demote: Разжаловать disable: Отключить disable_two_factor_authentication: Отключить 2FA @@ -71,6 +70,7 @@ ru: domain: Домен edit: Изменить email: E-mail + email_status: Статус электронной почты enable: Включить enabled: Включен feed_url: URL фида @@ -108,6 +108,10 @@ ru: public: Публичный push_subscription_expires: Подписка PuSH истекает redownload: Обновить аватар + resend_confirmation: + already_confirmed: Этот пользователь уже подтвержден + send: Повторно отправить подтверждение по электронной почте + success: Письмо с подтверждением успешно отправлено! reset: Сбросить reset_password: Сбросить пароль resubscribe: Переподписаться @@ -246,12 +250,8 @@ ru: are_you_sure: Вы уверены? comment: none: Нет - delete: Удалить id: ID mark_as_resolved: Отметить как разрешенную - nsfw: - 'false': Показать мультимедийные вложения - 'true': Скрыть мультимедийные вложения report: 'Жалоба #%{id}' report_contents: Содержимое reported_account: Аккаунт нарушителя @@ -322,11 +322,8 @@ ru: delete: Удалить nsfw_off: Выключить NSFW nsfw_on: Включить NSFW - execute: Выполнить failed_to_execute: Не удалось выполнить media: - hide: Скрыть медиаконтент - show: Показать медиаконтент title: Медиаконтент no_media: Без медиаконтента title: Статусы аккаунта diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml new file mode 100644 index 0000000000..21404897b3 --- /dev/null +++ b/config/locales/simple_form.co.yml @@ -0,0 +1,79 @@ +--- +co: + simple_form: + hints: + defaults: + avatar: Furmatu PNG, GIF o JPG. 2Mo o menu. Sarà ridottu à 400x400px + digest: Solu mandatu dopu à una longa perioda d’inattività, è solu s’elli ci sò novi missaghji diretti + display_name: + one: Ci ferma 1 caratteru + other: Ci fermanu %{count} caratteri + fields: Pudete avè fin’à 4 elementi mustrati cum’un tavulone nant’à u vostru prufile + header: Furmatu PNG, GIF o JPG. 2Mo o menu. Sarà ridottu à 700x335px + locked: Duvarete appruvà e dumande d’abbunamentu + note: + one: Ci ferma 1 caratteru + other: Ci fermanu %{count} caratteri + setting_noindex: Tocca à u vostru prufile pubblicu è i vostri statuti + setting_theme: Tocca à l’apparenza di Mastodon quandu site cunnettatu·a da qualch’apparechju. + imports: + data: Un fugliale CSV da un’altr’istanza di Mastodon + sessions: + otp: Entrate u codice d’identificazione à dui fattori nant’à u vostru telefuninu, o unu di i vostri codici di ricuperazione. + user: + filtered_languages: Ùn viderete micca e lingue selezziunate nant’à e linee pubbliche. + labels: + account: + fields: + name: Label + value: Content + defaults: + avatar: Ritrattu di prufile + confirm_new_password: Cunfirmà a nova chjave d’accessu + confirm_password: Cunfirmà a chjave d’accessu + current_password: Chjave d’accessu attuale + data: Dati + display_name: Nome pubblicu + email: Indirizzu e-mail + expires_in: Spira dopu à + fields: Metadata di u prufile + filtered_languages: Lingue filtrate + header: Ritrattu di cuprendula + locale: Lingua + locked: Privatizà u contu + max_uses: Numeru massimale d’utilizazione + new_password: Nova chjave d’accessu + note: Descrizzione + otp_attempt: Codice d’identificazione à dui fattori + password: Chjave d’accessu + setting_auto_play_gif: Lettura autumatica di i GIF animati + setting_boost_modal: Mustrà una cunfirmazione per sparte un statutu + setting_default_privacy: Cunfidenzialità di i statuti + setting_default_sensitive: Sempre cunsiderà media cum’è sensibili + setting_delete_modal: Mustrà une cunfirmazione per toglie un statutu + setting_display_sensitive_media: Sempre mustrà media marcati cum’è sensibili + setting_noindex: Dumandà à i motori di ricerca internet d’un pudè micca esse truvatu·a cusì + setting_reduce_motion: Fà chì l’animazione vanu più pianu + setting_system_font_ui: Pulizza di caratteri di u sistemu + setting_theme: Tema di u situ + setting_unfollow_modal: Mustrà una cunfirmazione per siguità qualch’unu + severity: Severità + type: Tippu d’impurtazione + username: Cugnome + username_or_email: Cugnome o Email + interactions: + must_be_follower: Piattà e nutificazione di quelli·e ch’ùn vi seguitanu + must_be_following: Piattà e nutificazione di quelli·e ch’ùn seguitate + must_be_following_dm: Bluccà e missaghji diretti di quelli·e ch’ùn seguitate + notification_emails: + digest: Mandà e-mail di ricapitulazione + favourite: Mandà un’e-mail quandu qualch’unu aghjunghje i mo statuti à i so favuriti + follow: Mandà un’e-mail quandu qualch’unu mi seguita + follow_request: Mandà un’e-mail quandu qualch’unu vole seguitami + mention: Mandà un’e-mail quandu qualch’unu mi mintuva + reblog: Mandà un’e-mail quandu qualch’unu sparte i mo statuti + 'no': Nò + required: + mark: "*" + text: riquisiti + 'yes': Ié diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index f635bf441b..16ecc7c9ed 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -4,6 +4,7 @@ en: hints: defaults: avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px + bot: Warns people that the account does not represent a person digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence display_name: one: 1 character left @@ -19,7 +20,7 @@ en: imports: data: CSV file exported from another Mastodon instance sessions: - otp: Enter the Two-factor code from your phone or use one of your recovery codes. + otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' user: filtered_languages: Checked languages will be filtered from public timelines for you labels: @@ -29,6 +30,7 @@ en: value: Content defaults: avatar: Avatar + bot: This is a bot account confirm_new_password: Confirm new password confirm_password: Confirm password current_password: Current password diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index 4ca58c1023..c80f85cce2 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -41,7 +41,7 @@ oc: header: Bandièra locale: Lenga locked: Far venir lo compte privat - max_uses: Limit d’utilizacion + max_uses: Limit d’utilizacions new_password: Nòu senhal note: Bio otp_attempt: Còdi Two-factor diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 8a6d47a015..38ded3cd66 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -4,6 +4,7 @@ pl: hints: defaults: avatar: PNG, GIF lub JPG. Maksymalnie 2MB. Zostanie zmniejszony do 400x400px + bot: Informuje użytkowników, że konto nie jest prowadzone przez człowieka digest: Wysyłane tylko po długiej nieaktywności, jeżeli w tym czasie otrzymaleś jakąś wiadomość bezpośrednią display_name: few: Pozostały %{count} znaki. @@ -23,7 +24,7 @@ pl: imports: data: Plik CSV wyeksportowany z innej instancji Mastodona sessions: - otp: Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych. + otp: 'Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych:' user: filtered_languages: Wpisy w wybranych językach nie będą wyświetlać się na publicznych osiach czasu labels: @@ -33,6 +34,7 @@ pl: value: Zawartość defaults: avatar: Awatar + bot: To konto jest prowadzone przez bota confirm_new_password: Potwierdź nowe hasło confirm_password: Potwierdź hasło current_password: Obecne hasło diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 8484ac52c0..c8bad4d958 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1,7 +1,7 @@ --- sk: about: - about_hashtag_html: Toto sú verejné toot príspevky otagované #%{tagom}. Ak máš účet niekde vo fediverse, môžeš ich používať. + about_hashtag_html: Toto sú verejné toot príspevky otagované #%{hashtag}. Ak máš účet niekde vo fediverse, môžeš ich používať. about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch. Jej zrojový kód je otvorený a je decentralizovaná podobne ako email. about_this: O tejto instancii administered_by: 'Správca je:' @@ -53,9 +53,7 @@ sk: unfollow: Prestať sledovať admin: account_moderation_notes: - account: Moderátor create: Vytvoriť - created_at: Dátum created_msg: Poznámka moderátora bola úspešne vytvorená! delete: Zmazať destroyed_msg: Poznámka moderátora bola úspešne zmazaná! @@ -72,6 +70,7 @@ sk: title: Zmeň email pre %{username} confirm: Potvrdiť confirmed: Potvrdený + confirming: Potvrdzujúci demote: Degradovať disable: Zablokovať disable_two_factor_authentication: Zakázať 2FA @@ -80,6 +79,7 @@ sk: domain: Doména edit: Upraviť email: Email + email_status: Stav Email enable: Povoliť enabled: Povolený feed_url: URL časovej osi @@ -118,6 +118,10 @@ sk: push_subscription_expires: PuSH odoberanie expiruje redownload: Obnoviť avatar remove_avatar: Odstrániť avatár + resend_confirmation: + already_confirmed: Tento používateľ už bol potvrdený + send: Znova odoslať potvrdzovací e-mail + success: Potvrdený e-mail bol úspešne odoslaný! reset: Reset reset_password: Obnoviť heslo resubscribe: Znovu odoberať @@ -268,7 +272,6 @@ sk: comment: none: Žiadne created_at: Nahlásené - delete: Vymazať id: Identifikácia mark_as_resolved: Označiť ako vyriešené mark_as_unresolved: Označ ako nevyriešené @@ -278,9 +281,6 @@ sk: create_and_unresolve: Otvor znovu, s poznámkou delete: Vymaž placeholder: Opíš aké opatrenia boli urobené, alebo akékoľvek iné aktualizácie k tomuto nahláseniu… - nsfw: - 'false': Odkryť mediálne prílohy - 'true': Skryť mediálne prílohy reopen: Znovu otvor report report: Nahlásiť report_contents: Obsah @@ -355,11 +355,8 @@ sk: delete: Vymazať nsfw_off: Obsah nieje chúlostivý nsfw_on: Označ obeah aka chúlostivý - execute: Vykonať failed_to_execute: Nepodarilo sa vykonať media: - hide: Skryť médiá - show: Zobraziť médiá title: Médiá no_media: Žiadné médiá title: Statusy na účte @@ -638,10 +635,10 @@ sk: title: Sezóna settings: authorized_apps: Autorizované aplikácie - back: Späť do Mastodonu - delete: Zmazanie účtu + back: Späť na Mastodon + delete: Vymazanie účtu development: Vývoj - edit_profile: Upraviť profil + edit_profile: Uprav profil export: Exportovať dáta followers: Povolení sledovatelia import: Importovať diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 742c976d19..0c7756c53e 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -52,9 +52,7 @@ sr-Latn: unfollow: Otprati admin: account_moderation_notes: - account: Moderator create: Napravi - created_at: Datum created_msg: Moderatorska beleška uspešno napravljena! delete: Obriši destroyed_msg: Moderatorska beleška uspešno obrisana! @@ -63,6 +61,7 @@ sr-Latn: by_domain: Domen confirm: Potvrdi confirmed: Potvrđeno + confirming: Potvrđujući demote: Ražaluj disable: Isključi disable_two_factor_authentication: Isključi 2FA @@ -71,6 +70,7 @@ sr-Latn: domain: Domen edit: Izmeni email: E-pošta + email_status: Status e-pošte enable: Uključi enabled: Uključeno feed_url: Adresa dovoda @@ -108,6 +108,10 @@ sr-Latn: public: Javno push_subscription_expires: PuSH subscription expires redownload: Osveži avatar + resend_confirmation: + already_confirmed: Ovaj korisnik je već potvrđen + send: Ponovo pošaljite e-poruku za potvrdu + success: E-mail potvrde je uspešno poslat! reset: Resetuj reset_password: Resetuj lozinku resubscribe: Ponovo se pretplati @@ -246,12 +250,8 @@ sr-Latn: are_you_sure: Da li ste sigurni? comment: none: Ništa - delete: Obriši id: ID mark_as_resolved: Označi kao rešen - nsfw: - 'false': Otkrij medijske priloge - 'true': Sakrij medijske priloge report: 'Prijava #%{id}' report_contents: Sadržaj reported_account: Prijavljeni nalog @@ -310,11 +310,8 @@ sr-Latn: delete: Obriši nsfw_off: NSFW isključen nsfw_on: NSFW uključen - execute: Izvrši failed_to_execute: Neuspelo izvršavanje media: - hide: Sakrij multimediju - show: Prikaži multimediju title: Multimedija no_media: Bez multimedije title: Statusi naloga diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 0d55910a6c..1cb87ff30c 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -52,9 +52,7 @@ sr: unfollow: Отпрати admin: account_moderation_notes: - account: Модератор create: Направи - created_at: Датум created_msg: Модераторска белешка успешно направљена! delete: Обриши destroyed_msg: Модераторска белешка успешно обрисана! @@ -63,6 +61,7 @@ sr: by_domain: Домен confirm: Потврди confirmed: Потврђено + confirming: Потврдување demote: Ражалуј disable: Искључи disable_two_factor_authentication: Искључи 2FA @@ -71,6 +70,7 @@ sr: domain: Домен edit: Измени email: Е-пошта + email_status: Е-пошта статус enable: Укључи enabled: Укључено feed_url: Адреса довода @@ -108,6 +108,10 @@ sr: public: Јавно push_subscription_expires: PuSH subscription expires redownload: Освежи аватар + resend_confirmation: + already_confirmed: Овој корисник е веќе потврден + send: Препрати го е-мајлот за потврда + success: Е-пошта за потврда успешно испратена! reset: Ресетуј reset_password: Ресетуј лозинку resubscribe: Поново се претплати @@ -246,12 +250,8 @@ sr: are_you_sure: Да ли сте сигурни? comment: none: Ништа - delete: Обриши id: ID mark_as_resolved: Означи као решен - nsfw: - 'false': Откриј медијске прилоге - 'true': Сакриј медијске прилоге report: 'Пријава #%{id}' report_contents: Садржај reported_account: Пријављени налог @@ -310,11 +310,8 @@ sr: delete: Обриши nsfw_off: NSFW искључен nsfw_on: NSFW укључен - execute: Изврши failed_to_execute: Неуспело извршавање media: - hide: Сакриј мултимедију - show: Прикажи мултимедију title: Мултимедија no_media: Без мултимедије title: Статуси налога diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 845248652f..1b09656555 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -53,9 +53,7 @@ sv: unfollow: Sluta följa admin: account_moderation_notes: - account: Moderator create: Skapa - created_at: Datum created_msg: Modereringsnotering skapad utan problem! delete: Ta bort destroyed_msg: Modereringsnotering borttagen utan problem! @@ -72,6 +70,7 @@ sv: title: Byt E-postadress för %{username} confirm: Bekräfta confirmed: Bekräftad + confirming: Bekräftande demote: Degradera disable: inaktivera disable_two_factor_authentication: Inaktivera 2FA @@ -80,6 +79,7 @@ sv: domain: Domän edit: Redigera email: E-post + email_status: E-poststatus enable: Aktivera enabled: Aktiverad feed_url: Flödes URL @@ -118,6 +118,10 @@ sv: push_subscription_expires: PuSH-prenumerationen löper ut redownload: Uppdatera avatar remove_avatar: Ta bort avatar + resend_confirmation: + already_confirmed: Den här användaren är redan bekräftad + send: Skicka om e-postbekräftelse + success: Bekräftelsemeddelande skickas framgångsrikt! reset: Återställ reset_password: Återställ lösenord resubscribe: Starta en ny prenumeration @@ -269,7 +273,6 @@ sv: comment: none: Ingen created_at: Anmäld - delete: Radera id: ID mark_as_resolved: Markera som löst mark_as_unresolved: Markera som olöst @@ -279,9 +282,6 @@ sv: create_and_unresolve: Återuppta med anteckning delete: Radera placeholder: Beskriv vilka åtgärder som vidtagits eller andra uppdateringar till den här anmälan… - nsfw: - 'false': Visa bifogade mediafiler - 'true': Dölj bifogade mediafiler reopen: Återuppta anmälan report: 'Anmäl #%{id}' report_contents: Innehåll @@ -356,11 +356,8 @@ sv: delete: Radera nsfw_off: Markera som ej känslig nsfw_on: Markera som känslig - execute: Utför failed_to_execute: Misslyckades att utföra media: - hide: Dölj media - show: Visa media title: Media no_media: Ingen media title: Kontostatus diff --git a/config/locales/th.yml b/config/locales/th.yml index 350b93b521..6804dbd13d 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -29,11 +29,13 @@ th: are_you_sure: แน่ใจนะ? confirm: ยืนยัน confirmed: ยึนยันแล้ว + confirming: ยืนยัน disable_two_factor_authentication: Disable 2FA display_name: ชื่อสำหรับดีสเพล domain: โดแมน edit: แก้ไข email: อีเมล์ + email_status: สถานะอีเมล feed_url: Feed URL followers: ผู้ติดตาม follows: ติดตาม @@ -59,6 +61,10 @@ th: profile_url: Profile URL public: สาธารณะ push_subscription_expires: PuSH subscription expires + resend_confirmation: + already_confirmed: ผู้ใช้รายนี้ได้รับการยืนยันแล้ว + send: ส่งอีเมลยืนยันอีกครั้ง + success: ยืนยันอีเมลเรียบร้อยแล้ว! reset_password: รีเซ็ตรหัสผ่าน salmon_url: Salmon URL show: @@ -109,7 +115,6 @@ th: reports: comment: none: None - delete: ลบ id: ไอดี mark_as_resolved: ทำเครื่องหมายว่าจัดการแล้ว report: 'Report #%{id}' diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 6e7aeb77e9..8bafbface2 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -29,10 +29,12 @@ tr: are_you_sure: Emin misiniz? confirm: Onayla confirmed: Onaylandı + confirming: Onaylama display_name: Görünen adınız domain: Sunucu edit: Düzenle email: E-posta + email_status: Email Durumu feed_url: Besleme linki followers: Takipçiler follows: Takip edilen @@ -58,6 +60,10 @@ tr: profile_url: Profil linki public: Herkese açık push_subscription_expires: PuSH aboneliği dolumu + resend_confirmation: + already_confirmed: Bu kullanıcı zaten onaylandı + send: Doğrulama epostasını yeniden gönder + success: Onay e-postası başarıyla gönderildi! reset_password: Parolayı değiştir salmon_url: Salmon Linki show: @@ -108,7 +114,6 @@ tr: reports: comment: none: Yok - delete: Sil id: ID mark_as_resolved: Giderildi olarak işaretle report: 'Şikayet #%{id}' diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 44f64b5c9e..6fe46b4d98 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -100,7 +100,6 @@ uk: reports: comment: none: Немає - delete: Видалити id: ID mark_as_resolved: Відмітити як вирішену report: 'Скарга #%{id}' diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 78c72bd302..5eca9e6a56 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -52,9 +52,7 @@ zh-CN: unfollow: 取消关注 admin: account_moderation_notes: - account: 管理员 create: 新建 - created_at: 日期 created_msg: 管理备忘建立成功! delete: 删除 destroyed_msg: 管理备忘删除成功! @@ -63,6 +61,7 @@ zh-CN: by_domain: 域名 confirm: 确认 confirmed: 已确认 + confirming: 确认 demote: 降任 disable: 停用 disable_two_factor_authentication: 停用双重认证 @@ -71,6 +70,7 @@ zh-CN: domain: 域名 edit: 编辑 email: 电子邮件地址 + email_status: 电子邮件状态 enable: 启用 enabled: 已启用 feed_url: 订阅 URL @@ -108,6 +108,10 @@ zh-CN: public: 公开页面 push_subscription_expires: PuSH 订阅过期时间 redownload: 刷新头像 + resend_confirmation: + already_confirmed: 该用户已被确认 + send: 重发确认邮件 + success: 确认电子邮件成功发送! reset: 重置 reset_password: 重置密码 resubscribe: 重新订阅 @@ -242,12 +246,8 @@ zh-CN: are_you_sure: 你确定吗? comment: none: 没有 - delete: 删除 id: ID mark_as_resolved: 标记为“已处理” - nsfw: - 'false': 取消 NSFW 标记 - 'true': 添加 NSFW 标记 report: '举报 #%{id}' report_contents: 内容 reported_account: 举报用户 @@ -312,11 +312,8 @@ zh-CN: delete: 删除 nsfw_off: 取消 NSFW 标记 nsfw_on: 添加 NSFW 标记 - execute: 执行 failed_to_execute: 执行失败 media: - hide: 隐藏媒体文件 - show: 显示媒体文件 title: 媒体文件 no_media: 不含媒体文件 title: 帐户嘟文 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index a27b0c04c8..a5f6a960a5 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -53,9 +53,7 @@ zh-HK: unfollow: 取消關注 admin: account_moderation_notes: - account: 管理員 create: 新增 - created_at: 日期 created_msg: 管理記錄已新增 delete: 刪除 destroyed_msg: 管理記錄已被刪除 @@ -72,6 +70,7 @@ zh-HK: title: 改變 %{username} 的電郵 confirm: 確定 confirmed: 已確定 + confirming: 確定 demote: 降任 disable: 停用 disable_two_factor_authentication: 停用雙重認證 @@ -80,6 +79,7 @@ zh-HK: domain: 域名 edit: 編輯 email: 電郵地址 + email_status: 电子邮件状态 enable: 啟用 enabled: 已啟用 feed_url: Feed URL @@ -118,6 +118,10 @@ zh-HK: push_subscription_expires: PuSH 訂閱過期 redownload: 更新頭像 remove_avatar: 取消頭像 + resend_confirmation: + already_confirmed: 该用户已被确认 + send: 重发确认邮件 + success: 确认电子邮件成功发送! reset: 重設 reset_password: 重設密碼 resubscribe: 重新訂閱 @@ -223,6 +227,7 @@ zh-HK: severity: 阻隔分級 show: affected_accounts: + one: 資料庫中有 %{count} 個用戶受影響 other: 資料庫中有%{count}個用戶受影響 retroactive: silence: 對此域名的所有用戶取消靜音 @@ -268,7 +273,6 @@ zh-HK: comment: none: 沒有 created_at: 日期 - delete: 刪除 id: ID mark_as_resolved: 標示為「已處理」 mark_as_unresolved: 標示為「未處理」 @@ -278,9 +282,6 @@ zh-HK: create_and_unresolve: 建立筆記並標示為「未處理」 delete: 刪除 placeholder: 記錄已執行的動作,或其他更新 - nsfw: - 'false': 取消 NSFW 標記 - 'true': 添加 NSFW 標記 reopen: 重開舉報 report: '舉報 #%{id}' report_contents: 舉報內容 @@ -355,11 +356,8 @@ zh-HK: delete: 刪除 nsfw_off: 取消 NSFW 標記 nsfw_on: 添加 NSFW 標記 - execute: 執行 failed_to_execute: 執行失敗 media: - hide: 隱藏媒體檔案 - show: 顯示媒體檔案 title: 媒體檔案 no_media: 不含媒體檔案 title: 帳戶文章 @@ -375,6 +373,7 @@ zh-HK: admin_mailer: new_report: body: "%{reporter} 舉報了用戶 %{target}。" + body_remote: 來自 %{domain} 的用戶舉報了用戶 %{target} subject: 來自 %{instance} 的用戶舉報(#%{id}) application_mailer: notification_preferences: 更改電郵首選項 @@ -513,7 +512,9 @@ zh-HK: '86400': 1 天後 expires_in_prompt: 永不過期 generate: 生成邀請連結 - max_uses: "%{count} 次" + max_uses: + one: 1 次 + other: "%{count} 次" max_uses_prompt: 無限制 prompt: 生成分享連結,邀請他人在本服務站註冊 table: @@ -580,7 +581,6 @@ zh-HK: quadrillion: Q thousand: K trillion: T - unit: '' pagination: newer: 較新 next: 下一頁 @@ -672,9 +672,16 @@ zh-HK: statuses: attached: description: 附件: %{attached} - image: "%{count} 張圖片" - video: "%{count} 段影片" + image: + one: "%{count} 幅圖片" + other: "%{count} 幅圖片" + video: + one: "%{count} 段影片" + other: "%{count} 段影片" content_warning: 'Content warning: %{warning}' + disallowed_hashtags: + one: 包含不允許的標籤: %{tags} + other: 包含不允許的標籤: %{tags} open_in_web: 開啟網頁 over_character_limit: 超過了 %{max} 字的限制 pin_errors: @@ -698,6 +705,9 @@ zh-HK: sensitive_content: 敏感內容 terms: title: "%{instance} 使用條款和隱私權政策" + themes: + contrast: 高對比 + default: 萬象 time: formats: default: "%Y年%-m月%d日 %H:%M" diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index f69d22d79a..d8c0f89a96 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -80,7 +80,6 @@ zh-TW: reports: comment: none: 無 - delete: 刪除 id: ID mark_as_resolved: 標記為已解決 report: '檢舉 #%{id}' diff --git a/config/routes.rb b/config/routes.rb index 9d4aa00edb..0554ae601a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -144,7 +144,7 @@ Rails.application.routes.draw do end resources :reports, only: [:index, :show, :update] do - resources :reported_statuses, only: [:create, :update, :destroy] + resources :reported_statuses, only: [:create] end resources :report_notes, only: [:create, :destroy] @@ -164,9 +164,14 @@ Rails.application.routes.draw do resource :reset, only: [:create] resource :silence, only: [:create, :destroy] resource :suspension, only: [:create, :destroy] - resource :confirmation, only: [:create] resources :statuses, only: [:index, :create, :update, :destroy] + resource :confirmation, only: [:create] do + collection do + post :resend + end + end + resource :role do member do post :promote diff --git a/db/migrate/20180506221944_add_actor_type_to_accounts.rb b/db/migrate/20180506221944_add_actor_type_to_accounts.rb new file mode 100644 index 0000000000..7cfed640f7 --- /dev/null +++ b/db/migrate/20180506221944_add_actor_type_to_accounts.rb @@ -0,0 +1,5 @@ +class AddActorTypeToAccounts < ActiveRecord::Migration[5.2] + def change + add_column :accounts, :actor_type, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index a34c7911c6..b7a807427d 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: 2018_04_16_210259) do +ActiveRecord::Schema.define(version: 2018_05_06_221944) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -75,6 +75,7 @@ ActiveRecord::Schema.define(version: 2018_04_16_210259) do t.bigint "moved_to_account_id" t.string "featured_collection_url" t.jsonb "fields" + t.string "actor_type" t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin t.index "lower((username)::text), lower((domain)::text)", name: "index_accounts_on_username_and_domain_lower" t.index ["uri"], name: "index_accounts_on_uri" diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 1d63048645..f675419aaa 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,11 +9,11 @@ module Mastodon end def minor - 3 + 4 end def patch - 3 + 0 end def pre @@ -21,7 +21,7 @@ module Mastodon end def flags - '' + 'rc1' end def to_a diff --git a/package.json b/package.json index d861f1723f..ae934a663a 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "emoji-mart": "Gargron/emoji-mart#build", "es6-symbol": "^3.1.1", "escape-html": "^1.0.3", + "exif-js": "^2.3.0", "express": "^4.16.2", "extract-text-webpack-plugin": "^3.0.2", "file-loader": "^0.11.2", diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb index 7c80349646..eec2b2f5c4 100644 --- a/spec/controllers/admin/confirmations_controller_spec.rb +++ b/spec/controllers/admin/confirmations_controller_spec.rb @@ -30,4 +30,35 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do expect(response).to have_http_status(404) end end + + describe 'POST #resernd' do + subject { post :resend, params: { account_id: account.id } } + + let(:account) { Fabricate(:account) } + let!(:user) { Fabricate(:user, confirmed_at: confirmed_at, account: account) } + + before do + allow(UserMailer).to receive(:confirmation_instructions) { double(:email, deliver_later: nil) } + end + + context 'when email is not confirmed' do + let(:confirmed_at) { nil } + + it 'resends confirmation mail' do + expect(subject).to redirect_to admin_accounts_path + expect(flash[:notice]).to eq I18n.t('admin.accounts.resend_confirmation.success') + expect(UserMailer).to have_received(:confirmation_instructions).once + end + end + + context 'when email is confirmed' do + let(:confirmed_at) { Time.zone.now } + + it 'does not resend confirmation mail' do + expect(subject).to redirect_to admin_accounts_path + expect(flash[:error]).to eq I18n.t('admin.accounts.resend_confirmation.already_confirmed') + expect(UserMailer).not_to have_received(:confirmation_instructions) + end + end + end end diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb new file mode 100644 index 0000000000..b7e2894e90 --- /dev/null +++ b/spec/controllers/admin/custom_emojis_controller_spec.rb @@ -0,0 +1,115 @@ +require 'rails_helper' + +describe Admin::CustomEmojisController do + render_views + + let(:user) { Fabricate(:user, admin: true) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + subject { get :index } + + before do + Fabricate(:custom_emoji) + end + + it 'renders index page' do + expect(subject).to have_http_status 200 + expect(subject).to render_template :index + end + end + + describe 'GET #new' do + subject { get :new } + + it 'renders new page' do + expect(subject).to have_http_status 200 + expect(subject).to render_template :new + end + end + + describe 'POST #create' do + subject { post :create, params: { custom_emoji: params } } + + let(:image) { fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png'), 'image/png') } + + context 'when parameter is valid' do + let(:params) { { shortcode: 'test', image: image } } + + it 'creates custom emoji' do + expect { subject }.to change { CustomEmoji.count }.by(1) + end + end + + context 'when parameter is invalid' do + let(:params) { { shortcode: 't', image: image } } + + it 'renders new' do + expect(subject).to render_template :new + end + end + end + + describe 'PUT #update' do + let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test') } + let(:image) { fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png'), 'image/png') } + + before do + put :update, params: { id: custom_emoji.id, custom_emoji: params } + end + + context 'when parameter is valid' do + let(:params) { { shortcode: 'updated', image: image } } + + it 'succeeds in updating custom emoji' do + expect(flash[:notice]).to eq I18n.t('admin.custom_emojis.updated_msg') + expect(custom_emoji.reload).to have_attributes(shortcode: 'updated') + end + end + + context 'when parameter is invalid' do + let(:params) { { shortcode: 'u', image: image } } + + it 'fails to update custom emoji' do + expect(flash[:alert]).to eq I18n.t('admin.custom_emojis.update_failed_msg') + expect(custom_emoji.reload).to have_attributes(shortcode: 'test') + end + end + end + + describe 'POST #copy' do + subject { post :copy, params: { id: custom_emoji.id } } + + let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test') } + + it 'copies custom emoji' do + expect { subject }.to change { CustomEmoji.where(shortcode: 'test').count }.by(1) + expect(flash[:notice]).to eq I18n.t('admin.custom_emojis.copied_msg') + end + end + + describe 'POST #enable' do + let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test', disabled: true) } + + before { post :enable, params: { id: custom_emoji.id } } + + it 'enables custom emoji' do + expect(response).to redirect_to admin_custom_emojis_path + expect(custom_emoji.reload).to have_attributes(disabled: false) + end + end + + describe 'POST #disable' do + let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test', disabled: false) } + + before { post :disable, params: { id: custom_emoji.id } } + + it 'enables custom emoji' do + expect(response).to redirect_to admin_custom_emojis_path + expect(custom_emoji.reload).to have_attributes(disabled: true) + end + end +end diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb new file mode 100644 index 0000000000..e7d9954118 --- /dev/null +++ b/spec/controllers/admin/invites_controller_spec.rb @@ -0,0 +1,43 @@ +require 'rails_helper' + +describe Admin::InvitesController do + render_views + + let(:user) { Fabricate(:user, admin: true) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + subject { get :index, params: { available: true } } + + let!(:invite) { Fabricate(:invite) } + + it 'renders index page' do + expect(subject).to render_template :index + expect(assigns(:invites)).to include invite + end + end + + describe 'POST #create' do + subject { post :create, params: { invite: { max_uses: '10', expires_in: 1800 } } } + + it 'succeeds to create a invite' do + expect{ subject }.to change { Invite.count }.by(1) + expect(subject).to redirect_to admin_invites_path + expect(Invite.last).to have_attributes(user_id: user.id, max_uses: 10) + end + end + + describe 'DELETE #destroy' do + let!(:invite) { Fabricate(:invite, expires_at: nil) } + + subject { delete :destroy, params: { id: invite.id } } + + it 'expires invite' do + expect(subject).to redirect_to admin_invites_path + expect(invite.reload).to be_expired + end + end +end diff --git a/spec/controllers/admin/reported_statuses_controller_spec.rb b/spec/controllers/admin/reported_statuses_controller_spec.rb index 29957ed37e..7adbf36b9c 100644 --- a/spec/controllers/admin/reported_statuses_controller_spec.rb +++ b/spec/controllers/admin/reported_statuses_controller_spec.rb @@ -22,7 +22,7 @@ describe Admin::ReportedStatusesController do let(:sensitive) { true } let!(:media_attachment) { Fabricate(:media_attachment, status: status) } - context 'updates sensitive column to true' do + context 'when action is nsfw_on' do it 'updates sensitive column' do is_expected.to change { status.reload.sensitive @@ -30,7 +30,7 @@ describe Admin::ReportedStatusesController do end end - context 'updates sensitive column to false' do + context 'when action is nsfw_off' do let(:action) { 'nsfw_off' } let(:sensitive) { false } @@ -41,35 +41,13 @@ describe Admin::ReportedStatusesController do end end - it 'redirects to report page' do - subject.call - expect(response).to redirect_to(admin_report_path(report)) - end - end + context 'when action is delete' do + let(:action) { 'delete' } - describe 'PATCH #update' do - subject do - -> { patch :update, params: { report_id: report, id: status, status: { sensitive: sensitive } } } - end - - let(:status) { Fabricate(:status, sensitive: !sensitive) } - let(:sensitive) { true } - - context 'updates sensitive column to true' do - it 'updates sensitive column' do - is_expected.to change { - status.reload.sensitive - }.from(false).to(true) - end - end - - context 'updates sensitive column to false' do - let(:sensitive) { false } - - it 'updates sensitive column' do - is_expected.to change { - status.reload.sensitive - }.from(true).to(false) + it 'removes a status' do + allow(RemovalWorker).to receive(:perform_async) + subject.call + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first) end end @@ -78,15 +56,4 @@ describe Admin::ReportedStatusesController do expect(response).to redirect_to(admin_report_path(report)) end end - - describe 'DELETE #destroy' do - it 'removes a status' do - allow(RemovalWorker).to receive(:perform_async) - - delete :destroy, params: { report_id: report, id: status } - expect(response).to have_http_status(200) - expect(RemovalWorker). - to have_received(:perform_async).with(status.id) - end - end end diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb new file mode 100644 index 0000000000..8e0de73cbd --- /dev/null +++ b/spec/controllers/admin/roles_controller_spec.rb @@ -0,0 +1,33 @@ +require 'rails_helper' + +describe Admin::RolesController do + render_views + + let(:admin) { Fabricate(:user, admin: true) } + + before do + sign_in admin, scope: :user + end + + describe 'POST #promote' do + subject { post :promote, params: { account_id: user.account_id } } + + let(:user) { Fabricate(:user, moderator: false, admin: false) } + + it 'promotes user' do + expect(subject).to redirect_to admin_account_path(user.account_id) + expect(user.reload).to be_moderator + end + end + + describe 'POST #demote' do + subject { post :demote, params: { account_id: user.account_id } } + + let(:user) { Fabricate(:user, moderator: true, admin: false) } + + it 'demotes user' do + expect(subject).to redirect_to admin_account_path(user.account_id) + expect(user.reload).not_to be_moderator + end + end +end diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb index cbaf397865..6afcc14425 100644 --- a/spec/controllers/admin/statuses_controller_spec.rb +++ b/spec/controllers/admin/statuses_controller_spec.rb @@ -34,13 +34,13 @@ describe Admin::StatusesController do describe 'POST #create' do subject do - -> { post :create, params: { account_id: account.id, form_status_batch: { action: action, status_ids: status_ids } } } + -> { post :create, params: { :account_id => account.id, action => '', :form_status_batch => { status_ids: status_ids } } } end let(:action) { 'nsfw_on' } let(:status_ids) { [media_attached_status.id] } - context 'updates sensitive column to true' do + context 'when action is nsfw_on' do it 'updates sensitive column' do is_expected.to change { media_attached_status.reload.sensitive @@ -48,7 +48,7 @@ describe Admin::StatusesController do end end - context 'updates sensitive column to false' do + context 'when action is nsfw_off' do let(:action) { 'nsfw_off' } let(:sensitive) { false } @@ -59,32 +59,13 @@ describe Admin::StatusesController do end end - it 'redirects to account statuses page' do - subject.call - expect(response).to redirect_to(admin_account_statuses_path(account.id)) - end - end + context 'when action is delete' do + let(:action) { 'delete' } - describe 'PATCH #update' do - subject do - -> { patch :update, params: { account_id: account.id, id: media_attached_status, status: { sensitive: sensitive } } } - end - - context 'updates sensitive column to true' do - it 'updates sensitive column' do - is_expected.to change { - media_attached_status.reload.sensitive - }.from(false).to(true) - end - end - - context 'updates sensitive column to false' do - let(:sensitive) { false } - - it 'updates sensitive column' do - is_expected.to change { - media_attached_status.reload.sensitive - }.from(true).to(false) + it 'removes a status' do + allow(RemovalWorker).to receive(:perform_async) + subject.call + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first) end end @@ -93,15 +74,4 @@ describe Admin::StatusesController do expect(response).to redirect_to(admin_account_statuses_path(account.id)) end end - - describe 'DELETE #destroy' do - it 'removes a status' do - allow(RemovalWorker).to receive(:perform_async) - - delete :destroy, params: { account_id: account.id, id: status } - expect(response).to have_http_status(200) - expect(RemovalWorker). - to have_received(:perform_async).with(status.id) - end - end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 760214dede..cc8d88cc85 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -75,7 +75,7 @@ RSpec.describe User, type: :model do describe 'inactive' do it 'returns a relation of inactive users' do specified = Fabricate(:user, current_sign_in_at: 15.days.ago) - Fabricate(:user, current_sign_in_at: 13.days.ago) + Fabricate(:user, current_sign_in_at: 6.days.ago) expect(User.inactive).to match_array([specified]) end diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index f4c810f758..dd7561587d 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -116,6 +116,7 @@ RSpec.describe ResolveAccountService, type: :service do expect(account.activitypub?).to eq true expect(account.domain).to eq 'ap.example.com' expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox' + expect(account.actor_type).to eq 'Person' end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9030329373..0cd1f91d02 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,20 +1,17 @@ -#require 'rspec/retry' -require 'simplecov' - GC.disable -SimpleCov.start 'rails' do - add_group 'Services', 'app/services' - add_group 'Presenters', 'app/presenters' - add_group 'Validators', 'app/validators' +if ENV['DISABLE_SIMPLECOV'] != 'true' + require 'simplecov' + SimpleCov.start 'rails' do + add_group 'Services', 'app/services' + add_group 'Presenters', 'app/presenters' + add_group 'Validators', 'app/validators' + end end gc_counter = -1 RSpec.configure do |config| - #config.verbose_retry = true - #config.display_try_failure_messages = true - config.expect_with :rspec do |expectations| expectations.include_chain_clauses_in_custom_matcher_descriptions = true end @@ -29,10 +26,6 @@ RSpec.configure do |config| end end - #config.around :each do |ex| - # ex.run_with_retry retry: 3 - #end - config.before :suite do Chewy.strategy(:bypass) end diff --git a/yarn.lock b/yarn.lock index 0513845eb8..9514e9d2f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2605,6 +2605,10 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exif-js@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"