Localizations for most server-side strings
This commit is contained in:
		
							parent
							
								
									3ce6ac0ce2
								
							
						
					
					
						commit
						546c4718e7
					
				
					 33 changed files with 296 additions and 220 deletions
				
			
		
							
								
								
									
										1
									
								
								Gemfile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Gemfile
									
										
									
									
									
								
							| 
						 | 
					@ -55,6 +55,7 @@ group :development, :test do
 | 
				
			||||||
  gem 'pry-rails'
 | 
					  gem 'pry-rails'
 | 
				
			||||||
  gem 'fuubar'
 | 
					  gem 'fuubar'
 | 
				
			||||||
  gem 'fabrication'
 | 
					  gem 'fabrication'
 | 
				
			||||||
 | 
					  gem 'i18n-tasks', '~> 0.9.6'
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
group :test do
 | 
					group :test do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										22
									
								
								Gemfile.lock
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								Gemfile.lock
									
										
									
									
									
								
							| 
						 | 
					@ -103,6 +103,10 @@ GEM
 | 
				
			||||||
    dotenv-rails (2.1.1)
 | 
					    dotenv-rails (2.1.1)
 | 
				
			||||||
      dotenv (= 2.1.1)
 | 
					      dotenv (= 2.1.1)
 | 
				
			||||||
      railties (>= 4.0, < 5.1)
 | 
					      railties (>= 4.0, < 5.1)
 | 
				
			||||||
 | 
					    easy_translate (0.5.0)
 | 
				
			||||||
 | 
					      json
 | 
				
			||||||
 | 
					      thread
 | 
				
			||||||
 | 
					      thread_safe
 | 
				
			||||||
    erubis (2.7.0)
 | 
					    erubis (2.7.0)
 | 
				
			||||||
    excon (0.53.0)
 | 
					    excon (0.53.0)
 | 
				
			||||||
    execjs (2.7.0)
 | 
					    execjs (2.7.0)
 | 
				
			||||||
| 
						 | 
					@ -129,6 +133,7 @@ GEM
 | 
				
			||||||
      hamlit (>= 1.2.0)
 | 
					      hamlit (>= 1.2.0)
 | 
				
			||||||
      railties (>= 4.0.1)
 | 
					      railties (>= 4.0.1)
 | 
				
			||||||
    hashdiff (0.3.0)
 | 
					    hashdiff (0.3.0)
 | 
				
			||||||
 | 
					    highline (1.7.8)
 | 
				
			||||||
    hiredis (0.6.1)
 | 
					    hiredis (0.6.1)
 | 
				
			||||||
    htmlentities (4.3.4)
 | 
					    htmlentities (4.3.4)
 | 
				
			||||||
    http (2.0.3)
 | 
					    http (2.0.3)
 | 
				
			||||||
| 
						 | 
					@ -143,6 +148,16 @@ GEM
 | 
				
			||||||
    httplog (0.3.2)
 | 
					    httplog (0.3.2)
 | 
				
			||||||
      colorize
 | 
					      colorize
 | 
				
			||||||
    i18n (0.7.0)
 | 
					    i18n (0.7.0)
 | 
				
			||||||
 | 
					    i18n-tasks (0.9.6)
 | 
				
			||||||
 | 
					      activesupport (>= 4.0.2)
 | 
				
			||||||
 | 
					      ast (>= 2.1.0)
 | 
				
			||||||
 | 
					      easy_translate (>= 0.5.0)
 | 
				
			||||||
 | 
					      erubis
 | 
				
			||||||
 | 
					      highline (>= 1.7.3)
 | 
				
			||||||
 | 
					      i18n
 | 
				
			||||||
 | 
					      parser (>= 2.2.3.0)
 | 
				
			||||||
 | 
					      term-ansicolor (>= 1.3.2)
 | 
				
			||||||
 | 
					      terminal-table (>= 1.5.1)
 | 
				
			||||||
    jbuilder (2.6.0)
 | 
					    jbuilder (2.6.0)
 | 
				
			||||||
      activesupport (>= 3.0.0, < 5.1)
 | 
					      activesupport (>= 3.0.0, < 5.1)
 | 
				
			||||||
      multi_json (~> 1.2)
 | 
					      multi_json (~> 1.2)
 | 
				
			||||||
| 
						 | 
					@ -352,9 +367,15 @@ GEM
 | 
				
			||||||
      activesupport (>= 4.0)
 | 
					      activesupport (>= 4.0)
 | 
				
			||||||
      sprockets (>= 3.0.0)
 | 
					      sprockets (>= 3.0.0)
 | 
				
			||||||
    temple (0.7.7)
 | 
					    temple (0.7.7)
 | 
				
			||||||
 | 
					    term-ansicolor (1.4.0)
 | 
				
			||||||
 | 
					      tins (~> 1.0)
 | 
				
			||||||
 | 
					    terminal-table (1.7.0)
 | 
				
			||||||
 | 
					      unicode-display_width (~> 1.1)
 | 
				
			||||||
    thor (0.19.1)
 | 
					    thor (0.19.1)
 | 
				
			||||||
 | 
					    thread (0.2.2)
 | 
				
			||||||
    thread_safe (0.3.5)
 | 
					    thread_safe (0.3.5)
 | 
				
			||||||
    tilt (2.0.5)
 | 
					    tilt (2.0.5)
 | 
				
			||||||
 | 
					    tins (1.12.0)
 | 
				
			||||||
    tzinfo (1.2.2)
 | 
					    tzinfo (1.2.2)
 | 
				
			||||||
      thread_safe (~> 0.1)
 | 
					      thread_safe (~> 0.1)
 | 
				
			||||||
    uglifier (3.0.1)
 | 
					    uglifier (3.0.1)
 | 
				
			||||||
| 
						 | 
					@ -401,6 +422,7 @@ DEPENDENCIES
 | 
				
			||||||
  htmlentities
 | 
					  htmlentities
 | 
				
			||||||
  http
 | 
					  http
 | 
				
			||||||
  httplog
 | 
					  httplog
 | 
				
			||||||
 | 
					  i18n-tasks (~> 0.9.6)
 | 
				
			||||||
  jbuilder (~> 2.0)
 | 
					  jbuilder (~> 2.0)
 | 
				
			||||||
  jquery-rails
 | 
					  jquery-rails
 | 
				
			||||||
  ledermann-rails-settings
 | 
					  ledermann-rails-settings
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ class NotificationMailer < ApplicationMailer
 | 
				
			||||||
    @status = status
 | 
					    @status = status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return unless @me.user.settings(:notification_emails).mention
 | 
					    return unless @me.user.settings(:notification_emails).mention
 | 
				
			||||||
    mail to: @me.user.email, subject: "You were mentioned by #{@status.account.acct}"
 | 
					    mail to: @me.user.email, subject: I18n.t('notification_mailer.mention.subject', name: @status.account.acct)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def follow(followed_account, follower)
 | 
					  def follow(followed_account, follower)
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ class NotificationMailer < ApplicationMailer
 | 
				
			||||||
    @account = follower
 | 
					    @account = follower
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return unless @me.user.settings(:notification_emails).follow
 | 
					    return unless @me.user.settings(:notification_emails).follow
 | 
				
			||||||
    mail to: @me.user.email, subject: "#{@account.acct} is now following you"
 | 
					    mail to: @me.user.email, subject: I18n.t('notification_mailer.follow.subject', name: @account.acct)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def favourite(target_status, from_account)
 | 
					  def favourite(target_status, from_account)
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ class NotificationMailer < ApplicationMailer
 | 
				
			||||||
    @status  = target_status
 | 
					    @status  = target_status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return unless @me.user.settings(:notification_emails).favourite
 | 
					    return unless @me.user.settings(:notification_emails).favourite
 | 
				
			||||||
    mail to: @me.user.email, subject: "#{@account.acct} favourited your status"
 | 
					    mail to: @me.user.email, subject: I18n.t('notification_mailer.favourite.subject', name: @account.acct)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def reblog(target_status, from_account)
 | 
					  def reblog(target_status, from_account)
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,6 @@ class NotificationMailer < ApplicationMailer
 | 
				
			||||||
    @status  = target_status
 | 
					    @status  = target_status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return unless @me.user.settings(:notification_emails).reblog
 | 
					    return unless @me.user.settings(:notification_emails).reblog
 | 
				
			||||||
    mail to: @me.user.email, subject: "#{@account.acct} reblogged your status"
 | 
					    mail to: @me.user.email, subject: I18n.t('notification_mailer.reblog.subject', name: @account.acct)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,24 +6,15 @@
 | 
				
			||||||
    = image_tag 'logo.png'
 | 
					    = image_tag 'logo.png'
 | 
				
			||||||
    Mastodon
 | 
					    Mastodon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  %p
 | 
					  %p= t('about.about_mastodon').html_safe
 | 
				
			||||||
    Mastodon is a
 | 
					  %p= t('about.about_instance', instance: Rails.configuration.x.local_domain).html_safe
 | 
				
			||||||
    %em free, open-source
 | 
					 | 
				
			||||||
    social network server. A
 | 
					 | 
				
			||||||
    %em decentralized
 | 
					 | 
				
			||||||
    alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the
 | 
					 | 
				
			||||||
    %em social network
 | 
					 | 
				
			||||||
    seamlessly.
 | 
					 | 
				
			||||||
  %p
 | 
					 | 
				
			||||||
    %em= Rails.configuration.x.local_domain
 | 
					 | 
				
			||||||
    is a Mastodon instance.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .screenshot= image_tag 'screenshot.png'
 | 
					  .screenshot= image_tag 'screenshot.png'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .actions
 | 
					  .actions
 | 
				
			||||||
    .info
 | 
					    .info
 | 
				
			||||||
      = link_to 'Terms', terms_path
 | 
					      = link_to t('about.terms'), terms_path
 | 
				
			||||||
      = link_to 'Source code', 'https://github.com/Gargron/mastodon'
 | 
					      = link_to t('about.source_code'), 'https://github.com/Gargron/mastodon'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    = link_to 'Get started', new_user_registration_path, class: 'button'
 | 
					    = link_to t('about.get_started'), new_user_registration_path, class: 'button'
 | 
				
			||||||
    = link_to 'Log in', new_user_session_path, class: 'button'
 | 
					    = link_to t('auth.login'), new_user_session_path, class: 'button'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,9 @@
 | 
				
			||||||
  - if user_signed_in? && current_account.id != @account.id
 | 
					  - if user_signed_in? && current_account.id != @account.id
 | 
				
			||||||
    .controls
 | 
					    .controls
 | 
				
			||||||
      - if current_account.following?(@account)
 | 
					      - if current_account.following?(@account)
 | 
				
			||||||
        = link_to 'Unfollow', unfollow_account_path(@account), data: { method: :post }, class: 'button'
 | 
					        = link_to t('accounts.unfollow'), unfollow_account_path(@account), data: { method: :post }, class: 'button'
 | 
				
			||||||
      - else
 | 
					      - else
 | 
				
			||||||
        = link_to 'Follow', follow_account_path(@account), data: { method: :post }, class: 'button'
 | 
					        = link_to t('accounts.follow'), follow_account_path(@account), data: { method: :post }, class: 'button'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .avatar= image_tag @account.avatar.url(:large)
 | 
					  .avatar= image_tag @account.avatar.url(:large)
 | 
				
			||||||
  %h1.name
 | 
					  %h1.name
 | 
				
			||||||
| 
						 | 
					@ -17,13 +17,13 @@
 | 
				
			||||||
    .details-counters
 | 
					    .details-counters
 | 
				
			||||||
      .counter{ class: active_nav_class(account_url(@account)) }
 | 
					      .counter{ class: active_nav_class(account_url(@account)) }
 | 
				
			||||||
        = link_to account_url(@account) do
 | 
					        = link_to account_url(@account) do
 | 
				
			||||||
          %span.counter-label Posts
 | 
					          %span.counter-label= t('accounts.posts')
 | 
				
			||||||
          %span.counter-number= @account.statuses.count
 | 
					          %span.counter-number= @account.statuses.count
 | 
				
			||||||
      .counter{ class: active_nav_class(following_account_url(@account)) }
 | 
					      .counter{ class: active_nav_class(following_account_url(@account)) }
 | 
				
			||||||
        = link_to following_account_url(@account) do
 | 
					        = link_to following_account_url(@account) do
 | 
				
			||||||
          %span.counter-label Following
 | 
					          %span.counter-label= t('accounts.following')
 | 
				
			||||||
          %span.counter-number= @account.following.count
 | 
					          %span.counter-number= @account.following.count
 | 
				
			||||||
      .counter{ class: active_nav_class(followers_account_url(@account)) }
 | 
					      .counter{ class: active_nav_class(followers_account_url(@account)) }
 | 
				
			||||||
        = link_to followers_account_url(@account) do
 | 
					        = link_to followers_account_url(@account) do
 | 
				
			||||||
          %span.counter-label Followers
 | 
					          %span.counter-label= t('accounts.followers')
 | 
				
			||||||
          %span.counter-number= @account.followers.count
 | 
					          %span.counter-number= @account.followers.count
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
%p.nothing-here There is nothing here!
 | 
					%p.nothing-here= t('accounts.nothing_here')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
- content_for :page_title do
 | 
					- content_for :page_title do
 | 
				
			||||||
  People who follow
 | 
					  = t('accounts.people_who_follow', name: display_name(@account))
 | 
				
			||||||
  = display_name(@account)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
= render partial: 'header'
 | 
					= render partial: 'header'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,5 @@
 | 
				
			||||||
- content_for :page_title do
 | 
					- content_for :page_title do
 | 
				
			||||||
  People whom
 | 
					  = t('accounts.people_followed_by', name: display_name(@account))
 | 
				
			||||||
  = display_name(@account)
 | 
					 | 
				
			||||||
  follows
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
= render partial: 'header'
 | 
					= render partial: 'header'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,4 +2,4 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mastodon notifications from <%= Rails.configuration.x.local_domain %>
 | 
					<%= t('application_mailer.signature', instance: Rails.configuration.x.local_domain) %>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<%= display_name(@me) %>,
 | 
					<%= display_name(@me) %>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Your status was favourited by <%= @account.acct %>:
 | 
					<%= t('notification_mailer.favourite.body', name: @account.acct) %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<%= render partial: 'status' %>
 | 
					<%= render partial: 'status' %>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<%= display_name(@me) %>,
 | 
					<%= display_name(@me) %>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<%= @account.acct %> is now following you!
 | 
					<%= t('notification_mailer.follow.body', name: @account.acct) %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<%= web_url("accounts/#{@account.id}") %>
 | 
					<%= web_url("accounts/#{@account.id}") %>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<%= display_name(@me) %>,
 | 
					<%= display_name(@me) %>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You were mentioned by <%= @status.account.acct %> in:
 | 
					<%= t('notification_mailer.mention.body', name: @status.account.acct) %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<%= render partial: 'status' %>
 | 
					<%= render partial: 'status' %>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<%= display_name(@me) %>,
 | 
					<%= display_name(@me) %>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Your status was reblogged by <%= @account.acct %>:
 | 
					<%= t('notification_mailer.reblog.body', name: @account.acct) %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<%= render partial: 'status' %>
 | 
					<%= render partial: 'status' %>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
 | 
					- content_for :page_title do
 | 
				
			||||||
 | 
					  = t('doorkeeper.authorizations.new.title')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.oauth-prompt
 | 
					.oauth-prompt
 | 
				
			||||||
  %h2
 | 
					  %h2= t('doorkeeper.authorizations.new.prompt', name: @pre_auth.client.name)
 | 
				
			||||||
    Application
 | 
					 | 
				
			||||||
    %strong=@pre_auth.client.name
 | 
					 | 
				
			||||||
    requests access to your account
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  %p
 | 
					  %p
 | 
				
			||||||
    It will be able to
 | 
					    = t('doorkeeper.authorizations.new.able_to')
 | 
				
			||||||
    = @pre_auth.scopes.map { |scope| t(scope, scope: [:doorkeeper, :scopes]) }.map { |s| "<strong>#{s}</strong>"}.to_sentence.html_safe
 | 
					    = @pre_auth.scopes.map { |scope| t(scope, scope: [:doorkeeper, :scopes]) }.map { |s| "<strong>#{s}</strong>"}.to_sentence.html_safe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
= form_tag oauth_authorization_path, method: :post, class: 'simple_form' do
 | 
					= form_tag oauth_authorization_path, method: :post, class: 'simple_form' do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
.entry.entry-favourite
 | 
					.entry.entry-favourite
 | 
				
			||||||
  .content
 | 
					  .content
 | 
				
			||||||
    %strong= favourite.account.acct
 | 
					    %strong= favourite.account.acct
 | 
				
			||||||
    favourited a post by
 | 
					    = t('stream_entries.favourited')
 | 
				
			||||||
    %strong= favourite.status.account.acct
 | 
					    %strong= favourite.status.account.acct
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
.entry.entry-follow
 | 
					.entry.entry-follow
 | 
				
			||||||
  .content
 | 
					  .content
 | 
				
			||||||
    %strong= link_to follow.account.acct, account_path(follow.account)
 | 
					    %strong= link_to follow.account.acct, account_path(follow.account)
 | 
				
			||||||
    is now following
 | 
					    = t('stream_entries.is_now_following')
 | 
				
			||||||
    %strong= link_to follow.target_account.acct, TagManager.instance.url_for(follow.target_account)
 | 
					    %strong= link_to follow.target_account.acct, TagManager.instance.url_for(follow.target_account)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,16 +31,16 @@ module Mastodon
 | 
				
			||||||
      allow do
 | 
					      allow do
 | 
				
			||||||
        origins  '*'
 | 
					        origins  '*'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        resource '/api/*',       :headers => :any, :methods => [:post, :put, :delete, :get, :options], credentials: false
 | 
					        resource '/api/*',       headers: :any, methods: [:post, :put, :delete, :get, :options], credentials: false
 | 
				
			||||||
        resource '/oauth/token', :headers => :any, :methods => [:post], credentials: false
 | 
					        resource '/oauth/token', headers: :any, methods: [:post], credentials: false
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    config.middleware.use Rack::Attack
 | 
					    config.middleware.use Rack::Attack
 | 
				
			||||||
    config.middleware.use Rack::Deflater
 | 
					    config.middleware.use Rack::Deflater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    config.browserify_rails.source_map_environments += %w[development production]
 | 
					    config.browserify_rails.source_map_environments += %w(development production)
 | 
				
			||||||
    config.browserify_rails.commandline_options = "--transform [ babelify --presets [ es2015 react ] ] --extension=\".jsx\""
 | 
					    config.browserify_rails.commandline_options = '--transform [ babelify --presets [ es2015 react ] ] --extension=".jsx"'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    config.to_prepare do
 | 
					    config.to_prepare do
 | 
				
			||||||
      Doorkeeper::AuthorizationsController.layout 'auth'
 | 
					      Doorkeeper::AuthorizationsController.layout 'auth'
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@ module Mastodon
 | 
				
			||||||
      'Server'                 => 'Mastodon',
 | 
					      'Server'                 => 'Mastodon',
 | 
				
			||||||
      'X-Frame-Options'        => 'DENY',
 | 
					      'X-Frame-Options'        => 'DENY',
 | 
				
			||||||
      'X-Content-Type-Options' => 'nosniff',
 | 
					      'X-Content-Type-Options' => 'nosniff',
 | 
				
			||||||
      'X-XSS-Protection'       => '1; mode=block'
 | 
					      'X-XSS-Protection'       => '1; mode=block',
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										43
									
								
								config/i18n-tasks.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								config/i18n-tasks.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					# i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The "main" locale.
 | 
				
			||||||
 | 
					base_locale: en
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
					  read:
 | 
				
			||||||
 | 
					    - config/locales/%{locale}.yml
 | 
				
			||||||
 | 
					    - config/locales/**/*.%{locale}.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  write:
 | 
				
			||||||
 | 
					    - ['{devise, simple_form, doorkeeper}.*', 'config/locales/\1.%{locale}.yml']
 | 
				
			||||||
 | 
					    - config/locales/%{locale}.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  yaml:
 | 
				
			||||||
 | 
					    write:
 | 
				
			||||||
 | 
					      line_width: -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					search:
 | 
				
			||||||
 | 
					  paths:
 | 
				
			||||||
 | 
					   - app/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  relative_roots:
 | 
				
			||||||
 | 
					    - app/controllers
 | 
				
			||||||
 | 
					    - app/helpers
 | 
				
			||||||
 | 
					    - app/mailers
 | 
				
			||||||
 | 
					    - app/views
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exclude:
 | 
				
			||||||
 | 
					    - app/assets/images
 | 
				
			||||||
 | 
					    - app/assets/fonts
 | 
				
			||||||
 | 
					    - app/assets/videos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ignore_missing:
 | 
				
			||||||
 | 
					  - '{devise,simple_form}.*'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ignore_unused:
 | 
				
			||||||
 | 
					  - 'activerecord.attributes.*'
 | 
				
			||||||
 | 
					  - '{devise,will_paginate,doorkeeper}.*'
 | 
				
			||||||
 | 
					  - 'simple_form.{yes,no}'
 | 
				
			||||||
 | 
					  - 'simple_form.{placeholders,hints,labels}.*'
 | 
				
			||||||
 | 
					  - 'simple_form.{error_notification,required}.:'
 | 
				
			||||||
 | 
					  - 'errors.messages.*'
 | 
				
			||||||
 | 
					  - 'activerecord.errors.models.doorkeeper/*'
 | 
				
			||||||
| 
						 | 
					@ -8,4 +8,5 @@ Rails.application.config.assets.version = '1.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Precompile additional assets.
 | 
					# Precompile additional assets.
 | 
				
			||||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
 | 
					# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
 | 
				
			||||||
Rails.application.config.assets.precompile += %w( application_public.js )
 | 
					Rails.application.config.assets.precompile += %w(application_public.js)
 | 
				
			||||||
 | 
					Rails.application.config.assets.initialize_on_precompile = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,62 +1,61 @@
 | 
				
			||||||
# Additional translations at https://github.com/plataformatec/devise/wiki/I18n
 | 
					---
 | 
				
			||||||
 | 
					 | 
				
			||||||
en:
 | 
					en:
 | 
				
			||||||
  devise:
 | 
					  devise:
 | 
				
			||||||
    confirmations:
 | 
					    confirmations:
 | 
				
			||||||
      confirmed: "Your email address has been successfully confirmed."
 | 
					      confirmed: Your email address has been successfully confirmed.
 | 
				
			||||||
      send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
 | 
					      send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes.
 | 
				
			||||||
      send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
 | 
					      send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes.
 | 
				
			||||||
    failure:
 | 
					    failure:
 | 
				
			||||||
      already_authenticated: "You are already signed in."
 | 
					      already_authenticated: You are already signed in.
 | 
				
			||||||
      inactive: "Your account is not activated yet."
 | 
					      inactive: Your account is not activated yet.
 | 
				
			||||||
      invalid: "Invalid %{authentication_keys} or password."
 | 
					      invalid: Invalid %{authentication_keys} or password.
 | 
				
			||||||
      locked: "Your account is locked."
 | 
					      last_attempt: You have one more attempt before your account is locked.
 | 
				
			||||||
      last_attempt: "You have one more attempt before your account is locked."
 | 
					      locked: Your account is locked.
 | 
				
			||||||
      not_found_in_database: "Invalid %{authentication_keys} or password."
 | 
					      not_found_in_database: Invalid %{authentication_keys} or password.
 | 
				
			||||||
      timeout: "Your session expired. Please sign in again to continue."
 | 
					      timeout: Your session expired. Please sign in again to continue.
 | 
				
			||||||
      unauthenticated: "You need to sign in or sign up before continuing."
 | 
					      unauthenticated: You need to sign in or sign up before continuing.
 | 
				
			||||||
      unconfirmed: "You have to confirm your email address before continuing."
 | 
					      unconfirmed: You have to confirm your email address before continuing.
 | 
				
			||||||
    mailer:
 | 
					    mailer:
 | 
				
			||||||
      confirmation_instructions:
 | 
					      confirmation_instructions:
 | 
				
			||||||
        subject: "Mastodon: Confirmation instructions"
 | 
					        subject: 'Mastodon: Confirmation instructions'
 | 
				
			||||||
      reset_password_instructions:
 | 
					 | 
				
			||||||
        subject: "Mastodon: Reset password instructions"
 | 
					 | 
				
			||||||
      unlock_instructions:
 | 
					 | 
				
			||||||
        subject: "Mastodon: Unlock instructions"
 | 
					 | 
				
			||||||
      password_change:
 | 
					      password_change:
 | 
				
			||||||
        subject: "Mastodon: Password changed"
 | 
					        subject: 'Mastodon: Password changed'
 | 
				
			||||||
 | 
					      reset_password_instructions:
 | 
				
			||||||
 | 
					        subject: 'Mastodon: Reset password instructions'
 | 
				
			||||||
 | 
					      unlock_instructions:
 | 
				
			||||||
 | 
					        subject: 'Mastodon: Unlock instructions'
 | 
				
			||||||
    omniauth_callbacks:
 | 
					    omniauth_callbacks:
 | 
				
			||||||
      failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
 | 
					      failure: Could not authenticate you from %{kind} because "%{reason}".
 | 
				
			||||||
      success: "Successfully authenticated from %{kind} account."
 | 
					      success: Successfully authenticated from %{kind} account.
 | 
				
			||||||
    passwords:
 | 
					    passwords:
 | 
				
			||||||
      no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
 | 
					      no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.
 | 
				
			||||||
      send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
 | 
					      send_instructions: You will receive an email with instructions on how to reset your password in a few minutes.
 | 
				
			||||||
      send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
 | 
					      send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.
 | 
				
			||||||
      updated: "Your password has been changed successfully. You are now signed in."
 | 
					      updated: Your password has been changed successfully. You are now signed in.
 | 
				
			||||||
      updated_not_active: "Your password has been changed successfully."
 | 
					      updated_not_active: Your password has been changed successfully.
 | 
				
			||||||
    registrations:
 | 
					    registrations:
 | 
				
			||||||
      destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
 | 
					      destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon.
 | 
				
			||||||
      signed_up: "Welcome! You have signed up successfully."
 | 
					      signed_up: Welcome! You have signed up successfully.
 | 
				
			||||||
      signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
 | 
					      signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
 | 
				
			||||||
      signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
 | 
					      signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
 | 
				
			||||||
      signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
 | 
					      signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account.
 | 
				
			||||||
      update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
 | 
					      update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address.
 | 
				
			||||||
      updated: "Your account has been updated successfully."
 | 
					      updated: Your account has been updated successfully.
 | 
				
			||||||
    sessions:
 | 
					    sessions:
 | 
				
			||||||
      signed_in: "Signed in successfully."
 | 
					      already_signed_out: Signed out successfully.
 | 
				
			||||||
      signed_out: "Signed out successfully."
 | 
					      signed_in: Signed in successfully.
 | 
				
			||||||
      already_signed_out: "Signed out successfully."
 | 
					      signed_out: Signed out successfully.
 | 
				
			||||||
    unlocks:
 | 
					    unlocks:
 | 
				
			||||||
      send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
 | 
					      send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes.
 | 
				
			||||||
      send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
 | 
					      send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes.
 | 
				
			||||||
      unlocked: "Your account has been unlocked successfully. Please sign in to continue."
 | 
					      unlocked: Your account has been unlocked successfully. Please sign in to continue.
 | 
				
			||||||
  errors:
 | 
					  errors:
 | 
				
			||||||
    messages:
 | 
					    messages:
 | 
				
			||||||
      already_confirmed: "was already confirmed, please try signing in"
 | 
					      already_confirmed: was already confirmed, please try signing in
 | 
				
			||||||
      confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
 | 
					      confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
 | 
				
			||||||
      expired: "has expired, please request a new one"
 | 
					      expired: has expired, please request a new one
 | 
				
			||||||
      not_found: "not found"
 | 
					      not_found: not found
 | 
				
			||||||
      not_locked: "was not locked"
 | 
					      not_locked: was not locked
 | 
				
			||||||
      not_saved:
 | 
					      not_saved:
 | 
				
			||||||
        one: "1 error prohibited this %{resource} from being saved:"
 | 
					        one: '1 error prohibited this %{resource} from being saved:'
 | 
				
			||||||
        other: "%{count} errors prohibited this %{resource} from being saved:"
 | 
					        other: "%{count} errors prohibited this %{resource} from being saved:"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,127 +1,112 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
en:
 | 
					en:
 | 
				
			||||||
  activerecord:
 | 
					  activerecord:
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
      doorkeeper/application:
 | 
					      doorkeeper/application:
 | 
				
			||||||
        name: 'Name'
 | 
					        name: Name
 | 
				
			||||||
        redirect_uri: 'Redirect URI'
 | 
					        redirect_uri: Redirect URI
 | 
				
			||||||
    errors:
 | 
					    errors:
 | 
				
			||||||
      models:
 | 
					      models:
 | 
				
			||||||
        doorkeeper/application:
 | 
					        doorkeeper/application:
 | 
				
			||||||
          attributes:
 | 
					          attributes:
 | 
				
			||||||
            redirect_uri:
 | 
					            redirect_uri:
 | 
				
			||||||
              fragment_present: 'cannot contain a fragment.'
 | 
					              fragment_present: cannot contain a fragment.
 | 
				
			||||||
              invalid_uri: 'must be a valid URI.'
 | 
					              invalid_uri: must be a valid URI.
 | 
				
			||||||
              relative_uri: 'must be an absolute URI.'
 | 
					              relative_uri: must be an absolute URI.
 | 
				
			||||||
              secured_uri: 'must be an HTTPS/SSL URI.'
 | 
					              secured_uri: must be an HTTPS/SSL URI.
 | 
				
			||||||
 | 
					 | 
				
			||||||
  doorkeeper:
 | 
					  doorkeeper:
 | 
				
			||||||
    scopes:
 | 
					 | 
				
			||||||
      read: read your account's data
 | 
					 | 
				
			||||||
      write: post on your behalf
 | 
					 | 
				
			||||||
      follow: follow, block, unblock and unfollow accounts
 | 
					 | 
				
			||||||
    applications:
 | 
					    applications:
 | 
				
			||||||
      confirmations:
 | 
					 | 
				
			||||||
        destroy: 'Are you sure?'
 | 
					 | 
				
			||||||
      buttons:
 | 
					      buttons:
 | 
				
			||||||
        edit: 'Edit'
 | 
					        authorize: Authorize
 | 
				
			||||||
        destroy: 'Destroy'
 | 
					        cancel: Cancel
 | 
				
			||||||
        submit: 'Submit'
 | 
					        destroy: Destroy
 | 
				
			||||||
        cancel: 'Cancel'
 | 
					        edit: Edit
 | 
				
			||||||
        authorize: 'Authorize'
 | 
					        submit: Submit
 | 
				
			||||||
      form:
 | 
					      confirmations:
 | 
				
			||||||
        error: 'Whoops! Check your form for possible errors'
 | 
					        destroy: Are you sure?
 | 
				
			||||||
      help:
 | 
					 | 
				
			||||||
        redirect_uri: 'Use one line per URI'
 | 
					 | 
				
			||||||
        native_redirect_uri: 'Use %{native_redirect_uri} for local tests'
 | 
					 | 
				
			||||||
        scopes: 'Separate scopes with spaces. Leave blank to use the default scopes.'
 | 
					 | 
				
			||||||
      edit:
 | 
					      edit:
 | 
				
			||||||
        title: 'Edit application'
 | 
					        title: Edit application
 | 
				
			||||||
 | 
					      form:
 | 
				
			||||||
 | 
					        error: Whoops! Check your form for possible errors
 | 
				
			||||||
 | 
					      help:
 | 
				
			||||||
 | 
					        native_redirect_uri: Use %{native_redirect_uri} for local tests
 | 
				
			||||||
 | 
					        redirect_uri: Use one line per URI
 | 
				
			||||||
 | 
					        scopes: Separate scopes with spaces. Leave blank to use the default scopes.
 | 
				
			||||||
      index:
 | 
					      index:
 | 
				
			||||||
        title: 'Your applications'
 | 
					        callback_url: Callback URL
 | 
				
			||||||
        new: 'New Application'
 | 
					        name: Name
 | 
				
			||||||
        name: 'Name'
 | 
					        new: New Application
 | 
				
			||||||
        callback_url: 'Callback URL'
 | 
					        title: Your applications
 | 
				
			||||||
      new:
 | 
					      new:
 | 
				
			||||||
        title: 'New Application'
 | 
					        title: New Application
 | 
				
			||||||
      show:
 | 
					      show:
 | 
				
			||||||
 | 
					        actions: Actions
 | 
				
			||||||
 | 
					        application_id: Application Id
 | 
				
			||||||
 | 
					        callback_urls: Callback urls
 | 
				
			||||||
 | 
					        scopes: Scopes
 | 
				
			||||||
 | 
					        secret: Secret
 | 
				
			||||||
        title: 'Application: %{name}'
 | 
					        title: 'Application: %{name}'
 | 
				
			||||||
        application_id: 'Application Id'
 | 
					 | 
				
			||||||
        secret: 'Secret'
 | 
					 | 
				
			||||||
        scopes: 'Scopes'
 | 
					 | 
				
			||||||
        callback_urls: 'Callback urls'
 | 
					 | 
				
			||||||
        actions: 'Actions'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    authorizations:
 | 
					    authorizations:
 | 
				
			||||||
      buttons:
 | 
					      buttons:
 | 
				
			||||||
        authorize: 'Authorize'
 | 
					        authorize: Authorize
 | 
				
			||||||
        deny: 'Deny'
 | 
					        deny: Deny
 | 
				
			||||||
      error:
 | 
					      error:
 | 
				
			||||||
        title: 'An error has occurred'
 | 
					        title: An error has occurred
 | 
				
			||||||
      new:
 | 
					      new:
 | 
				
			||||||
        title: 'Authorization required'
 | 
					        able_to: It will be able to
 | 
				
			||||||
        prompt: 'Authorize %{client_name} to use your account?'
 | 
					        prompt: Application %{client_name} requests access to your account
 | 
				
			||||||
        able_to: 'This application will be able to'
 | 
					        title: Authorization required
 | 
				
			||||||
      show:
 | 
					      show:
 | 
				
			||||||
        title: 'Authorization code'
 | 
					        title: Authorization code
 | 
				
			||||||
 | 
					 | 
				
			||||||
    authorized_applications:
 | 
					    authorized_applications:
 | 
				
			||||||
      confirmations:
 | 
					 | 
				
			||||||
        revoke: 'Are you sure?'
 | 
					 | 
				
			||||||
      buttons:
 | 
					      buttons:
 | 
				
			||||||
        revoke: 'Revoke'
 | 
					        revoke: Revoke
 | 
				
			||||||
 | 
					      confirmations:
 | 
				
			||||||
 | 
					        revoke: Are you sure?
 | 
				
			||||||
      index:
 | 
					      index:
 | 
				
			||||||
        title: 'Your authorized applications'
 | 
					        application: Application
 | 
				
			||||||
        application: 'Application'
 | 
					        created_at: Created At
 | 
				
			||||||
        created_at: 'Created At'
 | 
					        date_format: "%Y-%m-%d %H:%M:%S"
 | 
				
			||||||
        date_format: '%Y-%m-%d %H:%M:%S'
 | 
					        title: Your authorized applications
 | 
				
			||||||
 | 
					 | 
				
			||||||
    errors:
 | 
					    errors:
 | 
				
			||||||
      messages:
 | 
					      messages:
 | 
				
			||||||
        # Common error messages
 | 
					        access_denied: The resource owner or authorization server denied the request.
 | 
				
			||||||
        invalid_request: 'The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.'
 | 
					        credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
 | 
				
			||||||
        invalid_redirect_uri: 'The redirect uri included is not valid.'
 | 
					        invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.
 | 
				
			||||||
        unauthorized_client: 'The client is not authorized to perform this request using this method.'
 | 
					        invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.
 | 
				
			||||||
        access_denied: 'The resource owner or authorization server denied the request.'
 | 
					        invalid_redirect_uri: The redirect uri included is not valid.
 | 
				
			||||||
        invalid_scope: 'The requested scope is invalid, unknown, or malformed.'
 | 
					        invalid_request: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.
 | 
				
			||||||
        server_error: 'The authorization server encountered an unexpected condition which prevented it from fulfilling the request.'
 | 
					        invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found
 | 
				
			||||||
        temporarily_unavailable: 'The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.'
 | 
					        invalid_scope: The requested scope is invalid, unknown, or malformed.
 | 
				
			||||||
 | 
					 | 
				
			||||||
        #configuration error messages
 | 
					 | 
				
			||||||
        credential_flow_not_configured: 'Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.'
 | 
					 | 
				
			||||||
        resource_owner_authenticator_not_configured: 'Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Access grant errors
 | 
					 | 
				
			||||||
        unsupported_response_type: 'The authorization server does not support this response type.'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Access token errors
 | 
					 | 
				
			||||||
        invalid_client: 'Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.'
 | 
					 | 
				
			||||||
        invalid_grant: 'The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.'
 | 
					 | 
				
			||||||
        unsupported_grant_type: 'The authorization grant type is not supported by the authorization server.'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Password Access token errors
 | 
					 | 
				
			||||||
        invalid_resource_owner: 'The provided resource owner credentials are not valid, or resource owner cannot be found'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        invalid_token:
 | 
					        invalid_token:
 | 
				
			||||||
          revoked: "The access token was revoked"
 | 
					          expired: The access token expired
 | 
				
			||||||
          expired: "The access token expired"
 | 
					          revoked: The access token was revoked
 | 
				
			||||||
          unknown: "The access token is invalid"
 | 
					          unknown: The access token is invalid
 | 
				
			||||||
 | 
					        resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.
 | 
				
			||||||
 | 
					        server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request.
 | 
				
			||||||
 | 
					        temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
 | 
				
			||||||
 | 
					        unauthorized_client: The client is not authorized to perform this request using this method.
 | 
				
			||||||
 | 
					        unsupported_grant_type: The authorization grant type is not supported by the authorization server.
 | 
				
			||||||
 | 
					        unsupported_response_type: The authorization server does not support this response type.
 | 
				
			||||||
    flash:
 | 
					    flash:
 | 
				
			||||||
      applications:
 | 
					      applications:
 | 
				
			||||||
        create:
 | 
					        create:
 | 
				
			||||||
          notice: 'Application created.'
 | 
					          notice: Application created.
 | 
				
			||||||
        destroy:
 | 
					        destroy:
 | 
				
			||||||
          notice: 'Application deleted.'
 | 
					          notice: Application deleted.
 | 
				
			||||||
        update:
 | 
					        update:
 | 
				
			||||||
          notice: 'Application updated.'
 | 
					          notice: Application updated.
 | 
				
			||||||
      authorized_applications:
 | 
					      authorized_applications:
 | 
				
			||||||
        destroy:
 | 
					        destroy:
 | 
				
			||||||
          notice: 'Application revoked.'
 | 
					          notice: Application revoked.
 | 
				
			||||||
 | 
					 | 
				
			||||||
    layouts:
 | 
					    layouts:
 | 
				
			||||||
      admin:
 | 
					      admin:
 | 
				
			||||||
        nav:
 | 
					        nav:
 | 
				
			||||||
          oauth2_provider: 'OAuth2 Provider'
 | 
					          applications: Applications
 | 
				
			||||||
          applications: 'Applications'
 | 
					          oauth2_provider: OAuth2 Provider
 | 
				
			||||||
      application:
 | 
					      application:
 | 
				
			||||||
        title: 'OAuth authorization required'
 | 
					        title: OAuth authorization required
 | 
				
			||||||
 | 
					    scopes:
 | 
				
			||||||
 | 
					      follow: follow, block, unblock and unfollow accounts
 | 
				
			||||||
 | 
					      read: read your account's data
 | 
				
			||||||
 | 
					      write: post on your behalf
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,23 +1,57 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
en:
 | 
					en:
 | 
				
			||||||
 | 
					  about:
 | 
				
			||||||
 | 
					    about_instance: "<em>%{instance}</em> is a Mastodon instance."
 | 
				
			||||||
 | 
					    about_mastodon: Mastodon is a <em>free, open-source</em> social network server. A <em>decentralized</em> alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the <em>social network</em> seamlessly.
 | 
				
			||||||
 | 
					    get_started: Get started
 | 
				
			||||||
 | 
					    source_code: Source code
 | 
				
			||||||
 | 
					    terms: Terms
 | 
				
			||||||
 | 
					  accounts:
 | 
				
			||||||
 | 
					    follow: Follow
 | 
				
			||||||
 | 
					    followers: Followers
 | 
				
			||||||
 | 
					    following: Following
 | 
				
			||||||
 | 
					    nothing_here: There is nothing here!
 | 
				
			||||||
 | 
					    people_followed_by: People whom %{name} follows
 | 
				
			||||||
 | 
					    people_who_follow: People who follow %{name}
 | 
				
			||||||
 | 
					    posts: Posts
 | 
				
			||||||
 | 
					    unfollow: Unfollow
 | 
				
			||||||
 | 
					  application_mailer:
 | 
				
			||||||
 | 
					    signature: Mastodon notifications from %{instance}
 | 
				
			||||||
  auth:
 | 
					  auth:
 | 
				
			||||||
 | 
					    change_password: Change password
 | 
				
			||||||
 | 
					    didnt_get_confirmation: Didn't receive confirmation instructions?
 | 
				
			||||||
 | 
					    forgot_password: Forgot your password?
 | 
				
			||||||
    login: Log in
 | 
					    login: Log in
 | 
				
			||||||
    register: Sign up
 | 
					    register: Sign up
 | 
				
			||||||
    forgot_password: Forgot your password?
 | 
					 | 
				
			||||||
    didnt_get_confirmation: Didn't receive confirmation instructions?
 | 
					 | 
				
			||||||
    resend_confirmation: Resend confirmation instructions
 | 
					    resend_confirmation: Resend confirmation instructions
 | 
				
			||||||
    reset_password: Reset password
 | 
					    reset_password: Reset password
 | 
				
			||||||
    set_new_password: Set new password
 | 
					    set_new_password: Set new password
 | 
				
			||||||
    change_password: Change password
 | 
					 | 
				
			||||||
  generic:
 | 
					  generic:
 | 
				
			||||||
 | 
					    changes_saved_msg: Changes successfully saved!
 | 
				
			||||||
 | 
					    powered_by: powered by %{link}
 | 
				
			||||||
    save_changes: Save changes
 | 
					    save_changes: Save changes
 | 
				
			||||||
    validation_errors:
 | 
					    validation_errors:
 | 
				
			||||||
      one: Something isn't quite right yet! Please review the error below
 | 
					      one: Something isn't quite right yet! Please review the error below
 | 
				
			||||||
      other: Something isn't quite right yet! Please review %{count} errors below
 | 
					      other: Something isn't quite right yet! Please review %{count} errors below
 | 
				
			||||||
    powered_by: powered by %{link}
 | 
					  notification_mailer:
 | 
				
			||||||
    changes_saved_msg: Changes successfully saved!
 | 
					    favourite:
 | 
				
			||||||
 | 
					      body: 'Your status was favourited by %{name}:'
 | 
				
			||||||
 | 
					      subject: "%{name} favourited your status"
 | 
				
			||||||
 | 
					    follow:
 | 
				
			||||||
 | 
					      body: "%{name} is now following you!"
 | 
				
			||||||
 | 
					      subject: "%{name} is now following you"
 | 
				
			||||||
 | 
					    mention:
 | 
				
			||||||
 | 
					      body: 'You were mentioned by %{name} in:'
 | 
				
			||||||
 | 
					      subject: You were mentioned by %{name}
 | 
				
			||||||
 | 
					    reblog:
 | 
				
			||||||
 | 
					      body: 'Your status was reblogged by %{name}:'
 | 
				
			||||||
 | 
					      subject: "%{name} reblogged your status"
 | 
				
			||||||
  pagination:
 | 
					  pagination:
 | 
				
			||||||
    next: Next
 | 
					    next: Next
 | 
				
			||||||
    prev: Prev
 | 
					    prev: Prev
 | 
				
			||||||
  settings:
 | 
					  settings:
 | 
				
			||||||
    edit_profile: Edit profile
 | 
					    edit_profile: Edit profile
 | 
				
			||||||
    preferences: Preferences
 | 
					    preferences: Preferences
 | 
				
			||||||
 | 
					  stream_entries:
 | 
				
			||||||
 | 
					    favourited: favourited a post by
 | 
				
			||||||
 | 
					    is_now_following: is now following
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,43 +1,28 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
en:
 | 
					en:
 | 
				
			||||||
  simple_form:
 | 
					  simple_form:
 | 
				
			||||||
    "yes": 'Yes'
 | 
					 | 
				
			||||||
    "no": 'No'
 | 
					 | 
				
			||||||
    required:
 | 
					 | 
				
			||||||
      text: 'required'
 | 
					 | 
				
			||||||
      mark: '*'
 | 
					 | 
				
			||||||
    error_notification:
 | 
					    error_notification:
 | 
				
			||||||
      default_message: "Please review the problems below:"
 | 
					      default_message: 'Please review the problems below:'
 | 
				
			||||||
 | 
					 | 
				
			||||||
    labels:
 | 
					    labels:
 | 
				
			||||||
      defaults:
 | 
					      defaults:
 | 
				
			||||||
        email: E-mail address
 | 
					        avatar: Avatar
 | 
				
			||||||
        password: Password
 | 
					 | 
				
			||||||
        username: Username
 | 
					 | 
				
			||||||
        confirm_password: Confirm password
 | 
					 | 
				
			||||||
        new_password: New password
 | 
					 | 
				
			||||||
        confirm_new_password: Confirm new password
 | 
					        confirm_new_password: Confirm new password
 | 
				
			||||||
 | 
					        confirm_password: Confirm password
 | 
				
			||||||
        current_password: Current password
 | 
					        current_password: Current password
 | 
				
			||||||
        display_name: Display name
 | 
					        display_name: Display name
 | 
				
			||||||
        note: Bio
 | 
					        email: E-mail address
 | 
				
			||||||
        avatar: Avatar
 | 
					 | 
				
			||||||
        header: Header
 | 
					        header: Header
 | 
				
			||||||
 | 
					        new_password: New password
 | 
				
			||||||
 | 
					        note: Bio
 | 
				
			||||||
 | 
					        password: Password
 | 
				
			||||||
 | 
					        username: Username
 | 
				
			||||||
      notification_emails:
 | 
					      notification_emails:
 | 
				
			||||||
        follow: Send e-mail when someone follows you
 | 
					 | 
				
			||||||
        reblog: Send e-mail when someone reblogs your status
 | 
					 | 
				
			||||||
        favourite: Send e-mail when someone favourites your status
 | 
					        favourite: Send e-mail when someone favourites your status
 | 
				
			||||||
 | 
					        follow: Send e-mail when someone follows you
 | 
				
			||||||
        mention: Send e-mail when someone mentions you
 | 
					        mention: Send e-mail when someone mentions you
 | 
				
			||||||
    #   user:
 | 
					        reblog: Send e-mail when someone reblogs your status
 | 
				
			||||||
    #     new:
 | 
					    'no': 'No'
 | 
				
			||||||
    #       email: 'E-mail to sign in.'
 | 
					    required:
 | 
				
			||||||
    #     edit:
 | 
					      mark: "*"
 | 
				
			||||||
    #       email: 'E-mail.'
 | 
					      text: required
 | 
				
			||||||
    # hints:
 | 
					    'yes': 'Yes'
 | 
				
			||||||
    #   defaults:
 | 
					 | 
				
			||||||
    #     username: 'User name to sign in.'
 | 
					 | 
				
			||||||
    #     password: 'No special characters, please.'
 | 
					 | 
				
			||||||
    # include_blanks:
 | 
					 | 
				
			||||||
    #   defaults:
 | 
					 | 
				
			||||||
    #     age: 'Rather not say'
 | 
					 | 
				
			||||||
    # prompts:
 | 
					 | 
				
			||||||
    #   defaults:
 | 
					 | 
				
			||||||
    #     age: 'Select your age'
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								spec/i18n_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/i18n_spec.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					require 'i18n/tasks'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RSpec.describe 'I18n' do
 | 
				
			||||||
 | 
					  let(:i18n) { I18n::Tasks::BaseTask.new }
 | 
				
			||||||
 | 
					  let(:missing_keys) { i18n.missing_keys }
 | 
				
			||||||
 | 
					  let(:unused_keys) { i18n.unused_keys }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it 'does not have missing keys' do
 | 
				
			||||||
 | 
					    expect(missing_keys).to be_empty,
 | 
				
			||||||
 | 
					      "Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it 'does not have unused keys' do
 | 
				
			||||||
 | 
					    expect(unused_keys).to be_empty,
 | 
				
			||||||
 | 
					      "#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
require 'rails_helper'
 | 
					require 'rails_helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RSpec.describe DomainBlock, type: :model do
 | 
					RSpec.describe DomainBlock, type: :model do
 | 
				
			||||||
  pending "add some examples to (or delete) #{__FILE__}"
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
require 'rails_helper'
 | 
					require 'rails_helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RSpec.describe Tag, type: :model do
 | 
					RSpec.describe Tag, type: :model do
 | 
				
			||||||
  pending "add some examples to (or delete) #{__FILE__}"
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue