Browse Source

Merge tag 'v3.1.1'

master
ida schmidt 1 week ago
parent
commit
577a36d1c0
100 changed files with 698 additions and 371 deletions
  1. 17
    4
      CHANGELOG.md
  2. 1
    1
      Gemfile
  3. 2
    2
      Gemfile.lock
  4. 1
    1
      Vagrantfile
  5. 1
    5
      app/controllers/api/v1/announcements_controller.rb
  6. 11
    5
      app/controllers/api/web/embeds_controller.rb
  7. 2
    0
      app/controllers/concerns/signature_verification.rb
  8. 7
    3
      app/controllers/tags_controller.rb
  9. 1
    1
      app/helpers/accounts_helper.rb
  10. 30
    0
      app/javascript/mastodon/actions/announcements.js
  11. 1
    1
      app/javascript/mastodon/components/status_action_bar.js
  12. 33
    1
      app/javascript/mastodon/features/getting_started/components/announcements.js
  13. 2
    1
      app/javascript/mastodon/features/getting_started/containers/announcements_container.js
  14. 1
    1
      app/javascript/mastodon/features/home_timeline/index.js
  15. 2
    4
      app/javascript/mastodon/features/status/components/action_bar.js
  16. 1
    1
      app/javascript/mastodon/features/video/index.js
  17. 7
    4
      app/javascript/mastodon/locales/ar.json
  18. 78
    75
      app/javascript/mastodon/locales/ast.json
  19. 3
    0
      app/javascript/mastodon/locales/bg.json
  20. 3
    0
      app/javascript/mastodon/locales/bn.json
  21. 3
    0
      app/javascript/mastodon/locales/br.json
  22. 5
    2
      app/javascript/mastodon/locales/ca.json
  23. 3
    0
      app/javascript/mastodon/locales/co.json
  24. 4
    1
      app/javascript/mastodon/locales/cs.json
  25. 4
    1
      app/javascript/mastodon/locales/cy.json
  26. 3
    0
      app/javascript/mastodon/locales/da.json
  27. 4
    1
      app/javascript/mastodon/locales/de.json
  28. 3
    0
      app/javascript/mastodon/locales/el.json
  29. 5
    2
      app/javascript/mastodon/locales/eo.json
  30. 3
    0
      app/javascript/mastodon/locales/es-AR.json
  31. 3
    0
      app/javascript/mastodon/locales/es.json
  32. 4
    1
      app/javascript/mastodon/locales/et.json
  33. 3
    0
      app/javascript/mastodon/locales/eu.json
  34. 52
    49
      app/javascript/mastodon/locales/fa.json
  35. 6
    3
      app/javascript/mastodon/locales/fi.json
  36. 3
    0
      app/javascript/mastodon/locales/fr.json
  37. 3
    0
      app/javascript/mastodon/locales/ga.json
  38. 15
    12
      app/javascript/mastodon/locales/gl.json
  39. 3
    0
      app/javascript/mastodon/locales/he.json
  40. 3
    0
      app/javascript/mastodon/locales/hi.json
  41. 3
    0
      app/javascript/mastodon/locales/hr.json
  42. 3
    0
      app/javascript/mastodon/locales/hu.json
  43. 3
    0
      app/javascript/mastodon/locales/hy.json
  44. 4
    1
      app/javascript/mastodon/locales/id.json
  45. 3
    0
      app/javascript/mastodon/locales/io.json
  46. 4
    1
      app/javascript/mastodon/locales/is.json
  47. 4
    1
      app/javascript/mastodon/locales/it.json
  48. 3
    0
      app/javascript/mastodon/locales/ja.json
  49. 3
    0
      app/javascript/mastodon/locales/ka.json
  50. 52
    49
      app/javascript/mastodon/locales/kab.json
  51. 3
    0
      app/javascript/mastodon/locales/kk.json
  52. 3
    0
      app/javascript/mastodon/locales/kn.json
  53. 4
    1
      app/javascript/mastodon/locales/ko.json
  54. 3
    0
      app/javascript/mastodon/locales/lt.json
  55. 3
    0
      app/javascript/mastodon/locales/lv.json
  56. 3
    0
      app/javascript/mastodon/locales/mk.json
  57. 3
    0
      app/javascript/mastodon/locales/ml.json
  58. 3
    0
      app/javascript/mastodon/locales/mr.json
  59. 3
    0
      app/javascript/mastodon/locales/ms.json
  60. 9
    6
      app/javascript/mastodon/locales/nl.json
  61. 3
    0
      app/javascript/mastodon/locales/nn.json
  62. 3
    0
      app/javascript/mastodon/locales/no.json
  63. 11
    8
      app/javascript/mastodon/locales/oc.json
  64. 9
    6
      app/javascript/mastodon/locales/pl.json
  65. 4
    1
      app/javascript/mastodon/locales/pt-BR.json
  66. 4
    1
      app/javascript/mastodon/locales/pt-PT.json
  67. 3
    0
      app/javascript/mastodon/locales/ro.json
  68. 5
    2
      app/javascript/mastodon/locales/ru.json
  69. 3
    0
      app/javascript/mastodon/locales/sk.json
  70. 3
    0
      app/javascript/mastodon/locales/sl.json
  71. 3
    0
      app/javascript/mastodon/locales/sq.json
  72. 3
    0
      app/javascript/mastodon/locales/sr-Latn.json
  73. 3
    0
      app/javascript/mastodon/locales/sr.json
  74. 3
    0
      app/javascript/mastodon/locales/sv.json
  75. 63
    60
      app/javascript/mastodon/locales/ta.json
  76. 3
    0
      app/javascript/mastodon/locales/te.json
  77. 3
    0
      app/javascript/mastodon/locales/th.json
  78. 5
    2
      app/javascript/mastodon/locales/tr.json
  79. 3
    0
      app/javascript/mastodon/locales/uk.json
  80. 3
    0
      app/javascript/mastodon/locales/ur.json
  81. 3
    0
      app/javascript/mastodon/locales/vi.json
  82. 9
    6
      app/javascript/mastodon/locales/zh-CN.json
  83. 3
    0
      app/javascript/mastodon/locales/zh-HK.json
  84. 3
    0
      app/javascript/mastodon/locales/zh-TW.json
  85. 5
    21
      app/javascript/mastodon/reducers/announcements.js
  86. 1
    2
      app/javascript/mastodon/reducers/statuses.js
  87. 1
    1
      app/javascript/packs/public.js
  88. 13
    1
      app/javascript/styles/mastodon/components.scss
  89. 2
    0
      app/lib/formatter.rb
  90. 39
    6
      app/lib/sanitize_config.rb
  91. 1
    0
      app/mailers/user_mailer.rb
  92. 1
    2
      app/models/account.rb
  93. 2
    6
      app/models/concerns/account_finder_concern.rb
  94. 1
    1
      app/models/concerns/remotable.rb
  95. 14
    0
      app/serializers/rest/announcement_serializer.rb
  96. 1
    1
      app/serializers/rest/status_serializer.rb
  97. 2
    1
      app/validators/unique_username_validator.rb
  98. 1
    1
      app/views/accounts/_og.html.haml
  99. 1
    1
      app/views/accounts/show.html.haml
  100. 0
    0
      app/views/statuses/_simple_status.html.haml

+ 17
- 4
CHANGELOG.md View File

@@ -3,7 +3,12 @@ Changelog
3 3
 
4 4
 All notable changes to this project will be documented in this file.
5 5
 
6
-## Unreleased
6
+## [3.1.1] - 2020-02-10
7
+### Fixed
8
+
9
+- Fix yanked dependency preventing installation ([mayaeh](https://github.com/tootsuite/mastodon/pull/13059))
10
+
11
+## [3.1.0] - 2020-02-09
7 12
 ### Added
8 13
 
9 14
 - Add bookmarks ([ThibG](https://github.com/tootsuite/mastodon/pull/7107), [Gargron](https://github.com/tootsuite/mastodon/pull/12494), [Gomasy](https://github.com/tootsuite/mastodon/pull/12381))
@@ -38,8 +43,9 @@ All notable changes to this project will be documented in this file.
38 43
 - Add support for KaiOS arrow navigation to public pages ([nolanlawson](https://github.com/tootsuite/mastodon/pull/12251))
39 44
 - Add `discoverable` to accounts in REST API ([trwnh](https://github.com/tootsuite/mastodon/pull/12508))
40 45
 - Add admin setting to disable default follows ([ArisuOngaku](https://github.com/tootsuite/mastodon/pull/12566))
41
-- Add support for LDAP and PAM in the OAuth password grant strategy ([ntl-purism](https://github.com/tootsuite/mastodon/pull/12390))
46
+- Add support for LDAP and PAM in the OAuth password grant strategy ([ntl-purism](https://github.com/tootsuite/mastodon/pull/12390), [Gargron](https://github.com/tootsuite/mastodon/pull/12743))
42 47
 - Allow support for `Accept`/`Reject` activities with a non-embedded object ([puckipedia](https://github.com/tootsuite/mastodon/pull/12199))
48
+- Add "Show thread" button to public profiles ([Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/13000))
43 49
 
44 50
 ### Changed
45 51
 
@@ -65,6 +71,7 @@ All notable changes to this project will be documented in this file.
65 71
 - Change to fallback to to `Create` audience when `object` has no defined audience ([ThibG](https://github.com/tootsuite/mastodon/pull/12249))
66 72
 - Change Twemoji library to 12.1.3 in web UI ([koyuawsmbrtn](https://github.com/tootsuite/mastodon/pull/12342))
67 73
 - Change blocked users to be hidden from following/followers lists ([ThibG](https://github.com/tootsuite/mastodon/pull/12733))
74
+- Change signature verification to ignore signatures with invalid host ([Gargron](https://github.com/tootsuite/mastodon/pull/13033))
68 75
 
69 76
 ### Removed
70 77
 
@@ -92,14 +99,13 @@ All notable changes to this project will be documented in this file.
92 99
 - Fix old migrations failing because of strong migrations update ([ThibG](https://github.com/tootsuite/mastodon/pull/12787), [ThibG](https://github.com/tootsuite/mastodon/pull/12692))
93 100
 - Fix reuse of detailed status components in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/12792))
94 101
 - Fix base64-encoded file uploads not being possible in REST API ([Gargron](https://github.com/tootsuite/mastodon/pull/12748), [Gargron](https://github.com/tootsuite/mastodon/pull/12857))
95
-- Fix resource_owner_from_credentials in Doorkeeper initializer ([Gargron](https://github.com/tootsuite/mastodon/pull/12743))
96 102
 - Fix error due to missing authentication call in filters controller ([Gargron](https://github.com/tootsuite/mastodon/pull/12746))
97 103
 - Fix uncaught unknown format error in host meta controller ([Gargron](https://github.com/tootsuite/mastodon/pull/12747))
98 104
 - Fix URL search not returning private toots user has access to ([ThibG](https://github.com/tootsuite/mastodon/pull/12742), [ThibG](https://github.com/tootsuite/mastodon/pull/12336))
99 105
 - Fix cache digesting log noise on status embeds ([Gargron](https://github.com/tootsuite/mastodon/pull/12750))
100 106
 - Fix slowness due to layout thrashing when reloading a large set of statuses in web UI ([panarom](https://github.com/tootsuite/mastodon/pull/12661), [panarom](https://github.com/tootsuite/mastodon/pull/12744), [Gargron](https://github.com/tootsuite/mastodon/pull/12712))
101 107
 - Fix error when fetching followers/following from REST API when user has network hidden ([Gargron](https://github.com/tootsuite/mastodon/pull/12716))
102
-- Fix IDN mentions not being processed, IDN domains not being rendered ([Gargron](https://github.com/tootsuite/mastodon/pull/12715))
108
+- Fix IDN mentions not being processed, IDN domains not being rendered ([Gargron](https://github.com/tootsuite/mastodon/pull/12715), [Gargron](https://github.com/tootsuite/mastodon/pull/13035), [Gargron](https://github.com/tootsuite/mastodon/pull/13030))
103 109
 - Fix error when searching for empty phrase ([Gargron](https://github.com/tootsuite/mastodon/pull/12711))
104 110
 - Fix backups stopping due to read timeouts ([chr-1x](https://github.com/tootsuite/mastodon/pull/12281))
105 111
 - Fix batch actions on non-pending tags in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/12537))
@@ -152,6 +158,13 @@ All notable changes to this project will be documented in this file.
152 158
 - Fix voting issue with remote polls that contain trailing spaces ([ThibG](https://github.com/tootsuite/mastodon/pull/12515))
153 159
 - Fix dynamic elements not working in pgHero due to CSP rules ([ykzts](https://github.com/tootsuite/mastodon/pull/12489))
154 160
 - Fix overly verbose backtraces when delivering ActivityPub payloads ([zunda](https://github.com/tootsuite/mastodon/pull/12798))
161
+- Fix rendering `<a>` without `href` when scheme unsupported ([Gargron](https://github.com/tootsuite/mastodon/pull/13040))
162
+- Fix unfiltered params error when generating ActivityPub tag pagination ([Gargron](https://github.com/tootsuite/mastodon/pull/13049))
163
+- Fix malformed HTML causing uncaught error ([Gargron](https://github.com/tootsuite/mastodon/pull/13042))
164
+- Fix native share button not being displayed for unlisted toots ([ThibG](https://github.com/tootsuite/mastodon/pull/13045))
165
+- Fix remote convertible media attachments (e.g. GIFs) not being saved ([Gargron](https://github.com/tootsuite/mastodon/pull/13032))
166
+- Fix account query not using faster index ([abcang](https://github.com/tootsuite/mastodon/pull/13016))
167
+- Fix error when sending moderation notification ([renatolond](https://github.com/tootsuite/mastodon/pull/13014))
155 168
 
156 169
 ### Security
157 170
 

+ 1
- 1
Gemfile View File

@@ -60,7 +60,7 @@ gem 'htmlentities', '~> 4.3'
60 60
 gem 'http', '~> 4.3'
61 61
 gem 'http_accept_language', '~> 2.1'
62 62
 gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2', submodules: true
63
-gem 'httplog', '~> 1.4'
63
+gem 'httplog', '~> 1.4.2'
64 64
 gem 'idn-ruby', require: 'idn'
65 65
 gem 'kaminari', '~> 1.1'
66 66
 gem 'link_header', '~> 0.0'

+ 2
- 2
Gemfile.lock View File

@@ -282,7 +282,7 @@ GEM
282 282
     http-parser (1.2.1)
283 283
       ffi-compiler (>= 1.0, < 2.0)
284 284
     http_accept_language (2.1.1)
285
-    httplog (1.4.0)
285
+    httplog (1.4.2)
286 286
       rack (>= 1.0)
287 287
       rainbow (>= 2.0.0)
288 288
     i18n (1.8.2)
@@ -709,7 +709,7 @@ DEPENDENCIES
709 709
   http (~> 4.3)
710 710
   http_accept_language (~> 2.1)
711 711
   http_parser.rb (~> 0.6)!
712
-  httplog (~> 1.4)
712
+  httplog (~> 1.4.2)
713 713
   i18n-tasks (~> 0.9)
714 714
   idn-ruby
715 715
   iso-639

+ 1
- 1
Vagrantfile View File

@@ -12,7 +12,7 @@ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
12 12
 sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
13 13
 
14 14
 # Add repo for NodeJS
15
-curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
15
+curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
16 16
 
17 17
 # Add firewall rule to redirect 80 to PORT and save
18 18
 sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port #{ENV["PORT"]}

+ 1
- 5
app/controllers/api/v1/announcements_controller.rb View File

@@ -19,11 +19,7 @@ class Api::V1::AnnouncementsController < Api::BaseController
19 19
 
20 20
   def set_announcements
21 21
     @announcements = begin
22
-      scope = Announcement.published
23
-
24
-      scope.merge!(Announcement.without_muted(current_account)) unless truthy_param?(:with_dismissed)
25
-
26
-      scope.chronological
22
+      Announcement.published.chronological
27 23
     end
28 24
   end
29 25
 

+ 11
- 5
app/controllers/api/web/embeds_controller.rb View File

@@ -7,15 +7,21 @@ class Api::Web::EmbedsController < Api::Web::BaseController
7 7
 
8 8
   def create
9 9
     status = StatusFinder.new(params[:url]).status
10
+
11
+    return not_found if status.hidden?
12
+
10 13
     render json: status, serializer: OEmbedSerializer, width: 400
11 14
   rescue ActiveRecord::RecordNotFound
12 15
     oembed = FetchOEmbedService.new.call(params[:url])
13
-    oembed[:html] = Formatter.instance.sanitize(oembed[:html], Sanitize::Config::MASTODON_OEMBED) if oembed[:html].present?
14 16
 
15
-    if oembed
16
-      render json: oembed
17
-    else
18
-      render json: {}, status: :not_found
17
+    return not_found if oembed.nil?
18
+
19
+    begin
20
+      oembed[:html] = Formatter.instance.sanitize(oembed[:html], Sanitize::Config::MASTODON_OEMBED)
21
+    rescue ArgumentError
22
+      return not_found
19 23
     end
24
+
25
+    render json: oembed
20 26
   end
21 27
 end

+ 2
- 0
app/controllers/concerns/signature_verification.rb View File

@@ -160,6 +160,8 @@ module SignatureVerification
160 160
       account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) }
161 161
       account
162 162
     end
163
+  rescue Mastodon::HostValidationError
164
+    nil
163 165
   end
164 166
 
165 167
   def stoplight_wrap_request(&block)

+ 7
- 3
app/controllers/tags_controller.rb View File

@@ -24,7 +24,7 @@ class TagsController < ApplicationController
24 24
       format.rss do
25 25
         expires_in 0, public: true
26 26
 
27
-        @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none)).limit(PAGE_SIZE)
27
+        @statuses = HashtagQueryService.new.call(@tag, filter_params).limit(PAGE_SIZE)
28 28
         @statuses = cache_collection(@statuses, Status)
29 29
 
30 30
         render xml: RSS::TagSerializer.render(@tag, @statuses)
@@ -33,7 +33,7 @@ class TagsController < ApplicationController
33 33
       format.json do
34 34
         expires_in 3.minutes, public: public_fetch_mode?
35 35
 
36
-        @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local]).paginate_by_max_id(PAGE_SIZE, params[:max_id])
36
+        @statuses = HashtagQueryService.new.call(@tag, filter_params, current_account, params[:local]).paginate_by_max_id(PAGE_SIZE, params[:max_id])
37 37
         @statuses = cache_collection(@statuses, Status)
38 38
 
39 39
         render json: collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
@@ -57,10 +57,14 @@ class TagsController < ApplicationController
57 57
 
58 58
   def collection_presenter
59 59
     ActivityPub::CollectionPresenter.new(
60
-      id: tag_url(@tag, params.slice(:any, :all, :none)),
60
+      id: tag_url(@tag, filter_params),
61 61
       type: :ordered,
62 62
       size: @tag.statuses.count,
63 63
       items: @statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s) }
64 64
     )
65 65
   end
66
+
67
+  def filter_params
68
+    params.slice(:any, :all, :none).permit(:any, :all, :none)
69
+  end
66 70
 end

+ 1
- 1
app/helpers/accounts_helper.rb View File

@@ -11,7 +11,7 @@ module AccountsHelper
11 11
 
12 12
   def acct(account)
13 13
     if account.local?
14
-      "@#{account.acct}@#{Rails.configuration.x.local_domain}"
14
+      "@#{account.acct}@#{site_hostname}"
15 15
     else
16 16
       "@#{account.pretty_acct}"
17 17
     end

+ 30
- 0
app/javascript/mastodon/actions/announcements.js View File

@@ -7,6 +7,10 @@ export const ANNOUNCEMENTS_FETCH_FAIL    = 'ANNOUNCEMENTS_FETCH_FAIL';
7 7
 export const ANNOUNCEMENTS_UPDATE        = 'ANNOUNCEMENTS_UPDATE';
8 8
 export const ANNOUNCEMENTS_DELETE        = 'ANNOUNCEMENTS_DELETE';
9 9
 
10
+export const ANNOUNCEMENTS_DISMISS_REQUEST = 'ANNOUNCEMENTS_DISMISS_REQUEST';
11
+export const ANNOUNCEMENTS_DISMISS_SUCCESS = 'ANNOUNCEMENTS_DISMISS_SUCCESS';
12
+export const ANNOUNCEMENTS_DISMISS_FAIL    = 'ANNOUNCEMENTS_DISMISS_FAIL';
13
+
10 14
 export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST';
11 15
 export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS';
12 16
 export const ANNOUNCEMENTS_REACTION_ADD_FAIL    = 'ANNOUNCEMENTS_REACTION_ADD_FAIL';
@@ -56,6 +60,32 @@ export const updateAnnouncements = announcement => ({
56 60
   announcement: normalizeAnnouncement(announcement),
57 61
 });
58 62
 
63
+export const dismissAnnouncement = announcementId => (dispatch, getState) => {
64
+  dispatch(dismissAnnouncementRequest(announcementId));
65
+
66
+  api(getState).post(`/api/v1/announcements/${announcementId}/dismiss`).then(() => {
67
+    dispatch(dismissAnnouncementSuccess(announcementId));
68
+  }).catch(error => {
69
+    dispatch(dismissAnnouncementFail(announcementId, error));
70
+  });
71
+};
72
+
73
+export const dismissAnnouncementRequest = announcementId => ({
74
+  type: ANNOUNCEMENTS_DISMISS_REQUEST,
75
+  id: announcementId,
76
+});
77
+
78
+export const dismissAnnouncementSuccess = announcementId => ({
79
+  type: ANNOUNCEMENTS_DISMISS_SUCCESS,
80
+  id: announcementId,
81
+});
82
+
83
+export const dismissAnnouncementFail = (announcementId, error) => ({
84
+  type: ANNOUNCEMENTS_DISMISS_FAIL,
85
+  id: announcementId,
86
+  error,
87
+});
88
+
59 89
 export const addReaction = (announcementId, name) => (dispatch, getState) => {
60 90
   const announcement = getState().getIn(['announcements', 'items']).find(x => x.get('id') === announcementId);
61 91
 

+ 1
- 1
app/javascript/mastodon/components/status_action_bar.js View File

@@ -319,7 +319,7 @@ class StatusActionBar extends ImmutablePureComponent {
319 319
       replyTitle = intl.formatMessage(messages.replyAll);
320 320
     }
321 321
 
322
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
322
+    const shareButton = ('share' in navigator) && publicStatus && (
323 323
       <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShareClick} />
324 324
     );
325 325
 

+ 33
- 1
app/javascript/mastodon/features/getting_started/components/announcements.js View File

@@ -302,10 +302,23 @@ class Announcement extends ImmutablePureComponent {
302 302
     addReaction: PropTypes.func.isRequired,
303 303
     removeReaction: PropTypes.func.isRequired,
304 304
     intl: PropTypes.object.isRequired,
305
+    selected: PropTypes.bool,
305 306
   };
306 307
 
308
+  state = {
309
+    unread: !this.props.announcement.get('read'),
310
+  };
311
+
312
+  componentDidUpdate () {
313
+    const { selected, announcement } = this.props;
314
+    if (!selected && this.state.unread !== !announcement.get('read')) {
315
+      this.setState({ unread: !announcement.get('read') });
316
+    }
317
+  }
318
+
307 319
   render () {
308 320
     const { announcement } = this.props;
321
+    const { unread } = this.state;
309 322
     const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at'));
310 323
     const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at'));
311 324
     const now = new Date();
@@ -330,6 +343,8 @@ class Announcement extends ImmutablePureComponent {
330 343
           removeReaction={this.props.removeReaction}
331 344
           emojiMap={this.props.emojiMap}
332 345
         />
346
+
347
+        {unread && <span className='announcements__item__unread' />}
333 348
       </div>
334 349
     );
335 350
   }
@@ -342,6 +357,7 @@ class Announcements extends ImmutablePureComponent {
342 357
   static propTypes = {
343 358
     announcements: ImmutablePropTypes.list,
344 359
     emojiMap: ImmutablePropTypes.map.isRequired,
360
+    dismissAnnouncement: PropTypes.func.isRequired,
345 361
     addReaction: PropTypes.func.isRequired,
346 362
     removeReaction: PropTypes.func.isRequired,
347 363
     intl: PropTypes.object.isRequired,
@@ -351,6 +367,21 @@ class Announcements extends ImmutablePureComponent {
351 367
     index: 0,
352 368
   };
353 369
 
370
+  componentDidMount () {
371
+    this._markAnnouncementAsRead();
372
+  }
373
+
374
+  componentDidUpdate () {
375
+    this._markAnnouncementAsRead();
376
+  }
377
+
378
+  _markAnnouncementAsRead () {
379
+    const { dismissAnnouncement, announcements } = this.props;
380
+    const { index } = this.state;
381
+    const announcement = announcements.get(index);
382
+    if (!announcement.get('read')) dismissAnnouncement(announcement.get('id'));
383
+  }
384
+
354 385
   handleChangeIndex = index => {
355 386
     this.setState({ index: index % this.props.announcements.size });
356 387
   }
@@ -377,7 +408,7 @@ class Announcements extends ImmutablePureComponent {
377 408
 
378 409
         <div className='announcements__container'>
379 410
           <ReactSwipeableViews animateHeight={!reduceMotion} adjustHeight={reduceMotion} index={index} onChangeIndex={this.handleChangeIndex}>
380
-            {announcements.map(announcement => (
411
+            {announcements.map((announcement, idx) => (
381 412
               <Announcement
382 413
                 key={announcement.get('id')}
383 414
                 announcement={announcement}
@@ -385,6 +416,7 @@ class Announcements extends ImmutablePureComponent {
385 416
                 addReaction={this.props.addReaction}
386 417
                 removeReaction={this.props.removeReaction}
387 418
                 intl={intl}
419
+                selected={index === idx}
388 420
               />
389 421
             ))}
390 422
           </ReactSwipeableViews>

+ 2
- 1
app/javascript/mastodon/features/getting_started/containers/announcements_container.js View File

@@ -1,5 +1,5 @@
1 1
 import { connect } from 'react-redux';
2
-import { addReaction, removeReaction } from 'mastodon/actions/announcements';
2
+import { addReaction, removeReaction, dismissAnnouncement } from 'mastodon/actions/announcements';
3 3
 import Announcements from '../components/announcements';
4 4
 import { createSelector } from 'reselect';
5 5
 import { Map as ImmutableMap } from 'immutable';
@@ -12,6 +12,7 @@ const mapStateToProps = state => ({
12 12
 });
13 13
 
14 14
 const mapDispatchToProps = dispatch => ({
15
+  dismissAnnouncement: id => dispatch(dismissAnnouncement(id)),
15 16
   addReaction: (id, name) => dispatch(addReaction(id, name)),
16 17
   removeReaction: (id, name) => dispatch(removeReaction(id, name)),
17 18
 });

+ 1
- 1
app/javascript/mastodon/features/home_timeline/index.js View File

@@ -24,7 +24,7 @@ const mapStateToProps = state => ({
24 24
   hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
25 25
   isPartial: state.getIn(['timelines', 'home', 'isPartial']),
26 26
   hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(),
27
-  unreadAnnouncements: state.getIn(['announcements', 'unread']).size,
27
+  unreadAnnouncements: state.getIn(['announcements', 'items']).count(item => !item.get('read')),
28 28
   showAnnouncements: state.getIn(['announcements', 'show']),
29 29
 });
30 30
 

+ 2
- 4
app/javascript/mastodon/features/status/components/action_bar.js View File

@@ -250,7 +250,7 @@ class ActionBar extends React.PureComponent {
250 250
       }
251 251
     }
252 252
 
253
-    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
253
+    const shareButton = ('share' in navigator) && publicStatus && (
254 254
       <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShare} /></div>
255 255
     );
256 256
 
@@ -265,12 +265,10 @@ class ActionBar extends React.PureComponent {
265 265
     if (status.get('visibility') === 'direct') reblogIcon = 'envelope';
266 266
     else if (status.get('visibility') === 'private') reblogIcon = 'lock';
267 267
 
268
-    let reblog_disabled = (status.get('visibility') === 'direct' || status.get('visibility') === 'private');
269
-
270 268
     return (
271 269
       <div className='detailed-status__action-bar'>
272 270
         <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} onClick={this.handleReplyClick} /></div>
273
-        <div className='detailed-status__button'><IconButton disabled={reblog_disabled} active={status.get('reblogged')} title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>
271
+        <div className='detailed-status__button'><IconButton disabled={!publicStatus} active={status.get('reblogged')} title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>
274 272
         <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} /></div>
275 273
         {shareButton}
276 274
         <div className='detailed-status__button'><IconButton className='bookmark-icon' active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} /></div>

+ 1
- 1
app/javascript/mastodon/features/video/index.js View File

@@ -517,7 +517,7 @@ class Video extends React.PureComponent {
517 517
             </div>
518 518
 
519 519
             <div className='video-player__buttons right'>
520
-              {(!onCloseVideo && !editable) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
520
+              {(!onCloseVideo && !editable && !fullscreen) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
521 521
               {(!fullscreen && onOpenVideo) && <button type='button' aria-label={intl.formatMessage(messages.expand)} onClick={this.handleOpenVideo}><Icon id='expand' fixedWidth /></button>}
522 522
               {onCloseVideo && <button type='button' aria-label={intl.formatMessage(messages.close)} onClick={this.handleCloseVideo}><Icon id='compress' fixedWidth /></button>}
523 523
               <button type='button' aria-label={intl.formatMessage(messages.download)}><a className='video-player__download__icon' href={this.props.src} download><Icon id={'download'} fixedWidth /></a></button>

+ 7
- 4
app/javascript/mastodon/locales/ar.json View File

@@ -1,9 +1,9 @@
1 1
 {
2 2
   "account.add_or_remove_from_list": "أضفه أو أزله من القائمة",
3 3
   "account.badges.bot": "روبوت",
4
-  "account.badges.group": "Group",
4
+  "account.badges.group": "فريق",
5 5
   "account.block": "حظر @{name}",
6
-  "account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}",
6
+  "account.block_domain": "إخفاء كل شيء قادم من اسم النطاق {domain}",
7 7
   "account.blocked": "محظور",
8 8
   "account.cancel_follow_request": "إلغاء طلب المتابَعة",
9 9
   "account.direct": "رسالة خاصة إلى @{name}",
@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "المعدل محدود",
44 44
   "alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
45 45
   "alert.unexpected.title": "المعذرة!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "إعلان",
47 47
   "autosuggest_hashtag.per_week": "{count} في الأسبوع",
48 48
   "boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة",
49 49
   "bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "الأساسية",
185 185
   "home.column_settings.show_reblogs": "اعرض الترقيات",
186 186
   "home.column_settings.show_replies": "اعرض الردود",
187
+  "home.hide_announcements": "إخفاء الإعلانات",
188
+  "home.show_announcements": "إظهار الإعلانات",
187 189
   "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "الآن",
334 336
   "relative_time.minutes": "{number}د",
335 337
   "relative_time.seconds": "{number}ثا",
338
+  "relative_time.today": "اليوم",
336 339
   "reply_indicator.cancel": "إلغاء",
337 340
   "report.forward": "التحويل إلى {target}",
338 341
   "report.forward_hint": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا؟",
@@ -420,7 +423,7 @@
420 423
   "upload_form.video_description": "وصف للمعاقين بصريا أو لِذي قِصر السمع",
421 424
   "upload_modal.analyzing_picture": "جارٍ فحص الصورة…",
422 425
   "upload_modal.apply": "طبّق",
423
-  "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
426
+  "upload_modal.description_placeholder": "نصٌّ حكيمٌ لهُ سِرٌّ قاطِعٌ وَذُو شَأنٍ عَظيمٍ مكتوبٌ على ثوبٍ أخضرَ ومُغلفٌ بجلدٍ أزرق",
424 427
   "upload_modal.detect_text": "اكتشف النص مِن الصورة",
425 428
   "upload_modal.edit_media": "تعديل الوسائط",
426 429
   "upload_modal.hint": "اضغط أو اسحب الدائرة على خانة المعاينة لاختيار نقطة التركيز التي ستُعرَض دائمًا على كل المصغرات.",

+ 78
- 75
app/javascript/mastodon/locales/ast.json View File

@@ -1,22 +1,22 @@
1 1
 {
2 2
   "account.add_or_remove_from_list": "Add or Remove from lists",
3 3
   "account.badges.bot": "Robó",
4
-  "account.badges.group": "Group",
4
+  "account.badges.group": "Grupu",
5 5
   "account.block": "Bloquiar a @{name}",
6 6
   "account.block_domain": "Anubrir tolo de {domain}",
7 7
   "account.blocked": "Blocked",
8
-  "account.cancel_follow_request": "Cancel follow request",
8
+  "account.cancel_follow_request": "Encaboxar la solicitú de siguimientu",
9 9
   "account.direct": "Unviar un mensaxe direutu a @{name}",
10 10
   "account.domain_blocked": "Dominiu anubríu",
11 11
   "account.edit_profile": "Editar el perfil",
12 12
   "account.endorse": "Destacar nel perfil",
13
-  "account.follow": "Follow",
13
+  "account.follow": "Siguir",
14 14
   "account.followers": "Siguidores",
15 15
   "account.followers.empty": "Naide sigue a esti usuariu entá.",
16
-  "account.follows": "Sigue a",
16
+  "account.follows": "Follows",
17 17
   "account.follows.empty": "Esti usuariu entá nun sigue a naide.",
18 18
   "account.follows_you": "Síguete",
19
-  "account.hide_reblogs": "Hide boosts from @{name}",
19
+  "account.hide_reblogs": "Anubrir les comparticiones de @{name}",
20 20
   "account.last_status": "Last active",
21 21
   "account.link_verified_on": "Ownership of this link was checked on {date}",
22 22
   "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
@@ -32,18 +32,18 @@
32 32
   "account.report": "Report @{name}",
33 33
   "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
34 34
   "account.share": "Share @{name}'s profile",
35
-  "account.show_reblogs": "Show boosts from @{name}",
35
+  "account.show_reblogs": "Amosar les comparticiones de @{name}",
36 36
   "account.unblock": "Desbloquiar a @{name}",
37 37
   "account.unblock_domain": "Amosar {domain}",
38
-  "account.unendorse": "Don't feature on profile",
39
-  "account.unfollow": "Unfollow",
38
+  "account.unendorse": "Nun destacar nel perfil",
39
+  "account.unfollow": "Dexar de siguir",
40 40
   "account.unmute": "Unmute @{name}",
41 41
   "account.unmute_notifications": "Unmute notifications from @{name}",
42 42
   "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
43 43
   "alert.rate_limited.title": "Rate limited",
44 44
   "alert.unexpected.message": "Asocedió un fallu inesperáu.",
45 45
   "alert.unexpected.title": "¡Meca!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Anunciu",
47 47
   "autosuggest_hashtag.per_week": "{count} per selmana",
48 48
   "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
49 49
   "bundle_column_error.body": "Asocedió daqué malo mentanto se cargaba esti componente.",
@@ -71,7 +71,7 @@
71 71
   "column_header.moveLeft_settings": "Mover la columna a la esquierda",
72 72
   "column_header.moveRight_settings": "Mover la columna a la drecha",
73 73
   "column_header.pin": "Fixar",
74
-  "column_header.show_settings": "Show settings",
74
+  "column_header.show_settings": "Amosar axustes",
75 75
   "column_header.unpin": "Desfixar",
76 76
   "column_subheading.settings": "Axustes",
77 77
   "community.column_settings.media_only": "Namái multimedia",
@@ -84,10 +84,10 @@
84 84
   "compose_form.poll.add_option": "Amestar una escoyeta",
85 85
   "compose_form.poll.duration": "Poll duration",
86 86
   "compose_form.poll.option_placeholder": "Escoyeta {number}",
87
-  "compose_form.poll.remove_option": "Remove this choice",
87
+  "compose_form.poll.remove_option": "Desaniciar esta escoyeta",
88 88
   "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
89 89
   "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
90
-  "compose_form.publish": "Toot",
90
+  "compose_form.publish": "Barritar",
91 91
   "compose_form.publish_loud": "{publish}!",
92 92
   "compose_form.sensitive.hide": "Mark media as sensitive",
93 93
   "compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -96,30 +96,30 @@
96 96
   "compose_form.spoiler.unmarked": "El testu nun va anubrise",
97 97
   "compose_form.spoiler_placeholder": "Escribi equí l'alvertencia",
98 98
   "confirmation_modal.cancel": "Encaboxar",
99
-  "confirmations.block.block_and_report": "Block & Report",
100
-  "confirmations.block.confirm": "Block",
99
+  "confirmations.block.block_and_report": "Bloquiar ya informar",
100
+  "confirmations.block.confirm": "Bloquiar",
101 101
   "confirmations.block.message": "¿De xuru que quies bloquiar a {name}?",
102
-  "confirmations.delete.confirm": "Delete",
102
+  "confirmations.delete.confirm": "Desaniciar",
103 103
   "confirmations.delete.message": "¿De xuru que quies desaniciar esti estáu?",
104 104
   "confirmations.delete_list.confirm": "Desaniciar",
105 105
   "confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?",
106 106
   "confirmations.domain_block.confirm": "Anubrir tol dominiu",
107
-  "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
108
-  "confirmations.logout.confirm": "Log out",
109
-  "confirmations.logout.message": "Are you sure you want to log out?",
110
-  "confirmations.mute.confirm": "Mute",
111
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
107
+  "confirmations.domain_block.message": "¿De xuru xurísimu que quies bloquiar el dominiu {domain} enteru? Na mayoría de casos bloquiar o silenciar dalguna cuenta ye abondo y preferible. Nun vas ver el conteníu d'esi dominiu en nenguna llinia temporal pública o nos avisos, y van desanciase los tos siguidores d'esi dominiu.",
108
+  "confirmations.logout.confirm": "Zarrar sesión",
109
+  "confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
110
+  "confirmations.mute.confirm": "Silenciar",
111
+  "confirmations.mute.explanation": "Esto va anubrir los espublizamientos y les sos menciones pero entá va permiti-yos ver los tos espublizamientos y siguite.",
112 112
   "confirmations.mute.message": "¿De xuru que quies silenciar a {name}?",
113 113
   "confirmations.redraft.confirm": "Desaniciar y reeditar",
114 114
   "confirmations.redraft.message": "¿De xuru que quies desaniciar esti estáu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al toot orixinal van quedar güérfanes.",
115
-  "confirmations.reply.confirm": "Reply",
116
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
117
-  "confirmations.unfollow.confirm": "Unfollow",
115
+  "confirmations.reply.confirm": "Responder",
116
+  "confirmations.reply.message": "Responder agora va sobrescribir el mensaxe que tas componiendo anguaño. ¿De xuru que quies siguir?",
117
+  "confirmations.unfollow.confirm": "Dexar de siguir",
118 118
   "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
119 119
   "conversation.delete": "Delete conversation",
120 120
   "conversation.mark_as_read": "Mark as read",
121 121
   "conversation.open": "View conversation",
122
-  "conversation.with": "With {names}",
122
+  "conversation.with": "Con {names}",
123 123
   "directory.federated": "Dende'l fediversu",
124 124
   "directory.local": "Dende {domain} namái",
125 125
   "directory.new_arrivals": "Cuentes nueves",
@@ -142,21 +142,21 @@
142 142
   "emoji_button.travel": "Viaxes y llugares",
143 143
   "empty_column.account_timeline": "¡Equí nun hai barritos!",
144 144
   "empty_column.account_unavailable": "Profile unavailable",
145
-  "empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
146
-  "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
145
+  "empty_column.blocks": "Entá nun bloquiesti a nunengún usuariu.",
146
+  "empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.",
147 147
   "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
148
-  "empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
148
+  "empty_column.direct": "Entá nun tienes nunengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
149 149
   "empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
150
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
150
+  "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.",
151 151
   "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
152
-  "empty_column.follow_requests": "Entá nun tienes denguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
152
+  "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
153 153
   "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
154 154
   "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.",
155 155
   "empty_column.home.public_timeline": "la llinia temporal pública",
156 156
   "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.",
157
-  "empty_column.lists": "Entá nun tienes denguna llista. Cuando crees una, va amosase equí.",
158
-  "empty_column.mutes": "Entá nun silenciesti a dengún usuariu.",
159
-  "empty_column.notifications": "Entá nun tienes dengún avisu. Interactúa con otros p'aniciar la conversación.",
157
+  "empty_column.lists": "Entá nun tienes nunenguna llista. Cuando crees una, va amosase equí.",
158
+  "empty_column.mutes": "Entá nun silenciesti a nunengún usuariu.",
159
+  "empty_column.notifications": "Entá nun tienes nunengún avisu. Interactúa con otros p'aniciar la conversación.",
160 160
   "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
161 161
   "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun pudo amosase correutamente.",
162 162
   "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
@@ -175,19 +175,21 @@
175 175
   "hashtag.column_header.tag_mode.all": "y {additional}",
176 176
   "hashtag.column_header.tag_mode.any": "o {additional}",
177 177
   "hashtag.column_header.tag_mode.none": "ensin {additional}",
178
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
178
+  "hashtag.column_settings.select.no_options_message": "Nun s'alcontraron suxerencies",
179 179
   "hashtag.column_settings.select.placeholder": "Enter hashtags…",
180
-  "hashtag.column_settings.tag_mode.all": "All of these",
181
-  "hashtag.column_settings.tag_mode.any": "Any of these",
182
-  "hashtag.column_settings.tag_mode.none": "None of these",
180
+  "hashtag.column_settings.tag_mode.all": "Toes estes",
181
+  "hashtag.column_settings.tag_mode.any": "Cualesquiera d'estes",
182
+  "hashtag.column_settings.tag_mode.none": "Nenguna d'estes",
183 183
   "hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna",
184 184
   "home.column_settings.basic": "Basic",
185 185
   "home.column_settings.show_reblogs": "Amosar toots compartíos",
186 186
   "home.column_settings.show_replies": "Amosar rempuestes",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# día} other {# díes}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
190
-  "introduction.federation.action": "Next",
192
+  "introduction.federation.action": "Siguiente",
191 193
   "introduction.federation.federated.headline": "Federated",
192 194
   "introduction.federation.federated.text": "Los espublizamientos públicos de los demás sirvidores del fediversu van apaecer na llinia temporal federada.",
193 195
   "introduction.federation.home.headline": "Home",
@@ -196,12 +198,12 @@
196 198
   "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
197 199
   "introduction.interactions.action": "¡Finar el tutorial!",
198 200
   "introduction.interactions.favourite.headline": "Favourite",
199
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
201
+  "introduction.interactions.favourite.text": "Pues guardar un barritu pa dempués y facer que l'autor sepa que te prestó marcándolu como favoritu.",
200 202
   "introduction.interactions.reblog.headline": "Boost",
201 203
   "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
202 204
   "introduction.interactions.reply.headline": "Reply",
203 205
   "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
204
-  "introduction.welcome.action": "Let's go!",
206
+  "introduction.welcome.action": "¡Vamos!",
205 207
   "introduction.welcome.headline": "Primeros pasos",
206 208
   "introduction.welcome.text": "¡Afáyate nel fediversu! Nun momentu vas ser a tresmitir mensaxes y falar colos collacios d'una montonera de sirvidores. Pero esti sirvidor, {domain}, ye especial: agospia'l to perfil, asina qu'alcuérdate de cómo se llama.",
207 209
   "keyboard_shortcuts.back": "pa dir p'atrás",
@@ -212,7 +214,7 @@
212 214
   "keyboard_shortcuts.description": "Descripción",
213 215
   "keyboard_shortcuts.direct": "p'abrir la columna de los mensaxes direutos",
214 216
   "keyboard_shortcuts.down": "pa baxar na llista",
215
-  "keyboard_shortcuts.enter": "to open status",
217
+  "keyboard_shortcuts.enter": "p'abrir estaos",
216 218
   "keyboard_shortcuts.favourite": "p'amestar a Favoritos",
217 219
   "keyboard_shortcuts.favourites": "p'abrir la llista de favoritos",
218 220
   "keyboard_shortcuts.federated": "p'abrir la llinia temporal federada",
@@ -252,13 +254,13 @@
252 254
   "lists.subheading": "Les tos llistes",
253 255
   "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
254 256
   "loading_indicator.label": "Cargando…",
255
-  "media_gallery.toggle_visible": "Toggle visibility",
257
+  "media_gallery.toggle_visible": "Alternar la visibilidá",
256 258
   "missing_indicator.label": "Nun s'alcontró",
257 259
   "missing_indicator.sublabel": "Esti recursu nun pudo alcontrase",
258
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
260
+  "mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?",
259 261
   "navigation_bar.apps": "Aplicaciones pa móviles",
260 262
   "navigation_bar.blocks": "Usuarios bloquiaos",
261
-  "navigation_bar.bookmarks": "Bookmarks",
263
+  "navigation_bar.bookmarks": "Marcadores",
262 264
   "navigation_bar.community_timeline": "Llinia temporal llocal",
263 265
   "navigation_bar.compose": "Compose new toot",
264 266
   "navigation_bar.direct": "Mensaxes direutos",
@@ -281,41 +283,41 @@
281 283
   "navigation_bar.security": "Seguranza",
282 284
   "notification.favourite": "{name} favourited your status",
283 285
   "notification.follow": "{name} siguióte",
284
-  "notification.follow_request": "{name} has requested to follow you",
286
+  "notification.follow_request": "{name} solicitó siguite",
285 287
   "notification.mention": "{name} mentóte",
286 288
   "notification.own_poll": "Your poll has ended",
287
-  "notification.poll": "A poll you have voted in has ended",
289
+  "notification.poll": "Finó una encuesta na que votesti",
288 290
   "notification.reblog": "{name} compartió'l to estáu",
289 291
   "notifications.clear": "Llimpiar avisos",
290 292
   "notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
291 293
   "notifications.column_settings.alert": "Avisos d'escritoriu",
292 294
   "notifications.column_settings.favourite": "Favoritos:",
293
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
294
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
295
+  "notifications.column_settings.filter_bar.advanced": "Amosar toles estayes",
296
+  "notifications.column_settings.filter_bar.category": "Barra de peñera rápida",
295 297
   "notifications.column_settings.filter_bar.show": "Amosar",
296 298
   "notifications.column_settings.follow": "Siguidores nuevos:",
297 299
   "notifications.column_settings.follow_request": "Solicitúes de siguimientu nueves:",
298 300
   "notifications.column_settings.mention": "Menciones:",
299
-  "notifications.column_settings.poll": "Poll results:",
301
+  "notifications.column_settings.poll": "Resultaos d'encuestes:",
300 302
   "notifications.column_settings.push": "Push notifications",
301 303
   "notifications.column_settings.reblog": "Barritos compartíos:",
302 304
   "notifications.column_settings.show": "Amosar en columna",
303 305
   "notifications.column_settings.sound": "Reproducir un soníu",
304
-  "notifications.filter.all": "All",
306
+  "notifications.filter.all": "Too",
305 307
   "notifications.filter.boosts": "Boosts",
306 308
   "notifications.filter.favourites": "Favourites",
307 309
   "notifications.filter.follows": "Follows",
308 310
   "notifications.filter.mentions": "Menciones",
309 311
   "notifications.filter.polls": "Poll results",
310 312
   "notifications.group": "{count} avisos",
311
-  "poll.closed": "Closed",
313
+  "poll.closed": "Acabó",
312 314
   "poll.refresh": "Refresh",
313
-  "poll.total_people": "{count, plural, one {# person} other {# people}}",
314
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
315
+  "poll.total_people": "{count, plural, one {# persona} other {# persones}}",
316
+  "poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
315 317
   "poll.vote": "Vote",
316 318
   "poll.voted": "You voted for this answer",
317
-  "poll_button.add_poll": "Add a poll",
318
-  "poll_button.remove_poll": "Remove poll",
319
+  "poll_button.add_poll": "Amestar una encuesta",
320
+  "poll_button.remove_poll": "Desaniciar la encuesta",
319 321
   "privacy.change": "Adjust status privacy",
320 322
   "privacy.direct.long": "Post to mentioned users only",
321 323
   "privacy.direct.short": "Direct",
@@ -333,14 +335,15 @@
333 335
   "relative_time.just_now": "agora",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "güei",
336 339
   "reply_indicator.cancel": "Encaboxar",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
339 342
   "report.hint": "L'informe va unviase a los llendadores del to sirvidor. Embaxo, pues desplicar por qué informes d'esta cuenta:",
340 343
   "report.placeholder": "Comentarios adicionales",
341
-  "report.submit": "Submit",
344
+  "report.submit": "Unviar",
342 345
   "report.target": "Report {target}",
343
-  "search.placeholder": "Search",
346
+  "search.placeholder": "Guetar",
344 347
   "search_popout.search_format": "Formatu de gueta avanzada",
345 348
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
346 349
   "search_popout.tips.hashtag": "etiqueta",
@@ -355,11 +358,11 @@
355 358
   "status.admin_account": "Open moderation interface for @{name}",
356 359
   "status.admin_status": "Open this status in the moderation interface",
357 360
   "status.block": "Bloquiar a @{name}",
358
-  "status.bookmark": "Bookmark",
361
+  "status.bookmark": "Amestar a Marcadores",
359 362
   "status.cancel_reblog_private": "Dexar de compartir",
360 363
   "status.cannot_reblog": "Esti artículu nun pue compartise",
361
-  "status.copy": "Copy link to status",
362
-  "status.delete": "Delete",
364
+  "status.copy": "Copiar l'enllaz al estáu",
365
+  "status.delete": "Desaniciar",
363 366
   "status.detailed_status": "Detailed conversation view",
364 367
   "status.direct": "Unviar un mensaxe direutu a @{name}",
365 368
   "status.embed": "Empotrar",
@@ -380,50 +383,50 @@
380 383
   "status.reblogged_by": "{name} compartió",
381 384
   "status.reblogs.empty": "Naide nun compartió esti barritu entá. Cuando daquién lo faiga, va amosase equí.",
382 385
   "status.redraft": "Desaniciar y reeditar",
383
-  "status.remove_bookmark": "Remove bookmark",
386
+  "status.remove_bookmark": "Desaniciar de Marcadores",
384 387
   "status.reply": "Responder",
385 388
   "status.replyAll": "Reply to thread",
386 389
   "status.report": "Report @{name}",
387 390
   "status.sensitive_warning": "Conteníu sensible",
388 391
   "status.share": "Share",
389 392
   "status.show_less": "Amosar menos",
390
-  "status.show_less_all": "Show less for all",
393
+  "status.show_less_all": "Amosar menos en too",
391 394
   "status.show_more": "Amosar más",
392
-  "status.show_more_all": "Show more for all",
395
+  "status.show_more_all": "Amosar más en too",
393 396
   "status.show_thread": "Amosar el filu",
394
-  "status.uncached_media_warning": "Not available",
397
+  "status.uncached_media_warning": "Non disponible",
395 398
   "status.unmute_conversation": "Unmute conversation",
396 399
   "status.unpin": "Desfixar del perfil",
397 400
   "suggestions.dismiss": "Dismiss suggestion",
398
-  "suggestions.header": "You might be interested in…",
399
-  "tabs_bar.federated_timeline": "Federated",
401
+  "suggestions.header": "Quiciabes t'interese…",
402
+  "tabs_bar.federated_timeline": "Fediversu",
400 403
   "tabs_bar.home": "Aniciu",
401 404
   "tabs_bar.local_timeline": "Llocal",
402 405
   "tabs_bar.notifications": "Avisos",
403 406
   "tabs_bar.search": "Search",
404
-  "time_remaining.days": "{number, plural, one {# día} other {# díes}} que queden",
405
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
406
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
407
+  "time_remaining.days": "{number, plural, one {Queda # día} other {Queden # díes}}",
408
+  "time_remaining.hours": "{number, plural, one {# hora restante} other {# hores restantes}}",
409
+  "time_remaining.minutes": "{number, plural, one {# minutu restante} other {# minutos restantes}}",
407 410
   "time_remaining.moments": "Moments remaining",
408
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
411
+  "time_remaining.seconds": "{number, plural, one {# segundu restante} other {# segundos restantes}}",
409 412
   "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {persones}} falando",
410 413
   "trends.trending_now": "Trending now",
411 414
   "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
412
-  "upload_area.title": "Drag & drop to upload",
415
+  "upload_area.title": "Arrastra y suelta pa xubir",
413 416
   "upload_button.label": "Add media ({formats})",
414 417
   "upload_error.limit": "File upload limit exceeded.",
415
-  "upload_error.poll": "File upload not allowed with polls.",
416
-  "upload_form.audio_description": "Describe for people with hearing loss",
418
+  "upload_error.poll": "La xuba de ficheros nun ta permitida con encuestes.",
419
+  "upload_form.audio_description": "Descripción pa persones con perda auditiva",
417 420
   "upload_form.description": "Descripción pa discapacitaos visuales",
418 421
   "upload_form.edit": "Editar",
419 422
   "upload_form.undo": "Desaniciar",
420
-  "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
423
+  "upload_form.video_description": "Descripción pa persones con perda auditiva o discapacidá visual",
421 424
   "upload_modal.analyzing_picture": "Analizando la semeya…",
422 425
   "upload_modal.apply": "Aplicar",
423 426
   "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
424
-  "upload_modal.detect_text": "Detect text from picture",
427
+  "upload_modal.detect_text": "Deteutar el testu de la semeya",
425 428
   "upload_modal.edit_media": "Edición",
426
-  "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
429
+  "upload_modal.hint": "Calca o arrastra'l círculu de la previsualización pa escoyer el puntu d'enfoque que va amosase siempres en toles miniatures.",
427 430
   "upload_modal.preview_label": "Previsualización ({ratio})",
428 431
   "upload_progress.label": "Xubiendo…",
429 432
   "video.close": "Zarrar el videu",

+ 3
- 0
app/javascript/mastodon/locales/bg.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Basic",
185 185
   "home.column_settings.show_reblogs": "Show boosts",
186 186
   "home.column_settings.show_replies": "Show replies",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "now",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Отказ",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 3
- 0
app/javascript/mastodon/locales/bn.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "সাধারণ",
185 185
   "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান",
186 186
   "home.column_settings.show_replies": "মতামত দেখান",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "এখন",
334 336
   "relative_time.minutes": "{number}মিঃ",
335 337
   "relative_time.seconds": "{number} সেকেন্ড",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "বাতিল করতে",
337 340
   "report.forward": "এটা আরো পাঠান {target} তে",
338 341
   "report.forward_hint": "এই নিবন্ধনটি অন্য একটি সার্ভারে। অপ্রকাশিতনামাভাবে রিপোর্টের কপি সেখানেও কি পাঠাতে চান ?",

+ 3
- 0
app/javascript/mastodon/locales/br.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Basic",
185 185
   "home.column_settings.show_reblogs": "Show boosts",
186 186
   "home.column_settings.show_replies": "Show replies",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "now",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Cancel",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 5
- 2
app/javascript/mastodon/locales/ca.json View File

@@ -158,8 +158,8 @@
158 158
   "empty_column.mutes": "Encara no has silenciat cap usuari.",
159 159
   "empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
160 160
   "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
161
-  "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina no podria ser mostrada correctament.",
162
-  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda encara pots ser capaç d'utilitzar Mastodont a través d'un navegador diferent o app nativa.",
161
+  "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina podria no ser mostrada correctament.",
162
+  "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda, encara podries ser capaç d'utilitzar Mastodon a través d'un navegador diferent o amb una app nativa.",
163 163
   "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace al porta-retalls",
164 164
   "errors.unexpected_crash.report_issue": "Informa d'un problema",
165 165
   "follow_request.authorize": "Autoritzar",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Bàsic",
185 185
   "home.column_settings.show_reblogs": "Mostra els impulsos",
186 186
   "home.column_settings.show_replies": "Mostra les respostes",
187
+  "home.hide_announcements": "Amaga els anuncis",
188
+  "home.show_announcements": "Mostra els anuncis",
187 189
   "intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "ara",
334 336
   "relative_time.minutes": "fa {number} minuts",
335 337
   "relative_time.seconds": "fa {number} segons",
338
+  "relative_time.today": "avui",
336 339
   "reply_indicator.cancel": "Cancel·lar",
337 340
   "report.forward": "Reenvia a {target}",
338 341
   "report.forward_hint": "Aquest compte és d'un altre servidor. Enviar-hi també una copia anònima del informe?",

+ 3
- 0
app/javascript/mastodon/locales/co.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Bàsichi",
185 185
   "home.column_settings.show_reblogs": "Vede e spartere",
186 186
   "home.column_settings.show_replies": "Vede e risposte",
187
+  "home.hide_announcements": "Piattà annunzii",
188
+  "home.show_announcements": "Vede annunzii",
187 189
   "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "avà",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "oghji",
336 339
   "reply_indicator.cancel": "Annullà",
337 340
   "report.forward": "Trasferisce à {target}",
338 341
   "report.forward_hint": "U contu hè nant'à un'altru servore. Vulete ancu mandà una copia anonima di u signalamentu quallà?",

+ 4
- 1
app/javascript/mastodon/locales/cs.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Rychlost omezena",
44 44
   "alert.unexpected.message": "Objevila se neočekávaná chyba.",
45 45
   "alert.unexpected.title": "Jejda!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Oznámení",
47 47
   "autosuggest_hashtag.per_week": "{count} za týden",
48 48
   "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
49 49
   "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Základní",
185 185
   "home.column_settings.show_reblogs": "Zobrazit boosty",
186 186
   "home.column_settings.show_replies": "Zobrazit odpovědi",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "teď",
334 336
   "relative_time.minutes": "{number} m",
335 337
   "relative_time.seconds": "{number} s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Zrušit",
337 340
   "report.forward": "Přeposlat na {target}",
338 341
   "report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",

+ 4
- 1
app/javascript/mastodon/locales/cy.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Cyfradd gyfyngedig",
44 44
   "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
45 45
   "alert.unexpected.title": "Wps!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Cyhoeddiad",
47 47
   "autosuggest_hashtag.per_week": "{count} yr wythnos",
48 48
   "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
49 49
   "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Syml",
185 185
   "home.column_settings.show_reblogs": "Dangos bŵstiau",
186 186
   "home.column_settings.show_replies": "Dangos ymatebion",
187
+  "home.hide_announcements": "Cuddio cyhoeddiadau",
188
+  "home.show_announcements": "Dangos cyhoeddiadau",
187 189
   "intervals.full.days": "{number, plural, one {# ddydd} other {# o ddyddiau}}",
188 190
   "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "nawr",
334 336
   "relative_time.minutes": "{number}munud",
335 337
   "relative_time.seconds": "{number}eiliad",
338
+  "relative_time.today": "heddiw",
336 339
   "reply_indicator.cancel": "Canslo",
337 340
   "report.forward": "Ymlaen i {target}",
338 341
   "report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",

+ 3
- 0
app/javascript/mastodon/locales/da.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Grundlæggende",
185 185
   "home.column_settings.show_reblogs": "Vis fremhævelser",
186 186
   "home.column_settings.show_replies": "Vis svar",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# dag} other {# dage}}",
188 190
   "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "nu",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Annuller",
337 340
   "report.forward": "Videresend til {target}",
338 341
   "report.forward_hint": "Kontoen er fra en anden server. Vil du også sende en anonym kopi af anmeldelsen dertil?",

+ 4
- 1
app/javascript/mastodon/locales/de.json View File

@@ -143,7 +143,7 @@
143 143
   "empty_column.account_timeline": "Keine Beiträge!",
144 144
   "empty_column.account_unavailable": "Konto nicht verfügbar",
145 145
   "empty_column.blocks": "Du hast keine Profile blockiert.",
146
-  "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
146
+  "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Toots gespeichert. Wenn du einen Beitrag als Toot speicherst, wird er hier erscheinen.",
147 147
   "empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
148 148
   "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
149 149
   "empty_column.domain_blocks": "Es ist noch keine versteckten Domains.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Einfach",
185 185
   "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
186 186
   "home.column_settings.show_replies": "Antworten anzeigen",
187
+  "home.hide_announcements": "Verstecke Ankündigungen",
188
+  "home.show_announcements": "Zeige Ankündigungen",
187 189
   "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
188 190
   "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "jetzt",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "heute",
336 339
   "reply_indicator.cancel": "Abbrechen",
337 340
   "report.forward": "An {target} weiterleiten",
338 341
   "report.forward_hint": "Dieses Konto ist von einem anderen Server. Soll eine anonymisierte Kopie des Berichts auch dorthin geschickt werden?",

+ 3
- 0
app/javascript/mastodon/locales/el.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Βασικές ρυθμίσεις",
185 185
   "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
186 186
   "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
187
+  "home.hide_announcements": "Απόκρυψη ανακοινώσεων",
188
+  "home.show_announcements": "Εμφάνιση ανακοινώσεων",
187 189
   "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "τώρα",
334 336
   "relative_time.minutes": "{number}λ",
335 337
   "relative_time.seconds": "{number}δ",
338
+  "relative_time.today": "σήμερα",
336 339
   "reply_indicator.cancel": "Άκυρο",
337 340
   "report.forward": "Προώθηση προς {target}",
338 341
   "report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",

+ 5
- 2
app/javascript/mastodon/locales/eo.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Mesaĝkvante limigita",
44 44
   "alert.unexpected.message": "Neatendita eraro okazis.",
45 45
   "alert.unexpected.title": "Ups!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Anonco",
47 47
   "autosuggest_hashtag.per_week": "{count} semajne",
48 48
   "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
49 49
   "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.",
@@ -108,7 +108,7 @@
108 108
   "confirmations.logout.confirm": "Elsaluti",
109 109
   "confirmations.logout.message": "Ĉu vi certas ke vi volas elsaluti?",
110 110
   "confirmations.mute.confirm": "Silentigi",
111
-  "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
111
+  "confirmations.mute.explanation": "Ĉi-tio kaŝos mesaĝojn el ili kaj mesaĝojn kiuj mencias ilin, sed ili ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.",
112 112
   "confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?",
113 113
   "confirmations.redraft.confirm": "Forigi kaj reskribi",
114 114
   "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Bazaj agordoj",
185 185
   "home.column_settings.show_reblogs": "Montri diskonigojn",
186 186
   "home.column_settings.show_replies": "Montri respondojn",
187
+  "home.hide_announcements": "Kaŝi anoncojn",
188
+  "home.show_announcements": "Montri anoncojn",
187 189
   "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
188 190
   "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "nun",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "hodiaŭ",
336 339
   "reply_indicator.cancel": "Nuligi",
337 340
   "report.forward": "Plusendi al {target}",
338 341
   "report.forward_hint": "La konto estas en alia servilo. Ĉu sendi sennomigitan kopion de la signalo ankaŭ tien?",

+ 3
- 0
app/javascript/mastodon/locales/es-AR.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Básico",
185 185
   "home.column_settings.show_reblogs": "Mostrar retoots",
186 186
   "home.column_settings.show_replies": "Mostrar respuestas",
187
+  "home.hide_announcements": "Ocultar anuncios",
188
+  "home.show_announcements": "Mostrar anuncios",
187 189
   "intervals.full.days": "{number, plural, one {# día} other {# días}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "recién",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "hoy",
336 339
   "reply_indicator.cancel": "Cancelar",
337 340
   "report.forward": "Reenviar a {target}",
338 341
   "report.forward_hint": "La cuenta es de otro servidor. ¿Querés enviar una copia anonimizada del informe también ahí?",

+ 3
- 0
app/javascript/mastodon/locales/es.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Básico",
185 185
   "home.column_settings.show_reblogs": "Mostrar retoots",
186 186
   "home.column_settings.show_replies": "Mostrar respuestas",
187
+  "home.hide_announcements": "Ocultar anuncios",
188
+  "home.show_announcements": "Mostrar anuncios",
187 189
   "intervals.full.days": "{number, plural, one {# día} other {# días}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "ahora",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "hoy",
336 339
   "reply_indicator.cancel": "Cancelar",
337 340
   "report.forward": "Reenviar a {target}",
338 341
   "report.forward_hint": "Esta cuenta es de otro servidor. ¿Enviar una copia anonimizada del informe allí también?",

+ 4
- 1
app/javascript/mastodon/locales/et.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Piiratud",
44 44
   "alert.unexpected.message": "Tekkis ootamatu viga.",
45 45
   "alert.unexpected.title": "Oih!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Teadaanne",
47 47
   "autosuggest_hashtag.per_week": "{count} nädalas",
48 48
   "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta",
49 49
   "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Peamine",
185 185
   "home.column_settings.show_reblogs": "Näita upitusi",
186 186
   "home.column_settings.show_replies": "Näita vastuseid",
187
+  "home.hide_announcements": "Peida teadaanded",
188
+  "home.show_announcements": "Kuva teadaandeid",
187 189
   "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}",
188 190
   "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "nüüd",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "täna",
336 339
   "reply_indicator.cancel": "Tühista",
337 340
   "report.forward": "Edasta kasutajale {target}",
338 341
   "report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?",

+ 3
- 0
app/javascript/mastodon/locales/eu.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Oinarrizkoa",
185 185
   "home.column_settings.show_reblogs": "Erakutsi bultzadak",
186 186
   "home.column_settings.show_replies": "Erakutsi erantzunak",
187
+  "home.hide_announcements": "Ezkutatu iragarpenak",
188
+  "home.show_announcements": "Erakutsi iragarpenak",
187 189
   "intervals.full.days": "{number, plural, one {egun #} other {# egun}}",
188 190
   "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}",
189 191
   "intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "orain",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "gaur",
336 339
   "reply_indicator.cancel": "Utzi",
337 340
   "report.forward": "Birbidali hona: {target}",
338 341
   "report.forward_hint": "Kontu hau beste zerbitzari batekoa da. Bidali txostenaren kopia anonimo hara ere?",

+ 52
- 49
app/javascript/mastodon/locales/fa.json View File

@@ -23,8 +23,8 @@
23 23
   "account.media": "رسانه",
24 24
   "account.mention": "نام‌بردن از @{name}",
25 25
   "account.moved_to": "{name} منتقل شده به:",
26
-  "account.mute": "خموشی @{name}",
27
-  "account.mute_notifications": "خموشی اعلان‌ها از @{name}",
26
+  "account.mute": "خموشاندن @{name}",
27
+  "account.mute_notifications": "خموشاندن اعلان‌ها از @{name}",
28 28
   "account.muted": "خموش",
29 29
   "account.never_active": "هرگز",
30 30
   "account.posts": "نوشته‌ها",
@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "محدودیت تعداد",
44 44
   "alert.unexpected.message": "خطایی غیرمنتظره رخ داد.",
45 45
   "alert.unexpected.title": "ای وای!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "اعلامیه",
47 47
   "autosuggest_hashtag.per_week": "{count} در هفته",
48 48
   "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
49 49
   "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.",
@@ -104,12 +104,12 @@
104 104
   "confirmations.delete_list.confirm": "پاک کن",
105 105
   "confirmations.delete_list.message": "مطمئنید می‌خواهید این فهرست را برای همیشه پاک کنید؟",
106 106
   "confirmations.domain_block.confirm": "نهفتن تمام دامنه",
107
-  "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشیدن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.",
107
+  "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشاندن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.",
108 108
   "confirmations.logout.confirm": "خروج",
109 109
   "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟",
110
-  "confirmations.mute.confirm": "خموشی",
110
+  "confirmations.mute.confirm": "خموشاندن",
111 111
   "confirmations.mute.explanation": "این کار فرسته‌های آن‌ها و فرسته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند فرسته‌های شما را ببینند و شما را پی بگیرند.",
112
-  "confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشید؟",
112
+  "confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشانید؟",
113 113
   "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی",
114 114
   "confirmations.redraft.message": "مطمئنید که می‌خواهید این بوق را پاک کنید و از نو بنویسید؟ با این کار بازبوق‌ها و پسندهای آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.",
115 115
   "confirmations.reply.confirm": "پاسخ",
@@ -159,7 +159,7 @@
159 159
   "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
160 160
   "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی بگیرید تا این‌جا پر شود",
161 161
   "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
162
-  "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستدون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
162
+  "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستودون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.",
163 163
   "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
164 164
   "errors.unexpected_crash.report_issue": "گزارش مشکل",
165 165
   "follow_request.authorize": "اجازه دهید",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "پایه‌ای",
185 185
   "home.column_settings.show_reblogs": "نمایش بازبوق‌ها",
186 186
   "home.column_settings.show_replies": "نمایش پاسخ‌ها",
187
+  "home.hide_announcements": "نهفتن اعلامیه‌ها",
188
+  "home.show_announcements": "نمایش اعلامیه‌ها",
187 189
   "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
@@ -273,7 +275,7 @@
273 275
   "navigation_bar.keyboard_shortcuts": "میان‌برها",
274 276
   "navigation_bar.lists": "فهرست‌ها",
275 277
   "navigation_bar.logout": "خروج",
276
-  "navigation_bar.mutes": "کاربران خموشیده",
278
+  "navigation_bar.mutes": "کاربران خموشانده",
277 279
   "navigation_bar.personal": "شخصی",
278 280
   "navigation_bar.pins": "بوق‌های ثابت",
279 281
   "navigation_bar.preferences": "ترجیحات",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "الان",
334 336
   "relative_time.minutes": "{number} دقیقه",
335 337
   "relative_time.seconds": "{number} ثانیه",
338
+  "relative_time.today": "امروز",
336 339
   "reply_indicator.cancel": "لغو",
337 340
   "report.forward": "فرستادن به {target}",
338 341
   "report.forward_hint": "این حساب در کارساز دیگری ثبت شده. آیا می‌خواهید رونوشتی ناشناس از این گزارش به آن‌جا هم فرستاده شود؟",
@@ -342,44 +345,44 @@
342 345
   "report.target": "در حال گزارش {target}",
343 346
   "search.placeholder": "جستجو",
344 347
   "search_popout.search_format": "راهنمای جستجوی پیشرفته",
345
-  "search_popout.tips.full_text": "جست‌وجوی متنی ساده وضعیت‌هایی که که نوشته، برگزیده، تقویت‌کرده یا در آن‌ها اشاره‌شده‌اید را به اضافهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌های مطابق برمی‌گرداند.",
348
+  "search_popout.tips.full_text": "جستجوی متنی ساده می‌تواند بوق‌هایی که شما نوشته‌اید، پسندیده‌اید، بازبوقیده‌اید، یا در آن‌ها از شما نام برده شده است را پیدا کند. همچنین نام‌های کاربری، نام نمایش‌یافته، و هشتگ‌ها را هم شامل می‌شود.",
346 349
   "search_popout.tips.hashtag": "برچسب",
347
-  "search_popout.tips.status": "وضعیت",
348
-  "search_popout.tips.text": "جست‌وجوی متنی ساده، نام‌های نمایشی، نام‌های کاربری، و برچسب‌ها را برمی‌گرداند",
350
+  "search_popout.tips.status": "بوق",
351
+  "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و برچسب‌ها",
349 352
   "search_popout.tips.user": "کاربر",
350 353
   "search_results.accounts": "افراد",
351 354
   "search_results.hashtags": "برچسب‌ها",
352 355
   "search_results.statuses": "بوق‌ها",
353
-  "search_results.statuses_fts_disabled": "جست‌وجوی بوق‌ها بر اساس محتوایشان روی این کارساز ماستودون به کار نیفتاده است.",
356
+  "search_results.statuses_fts_disabled": "جستجوی محتوای بوق‌ها در این کارساز ماستودون فعال نشده است.",
354 357
   "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
355 358
   "status.admin_account": "گشودن واسط مدیریت برای @{name}",
356
-  "status.admin_status": "گشودن این وضعیت در واسط مدیریت",
357
-  "status.block": "انسداد @{name}",
359
+  "status.admin_status": "گشودن این بوق در واسط مدیریت",
360
+  "status.block": "مسدودسازی @{name}",
358 361
   "status.bookmark": "نشانک",
359
-  "status.cancel_reblog_private": "ناتقویت",
360
-  "status.cannot_reblog": "این نوشته نمی‌تواند تقویت شود",
361
-  "status.copy": "رونوشت از پیوند به وضعیت",
362
-  "status.delete": "حذف",
363
-  "status.detailed_status": "نمای گفت‌وگوی باجزییات",
364
-  "status.direct": "پیام خصوصی به @{name}",
362
+  "status.cancel_reblog_private": "حذف بازبوق",
363
+  "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید",
364
+  "status.copy": "رونوشت‌برداری از نشانی بوق",
365
+  "status.delete": "پاک‌کردن",
366
+  "status.detailed_status": "نمایش کامل گفتگو",
367
+  "status.direct": "پیغام مستقیم به @{name}",
365 368
   "status.embed": "جاگذاری",
366
-  "status.favourite": "برگزیدن",
369
+  "status.favourite": "پسندیدن",
367 370
   "status.filtered": "پالوده",
368
-  "status.load_more": "بار کردن بیشتر",
371
+  "status.load_more": "بیشتر نشان بده",
369 372
   "status.media_hidden": "رسانهٔ نهفته",
370
-  "status.mention": "اشاره به @{name}",
373
+  "status.mention": "نام‌بردن از @{name}",
371 374
   "status.more": "بیشتر",
372
-  "status.mute": "خموشی @{name}",
373
-  "status.mute_conversation": "خموشی گفت‌وگو",
374
-  "status.open": "گسترش این وضعیت",
375
-  "status.pin": "سنجاق به نمایه",
376
-  "status.pinned": "بوق سنجاق‌شده",
375
+  "status.mute": "خموشاندن @{name}",
376
+  "status.mute_conversation": "خموشاندن گفتگو",
377
+  "status.open": "گشودن این بوق",
378
+  "status.pin": "ثابت کردن در نمایه",
379
+  "status.pinned": "بوق ثابت",
377 380
   "status.read_more": "بیشتر بخوانید",
378
-  "status.reblog": "تقویت",
379
-  "status.reblog_private": "تقویت برای مخاطبان نخستین",
380
-  "status.reblogged_by": "‫{name}‬ تقویت کرد",
381
-  "status.reblogs.empty": "هنوز کسی این بوق را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا دیده خواهد شد.",
382
-  "status.redraft": "حذف و بازنویسی",
381
+  "status.reblog": "بازبوقیدن",
382
+  "status.reblog_private": "بازبوق به مخاطبان اولیه",
383
+  "status.reblogged_by": "‫{name}‬ بازبوقید",
384
+  "status.reblogs.empty": "هنوز هیچ کسی این بوق را بازنبوقیده است. وقتی کسی چنین کاری کند، این‌جا نمایش خواهد یافت.",
385
+  "status.redraft": "پاک‌کردن و بازنویسی",
383 386
   "status.remove_bookmark": "برداشتن نشانک",
384 387
   "status.reply": "پاسخ",
385 388
   "status.replyAll": "پاسخ به رشته",
@@ -387,53 +390,53 @@
387 390
   "status.sensitive_warning": "محتوای حساس",
388 391
   "status.share": "هم‌رسانی",
389 392
   "status.show_less": "نمایش کمتر",
390
-  "status.show_less_all": "نمایش کمتر برای همه",
393
+  "status.show_less_all": "نمایش کمتر همه",
391 394
   "status.show_more": "نمایش بیشتر",
392
-  "status.show_more_all": "نمایش بیشتر برای همه",
395
+  "status.show_more_all": "نمایش بیشتر همه",
393 396
   "status.show_thread": "نمایش رشته",
394 397
   "status.uncached_media_warning": "ناموجود",
395
-  "status.unmute_conversation": "رفع خموشی گفت‌وگو",
396
-  "status.unpin": "برداشتن سنجاق از نمایه",
398
+  "status.unmute_conversation": "رفع خموشی گفتگو",
399
+  "status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
397 400
   "suggestions.dismiss": "نادیده گرفتن پیشنهاد",
398 401
   "suggestions.header": "شاید این هم برایتان جالب باشد…",
399 402
   "tabs_bar.federated_timeline": "همگانی",
400 403
   "tabs_bar.home": "خانه",
401 404
   "tabs_bar.local_timeline": "محلّی",
402
-  "tabs_bar.notifications": "آگاهی‌ها",
403
-  "tabs_bar.search": "جست‌وجو",
405
+  "tabs_bar.notifications": "اعلان‌ها",
406
+  "tabs_bar.search": "جستجو",
404 407
   "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده",
405 408
   "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده",
406 409
   "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده",
407
-  "time_remaining.moments": "لحظاتی باقی‌مانده",
410
+  "time_remaining.moments": "زمان باقی‌مانده",
408 411
   "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده",
409 412
   "trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشته‌اند}}",
410 413
   "trends.trending_now": "پرطرفدار",
411
-  "ui.beforeunload": "در صورت خروج از از ماستودون، پیش‌نویستان از دست خواهد رفت.",
414
+  "ui.beforeunload": "اگر از ماستودون خارج شوید پیش‌نویس شما از دست خواهد رفت.",
412 415
   "upload_area.title": "برای بارگذاری به این‌جا بکشید",
413 416
   "upload_button.label": "افزودن رسانه ({formats})",
414
-  "upload_error.limit": "تجاوز از کران بارگذاری پرونده.",
417
+  "upload_error.limit": "از حد مجاز باگذاری پرونده فراتر رفتید.",
415 418
   "upload_error.poll": "بارگذاری پرونده در نظرسنجی‌ها مجاز نیست.",
416
-  "upload_form.audio_description": "توصیف برای افراد فاقد شنوایی",
417
-  "upload_form.description": "توضیح برای کم‌بینایان",
419
+  "upload_form.audio_description": "برای ناشنوایان توصیفش کنید",
420
+  "upload_form.description": "برای کم‌بینایان توصیفش کنید",
418 421
   "upload_form.edit": "ویرایش",
419 422
   "upload_form.undo": "حذف",
420
-  "upload_form.video_description": "توصیف برای افراد با اختلال دید یا فاقد شنوایی",
423
+  "upload_form.video_description": "برای کم‌بینایان یا ناشنوایان توصیفش کنید",
421 424
   "upload_modal.analyzing_picture": "در حال پردازش تصویر…",
422 425
   "upload_modal.apply": "اعمال",
423 426
   "upload_modal.description_placeholder": "الا یا ایّها الساقی، ادر کأساً و ناولها",
424 427
   "upload_modal.detect_text": "تشخیص متن درون عکس",
425 428
   "upload_modal.edit_media": "ویرایش رسانه",
426
-  "upload_modal.hint": "دایره را روی پیش‌نمایش کشیده یا کلیک کنید تا نقطهٔ کانونی‌ای که همواره باید در تمام بندانگشتی‌ها داخل نما باشد را برگزینید.",
429
+  "upload_modal.hint": "حتی اگر تصویر بریده یا کوچک شود، نقطهٔ کانونی آن همیشه دیده خواهد شد. نقطهٔ کانونی را با کلیک یا جابه‌جا کردن آن تنظیم کنید.",
427 430
   "upload_modal.preview_label": "پیش‌نمایش ({ratio})",
428 431
   "upload_progress.label": "در حال بارگذاری…",
429 432
   "video.close": "بستن ویدیو",
430 433
   "video.download": "بارگیری پرونده",
431 434
   "video.exit_fullscreen": "خروج از حالت تمام‌صفحه",
432
-  "video.expand": "گسترش ویدیو",
435
+  "video.expand": "بزرگ‌کردن ویدیو",
433 436
   "video.fullscreen": "تمام‌صفحه",
434 437
   "video.hide": "نهفتن ویدیو",
435
-  "video.mute": "خموشی صدا",
438
+  "video.mute": "قطع صدا",
436 439
   "video.pause": "مکث",
437 440
   "video.play": "پخش",
438
-  "video.unmute": "رفع خموشی صدا"
441
+  "video.unmute": "پخش صدا"
439 442
 }

+ 6
- 3
app/javascript/mastodon/locales/fi.json View File

@@ -64,7 +64,7 @@
64 64
   "column.lists": "Listat",
65 65
   "column.mutes": "Mykistetyt käyttäjät",
66 66
   "column.notifications": "Ilmoitukset",
67
-  "column.pins": "Kiinnitetty tuuttaus",
67
+  "column.pins": "Kiinnitetyt tuuttaukset",
68 68
   "column.public": "Yleinen aikajana",
69 69
   "column_back_button.label": "Takaisin",
70 70
   "column_header.hide_settings": "Piilota asetukset",
@@ -165,7 +165,7 @@
165 165
   "follow_request.authorize": "Valtuuta",
166 166
   "follow_request.reject": "Hylkää",
167 167
   "getting_started.developers": "Kehittäjille",
168
-  "getting_started.directory": "Profiili hakemisto",
168
+  "getting_started.directory": "Profiilihakemisto",
169 169
   "getting_started.documentation": "Documentaatio",
170 170
   "getting_started.heading": "Aloitus",
171 171
   "getting_started.invite": "Kutsu ihmisiä",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Perusasetukset",
185 185
   "home.column_settings.show_reblogs": "Näytä buustaukset",
186 186
   "home.column_settings.show_replies": "Näytä vastaukset",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "Päivä päiviä",
188 190
   "intervals.full.hours": "Tunti tunteja",
189 191
   "intervals.full.minutes": "Minuuti minuuteja",
@@ -269,7 +271,7 @@
269 271
   "navigation_bar.filters": "Mykistetyt sanat",
270 272
   "navigation_bar.follow_requests": "Seuraamispyynnöt",
271 273
   "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat",
272
-  "navigation_bar.info": "Tietoa tästä instanssista",
274
+  "navigation_bar.info": "Tietoa tästä palvelimesta",
273 275
   "navigation_bar.keyboard_shortcuts": "Näppäinkomennot",
274 276
   "navigation_bar.lists": "Listat",
275 277
   "navigation_bar.logout": "Kirjaudu ulos",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "nyt",
334 336
   "relative_time.minutes": "{number} m",
335 337
   "relative_time.seconds": "{number} s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Peruuta",
337 340
   "report.forward": "Välitä kohteeseen {target}",
338 341
   "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",

+ 3
- 0
app/javascript/mastodon/locales/fr.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Base",
185 185
   "home.column_settings.show_reblogs": "Afficher les partages",
186 186
   "home.column_settings.show_replies": "Afficher les réponses",
187
+  "home.hide_announcements": "Masquer les annonces",
188
+  "home.show_announcements": "Afficher les annonces",
187 189
   "intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
188 190
   "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "à l’instant",
334 336
   "relative_time.minutes": "{number} min",
335 337
   "relative_time.seconds": "{number} s",
338
+  "relative_time.today": "aujourd’hui",
336 339
   "reply_indicator.cancel": "Annuler",
337 340
   "report.forward": "Transférer à {target}",
338 341
   "report.forward_hint": "Le compte provient d’un autre serveur. Envoyer également une copie anonyme du rapport ?",

+ 3
- 0
app/javascript/mastodon/locales/ga.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Basic",
185 185
   "home.column_settings.show_reblogs": "Show boosts",
186 186
   "home.column_settings.show_replies": "Show replies",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "now",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Cancel",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 15
- 12
app/javascript/mastodon/locales/gl.json View File

@@ -72,7 +72,7 @@
72 72
   "column_header.moveRight_settings": "Mover columna cara a dereita",
73 73
   "column_header.pin": "Fixar",
74 74
   "column_header.show_settings": "Amosar axustes",
75
-  "column_header.unpin": "Desafixar",
75
+  "column_header.unpin": "Desapegar",
76 76
   "column_subheading.settings": "Axustes",
77 77
   "community.column_settings.media_only": "Só multimedia",
78 78
   "compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.",
@@ -118,7 +118,7 @@
118 118
   "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?",
119 119
   "conversation.delete": "Eliminar conversa",
120 120
   "conversation.mark_as_read": "Marcar como lido",
121
-  "conversation.open": "Ollar conversa",
121
+  "conversation.open": "Ver conversa",
122 122
   "conversation.with": "Con {names}",
123 123
   "directory.federated": "Do fediverso coñecido",
124 124
   "directory.local": "Só de {domain}",
@@ -129,7 +129,7 @@
129 129
   "emoji_button.activity": "Actividade",
130 130
   "emoji_button.custom": "Personalizado",
131 131
   "emoji_button.flags": "Bandeiras",
132
-  "emoji_button.food": "Comida e bebida",
132
+  "emoji_button.food": "Comida e Bebida",
133 133
   "emoji_button.label": "Inserir emoticona",
134 134
   "emoji_button.nature": "Natureza",
135 135
   "emoji_button.not_found": "Non hai emoticonas!! (╯°□°)╯︵ ┻━┻",
@@ -139,11 +139,11 @@
139 139
   "emoji_button.search": "Procurar...",
140 140
   "emoji_button.search_results": "Resultados da procura",
141 141
   "emoji_button.symbols": "Símbolos",
142
-  "emoji_button.travel": "Viaxes e lugares",
142
+  "emoji_button.travel": "Viaxes e Lugares",
143 143
   "empty_column.account_timeline": "Non hai toots aquí!",
144
-  "empty_column.account_unavailable": "Perfil non dispoñíbel",
144
+  "empty_column.account_unavailable": "Perfil non dispoñible",
145 145
   "empty_column.blocks": "Aínda non bloqueaches a ningún usuaria.",
146
-  "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, amosaranse aquí.",
146
+  "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, aparecerán aquí.",
147 147
   "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!",
148 148
   "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.",
149 149
   "empty_column.domain_blocks": "Aínda non hai dominios agochados.",
@@ -165,7 +165,7 @@
165 165
   "follow_request.authorize": "Autorizar",
166 166
   "follow_request.reject": "Rexeitar",
167 167
   "getting_started.developers": "Desenvolvedores",
168
-  "getting_started.directory": "Directorio do perfil",
168
+  "getting_started.directory": "Directorio local",
169 169
   "getting_started.documentation": "Documentación",
170 170
   "getting_started.heading": "Primeiros pasos",
171 171
   "getting_started.invite": "Convidar persoas",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Básico",
185 185
   "home.column_settings.show_reblogs": "Amosar compartidos",
186 186
   "home.column_settings.show_replies": "Amosar respostas",
187
+  "home.hide_announcements": "Agochar anuncios",
188
+  "home.show_announcements": "Amosar anuncios",
187 189
   "intervals.full.days": "{number, plural,one {# día} other {# días}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@@ -221,13 +223,13 @@
221 223
   "keyboard_shortcuts.hotkey": "Tecla de atallo",
222 224
   "keyboard_shortcuts.legend": "para amosar esta lenda",
223 225
   "keyboard_shortcuts.local": "para abrir a cronoloxía local",
224
-  "keyboard_shortcuts.mention": "para mencionar ó autor",
226
+  "keyboard_shortcuts.mention": "para mencionar a autora",
225 227
   "keyboard_shortcuts.muted": "abrir lista de usuarias acaladas",
226 228
   "keyboard_shortcuts.my_profile": "para abrir o teu perfil",
227 229
   "keyboard_shortcuts.notifications": "para abrir a columna das notificacións",
228 230
   "keyboard_shortcuts.open_media": "para abrir o contido multimedia",
229 231
   "keyboard_shortcuts.pinned": "para abrir a listaxe dos toots fixados",
230
-  "keyboard_shortcuts.profile": "para abrir o perfil do autor",
232
+  "keyboard_shortcuts.profile": "para abrir o perfil da autora",
231 233
   "keyboard_shortcuts.reply": "para responder",
232 234
   "keyboard_shortcuts.requests": "para abrir a listaxe das peticións de seguimento",
233 235
   "keyboard_shortcuts.search": "para destacar a procura",
@@ -311,7 +313,7 @@
311 313
   "poll.closed": "Pechado",
312 314
   "poll.refresh": "Actualizar",
313 315
   "poll.total_people": "{count, plural,one {# persoa}other {# persoas}}",
314
-  "poll.total_votes": "{count, plural, one {# voto} outros {# votos}}",
316
+  "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
315 317
   "poll.vote": "Votar",
316 318
   "poll.voted": "Votaches por esta opción",
317 319
   "poll_button.add_poll": "Engadir unha enquisa",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "agora",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "hoxe",
336 339
   "reply_indicator.cancel": "Desbotar",
337 340
   "report.forward": "Reenviar a {target}",
338 341
   "report.forward_hint": "A conta é doutro servidor. Enviar unha copia anónima da denuncia aló tamén?",
@@ -354,14 +357,14 @@
354 357
   "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
355 358
   "status.admin_account": "Abrir interface de moderación para @{name}",
356 359
   "status.admin_status": "Abrir este estado na interface de moderación",
357
-  "status.block": "Bloquear @{name}",
360
+  "status.block": "Bloquear a @{name}",
358 361
   "status.bookmark": "Marcar",
359 362
   "status.cancel_reblog_private": "Desfacer compartido",
360 363
   "status.cannot_reblog": "Esta publicación non pode ser promovida",
361 364
   "status.copy": "Copiar ligazón ó estado",
362 365
   "status.delete": "Eliminar",
363 366
   "status.detailed_status": "Vista detallada da conversa",
364
-  "status.direct": "Mensaxe directa @{name}",
367
+  "status.direct": "Mensaxe directa a @{name}",
365 368
   "status.embed": "Embeber nunha web",
366 369
   "status.favourite": "Favorito",
367 370
   "status.filtered": "Filtrado",

+ 3
- 0
app/javascript/mastodon/locales/he.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "למתחילים",
185 185
   "home.column_settings.show_reblogs": "הצגת הדהודים",
186 186
   "home.column_settings.show_replies": "הצגת תגובות",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "כרגע",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "ביטול",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 3
- 0
app/javascript/mastodon/locales/hi.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "बुनियादी",
185 185
   "home.column_settings.show_reblogs": "बूस्ट दिखाए",
186 186
   "home.column_settings.show_replies": "जवाबों को दिखाए",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "अभी",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "रद्द करें",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 3
- 0
app/javascript/mastodon/locales/hr.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Osnovno",
185 185
   "home.column_settings.show_reblogs": "Pokaži boostove",
186 186
   "home.column_settings.show_replies": "Pokaži odgovore",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "now",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Otkaži",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 3
- 0
app/javascript/mastodon/locales/hu.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Alapvető",
185 185
   "home.column_settings.show_reblogs": "Megtolások mutatása",
186 186
   "home.column_settings.show_replies": "Válaszok mutatása",
187
+  "home.hide_announcements": "Közlemények elrejtése",
188
+  "home.show_announcements": "Közlemények mutatása",
187 189
   "intervals.full.days": "{number, plural, one {# nap} other {# nap}}",
188 190
   "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "most",
334 336
   "relative_time.minutes": "{number}p",
335 337
   "relative_time.seconds": "{number}mp",
338
+  "relative_time.today": "ma",
336 339
   "reply_indicator.cancel": "Mégsem",
337 340
   "report.forward": "Továbbítás: {target}",
338 341
   "report.forward_hint": "Ez a fiók egy másik kiszolgálóról van. Oda is elküldöd a jelentés egy anonimizált másolatát?",

+ 3
- 0
app/javascript/mastodon/locales/hy.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Հիմնական",
185 185
   "home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
186 186
   "home.column_settings.show_replies": "Ցուցադրել պատասխանները",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "նոր",
334 336
   "relative_time.minutes": "{number}ր",
335 337
   "relative_time.seconds": "{number}վ",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Չեղարկել",
337 340
   "report.forward": "Փոխանցել {target}֊ին",
338 341
   "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",

+ 4
- 1
app/javascript/mastodon/locales/id.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Batasan tingkat",
44 44
   "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
45 45
   "alert.unexpected.title": "Oops!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Pengumuman",
47 47
   "autosuggest_hashtag.per_week": "{count} per minggu",
48 48
   "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
49 49
   "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Dasar",
185 185
   "home.column_settings.show_reblogs": "Tampilkan boost",
186 186
   "home.column_settings.show_replies": "Tampilkan balasan",
187
+  "home.hide_announcements": "Sembunyikan pengumuman",
188
+  "home.show_announcements": "Tampilkan pengumuman",
187 189
   "intervals.full.days": "{number, plural, other {# hari}}",
188 190
   "intervals.full.hours": "{number, plural, other {# jam}}",
189 191
   "intervals.full.minutes": "{number, plural, other {# menit}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "sekarang",
334 336
   "relative_time.minutes": "{number}b",
335 337
   "relative_time.seconds": "{number}d",
338
+  "relative_time.today": "hari ini",
336 339
   "reply_indicator.cancel": "Batal",
337 340
   "report.forward": "Teruskan ke {target}",
338 341
   "report.forward_hint": "Akun dari server lain. Kirim salinan laporan scr anonim ke sana?",

+ 3
- 0
app/javascript/mastodon/locales/io.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Simpla",
185 185
   "home.column_settings.show_reblogs": "Montrar repeti",
186 186
   "home.column_settings.show_replies": "Montrar respondi",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "now",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "Nihiligar",
337 340
   "report.forward": "Forward to {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",

+ 4
- 1
app/javascript/mastodon/locales/is.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Með takmörkum",
44 44
   "alert.unexpected.message": "Upp kom óvænt villa.",
45 45
   "alert.unexpected.title": "Úbbs!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Auglýsing",
47 47
   "autosuggest_hashtag.per_week": "{count} á viku",
48 48
   "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst",
49 49
   "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Einfalt",
185 185
   "home.column_settings.show_reblogs": "Sýna endurbirtingar",
186 186
   "home.column_settings.show_replies": "Birta svör",
187
+  "home.hide_announcements": "Fela auglýsingar",
188
+  "home.show_announcements": "Birta auglýsingar",
187 189
   "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}",
188 190
   "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# mínúta} other {# mínútur}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "núna",
334 336
   "relative_time.minutes": "{number}mín",
335 337
   "relative_time.seconds": "{number}sek",
338
+  "relative_time.today": "í dag",
336 339
   "reply_indicator.cancel": "Hætta við",
337 340
   "report.forward": "Áframsenda til {target}",
338 341
   "report.forward_hint": "Notandaaðgangurinn er af öðrum vefþjóni. Á einnig að senda nafnlaust afrit af kærunni þangað?",

+ 4
- 1
app/javascript/mastodon/locales/it.json View File

@@ -43,7 +43,7 @@
43 43
   "alert.rate_limited.title": "Numero massimo di richieste superato",
44 44
   "alert.unexpected.message": "Si è verificato un errore inatteso.",
45 45
   "alert.unexpected.title": "Oops!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Annuncio",
47 47
   "autosuggest_hashtag.per_week": "{count} per settimana",
48 48
   "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
49 49
   "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Semplice",
185 185
   "home.column_settings.show_reblogs": "Mostra post condivisi",
186 186
   "home.column_settings.show_replies": "Mostra risposte",
187
+  "home.hide_announcements": "Nascondi annunci",
188
+  "home.show_announcements": "Mostra annunci",
187 189
   "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}",
188 190
   "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "ora",
334 336
   "relative_time.minutes": "{number}m",
335 337
   "relative_time.seconds": "{number}s",
338
+  "relative_time.today": "oggi",
336 339
   "reply_indicator.cancel": "Annulla",
337 340
   "report.forward": "Inoltra a {target}",
338 341
   "report.forward_hint": "Questo account appartiene a un altro server. Mandare anche là una copia anonima del rapporto?",

+ 3
- 0
app/javascript/mastodon/locales/ja.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "基本設定",
185 185
   "home.column_settings.show_reblogs": "ブースト表示",
186 186
   "home.column_settings.show_replies": "返信表示",
187
+  "home.hide_announcements": "お知らせを隠す",
188
+  "home.show_announcements": "お知らせを表示",
187 189
   "intervals.full.days": "{number}日",
188 190
   "intervals.full.hours": "{number}時間",
189 191
   "intervals.full.minutes": "{number}分",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "今",
334 336
   "relative_time.minutes": "{number}分前",
335 337
   "relative_time.seconds": "{number}秒前",
338
+  "relative_time.today": "今日",
336 339
   "reply_indicator.cancel": "キャンセル",
337 340
   "report.forward": "{target} に転送する",
338 341
   "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",

+ 3
- 0
app/javascript/mastodon/locales/ka.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "ძირითადი",
185 185
   "home.column_settings.show_reblogs": "ბუსტების ჩვენება",
186 186
   "home.column_settings.show_replies": "პასუხების ჩვენება",
187
+  "home.hide_announcements": "Hide announcements",
188
+  "home.show_announcements": "Show announcements",
187 189
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
188 190
   "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -333,6 +335,7 @@
333 335
   "relative_time.just_now": "ახლა",
334 336
   "relative_time.minutes": "{number}წთ",
335 337
   "relative_time.seconds": "{number}წმ",
338
+  "relative_time.today": "today",
336 339
   "reply_indicator.cancel": "უარყოფა",
337 340
   "report.forward": "ფორვარდი {target}-ს",
338 341
   "report.forward_hint": "ანგარიში სხვა სერვერიდანაა. გავაგზავნოთ რეპორტის ანონიმური ასლიც?",

+ 52
- 49
app/javascript/mastodon/locales/kab.json View File

@@ -13,7 +13,7 @@
13 13
   "account.follow": "Ḍfeṛ",
14 14
   "account.followers": "Imeḍfaṛen",
15 15
   "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
16
-  "account.follows": "Aḍfaṛen",
16
+  "account.follows": "Ig ṭafaṛ",
17 17
   "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
18 18
   "account.follows_you": "Yeṭṭafaṛ-ik",
19 19
   "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
@@ -27,8 +27,8 @@
27 27
   "account.mute_notifications": "Susem ilγa sγur @{name}",
28 28
   "account.muted": "Yettwasgugem",
29 29
   "account.never_active": "Werǧin",
30
-  "account.posts": "Tiberraḥin",
31
-  "account.posts_with_replies": "Tibarraḥin d tririyin",
30
+  "account.posts": "Tijewwaqin",
31
+  "account.posts_with_replies": "Tijewwaqin akked tririyin",
32 32
   "account.report": "Sewɛed @{name}",
33 33
   "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar",
34 34
   "account.share": "Bḍu amaγnu n @{name}",
@@ -41,9 +41,9 @@
41 41
   "account.unmute_notifications": "Serreḥ ilγa sγur @{name}",
42 42
   "alert.rate_limited.message": "Ma ulac aγilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.",
43 43
   "alert.rate_limited.title": "Aktum s talast",
44
-  "alert.unexpected.message": "Tella-d tuccḍa i ɣef ur nedmi ara.",
44
+  "alert.unexpected.message": "Tella-d tuccḍa i γef ur nedmi ara.",
45 45
   "alert.unexpected.title": "Ayhuh!",
46
-  "announcement.announcement": "Announcement",
46
+  "announcement.announcement": "Ulγu",
47 47
   "autosuggest_hashtag.per_week": "{count} i yimalas",
48 48
   "boost_modal.combo": "Tzemreḍ ad tetekkiḍ γef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
49 49
   "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
@@ -64,7 +64,7 @@
64 64
   "column.lists": "Tibdarin",
65 65
   "column.mutes": "Imiḍanen yettwasgugmen",
66 66
   "column.notifications": "Tilγa",
67
-  "column.pins": "Tiberraḥin yettwasenṭḍen",
67
+  "column.pins": "Tijewwaqin yettwasenṭḍen",
68 68
   "column.public": "Tasuddemt tamatut",
69 69
   "column_back_button.label": "Tuγalin",
70 70
   "column_header.hide_settings": "Ffer iγewwaṛen",
@@ -75,7 +75,7 @@
75 75
   "column_header.unpin": "Kkes asenteḍ",
76 76
   "column_subheading.settings": "Iγewwaṛen",
77 77
   "community.column_settings.media_only": "Allal n teywalt kan",
78
-  "compose_form.direct_message_warning": "Taberraḥt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
78
+  "compose_form.direct_message_warning": "Tajewwaqt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
79 79
   "compose_form.direct_message_warning_learn_more": "Issin ugar",
80 80
   "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
81 81
   "compose_form.lock_disclaimer": "Amiḍan-ik ur yelli ara {locked}. Menwala yezmer ad k-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik.",
@@ -87,7 +87,7 @@
87 87
   "compose_form.poll.remove_option": "Sfeḍ afran-agi",
88 88
   "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
89 89
   "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
90
-  "compose_form.publish": "Taberraḥt",
90
+  "compose_form.publish": "Jewweq",
91 91
   "compose_form.publish_loud": "{publish}!",
92 92
   "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri",
93 93
   "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri",
@@ -109,20 +109,20 @@
109 109
   "confirmations.logout.message": "D tidet tebγiḍ ad teffγeḍ?",
110 110
   "confirmations.mute.confirm": "Sgugem",
111 111
   "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neγ d-tettwabder, maca xas akka yezmer neγ tezmer awali n yiznan-inek d uḍfaṛ-ik.",
112
-  "confirmations.mute.message": "Tetḥeqqeḍ belli tebγiḍ asɛuggen n {name}?",
112
+  "confirmations.mute.message": "Tetḥeqqeḍ belli tebγiḍ ad ttegugmeḍ {name}?",
113 113
   "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira",
114
-  "confirmations.redraft.message": "Tetḥeqqeḍ belli tebγiḍ asfaḍ n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uγalent d tigujilin.",
114
+  "confirmations.redraft.message": "Tetḥeqqeḍ belli tebγiḍ tuksa n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uγalent d tigujilin.",
115 115
   "confirmations.reply.confirm": "Err",
116 116
   "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebγiḍ ad tkemmleḍ?",
117 117
   "confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara",
118
-  "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebγiḍ ur teḍḍafaṛeḍ ara {name}?",
118
+  "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebγiḍ ur teafaṛeḍ ara {name}?",
119 119
   "conversation.delete": "Sfeḍ adiwenni",
120 120
   "conversation.mark_as_read": "Creḍ yettwaγṛa",
121 121
   "conversation.open": "Sken adiwenni",
122 122
   "conversation.with": "Akked {names}",
123
-  "directory.federated": "Seg fedivers yettwasnen",
123
+  "directory.federated": "Deg fedivers yettwasnen",
124 124
   "directory.local": "Seg {domain} kan",
125
-  "directory.new_arrivals": "Inebgawen imaynuten",
125
+  "directory.new_arrivals": "Imaynuten id yewḍen",
126 126
   "directory.recently_active": "Yermed xas melmi kan",
127 127
   "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.",
128 128
   "embed.preview": "Akka ara d-iban:",
@@ -140,15 +140,15 @@
140 140
   "emoji_button.search_results": "Igmaḍ u unadi",
141 141
   "emoji_button.symbols": "Izamulen",
142 142
   "emoji_button.travel": "Imeḍqan d Yinigen",
143
-  "empty_column.account_timeline": "Ulac tiberraḥin dagi!",
143
+  "empty_column.account_timeline": "Ulac tijewwaqin dagi!",
144 144
   "empty_column.account_unavailable": "Ur nufi ara amaγnu-a",
145 145
   "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.",
146
-  "empty_column.bookmarked_statuses": "Ulac tiberraḥin i terniḍ γer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
146
+  "empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ γer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
147 147
   "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
148 148
   "empty_column.direct": "Ulac γur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neγ teṭṭfeḍ-d yiwen.",
149 149
   "empty_column.domain_blocks": "Ulac kra n taγult yettwaffren ar tura.",
150
-  "empty_column.favourited_statuses": "Ulac ula yiwet n tberraḥt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.",
151
-  "empty_column.favourites": "Ula yiwen ur yerri taberraḥt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.",
150
+  "empty_column.favourited_statuses": "Ulac ula yiwet n tjewwaqt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.",
151
+  "empty_column.favourites": "Ula yiwen ur yerri tajewwaqt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.",
152 152
   "empty_column.follow_requests": "Ulac γur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.",
153 153
   "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaγ γer uhacṭag-agi.",
154 154
   "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neγ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.",
@@ -159,17 +159,17 @@
159 159
   "empty_column.notifications": "Ulac γur-k tilγa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.",
160 160
   "empty_column.public": "Ulac kra da! Aru kra, neγ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt",
161 161
   "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
162
-  "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Masṭudun deg yiminig-nniḍen neγ deg usnas anaṣli.",
162
+  "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṭudun deg yiminig-nniḍen neγ deg usnas anaṣli.",
163 163
   "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
164 164
   "errors.unexpected_crash.report_issue": "Mmel ugur",
165 165
   "follow_request.authorize": "Ssireg",
166 166
   "follow_request.reject": "Agi",
167 167
   "getting_started.developers": "Ineflayen",
168
-  "getting_started.directory": "Imaγnuten",
168
+  "getting_started.directory": "Akaram n imaγnuten",
169 169
   "getting_started.documentation": "Amnir",
170 170
   "getting_started.heading": "Bdu",
171 171
   "getting_started.invite": "Snebgi-d imdanen",
172
-  "getting_started.open_source_notice": "Mastudun d aseγzan s uγbalu yeldin. Tzemreḍ ad tɛiwneḍ neγ ad temmleḍ uguren deg GitHub {github}.",
172
+  "getting_started.open_source_notice": "Maṣṭudun d aseγzan s uγbalu yeldin. Tzemreḍ ad tɛiwneḍ neγ ad temmleḍ uguren deg GitHub {github}.",
173 173
   "getting_started.security": "Iγewwaṛen n umiḍan",
174 174
   "getting_started.terms": "Tiwetlin n useqdec",
175 175
   "hashtag.column_header.tag_mode.all": "d {additional}",
@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Igejdanen",
185 185
   "home.column_settings.show_reblogs": "Sken-d beṭṭu",
186 186
   "home.column_settings.show_replies": "Sken-d tiririyin",
187
+  "home.hide_announcements": "Ffer ulγuyen",
188
+  "home.show_announcements": "Sken-d ulγuyen",
187 189
   "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
188 190
   "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}",
189 191
   "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}",
@@ -196,14 +198,14 @@
196 198
   "introduction.federation.local.text": "Iznan izuyaz n yemdanen i yellan deg yiwen uqeddac akked kečč ad d-banen deg tsuddemt tazayezt tadigant.",
197 199
   "introduction.interactions.action": "Fakk tameskant!",
198 200
   "introduction.interactions.favourite.headline": "Ismenyifen",
199
-  "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tberraḥt i ticki, daγen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines γer yismenyifen-ik.",
201
+  "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tjewwaqt i ticki, daγen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines γer yismenyifen-ik.",
200 202
   "introduction.interactions.reblog.headline": "Bḍu tikelt-nniḍen",
201
-  "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ akked yimeḍfaṛen-ik tiberraḥin n yemdanen-nniḍen s beṭṭu-nsent tikelt-nniḍen.",
203
+  "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ tijewwaqin n medden akk d yimeḍfaṛen-ik s beṭṭu-nsent tikelt-nniḍen.",
202 204
   "introduction.interactions.reply.headline": "Err",
203
-  "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tberraḥin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg udiwenni.",
205
+  "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tjewwakin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg yiwen udiwenni.",
204 206
   "introduction.welcome.action": "Bdu!",
205 207
   "introduction.welcome.headline": "Isurifen imenza",
206
-  "introduction.welcome.text": "Anṣuf γer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neɣ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaγnu-ik, ihi cfu γef yisem-is.",
208
+  "introduction.welcome.text": "Anṣuf γer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neγ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaγnu-ik, ihi cfu γef yisem-is.",
207 209
   "keyboard_shortcuts.back": "uγal ar deffir",
208 210
   "keyboard_shortcuts.blocked": "akken ad teldiḍ tabdert n yimseqdacen yettwasḥebsen",
209 211
   "keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen",
@@ -226,7 +228,7 @@
226 228
   "keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaγnu-ik",
227 229
   "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilγa",
228 230
   "keyboard_shortcuts.open_media": "to open media",
229
-  "keyboard_shortcuts.pinned": "i tildin n tebdert n tberraḥin yettwasentḍen",
231
+  "keyboard_shortcuts.pinned": "i tildin n tebdert n tjewwaqin yettwasentḍen",
230 232
   "keyboard_shortcuts.profile": "akken ad d-teldiḍ amaγnu n umeskar",
231 233
   "keyboard_shortcuts.reply": "i tririt",
232 234
   "keyboard_shortcuts.requests": "akken ad d-teldiḍ tabdert n yisuturen n teḍfeṛt",
@@ -234,7 +236,7 @@
234 236
   "keyboard_shortcuts.start": "akken ad d-teldiḍ ajgu n \"bdu\"",
235 237
   "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
236 238
   "keyboard_shortcuts.toggle_sensitivity": "i teskent/tuffra n yimidyaten",
237
-  "keyboard_shortcuts.toot": "i beddu n tberraḥt tamaynut",
239
+  "keyboard_shortcuts.toot": "i wakken attebdud tajewwaqt tamaynut",
238 240
   "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
239 241
   "keyboard_shortcuts.up": "i tulin γer ufella n tebdert",
240 242
   "lightbox.close": "Mdel",
@@ -251,7 +253,7 @@
251 253
   "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
252 254
   "lists.subheading": "Tibdarin-ik·im",
253 255
   "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
254
-  "loading_indicator.label": "Asali...",
256
+  "loading_indicator.label": "Yessalay-ed…",
255 257
   "media_gallery.toggle_visible": "Sken / Ffer",
256 258
   "missing_indicator.label": "Ulac-it",
257 259
   "missing_indicator.sublabel": "Ur nufi ara aγbalu-a",
@@ -260,7 +262,7 @@
260 262
   "navigation_bar.blocks": "Imseqdacen yettusḥebsen",
261 263
   "navigation_bar.bookmarks": "Ticraḍ",
262 264
   "navigation_bar.community_timeline": "Tasuddemt tadigant",
263
-  "navigation_bar.compose": "Aru taberraḥt tamaynut",
265
+  "navigation_bar.compose": "Aru tajewwiqt tamaynut",
264 266
   "navigation_bar.direct": "Iznan usridden",
265 267
   "navigation_bar.discover": "Ẓer",
266 268
   "navigation_bar.domain_blocks": "Tiγula yeffren",
@@ -275,7 +277,7 @@
275 277
   "navigation_bar.logout": "Ffeγ",
276 278
   "navigation_bar.mutes": "Iseqdacen yettwasusmen",
277 279
   "navigation_bar.personal": "Udmawan",
278
-  "navigation_bar.pins": "Tiberraḥin yettwasentḍen",
280
+  "navigation_bar.pins": "Tijewwiqin yettwasentḍen",
279 281
   "navigation_bar.preferences": "Imenyafen",
280 282
   "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
281 283
   "navigation_bar.security": "Taγellist",
@@ -285,7 +287,7 @@
285 287
   "notification.mention": "{name} yebder-ik-id",
286 288
   "notification.own_poll": "Your poll has ended",
287 289
   "notification.poll": "A poll you have voted in has ended",
288
-  "notification.reblog": "{name} yebḍa taberraḥ-ik i tikelt-nniḍen",
290
+  "notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen",
289 291
   "notifications.clear": "Sfeḍ tilγa",
290 292
   "notifications.clear_confirmation": "Tebγiḍ s tidet ad tekkseḍ akk tilγa-ik i lebda?",
291 293
   "notifications.column_settings.alert": "Tilγa n tnarit",
@@ -326,15 +328,16 @@
326 328
   "privacy.unlisted.long": "Ur beṭṭu ara deg tsuddemt tazayezt",
327 329
   "privacy.unlisted.short": "War tabdert",
328 330
   "refresh": "Smiren",
329
-  "regeneration_indicator.label": "Asali…",
331
+  "regeneration_indicator.label": "Yessalay-ed…",
330 332
   "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!",
331 333
   "relative_time.days": "{number}u",
332
-  "relative_time.hours": "{number}h",
334
+  "relative_time.hours": "{number}a",
333 335
   "relative_time.just_now": "tura",
334 336
   "relative_time.minutes": "{number}t",
335
-  "relative_time.seconds": "{number}s",
337
+  "relative_time.seconds": "{number}t",
338
+  "relative_time.today": "assa",
336 339
   "reply_indicator.cancel": "Sefsex",
337
-  "report.forward": "Forward to {target}",
340
+  "report.forward": "Bren-it γeṛ {target}",
338 341
   "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
339 342
   "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
340 343
   "report.placeholder": "Iwenniten-nniḍen",
@@ -344,13 +347,13 @@
344 347
   "search_popout.search_format": "Anadi yenneflin",
345 348
   "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
346 349
   "search_popout.tips.hashtag": "ahacṭag",
347
-  "search_popout.tips.status": "status",
350
+  "search_popout.tips.status": "addad",
348 351
   "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
349 352
   "search_popout.tips.user": "amseqdac",
350 353
   "search_results.accounts": "Medden",
351 354
   "search_results.hashtags": "Ihacṭagen",
352 355
   "search_results.statuses": "Tibeṛṛaniyin",
353
-  "search_results.statuses_fts_disabled": "Anadi n tberraḥin s ugbur-nsent ur yermid ara deg uqeddac-agi n Mastudun.",
356
+  "search_results.statuses_fts_disabled": "Anadi γef tjewwiqin s ugbur-nsent ur yermid ara deg uqeddac-agi n Maṣṭudun.",
354 357
   "search_results.total": "{count, number} {count, plural, one {n ugemmuḍ} other {n yigemmuḍen}}",
355 358
   "status.admin_account": "Open moderation interface for @{name}",
356 359
   "status.admin_status": "Open this status in the moderation interface",
@@ -366,23 +369,23 @@
366 369
   "status.favourite": "Rnu γer yismenyifen",
367 370
   "status.filtered": "Yettwasizdeg",
368 371
   "status.load_more": "Sali ugar",
369
-  "status.media_hidden": "Media hidden",
372
+  "status.media_hidden": "Taγwalt tettwaffer",
370 373
   "status.mention": "Bder-d @{name}",
371 374
   "status.more": "Ugar",
372 375
   "status.mute": "Sussem @{name}",
373
-  "status.mute_conversation": "Mute conversation",
376
+  "status.mute_conversation": "Sgugem adiwenni",
374 377
   "status.open": "Semγeṛ tasuffeγt-agi",
375 378
   "status.pin": "Senteḍ-itt deg umaγnu",
376
-  "status.pinned": "Tiberraḥin yettwasentḍen",
379
+  "status.pinned": "Tijewwiqin yettwasentḍen",
377 380
   "status.read_more": "Issin ugar",
378 381
   "status.reblog": "Bḍu",
379 382
   "status.reblog_private": "Boost to original audience",
380 383
   "status.reblogged_by": "{name} boosted",
381
-  "status.reblogs.empty": "Ula yiwen ur yebḍi taberraḥt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
382
-  "status.redraft": "Sfeḍ tɛiwdeḍ tira",
384
+  "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
385
+  "status.redraft": "Kkes tɛiwdeḍ tira",
383 386
   "status.remove_bookmark": "Kkes tacreḍt",
384 387
   "status.reply": "Err",
385
-  "status.replyAll": "Reply to thread",
388
+  "status.replyAll": "Err i lxiḍ",
386 389
   "status.report": "Cetki γef @{name}",
387 390
   "status.sensitive_warning": "Agbur amḥulfu",
388 391
   "status.share": "Bḍu",
@@ -390,7 +393,7 @@
390 393
   "status.show_less_all": "Semẓi akk tisuffγin",
391 394
   "status.show_more": "Sken-ed ugar",
392 395
   "status.show_more_all": "Ẓerr ugar lebda",
393
-  "status.show_thread": "Show thread",
396
+  "status.show_thread": "Sken-ed lxiḍ",
394 397
   "status.uncached_media_warning": "Ulac-it",
395 398
   "status.unmute_conversation": "Kkes asgugem n udiwenni",
396 399
   "status.unpin": "Kkes asenteḍ seg umaγnu",
@@ -408,9 +411,9 @@
408 411
   "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}}",
409 412
   "trends.count_by_accounts": "{count} {rawCount, plural, one {n umdan} other {n yemdanen}} i yettmeslayen",
410 413
   "trends.trending_now": "Trending now",
411
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
412
-  "upload_area.title": "Drag & drop to upload",
413
-  "upload_button.label": "Add media ({formats})",
414
+  "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeγ-ed deg Maṣṭudun.",
415
+  "upload_area.title": "Zuḥeb rnu sers i tasalyt",
416
+  "upload_button.label": "Rnu Taγwalt ({formats})",
414 417
   "upload_error.limit": "File upload limit exceeded.",
415 418
   "upload_error.poll": "File upload not allowed with polls.",
416 419
   "upload_form.audio_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt",
@@ -421,10 +424,10 @@
421 424
   "upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…",
422 425
   "upload_modal.apply": "Snes",
423 426
   "upload_modal.description_placeholder": "Aberraγ arurad ineggez nnig n uqjun amuṭṭis",
424
-  "upload_modal.detect_text": "Detect text from picture",
425
-  "upload_modal.edit_media": "Edit media",
427
+  "upload_modal.detect_text": "Sefru-d aḍris seg tugna",
428
+  "upload_modal.edit_media": "Ẓreg taγwalt",
426 429
   "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
427
-  "upload_modal.preview_label": "Preview ({ratio})",
430
+  "upload_modal.preview_label": "Taskant ({ratio})",
428 431
   "upload_progress.label": "Asali iteddu...",
429 432
   "video.close": "Mdel tabidyutt",
430 433
   "video.download": "Sidered afaylu",

+ 3
- 0
app/javascript/mastodon/locales/kk.json View File

@@ -184,6 +184,8 @@
184 184
   "home.column_settings.basic": "Негізгі",
185 185
   "home.column_settings.show_reblogs": "Бөлісулерді көрсету",
186 186
   "home.column_settings.show_replies": "Жауаптарды көрсету",
187
+  "home.hide_announcements": "Анонстарды жасыр",
188
+  "home.show_announcements": "Анонстарды көрсет",
187