diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/application.rb | 4 | ||||
-rw-r--r-- | config/database.yml | 1 | ||||
-rw-r--r-- | config/environments/production.rb | 8 | ||||
-rw-r--r-- | config/i18n-tasks.yml | 2 | ||||
-rw-r--r-- | config/initializers/devise.rb | 3 | ||||
-rw-r--r-- | config/initializers/httplog.rb | 8 | ||||
-rw-r--r-- | config/initializers/kaminari_config.rb | 7 | ||||
-rw-r--r-- | config/initializers/pagination.rb | 0 | ||||
-rw-r--r-- | config/locales/de.yml | 2 | ||||
-rw-r--r-- | config/locales/devise.fr.yml | 2 | ||||
-rw-r--r-- | config/locales/devise.ru.yml | 61 | ||||
-rw-r--r-- | config/locales/doorkeeper.fr.yml | 8 | ||||
-rw-r--r-- | config/locales/doorkeeper.ru.yml | 113 | ||||
-rw-r--r-- | config/locales/en.yml | 3 | ||||
-rw-r--r-- | config/locales/eo.yml | 2 | ||||
-rw-r--r-- | config/locales/es.yml | 2 | ||||
-rw-r--r-- | config/locales/fi.yml | 2 | ||||
-rw-r--r-- | config/locales/fr.yml | 38 | ||||
-rw-r--r-- | config/locales/hu.yml | 2 | ||||
-rw-r--r-- | config/locales/no.yml | 2 | ||||
-rw-r--r-- | config/locales/pt.yml | 2 | ||||
-rw-r--r-- | config/locales/ru.yml | 163 | ||||
-rw-r--r-- | config/locales/simple_form.ru.yml | 46 | ||||
-rw-r--r-- | config/locales/uk.yml | 2 | ||||
-rw-r--r-- | config/locales/zh-CN.yml | 2 | ||||
-rw-r--r-- | config/routes.rb | 8 | ||||
-rw-r--r-- | config/settings.yml | 7 |
27 files changed, 447 insertions, 53 deletions
diff --git a/config/application.rb b/config/application.rb index 9a5c0d0d3..dc937ca0e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -24,7 +24,9 @@ module Mastodon # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi, :eo] + + config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi, :eo, :ru] + config.i18n.default_locale = :en # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') diff --git a/config/database.yml b/config/database.yml index 5ec342f93..810b83278 100644 --- a/config/database.yml +++ b/config/database.yml @@ -22,3 +22,4 @@ production: password: <%= ENV['DB_PASS'] || '' %> host: <%= ENV['DB_HOST'] || 'localhost' %> port: <%= ENV['DB_PORT'] || 5432 %> + prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %> diff --git a/config/environments/production.rb b/config/environments/production.rb index dc5dd4afd..05cced67b 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -38,9 +38,9 @@ Rails.application.configure do # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = false - # Use the lowest log level to ensure availability of diagnostic information + # By default, use the lowest log level to ensure availability of diagnostic information # when problems arise. - config.log_level = :debug + config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'debug').to_sym # Prepend all log lines with the following tags. config.log_tags = [:request_id] @@ -99,7 +99,9 @@ Rails.application.configure do :user_name => ENV['SMTP_LOGIN'], :password => ENV['SMTP_PASSWORD'], :domain => ENV['SMTP_DOMAIN'] || config.x.local_domain, - :authentication => :plain, + :authentication => ENV['SMTP_AUTH_METHOD'] || :plain, + :openssl_verify_mode => ENV['SMTP_OPENSSL_VERIFY_MODE'] || 'peer', + :enable_starttls_auto => ENV['SMTP_ENABLE_STARTTLS_AUTO'] || true, } config.action_mailer.delivery_method = :smtp diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 4304bbd18..7ae143f93 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -33,7 +33,7 @@ search: ignore_unused: - 'activerecord.attributes.*' - - '{devise,will_paginate,doorkeeper}.*' + - '{devise,pagination,doorkeeper}.*' - '{datetime,time}.*' - 'simple_form.{yes,no}' - 'simple_form.{placeholders,hints,labels}.*' diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index ede6640bb..3c23e7b2e 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -74,7 +74,8 @@ Devise.setup do |config| # It will change confirmation, password recovery and other workflows # to behave the same regardless if the e-mail provided was right or wrong. # Does not affect registerable. - # config.paranoid = true + # See : https://github.com/plataformatec/devise/wiki/How-To:-Using-paranoid-mode,-avoid-user-enumeration-on-registerable + config.paranoid = true # By default Devise will store the user in session. You can skip storage for # particular strategies by setting this option. diff --git a/config/initializers/httplog.rb b/config/initializers/httplog.rb index 37f113d5d..5cfc16a8b 100644 --- a/config/initializers/httplog.rb +++ b/config/initializers/httplog.rb @@ -1,3 +1,5 @@ -HttpLog.options[:logger] = Rails.logger -HttpLog.options[:color] = { color: :yellow } -HttpLog.options[:compact_log] = true +HttpLog.configure do |config| + config.logger = Rails.logger + config.color = { color: :yellow } + config.compact_log = true +end diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari_config.rb new file mode 100644 index 000000000..bd455f382 --- /dev/null +++ b/config/initializers/kaminari_config.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +Kaminari.configure do |config| + config.default_per_page = 40 + config.window = 1 + config.left = 3 + config.right = 1 +end diff --git a/config/initializers/pagination.rb b/config/initializers/pagination.rb new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/config/initializers/pagination.rb diff --git a/config/locales/de.yml b/config/locales/de.yml index ed54bb699..75ac4e1bb 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -88,5 +88,3 @@ de: default: "%d.%m.%Y %H:%M" users: invalid_email: Inkorrekte E-mail-Addresse - will_paginate: - page_gap: "…" diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index ce44d041a..3b46b01e3 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -58,4 +58,4 @@ fr: not_locked: n'était pas verrouillé(e) not_saved: one: '1 erreur a empêché ce(tte) %{resource} d''être sauvegardé(e) :' - other: '%{count} erreurs ont empêché ce(tte) %{resource} d''être sauvegardé(e): ' + other: '%{count} erreurs ont empêché ce(tte) %{resource} d''être sauvegardé(e) : ' diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml new file mode 100644 index 000000000..f829f9d8e --- /dev/null +++ b/config/locales/devise.ru.yml @@ -0,0 +1,61 @@ +--- +ru: + devise: + confirmations: + confirmed: Ваш адрес e-mail был успешно подтвержден. + send_instructions: Вы получите e-mail с инструкцией по подтверждению Вашего адреса e-mail в течение нескольких минут. + send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению Вашего адреса в течение нескольких минут. + failure: + already_authenticated: Вы уже авторизованы. + inactive: Ваш аккаунт еще не активирован. + invalid: Неверно введены %{authentication_keys} или пароль. + last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован. + locked: Ваш аккаунт заблокирован. + not_found_in_database: Неверно введены %{authentication_keys} или пароль. + timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить. + unauthenticated: Вам необходимо войти или зарегистрироваться. + unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения. + mailer: + confirmation_instructions: + subject: 'Mastodon: Инструкция по подтверждению' + password_change: + subject: 'Mastodon: Пароль изменен' + reset_password_instructions: + subject: 'Mastodon: Инструкция по сбросу пароля' + unlock_instructions: + subject: 'Mastodon: Инструкция по разблокировке' + omniauth_callbacks: + failure: Не получилось аутентифицировать Вас с помощью %{kind} по следующей причине - "%{reason}". + success: Аутентификация с помощью аккаунта %{kind} прошла успешно. + passwords: + no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если Вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений. + send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут. + send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, Вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут. + updated: Ваш пароль был успешно изменен. Вход выполнен. + updated_not_active: Ваш пароль был успешно изменен. + registrations: + destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть Вас снова. + signed_up: Добро пожаловать! Вы успешно зарегистрировались. + signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт еще не активирован. + signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт заблокирован. + signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на Ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации Вашего аккаунта. + update_needs_confirmation: Вы успешно обновили Ваш аккаунт, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и пройдите по ссылке для подтверждения Вашего нового адреса. + updated: Ваш аккаунт был успешно обновлен. + sessions: + already_signed_out: Выход прошел успешно. + signed_in: Вход прошел успешно. + signed_out: Выход прошел успешно. + unlocks: + send_instructions: Вы получите e-mail с инструкцией по разблокировке Вашего аккаунта в течение нескольких минут. + send_paranoid_instructions: Если Ваш аккаунт существует, Вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут. + unlocked: Ваш аккаунт был успешно разблокирован. пожалуйста, войдите для продолжения. + errors: + messages: + already_confirmed: уже подтвержден, пожалуйста, попробуйте войти + confirmation_period_expired: не был подтвержден в течение %{period}, пожалуйста, запросите новый + expired: истек, пожалуйста, запросите новый + not_found: не найден + not_locked: не был заблокирован + not_saved: + one: '1 ошибка помешала сохранению этого %{resource}:' + other: "%{count} ошибки помешали сохранению этого %{resource}:" diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index be109df9c..cfc9083d7 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -23,11 +23,11 @@ fr: edit: Modifier submit: Envoyer confirmations: - destroy: Êtes-vous certain? + destroy: Êtes-vous certain ? edit: title: Modifier l'application form: - error: Oups! Vérifier votre formulaire pour des erreurs possibles + error: Oups ! Vérifier votre formulaire pour des erreurs possibles help: native_redirect_uri: Utiliser %{native_redirect_uri} pour les tests locaux redirect_uri: Utiliser une ligne par URL @@ -54,7 +54,7 @@ fr: title: Une erreur est survenue new: able_to: Cette application pourra - prompt: Autoriser %{client_name} à utiliser votre compte? + prompt: Autoriser %{client_name} à utiliser votre compte ? title: Autorisation requise show: title: Code d'autorisation @@ -109,5 +109,5 @@ fr: title: Autorisation OAuth requise scopes: follow: s’abonner, se désabonner, bloquer, et débloquer des comptes - read: lire les données de votre compte + read: lire les données de votre compte write: poster en tant que vous diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml new file mode 100644 index 000000000..8862936dc --- /dev/null +++ b/config/locales/doorkeeper.ru.yml @@ -0,0 +1,113 @@ +--- +ru: + activerecord: + attributes: + doorkeeper/application: + name: Название + redirect_uri: URI перенаправления + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: не может содержать фрагмент. + invalid_uri: должен быть правильным URI. + relative_uri: должен быть абсолютным URI. + secured_uri: должен быть HTTPS/SSL URI. + doorkeeper: + applications: + buttons: + authorize: Авторизовать + cancel: Отменить + destroy: Удалить + edit: Изменить + submit: Принять + confirmations: + destroy: Вы уверены? + edit: + title: Изменить приложение + form: + error: Ой! Проверьте Вашу форму на возможные ошибки + help: + native_redirect_uri: Используйте %{native_redirect_uri} для локального тестирования + redirect_uri: Используйте по одной строке на URI + scopes: Разделяйте список разрешений пробелами. Оставьте незаполненным для использования разрешений по умолчанию. + index: + callback_url: Callback URL + name: Название + new: Новое Приложение + title: Ваши приложения + new: + title: Новое Приложение + show: + actions: Действия + application_id: Id приложения + callback_urls: Callback urls + scopes: Разрешения + secret: Секрет + title: 'Приложение: %{name}' + authorizations: + buttons: + authorize: Авторизовать + deny: Отказать + error: + title: Произошла ошибка + new: + able_to: Оно сможет + prompt: Приложение %{client_name} запрашивает доступ к Вашему аккаунту + title: Требуется авторизация + show: + title: Код авторизации + authorized_applications: + buttons: + revoke: Отозвать авторизацию + confirmations: + revoke: Вы уверены? + index: + application: Приложение + created_at: Авторизовано + date_format: "%Y-%m-%d %H:%M:%S" + scopes: Разрешения + title: Ваши авторизованные приложения + errors: + messages: + access_denied: Владелец ресурса или сервер авторизации ответил отказом на Ваш запрос. + credential_flow_not_configured: Поток с предоставлением клиенту пароля завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_from_credentials не был сконфигурирован. + invalid_client: Клиентская аутентификация завершилась неудачей (неизвестный клиент, не включена клиентская аутентификация, или метод аутентификации не поддерживается. + invalid_grant: Предоставленный доступ некорректен, истек, отозван, не совпадает с URI перенаправления, использованным в запросе авторизации, или был выпущен для другого клиента. + invalid_redirect_uri: Включенный URI перенаправления некорректен. + invalid_request: В запросе не хватает обязательного параметра, присутствует неподдерживаемое значение параметра, либо он был сформирован неверно. + invalid_resource_owner: Предоставленные данные владельца ресурса некорректны, или владелец ресурса не может быть найден + invalid_scope: Запрошенное разрешение некорректно, неизвестно или неверно сформировано. + invalid_token: + expired: Токен доступа истек + revoked: Токен доступа был отменен + unknown: Токен доступа некорректен + resource_owner_authenticator_not_configured: Поиск владельца ресурса завершился неудачей, поскольку параметр Doorkeeper.configure.resource_owner_authenticator не был сконфигурирован. + server_error: Сервер авторизации встретился с неожиданной ошибкой, не позволившей ему выполнить запрос. + temporarily_unavailable: Сервер авторизации в данный момент не может выполнить запрос по причине временной перегрузки или профилактики. + unauthorized_client: Клиент не авторизован для выполнения этого запроса с использованием этого метода. + unsupported_grant_type: Тип авторизации не поддерживается сервером авторизации. + unsupported_response_type: Сервер авторизации не поддерживает этот тип ответа. + flash: + applications: + create: + notice: Приложение создано. + destroy: + notice: Приложение удалено. + update: + notice: Приложение обновлено. + authorized_applications: + destroy: + notice: Авторизация приложения отозвана. + layouts: + admin: + nav: + applications: Приложения + oauth2_provider: Провайдер OAuth2 + application: + title: Требуется авторизация OAuth + scopes: + follow: подписываться, отписываться, блокировать и разблокировать аккаунты + read: читать данные Вашего аккаунта + write: отправлять за Вас посты diff --git a/config/locales/en.yml b/config/locales/en.yml index 118798ba1..6c4738991 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -126,6 +126,7 @@ en: pagination: next: Next prev: Prev + truncate: "…" remote_follow: acct: Enter your username@domain you want to follow from missing_resource: Could not find the required redirect URL for your account @@ -169,5 +170,3 @@ en: users: invalid_email: The e-mail address is invalid invalid_otp_token: Invalid two-factor code - will_paginate: - page_gap: "…" diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 3644b37bb..e82e42495 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -160,5 +160,3 @@ eo: users: invalid_email: La retpoŝt-adreso ne estas valida invalid_otp_token: La dufaktora aŭtentigila kodo ne estas valida - will_paginate: - page_gap: "…" diff --git a/config/locales/es.yml b/config/locales/es.yml index 19f2c71b8..42245d675 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -51,5 +51,3 @@ es: settings: edit_profile: Editar perfil preferences: Preferencias - will_paginate: - page_gap: "…" diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 56aa9df49..c11237226 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -160,5 +160,3 @@ fi: users: invalid_email: Virheellinen sähköposti invalid_otp_token: Virheellinen kaksivaihe tunnistus koodi - will_paginate: - page_gap: "…" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 9727f3b7e..92cf43944 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -4,7 +4,7 @@ fr: about_mastodon: Mastodon est un serveur <em>libre</em> de réseautage social. Alternative <em>décentralisée</em> aux plateformes commerciales, la monopolisation de vos communications par une entreprise unique est évitée. Tout un chacun peut faire tourner Mastodon et participer au <em>réseau social</em> de manière transparente. about_this: À propos de cette instance apps: Applications - business_email: E-mail professionnel + business_email: Courriel professionnel closed_registrations: Les inscriptions sont actuellement fermées sur cette instance. contact: Contact description_headline: Qu'est-ce que %{domain} ? @@ -40,9 +40,9 @@ fr: remote_follow: Suivre à distance unfollow: Ne plus suivre application_mailer: - settings: 'Changer les préférences e-mail: ${link}' + settings: 'Changer les préférences courriel : ${link}' signature: Notifications de Mastodon depuis %{instance} - view: 'Voir:' + view: 'Voir :' applications: invalid_url: L'URL fournie est invalide auth: @@ -58,21 +58,27 @@ fr: authorize_follow: error: Malheureusement, il y a eu une erreur en cherchant les détails du compte distant follow: Suivre - prompt_html: 'Vous (<strong>%{self}</strong>) avez demandé à suivre:' + prompt_html: 'Vous (<strong>%{self}</strong>) avez demandé à suivre :' title: Suivre %{acct} datetime: distance_in_words: about_x_hours: "%{count}h" - about_x_months: "%{count}mo" - about_x_years: "%{count}y" - almost_x_years: "%{count}y" + about_x_months: "%{count}mois" + about_x_years: + one: un an + other: "%{count} ans" + almost_x_years: + one: un an + other: "%{count} ans" half_a_minute: A l'instant - less_than_x_minutes: "%{count}m" + less_than_x_minutes: "%{count}min" less_than_x_seconds: A l'instant - over_x_years: "%{count}y" - x_days: "%{count}d" - x_minutes: "%{count}m" - x_months: "%{count}mo" + over_x_years: + one: un an + other: "%{count} ans" + x_days: "%{count}j" + x_minutes: "%{count}min" + x_months: "%{count}mois" x_seconds: "%{count}s" exports: blocks: Vous bloquez @@ -96,7 +102,7 @@ fr: landing_strip_html: <strong>%{name}</strong> utilise <strong>%{domain}</strong>. Vous pouvez le/la suivre et interagir si vous possédez un compte quelque part dans le "fediverse". Si ce n'est pas le cas, vous pouvez <a href="%{sign_up_path}">en créer un ici</a>. notification_mailer: digest: - body: 'Voici ce que vous avez raté sur ${instance} depuis votre dernière visite (%{}):' + body: 'Voici ce que vous avez raté sur ${instance} depuis votre dernière visite (%{}) :' mention: '%{name} vous a mentionné⋅e' new_followers_summary: one: Vous avez un⋅e nouvel⋅le abonné⋅e ! Youpi ! @@ -156,10 +162,8 @@ fr: disable: Désactiver enable: Activer instructions_html: "<strong>Scannez ce QR code grâce à Google Authenticator, Authy ou une application similaire sur votre téléphone</strong>. Désormais, cette application générera des jetons que vous devrez saisir à chaque connexion." - plaintext_secret_html: 'Code secret en clair: <samp>%{secret}</samp>' + plaintext_secret_html: 'Code secret en clair : <samp>%{secret}</samp>' warning: Si vous ne pouvez pas configurer une application d'authentification maintenant, vous devriez cliquer sur "Désactiver" pour ne pas bloquer l'accès à votre compte. users: - invalid_email: L'adresse e-mail est invalide + invalid_email: L'adresse courriel est invalide invalid_otp_token: Le code d'authentification à deux facteurs est invalide - will_paginate: - page_gap: "…" diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 915d02c19..96b73d43c 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -51,5 +51,3 @@ hu: settings: edit_profile: Profil szerkesztése preferences: Beállítások - will_paginate: - page_gap: "…" diff --git a/config/locales/no.yml b/config/locales/no.yml index b9a752d5a..9aa966d2a 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -160,5 +160,3 @@ users: invalid_email: E-post addressen er ugyldig invalid_otp_token: Ugyldig two-faktor kode - will_paginate: - page_gap: "…" diff --git a/config/locales/pt.yml b/config/locales/pt.yml index ad7d05e3b..f2c7458f7 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -51,5 +51,3 @@ pt: settings: edit_profile: Editar perfil preferences: Preferências - will_paginate: - page_gap: "…" diff --git a/config/locales/ru.yml b/config/locales/ru.yml new file mode 100644 index 000000000..fab178629 --- /dev/null +++ b/config/locales/ru.yml @@ -0,0 +1,163 @@ +--- +ru: + about: + about_mastodon: Mastodon - это <em>свободная</em> социальная сеть с <em>открытым исходным кодом</em>. Как <em>децентрализованная</em> альтернатива коммерческим платформам, Mastodon предотвращает риск монополизации Вашего общения одной компанией. Выберите сервер, которому Вы доверяете — что бы Вы ни выбрали, Вы сможете общаться со всеми остальными. Любой может запустить свой собственный узел Mastodon и участвовать в <em>социальной сети</em> совершенно бесшовно. + about_this: Об этом узле + apps: Приложения + business_email: 'Деловой e-mail:' + closed_registrations: В данный момент регистрация на этом узле закрыта. + contact: Связаться + description_headline: Что такое %{domain}? + domain_count_after: другими узлами + domain_count_before: Связывается с + features: + api: Открытый API для приложений и сервисов + blocks: Продвинутые инструменты блокирования и глушения + characters: 500 символов на пост + chronology: Хронологические ленты + ethics: 'Этичный дизайн: нет рекламы, нет слежения' + gifv: GIFV и короткие видео + privacy: Тонкие настройки приватности для каждого поста + public: Публичные ленты + features_headline: Что выделяет Mastodon + get_started: Начать + links: Ссылки + other_instances: Другие узлы + source_code: Исходный код + status_count_after: статусов + status_count_before: Автор + terms: Условия + user_count_after: пользователей + user_count_before: Здесь живет + accounts: + follow: Подписаться + followers: Подписчики + following: Подписан(а) + nothing_here: Здесь ничего нет! + people_followed_by: Люди, на которых подписан(а) %{name} + people_who_follow: Подписчики %{name} + posts: Посты + remote_follow: Подписаться на удаленном узле + unfollow: Отписаться + application_mailer: + settings: 'Изменить настройки e-mail: %{link}' + signature: Уведомления Mastodon от %{instance} + view: 'View:' + applications: + invalid_url: Введенный URL неверен + auth: + change_password: Изменить пароль + didnt_get_confirmation: Не получили инструкцию для подтверждения? + forgot_password: Забыли пароль? + login: Войти + logout: Выйти + register: Зарегистрироваться + resend_confirmation: Повторить отправку инструкции для подтверждения + reset_password: Сбросить пароль + set_new_password: Задать новый пароль + authorize_follow: + error: К сожалению, при поиске удаленного аккаунта возникла ошибка + follow: Подписаться + prompt_html: 'Вы (<strong>%{self}</strong>) запросили подписку:' + title: Подписаться на %{acct} + datetime: + distance_in_words: + about_x_hours: "%{count}ч" + about_x_months: "%{count}мес" + about_x_years: "%{count}г" + almost_x_years: "%{count}г" + half_a_minute: Только что + less_than_x_minutes: "%{count}мин" + less_than_x_seconds: Только что + over_x_years: "%{count}г" + x_days: "%{count}д" + x_minutes: "%{count}мин" + x_months: "%{count}мес" + x_seconds: "%{count}сек" + exports: + blocks: Вы заблокировали + csv: CSV + follows: Подписки + storage: Ваш медиаконтент + generic: + changes_saved_msg: Изменения успешно сохранены! + powered_by: работает на %{link} + save_changes: Сохранить изменения + validation_errors: + one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже + other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже + imports: + preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Ваш аккаунт на этом узле из файлов, экспортированных с другого узла. + success: Ваши данные были успешно загружены и будут обработаны с должной скоростью + types: + blocking: Список блокируемых + following: Список подписок + upload: Загрузить + landing_strip_html: <strong>%{name}</strong> - пользователь на <strong>%{domain}</strong>. Вы можете подписаться на него/нее и общаться с ним/ней, если у Вас есть аккаунт на любом узле общей сети. Если у Вас его нет, вы можете <a href="%{sign_up_path}">зарегистрироваться здесь</a>. + notification_mailer: + digest: + body: 'Кратко о пропущенном Вами на %{instance} с Вашего последнего захода %{since}:' + mention: "%{name} упомянул(а) Вас в:" + new_followers_summary: + one: У Вас появился новый подписчик! Ура! + other: У Вас появилось %{count} новых подписчика(-ов)! Отлично! + subject: + one: "1 новое уведомление с Вашего последнего захода \U0001F418" + other: "%{count} новых уведомлений с Вашего последнего захода \U0001F418" + favourite: + body: 'Ваш статус понравился %{name}:' + subject: "%{name} понравился Ваш статус" + follow: + body: "%{name} теперь подписан(а) на Вас!" + subject: "%{name} теперь подписан(а) на Вас" + follow_request: + body: "%{name} запросил Вас о подписке" + subject: '%{name} хочет подписаться на Вас' + mention: + body: 'Вас упомянул(а) %{name} в:' + subject: Вы были упомянуты %{name} + reblog: + body: 'Ваш статус был продвинут %{name}:' + subject: "%{name} продвинул(а) Ваш статус" + pagination: + next: След + prev: Пред + remote_follow: + acct: Введите username@domain, откуда Вы хотите подписаться + missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей + proceed: Продолжить подписку + prompt: 'Вы ходите подписаться на:' + settings: + authorized_apps: Авторизованные приложения + back: Назад в Mastodon + edit_profile: Изменить профиль + export: Экспорт данных + import: Импорт + preferences: Настройки + settings: Опции + two_factor_auth: Двухфакторная аутентификация + statuses: + open_in_web: Открыть в WWW + over_character_limit: превышен лимит символов (%{max}) + show_more: Подробнее + visibilities: + private: Показывать только подписчикам + public: Публичный + unlisted: Публичный, но без отображения в публичных лентах + stream_entries: + click_to_show: Показать + reblogged: продвинул(а) + sensitive_content: Чувствительный контент + time: + formats: + default: "%b %d, %Y, %H:%M" + two_factor_auth: + description_html: При включении <strong>двухфакторной аутентификации</strong>, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены. + disable: Отключить + enable: Включить + instructions_html: "<strong>Отсканируйте этот QR-код с помощью Google Authenticator или другого подобного приложения на Вашем телефоне</strong>. С этого момента приложение будет генерировать токены, которые будет необходимо ввести для входа." + plaintext_secret_html: 'Секрет открытым текстом: <samp>%{secret}</samp>' + warning: Если сейчас у Вас не получается настроить аутентификатор, нажмите "отключить", иначе Вы не сможете войти! + users: + invalid_email: Введенный e-mail неверен + invalid_otp_token: Введен неверный код diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml new file mode 100644 index 000000000..6f4873bfd --- /dev/null +++ b/config/locales/simple_form.ru.yml @@ -0,0 +1,46 @@ +--- +ru: + simple_form: + hints: + defaults: + avatar: PNG, GIF или JPG. Максимально 2MB. Будет уменьшено до 120x120px + display_name: Максимально 30 символов + header: PNG, GIF или JPG. Максимально 2MB. Будет уменьшено до 700x335px + locked: Потребует от Вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков" + note: Максимально 160 символов + imports: + data: Файл CSV, экспортированный с другого узла Mastodon + labels: + defaults: + avatar: Аватар + confirm_new_password: Повторите новый пароль + confirm_password: Повторите пароль + current_password: Текущий пароль + data: Данные + display_name: Показываемое имя + email: Адрес e-mail + header: Заголовок + locale: Язык + locked: Сделать аккаунт приватным + new_password: Новый пароль + note: О Вас + otp_attempt: Двухфакторный код + password: Пароль + setting_default_privacy: Приватность постов + type: Тип импорта + username: Имя пользователя + interactions: + must_be_follower: Заблокировать уведомления не от подписчиков + must_be_following: Заблокировать уведомления от людей, на которых Вы не подписаны + notification_emails: + digest: Присылать дайджест по e-mail + favourite: Уведомлять по e-mail, когда кому-то нравится Ваш статус + follow: Уведомлять по e-mail, когда кто-то подписался на Вас + follow_request: Уведомлять по e-mail, когда кто-то запрашивает разрешение на подписку + mention: Уведомлять по e-mail, когда кто-то упомянул Вас + reblog: Уведомлять по e-mail, когда кто-то продвинул Ваш статус + 'no': 'Нет' + required: + mark: "*" + text: обязательно + 'yes': 'Да' diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 27e8135df..f7176e86d 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -51,5 +51,3 @@ uk: settings: edit_profile: Редагувати профіль preferences: Налаштування - will_paginate: - page_gap: "…" diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 78c4d46e2..48028d00c 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -150,5 +150,3 @@ zh-CN: users: invalid_email: 无效的邮箱 invalid_otp_token: 无效的两步验证码 - will_paginate: - page_gap: "…" diff --git a/config/routes.rb b/config/routes.rb index 9cbecf077..9adcdb862 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -163,6 +163,7 @@ Rails.application.routes.draw do collection do get :relationships get :verify_credentials + patch :update_credentials get :search end @@ -188,11 +189,14 @@ Rails.application.routes.draw do get '/web/(*any)', to: 'home#index', as: :web - get '/about', to: 'about#index' + get '/about', to: 'about#show' get '/about/more', to: 'about#more' get '/terms', to: 'about#terms' root 'home#index' - match '*unmatched_route', via: :all, to: 'application#raise_not_found' + match '*unmatched_route', + via: :all, + to: 'application#raise_not_found', + format: false end diff --git a/config/settings.yml b/config/settings.yml index e4501e6e6..d364120db 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1,4 +1,11 @@ # config/app.yml for rails-settings-cached +# +# This file contains default values, and does not need to be edited +# when configuring an instance. These settings may be changed by an +# Administrator using the Web UI. +# +# For more information, see docs/Running-Mastodon/Administration-guide.md +# defaults: &defaults site_title: 'Mastodon' site_description: '' |