Browse Source

Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
- app/models/account.rb
- app/views/settings/profiles/show.html.haml
- spec/controllers/api/v1/accounts/credentials_controller_spec.rb

Conflicts were due to an increase in account bio length upstream, which
is already covered in glitch-soc through `MAX_BIO_CHARS`.
Thibaut Girka 2 months ago
parent
commit
c0dc247bce
72 changed files with 903 additions and 621 deletions
  1. 2
    0
      .github/FUNDING.yml
  2. 3
    3
      Gemfile
  3. 13
    17
      Gemfile.lock
  4. 5
    1
      app/controllers/api/v1/notifications_controller.rb
  5. 13
    16
      app/controllers/concerns/signature_verification.rb
  6. 1
    1
      app/javascript/mastodon/components/autosuggest_input.js
  7. 5
    5
      app/javascript/mastodon/features/compose/index.js
  8. 17
    2
      app/javascript/mastodon/features/getting_started/index.js
  9. 7
    3
      app/javascript/mastodon/features/ui/components/columns_area.js
  10. 23
    0
      app/javascript/mastodon/features/ui/components/notifications_counter_icon.js
  11. 2
    1
      app/javascript/mastodon/features/ui/components/tabs_bar.js
  12. 9
    8
      app/javascript/mastodon/features/ui/index.js
  13. 2
    1
      app/javascript/mastodon/locales/ar.json
  14. 2
    1
      app/javascript/mastodon/locales/ast.json
  15. 2
    1
      app/javascript/mastodon/locales/bg.json
  16. 377
    376
      app/javascript/mastodon/locales/bn.json
  17. 0
    1
      app/javascript/mastodon/locales/cs.json
  18. 2
    1
      app/javascript/mastodon/locales/cy.json
  19. 2
    1
      app/javascript/mastodon/locales/da.json
  20. 2
    1
      app/javascript/mastodon/locales/de.json
  21. 4
    0
      app/javascript/mastodon/locales/defaultMessages.json
  22. 2
    1
      app/javascript/mastodon/locales/el.json
  23. 2
    1
      app/javascript/mastodon/locales/eo.json
  24. 2
    1
      app/javascript/mastodon/locales/es.json
  25. 2
    1
      app/javascript/mastodon/locales/eu.json
  26. 2
    1
      app/javascript/mastodon/locales/fa.json
  27. 2
    1
      app/javascript/mastodon/locales/fi.json
  28. 2
    1
      app/javascript/mastodon/locales/gl.json
  29. 2
    1
      app/javascript/mastodon/locales/he.json
  30. 2
    1
      app/javascript/mastodon/locales/hi.json
  31. 2
    1
      app/javascript/mastodon/locales/hr.json
  32. 2
    1
      app/javascript/mastodon/locales/hu.json
  33. 2
    1
      app/javascript/mastodon/locales/hy.json
  34. 2
    1
      app/javascript/mastodon/locales/id.json
  35. 2
    1
      app/javascript/mastodon/locales/io.json
  36. 2
    1
      app/javascript/mastodon/locales/it.json
  37. 2
    1
      app/javascript/mastodon/locales/ka.json
  38. 2
    1
      app/javascript/mastodon/locales/kk.json
  39. 2
    1
      app/javascript/mastodon/locales/ko.json
  40. 2
    1
      app/javascript/mastodon/locales/lv.json
  41. 2
    1
      app/javascript/mastodon/locales/ms.json
  42. 1
    1
      app/javascript/mastodon/locales/nl.json
  43. 2
    1
      app/javascript/mastodon/locales/no.json
  44. 2
    1
      app/javascript/mastodon/locales/oc.json
  45. 2
    1
      app/javascript/mastodon/locales/pl.json
  46. 2
    1
      app/javascript/mastodon/locales/pt-BR.json
  47. 2
    1
      app/javascript/mastodon/locales/pt.json
  48. 2
    1
      app/javascript/mastodon/locales/ro.json
  49. 2
    1
      app/javascript/mastodon/locales/ru.json
  50. 2
    1
      app/javascript/mastodon/locales/sk.json
  51. 2
    1
      app/javascript/mastodon/locales/sl.json
  52. 2
    1
      app/javascript/mastodon/locales/sq.json
  53. 2
    1
      app/javascript/mastodon/locales/sr-Latn.json
  54. 2
    1
      app/javascript/mastodon/locales/sr.json
  55. 2
    1
      app/javascript/mastodon/locales/sv.json
  56. 2
    1
      app/javascript/mastodon/locales/ta.json
  57. 2
    1
      app/javascript/mastodon/locales/te.json
  58. 2
    1
      app/javascript/mastodon/locales/th.json
  59. 2
    1
      app/javascript/mastodon/locales/tr.json
  60. 2
    1
      app/javascript/mastodon/locales/uk.json
  61. 2
    1
      app/javascript/mastodon/locales/zh-CN.json
  62. 2
    1
      app/javascript/mastodon/locales/zh-HK.json
  63. 2
    1
      app/javascript/mastodon/locales/zh-TW.json
  64. 2
    0
      app/javascript/mastodon/reducers/settings.js
  65. 231
    98
      app/javascript/styles/mastodon/components.scss
  66. 6
    2
      app/models/notification.rb
  67. 1
    1
      app/workers/activitypub/delivery_worker.rb
  68. 10
    10
      config/locales/sk.yml
  69. 2
    2
      package.json
  70. 66
    0
      spec/controllers/api/v1/notifications_controller_spec.rb
  71. 4
    21
      streaming/index.js
  72. 5
    5
      yarn.lock

+ 2
- 0
.github/FUNDING.yml View File

@@ -0,0 +1,2 @@
1
+patreon: mastodon
2
+open_collective: mastodon

+ 3
- 3
Gemfile View File

@@ -15,7 +15,7 @@ gem 'makara', '~> 0.4'
15 15
 gem 'pghero', '~> 2.2'
16 16
 gem 'dotenv-rails', '~> 2.7'
17 17
 
18
-gem 'aws-sdk-s3', '~> 1.39', require: false
18
+gem 'aws-sdk-s3', '~> 1.40', require: false
19 19
 gem 'fog-core', '<= 2.1.0'
20 20
 gem 'fog-openstack', '~> 0.3', require: false
21 21
 gem 'paperclip', '~> 6.0'
@@ -54,7 +54,7 @@ gem 'htmlentities', '~> 4.3'
54 54
 gem 'http', '~> 3.3'
55 55
 gem 'http_accept_language', '~> 2.1'
56 56
 gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2'
57
-gem 'httplog', '~> 1.2'
57
+gem 'httplog', '~> 1.3'
58 58
 gem 'idn-ruby', require: 'idn'
59 59
 gem 'kaminari', '~> 1.1'
60 60
 gem 'link_header', '~> 0.0'
@@ -131,7 +131,7 @@ group :development do
131 131
   gem 'letter_opener', '~> 1.7'
132 132
   gem 'letter_opener_web', '~> 1.3'
133 133
   gem 'memory_profiler'
134
-  gem 'rubocop', '~> 0.69', require: false
134
+  gem 'rubocop', '~> 0.70', require: false
135 135
   gem 'brakeman', '~> 4.5', require: false
136 136
   gem 'bundler-audit', '~> 0.6', require: false
137 137
   gem 'scss_lint', '~> 0.58', require: false

+ 13
- 17
Gemfile.lock View File

@@ -76,17 +76,17 @@ GEM
76 76
     av (0.9.0)
77 77
       cocaine (~> 0.5.3)
78 78
     aws-eventstream (1.0.3)
79
-    aws-partitions (1.162.0)
80
-    aws-sdk-core (3.52.1)
79
+    aws-partitions (1.165.0)
80
+    aws-sdk-core (3.53.0)
81 81
       aws-eventstream (~> 1.0, >= 1.0.2)
82 82
       aws-partitions (~> 1.0)
83 83
       aws-sigv4 (~> 1.1)
84 84
       jmespath (~> 1.0)
85
-    aws-sdk-kms (1.20.0)
86
-      aws-sdk-core (~> 3, >= 3.52.1)
85
+    aws-sdk-kms (1.21.0)
86
+      aws-sdk-core (~> 3, >= 3.53.0)
87 87
       aws-sigv4 (~> 1.1)
88
-    aws-sdk-s3 (1.39.0)
89
-      aws-sdk-core (~> 3, >= 3.52.1)
88
+    aws-sdk-s3 (1.40.0)
89
+      aws-sdk-core (~> 3, >= 3.53.0)
90 90
       aws-sdk-kms (~> 1)
91 91
       aws-sigv4 (~> 1.0)
92 92
     aws-sigv4 (1.1.0)
@@ -129,14 +129,13 @@ GEM
129 129
       sshkit (~> 1.3)
130 130
     capistrano-yarn (2.0.2)
131 131
       capistrano (~> 3.0)
132
-    capybara (3.20.0)
132
+    capybara (3.20.2)
133 133
       addressable
134 134
       mini_mime (>= 0.1.3)
135 135
       nokogiri (~> 1.8)
136 136
       rack (>= 1.6.0)
137 137
       rack-test (>= 0.6.3)
138 138
       regexp_parser (~> 1.2)
139
-      uglifier
140 139
       xpath (~> 3.2)
141 140
     case_transform (0.2)
142 141
       activesupport
@@ -208,7 +207,6 @@ GEM
208 207
     et-orbi (1.1.6)
209 208
       tzinfo
210 209
     excon (0.62.0)
211
-    execjs (2.7.0)
212 210
     fabrication (2.20.2)
213 211
     faker (1.9.3)
214 212
       i18n (>= 0.7)
@@ -273,7 +271,7 @@ GEM
273 271
       domain_name (~> 0.5)
274 272
     http-form_data (2.1.1)
275 273
     http_accept_language (2.1.1)
276
-    httplog (1.2.2)
274
+    httplog (1.3.0)
277 275
       rack (>= 1.0)
278 276
       rainbow (>= 2.0.0)
279 277
     i18n (1.6.0)
@@ -324,7 +322,7 @@ GEM
324 322
       letter_opener (~> 1.0)
325 323
       railties (>= 3.2)
326 324
     link_header (0.0.8)
327
-    lograge (0.11.0)
325
+    lograge (0.11.1)
328 326
       actionpack (>= 4)
329 327
       activesupport (>= 4)
330 328
       railties (>= 4)
@@ -532,7 +530,7 @@ GEM
532 530
       rspec-core (~> 3.0, >= 3.0.0)
533 531
       sidekiq (>= 2.4.0)
534 532
     rspec-support (3.8.0)
535
-    rubocop (0.69.0)
533
+    rubocop (0.70.0)
536 534
       jaro_winkler (~> 1.5.1)
537 535
       parallel (~> 1.10)
538 536
       parser (>= 2.6)
@@ -630,8 +628,6 @@ GEM
630 628
       thread_safe (~> 0.1)
631 629
     tzinfo-data (1.2019.1)
632 630
       tzinfo (>= 1.0.0)
633
-    uglifier (4.1.20)
634
-      execjs (>= 0.3.0, < 3)
635 631
     unf (0.1.4)
636 632
       unf_ext
637 633
     unf_ext (0.0.7.5)
@@ -665,7 +661,7 @@ DEPENDENCIES
665 661
   active_record_query_trace (~> 1.6)
666 662
   addressable (~> 2.6)
667 663
   annotate (~> 2.7)
668
-  aws-sdk-s3 (~> 1.39)
664
+  aws-sdk-s3 (~> 1.40)
669 665
   better_errors (~> 2.5)
670 666
   binding_of_caller (~> 0.7)
671 667
   blurhash (~> 0.1)
@@ -705,7 +701,7 @@ DEPENDENCIES
705 701
   http (~> 3.3)
706 702
   http_accept_language (~> 2.1)
707 703
   http_parser.rb (~> 0.6)!
708
-  httplog (~> 1.2)
704
+  httplog (~> 1.3)
709 705
   i18n-tasks (~> 0.9)
710 706
   idn-ruby
711 707
   iso-639
@@ -757,7 +753,7 @@ DEPENDENCIES
757 753
   rqrcode (~> 0.10)
758 754
   rspec-rails (~> 3.8)
759 755
   rspec-sidekiq (~> 3.0)
760
-  rubocop (~> 0.69)
756
+  rubocop (~> 0.70)
761 757
   sanitize (~> 5.0)
762 758
   scss_lint (~> 0.58)
763 759
   sidekiq (~> 5.2)

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

@@ -53,7 +53,7 @@ class Api::V1::NotificationsController < Api::BaseController
53 53
   end
54 54
 
55 55
   def browserable_account_notifications
56
-    current_account.notifications.browserable(exclude_types)
56
+    current_account.notifications.browserable(exclude_types, from_account)
57 57
   end
58 58
 
59 59
   def target_statuses_from_notifications
@@ -90,6 +90,10 @@ class Api::V1::NotificationsController < Api::BaseController
90 90
     val
91 91
   end
92 92
 
93
+  def from_account
94
+    params[:account_id]
95
+  end
96
+
93 97
   def pagination_params(core_params)
94 98
     params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params)
95 99
   end

+ 13
- 16
app/controllers/concerns/signature_verification.rb View File

@@ -43,13 +43,7 @@ module SignatureVerification
43 43
       return
44 44
     end
45 45
 
46
-    account_stoplight = Stoplight("source:#{request.ip}") { account_from_key_id(signature_params['keyId']) }
47
-      .with_fallback { nil }
48
-      .with_threshold(1)
49
-      .with_cool_off_time(5.minutes.seconds)
50
-      .with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
51
-
52
-    account = account_stoplight.run
46
+    account = account_from_key_id(signature_params['keyId'])
53 47
 
54 48
     if account.nil?
55 49
       @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"
@@ -62,13 +56,7 @@ module SignatureVerification
62 56
 
63 57
     return account unless verify_signature(account, signature, compare_signed_string).nil?
64 58
 
65
-    account_stoplight = Stoplight("source:#{request.ip}") { account.possibly_stale? ? account.refresh! : account_refresh_key(account) }
66
-      .with_fallback { nil }
67
-      .with_threshold(1)
68
-      .with_cool_off_time(5.minutes.seconds)
69
-      .with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
70
-
71
-    account = account_stoplight.run
59
+    account = stoplight_wrap_request { account.possibly_stale? ? account.refresh! : account_refresh_key(account) }
72 60
 
73 61
     if account.nil?
74 62
       @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"
@@ -136,14 +124,23 @@ module SignatureVerification
136 124
 
137 125
   def account_from_key_id(key_id)
138 126
     if key_id.start_with?('acct:')
139
-      ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, ''))
127
+      stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) }
140 128
     elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
141 129
       account   = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account)
142
-      account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false)
130
+      account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) }
143 131
       account
144 132
     end
145 133
   end
146 134
 
135
+  def stoplight_wrap_request(&block)
136
+    Stoplight("source:#{request.remote_ip}", &block)
137
+      .with_fallback { nil }
138
+      .with_threshold(1)
139
+      .with_cool_off_time(5.minutes.seconds)
140
+      .with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
141
+      .run
142
+  end
143
+
147 144
   def account_refresh_key(account)
148 145
     return if account.local? || !account.activitypub?
149 146
     ActivityPub::FetchRemoteAccountService.new.call(account.uri, only_key: true)

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

@@ -49,7 +49,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
49 49
     autoFocus: PropTypes.bool,
50 50
     className: PropTypes.string,
51 51
     id: PropTypes.string,
52
-    searchTokens: PropTypes.list,
52
+    searchTokens: ImmutablePropTypes.list,
53 53
     maxLength: PropTypes.number,
54 54
   };
55 55
 

+ 5
- 5
app/javascript/mastodon/features/compose/index.js View File

@@ -106,12 +106,12 @@ class Compose extends React.PureComponent {
106 106
         <div className='drawer__pager'>
107 107
           {!isSearchPage && <div className='drawer__inner' onFocus={this.onFocus}>
108 108
             <NavigationContainer onClose={this.onBlur} />
109
+
109 110
             <ComposeFormContainer />
110
-            {multiColumn && (
111
-              <div className='drawer__inner__mastodon'>
112
-                <img alt='' draggable='false' src={mascot || elephantUIPlane} />
113
-              </div>
114
-            )}
111
+
112
+            <div className='drawer__inner__mastodon'>
113
+              <img alt='' draggable='false' src={mascot || elephantUIPlane} />
114
+            </div>
115 115
           </div>}
116 116
 
117 117
           <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>

+ 17
- 2
app/javascript/mastodon/features/getting_started/index.js View File

@@ -8,11 +8,13 @@ import PropTypes from 'prop-types';
8 8
 import ImmutablePropTypes from 'react-immutable-proptypes';
9 9
 import ImmutablePureComponent from 'react-immutable-pure-component';
10 10
 import { me, invitesEnabled, version, profile_directory, repository, source_url } from '../../initial_state';
11
-import { fetchFollowRequests } from '../../actions/accounts';
11
+import { fetchFollowRequests } from 'mastodon/actions/accounts';
12
+import { changeSetting } from 'mastodon/actions/settings';
12 13
 import { List as ImmutableList } from 'immutable';
13 14
 import { Link } from 'react-router-dom';
14 15
 import NavigationBar from '../compose/components/navigation_bar';
15 16
 import Icon from 'mastodon/components/icon';
17
+import Toggle from 'react-toggle';
16 18
 
17 19
 const messages = defineMessages({
18 20
   home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },
@@ -39,10 +41,12 @@ const messages = defineMessages({
39 41
 const mapStateToProps = state => ({
40 42
   myAccount: state.getIn(['accounts', me]),
41 43
   unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size,
44
+  forceSingleColumn: state.getIn(['settings', 'forceSingleColumn'], false),
42 45
 });
43 46
 
44 47
 const mapDispatchToProps = dispatch => ({
45 48
   fetchFollowRequests: () => dispatch(fetchFollowRequests()),
49
+  changeForceSingleColumn: checked => dispatch(changeSetting(['forceSingleColumn'], checked)),
46 50
 });
47 51
 
48 52
 const badgeDisplay = (number, limit) => {
@@ -67,6 +71,8 @@ class GettingStarted extends ImmutablePureComponent {
67 71
     fetchFollowRequests: PropTypes.func.isRequired,
68 72
     unreadFollowRequests: PropTypes.number,
69 73
     unreadNotifications: PropTypes.number,
74
+    forceSingleColumn: PropTypes.bool,
75
+    changeForceSingleColumn: PropTypes.func.isRequired,
70 76
   };
71 77
 
72 78
   componentDidMount () {
@@ -77,8 +83,12 @@ class GettingStarted extends ImmutablePureComponent {
77 83
     }
78 84
   }
79 85
 
86
+  handleForceSingleColumnChange = ({ target }) => {
87
+    this.props.changeForceSingleColumn(target.checked);
88
+  }
89
+
80 90
   render () {
81
-    const { intl, myAccount, multiColumn, unreadFollowRequests } = this.props;
91
+    const { intl, myAccount, multiColumn, unreadFollowRequests, forceSingleColumn } = this.props;
82 92
 
83 93
     const navItems = [];
84 94
     let i = 1;
@@ -177,6 +187,11 @@ class GettingStarted extends ImmutablePureComponent {
177 187
             </p>
178 188
           </div>
179 189
         </div>
190
+
191
+        <label className='navigational-toggle'>
192
+          <FormattedMessage id='getting_started.use_simple_layout' defaultMessage='Use simple layout' />
193
+          <Toggle checked={forceSingleColumn} onChange={this.handleForceSingleColumnChange} />
194
+        </label>
180 195
       </Column>
181 196
     );
182 197
   }

+ 7
- 3
app/javascript/mastodon/features/ui/components/columns_area.js View File

@@ -5,7 +5,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
5 5
 import ImmutablePureComponent from 'react-immutable-pure-component';
6 6
 
7 7
 import ReactSwipeableViews from 'react-swipeable-views';
8
-import { links, getIndex, getLink } from './tabs_bar';
8
+import TabsBar, { links, getIndex, getLink } from './tabs_bar';
9 9
 import { Link } from 'react-router-dom';
10 10
 
11 11
 import BundleContainer from '../containers/bundle_container';
@@ -139,7 +139,7 @@ class ColumnsArea extends ImmutablePureComponent {
139 139
       <ColumnLoading title={title} icon={icon} />;
140 140
 
141 141
     return (
142
-      <div className='columns-area' key={index}>
142
+      <div className='columns-area columns-area--mobile' key={index}>
143 143
         {view}
144 144
       </div>
145 145
     );
@@ -164,13 +164,17 @@ class ColumnsArea extends ImmutablePureComponent {
164 164
       const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button' aria-label={intl.formatMessage(messages.publish)}><Icon id='pencil' /></Link>;
165 165
 
166 166
       return columnIndex !== -1 ? [
167
+        <TabsBar key='tabs' />,
168
+
167 169
         <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}>
168 170
           {links.map(this.renderView)}
169 171
         </ReactSwipeableViews>,
170 172
 
171 173
         floatingActionButton,
172 174
       ] : [
173
-        <div className='columns-area'>{children}</div>,
175
+        <TabsBar key='tabs' />,
176
+
177
+        <div key='content' className='columns-area columns-area--mobile'>{children}</div>,
174 178
 
175 179
         floatingActionButton,
176 180
       ];

+ 23
- 0
app/javascript/mastodon/features/ui/components/notifications_counter_icon.js View File

@@ -0,0 +1,23 @@
1
+import React from 'react';
2
+import PropTypes from 'prop-types';
3
+import { connect } from 'react-redux';
4
+import Icon from 'mastodon/components/icon';
5
+
6
+const mapStateToProps = state => ({
7
+  count: state.getIn(['notifications', 'unread']),
8
+});
9
+
10
+const formatNumber = num => num > 99 ? '99+' : num;
11
+
12
+const NotificationsCounterIcon = ({ count }) => (
13
+  <i className='icon-with-badge'>
14
+    <Icon id='bell' fixedWidth />
15
+    {count > 0 && <i className='icon-with-badge__badge'>{formatNumber(count)}</i>}
16
+  </i>
17
+);
18
+
19
+NotificationsCounterIcon.propTypes = {
20
+  count: PropTypes.number.isRequired,
21
+};
22
+
23
+export default connect(mapStateToProps)(NotificationsCounterIcon);

+ 2
- 1
app/javascript/mastodon/features/ui/components/tabs_bar.js View File

@@ -5,10 +5,11 @@ import { FormattedMessage, injectIntl } from 'react-intl';
5 5
 import { debounce } from 'lodash';
6 6
 import { isUserTouching } from '../../../is_mobile';
7 7
 import Icon from 'mastodon/components/icon';
8
+import NotificationsCounterIcon from './notifications_counter_icon';
8 9
 
9 10
 export const links = [
10 11
   <NavLink className='tabs-bar__link primary' to='/timelines/home' data-preview-title-id='column.home' data-preview-icon='home' ><Icon id='home' fixedWidth /><FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></NavLink>,
11
-  <NavLink className='tabs-bar__link primary' to='/notifications' data-preview-title-id='column.notifications' data-preview-icon='bell' ><Icon id='bell' fixedWidth /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,
12
+  <NavLink className='tabs-bar__link primary' to='/notifications' data-preview-title-id='column.notifications' data-preview-icon='bell' ><NotificationsCounterIcon /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,
12 13
 
13 14
   <NavLink className='tabs-bar__link secondary' to='/timelines/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><Icon id='users' fixedWidth /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>,
14 15
   <NavLink className='tabs-bar__link secondary' exact to='/timelines/public' data-preview-title-id='column.public' data-preview-icon='globe' ><Icon id='globe' fixedWidth /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>,

+ 9
- 8
app/javascript/mastodon/features/ui/index.js View File

@@ -7,7 +7,6 @@ import { Redirect, withRouter } from 'react-router-dom';
7 7
 import PropTypes from 'prop-types';
8 8
 import NotificationsContainer from './containers/notifications_container';
9 9
 import LoadingBarContainer from './containers/loading_bar_container';
10
-import TabsBar from './components/tabs_bar';
11 10
 import ModalContainer from './containers/modal_container';
12 11
 import { isMobile } from '../../is_mobile';
13 12
 import { debounce } from 'lodash';
@@ -63,6 +62,7 @@ const mapStateToProps = state => ({
63 62
   hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,
64 63
   hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
65 64
   dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null,
65
+  forceSingleColumn: state.getIn(['settings', 'forceSingleColumn'], false),
66 66
 });
67 67
 
68 68
 const keyMap = {
@@ -101,6 +101,7 @@ class SwitchingColumnsArea extends React.PureComponent {
101 101
     children: PropTypes.node,
102 102
     location: PropTypes.object,
103 103
     onLayoutChange: PropTypes.func.isRequired,
104
+    forceSingleColumn: PropTypes.bool,
104 105
   };
105 106
 
106 107
   state = {
@@ -139,12 +140,13 @@ class SwitchingColumnsArea extends React.PureComponent {
139 140
   }
140 141
 
141 142
   render () {
142
-    const { children } = this.props;
143
+    const { children, forceSingleColumn } = this.props;
143 144
     const { mobile } = this.state;
144
-    const redirect = mobile ? <Redirect from='/' to='/timelines/home' exact /> : <Redirect from='/' to='/getting-started' exact />;
145
+    const singleColumn = forceSingleColumn || mobile;
146
+    const redirect = singleColumn ? <Redirect from='/' to='/timelines/home' exact /> : <Redirect from='/' to='/getting-started' exact />;
145 147
 
146 148
     return (
147
-      <ColumnsAreaContainer ref={this.setRef} singleColumn={mobile}>
149
+      <ColumnsAreaContainer ref={this.setRef} singleColumn={singleColumn}>
148 150
         <WrappedSwitch>
149 151
           {redirect}
150 152
           <WrappedRoute path='/getting-started' component={GettingStarted} content={children} />
@@ -205,6 +207,7 @@ class UI extends React.PureComponent {
205 207
     location: PropTypes.object,
206 208
     intl: PropTypes.object.isRequired,
207 209
     dropdownMenuIsOpen: PropTypes.bool,
210
+    forceSingleColumn: PropTypes.bool,
208 211
   };
209 212
 
210 213
   state = {
@@ -453,7 +456,7 @@ class UI extends React.PureComponent {
453 456
 
454 457
   render () {
455 458
     const { draggingOver } = this.state;
456
-    const { children, isComposing, location, dropdownMenuIsOpen } = this.props;
459
+    const { children, isComposing, location, dropdownMenuIsOpen, forceSingleColumn } = this.props;
457 460
 
458 461
     const handlers = {
459 462
       help: this.handleHotkeyToggleHelp,
@@ -479,9 +482,7 @@ class UI extends React.PureComponent {
479 482
     return (
480 483
       <HotKeys keyMap={keyMap} handlers={handlers} ref={this.setHotkeysRef} attach={window} focused>
481 484
         <div className={classNames('ui', { 'is-composing': isComposing })} ref={this.setRef} style={{ pointerEvents: dropdownMenuIsOpen ? 'none' : null }}>
482
-          <TabsBar />
483
-
484
-          <SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange}>
485
+          <SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange} forceSingleColumn={forceSingleColumn}>
485 486
             {children}
486 487
           </SwitchingColumnsArea>
487 488
 

+ 2
- 1
app/javascript/mastodon/locales/ar.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "إزالة هذا الخيار",
78 78
   "compose_form.publish": "بوّق",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "لقد تم تحديد هذه الصورة كحساسة",
81 82
   "compose_form.sensitive.unmarked": "لم يتم تحديد الصورة كحساسة",
82 83
   "compose_form.spoiler.marked": "إنّ النص مخفي وراء تحذير",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "إغلاق",
210 211
   "lightbox.next": "التالي",
211 212
   "lightbox.previous": "العودة",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "أضف إلى القائمة",
213 215
   "lists.account.remove": "إحذف من القائمة",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "ردّ",
341 343
   "status.replyAll": "رُد على الخيط",
342 344
   "status.report": "إبلِغ عن @{name}",
343
-  "status.sensitive_toggle": "اضغط للعرض",
344 345
   "status.sensitive_warning": "محتوى حساس",
345 346
   "status.share": "مشاركة",
346 347
   "status.show_less": "إعرض أقلّ",

+ 2
- 1
app/javascript/mastodon/locales/ast.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "El testu nun va anubrise darrera d'una alvertencia",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Close",
210 211
   "lightbox.next": "Siguiente",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Amestar a la llista",
213 215
   "lists.account.remove": "Desaniciar de la llista",
214 216
   "lists.delete": "Desaniciar la llista",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Responder",
341 343
   "status.replyAll": "Reply to thread",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Fai clic pa velu",
344 345
   "status.sensitive_warning": "Conteníu sensible",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Amosar menos",

+ 2
- 1
app/javascript/mastodon/locales/bg.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Раздумай",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Затвори",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Отговор",
341 343
   "status.replyAll": "Reply to thread",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Покажи",
344 345
   "status.sensitive_warning": "Деликатно съдържание",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Show less",

+ 377
- 376
app/javascript/mastodon/locales/bn.json View File

@@ -1,384 +1,385 @@
1 1
 {
2
-  "account.add_or_remove_from_list": "লিস্টে আরো যুক্ত বা মুছে ফেলুন",
2
+  "account.add_or_remove_from_list": "তালিকাতে আরো যুক্ত বা মুছে ফেলুন",
3 3
   "account.badges.bot": "রোবট",
4
-  "account.block": "@{name} কে বন্ধ করুন",
4
+  "account.block": "@{name} বন্ধ করুন",
5 5
   "account.block_domain": "{domain} থেকে সব সরিয়ে ফেলুন",
6 6
   "account.blocked": "বন্ধ করা হয়েছে",
7
-  "account.direct": "@{name}কে সরকারি পাঠান",
8
-  "account.domain_blocked": "বেবিসিটটি সরানো আছে",
9
-  "account.edit_profile": "Edit profile",
10
-  "account.endorse": "Feature on profile",
11
-  "account.follow": "Follow",
12
-  "account.followers": "Followers",
13
-  "account.followers.empty": "No one follows this user yet.",
14
-  "account.follows": "Follows",
15
-  "account.follows.empty": "This user doesn't follow anyone yet.",
16
-  "account.follows_you": "Follows you",
17
-  "account.hide_reblogs": "Hide boosts from @{name}",
18
-  "account.link_verified_on": "Ownership of this link was checked on {date}",
19
-  "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
20
-  "account.media": "Media",
21
-  "account.mention": "Mention @{name}",
22
-  "account.moved_to": "{name} has moved to:",
23
-  "account.mute": "Mute @{name}",
24
-  "account.mute_notifications": "Mute notifications from @{name}",
25
-  "account.muted": "Muted",
26
-  "account.posts": "Toots",
27
-  "account.posts_with_replies": "Toots and replies",
28
-  "account.report": "Report @{name}",
29
-  "account.requested": "Awaiting approval. Click to cancel follow request",
30
-  "account.share": "Share @{name}'s profile",
31
-  "account.show_reblogs": "Show boosts from @{name}",
32
-  "account.unblock": "Unblock @{name}",
33
-  "account.unblock_domain": "Unhide {domain}",
34
-  "account.unendorse": "Don't feature on profile",
35
-  "account.unfollow": "Unfollow",
36
-  "account.unmute": "Unmute @{name}",
37
-  "account.unmute_notifications": "Unmute notifications from @{name}",
38
-  "alert.unexpected.message": "An unexpected error occurred.",
39
-  "alert.unexpected.title": "Oops!",
40
-  "boost_modal.combo": "You can press {combo} to skip this next time",
41
-  "bundle_column_error.body": "Something went wrong while loading this component.",
42
-  "bundle_column_error.retry": "Try again",
43
-  "bundle_column_error.title": "Network error",
44
-  "bundle_modal_error.close": "Close",
45
-  "bundle_modal_error.message": "Something went wrong while loading this component.",
46
-  "bundle_modal_error.retry": "Try again",
47
-  "column.blocks": "Blocked users",
48
-  "column.community": "Local timeline",
49
-  "column.direct": "Direct messages",
50
-  "column.domain_blocks": "Hidden domains",
51
-  "column.favourites": "Favourites",
52
-  "column.follow_requests": "Follow requests",
53
-  "column.home": "Home",
54
-  "column.lists": "Lists",
55
-  "column.mutes": "Muted users",
56
-  "column.notifications": "Notifications",
57
-  "column.pins": "Pinned toot",
58
-  "column.public": "Federated timeline",
59
-  "column_back_button.label": "Back",
60
-  "column_header.hide_settings": "Hide settings",
61
-  "column_header.moveLeft_settings": "Move column to the left",
62
-  "column_header.moveRight_settings": "Move column to the right",
63
-  "column_header.pin": "Pin",
64
-  "column_header.show_settings": "Show settings",
65
-  "column_header.unpin": "Unpin",
66
-  "column_subheading.settings": "Settings",
67
-  "community.column_settings.media_only": "Media Only",
68
-  "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
69
-  "compose_form.direct_message_warning_learn_more": "Learn more",
70
-  "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.",
71
-  "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
72
-  "compose_form.lock_disclaimer.lock": "locked",
73
-  "compose_form.placeholder": "What is on your mind?",
74
-  "compose_form.poll.add_option": "Add a choice",
75
-  "compose_form.poll.duration": "Poll duration",
76
-  "compose_form.poll.option_placeholder": "Choice {number}",
77
-  "compose_form.poll.remove_option": "Remove this choice",
78
-  "compose_form.publish": "Toot",
7
+  "account.direct": "@{name}কে সরকারি লিখুন",
8
+  "account.domain_blocked": "ওয়েবসাইট সরিয়ে ফেলা হয়েছে",
9
+  "account.edit_profile": "নিজের পাতা সম্পাদনা করুন",
10
+  "account.endorse": "নিজের পাতায় দেখান",
11
+  "account.follow": "অনুসরণ করুন",
12
+  "account.followers": "অনুসরণকারক",
13
+  "account.followers.empty": "এই ব্যবহারকারীকে কেও এখনো অনুসরণ করে না।",
14
+  "account.follows": "যাদেরকে অনুসরণ করেন",
15
+  "account.follows.empty": "এই ব্যবহারকারী কাওকে এখনো অনুসরণ করেন না।",
16
+  "account.follows_you": "আপনাকে অনুসরণ করে",
17
+  "account.hide_reblogs": "@{name}র সমর্থনগুলি সরিয়ে ফেলুন",
18
+  "account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিকে",
19
+  "account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।",
20
+  "account.media": "ছবি বা ভিডিও",
21
+  "account.mention": "@{name} কে উল্লেখ করুন",
22
+  "account.moved_to": "{name} চলে গেছে এখানে:",
23
+  "account.mute": "@{name}র কার্যক্রম সরিয়ে ফেলুন",
24
+  "account.mute_notifications": "@{name}র প্রজ্ঞাপন আপনার কাছ থেকে সরিয়ে ফেলুন",
25
+  "account.muted": "সরানো আছে",
26
+  "account.posts": "টুট",
27
+  "account.posts_with_replies": "টুট এবং মতামত",
28
+  "account.report": "@{name}কে রিপোর্ট করে দিন",
29
+  "account.requested": "অনুমতির অপেক্ষায় আছে। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন",
30
+  "account.share": "@{name}র পাতা অন্যদের দেখান",
31
+  "account.show_reblogs": "@{name}র সমর্থনগুলো দেখুন",
32
+  "account.unblock": "@{name}র কার্যকলাপ আবার দেখুন",
33
+  "account.unblock_domain": "{domain}থেকে আবার দেখুন",
34
+  "account.unendorse": "নিজের পাতায় এটা দেখতে চান না",
35
+  "account.unfollow": "অনুসরণ বন্ধ করুন",
36
+  "account.unmute": "@{name}র কার্যকলাপ আবার দেখুন",
37
+  "account.unmute_notifications": "@{name}র প্রজ্ঞাপন দেওয়ার অনুমতি দিন",
38
+  "alert.unexpected.message": "অপ্রত্যাশিত একটি সমস্যা হয়েছে।",
39
+  "alert.unexpected.title": "ওহো!",
40
+  "boost_modal.combo": "পরেরবার আপনি {combo} চাপ দিলে এটার শেষে চলে যেতে পারবেন",
41
+  "bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।",
42
+  "bundle_column_error.retry": "আবার চেষ্টা করুন",
43
+  "bundle_column_error.title": "নেটওয়ার্কের সমস্যা হচ্ছে",
44
+  "bundle_modal_error.close": "বন্ধ করুন",
45
+  "bundle_modal_error.message": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।",
46
+  "bundle_modal_error.retry": "আবার চেষ্টা করুন",
47
+  "column.blocks": "যাদের বন্ধ করে রাখা হয়েছে",
48
+  "column.community": "স্থানীয় সময়সারি",
49
+  "column.direct": "সরাসরি লেখা",
50
+  "column.domain_blocks": "সরিয়ে ফেলা ওয়েবসাইট",
51
+  "column.favourites": "পছন্দের গুলো",
52
+  "column.follow_requests": "অনুসরণের অনুমতি চেয়েছে যারা",
53
+  "column.home": "বাড়ি",
54
+  "column.lists": "তালিকাগুলো",
55
+  "column.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে",
56
+  "column.notifications": "প্রজ্ঞাপনগুলো",
57
+  "column.pins": "পিন করা টুট",
58
+  "column.public": "যুক্ত সময়রেখা",
59
+  "column_back_button.label": "পেছনে",
60
+  "column_header.hide_settings": "সেটিংগুলো সরান",
61
+  "column_header.moveLeft_settings": "কলমটা বামে সরান",
62
+  "column_header.moveRight_settings": "কলমটা ডানে সরান",
63
+  "column_header.pin": "পিন দিয়ে রাখুন",
64
+  "column_header.show_settings": "সেটিং দেখান",
65
+  "column_header.unpin": "পিন খুলুন",
66
+  "column_subheading.settings": "সেটিং",
67
+  "community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
68
+  "compose_form.direct_message_warning": "শুধুমাত্র যাদেরকে উল্লেখ করা হয়েছে তাদেরকেই এই টুটটি পাঠানো হবে ।",
69
+  "compose_form.direct_message_warning_learn_more": "আরো জানুন",
70
+  "compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।",
71
+  "compose_form.lock_disclaimer": "আপনার নিবন্ধনে তালা দেওয়া নেই, যে কেও আপনাকে অনুসরণ করতে পারবে এবং অনুশারকদের জন্য লেখা দেখতে পারবে।",
72
+  "compose_form.lock_disclaimer.lock": "তালা দেওয়া",
73
+  "compose_form.placeholder": "আপনি কি ভাবছেন ?",
74
+  "compose_form.poll.add_option": "আরেকটি বিকল্প যোগ করুন",
75
+  "compose_form.poll.duration": "ভোটগ্রহনের সময়",
76
+  "compose_form.poll.option_placeholder": "বিকল্প {number}",
77
+  "compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন",
78
+  "compose_form.publish": "টুট",
79 79
   "compose_form.publish_loud": "{publish}!",
80
-  "compose_form.sensitive.marked": "Media is marked as sensitive",
81
-  "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82
-  "compose_form.spoiler.marked": "Text is hidden behind warning",
83
-  "compose_form.spoiler.unmarked": "Text is not hidden",
84
-  "compose_form.spoiler_placeholder": "Write your warning here",
85
-  "confirmation_modal.cancel": "Cancel",
86
-  "confirmations.block.block_and_report": "Block & Report",
87
-  "confirmations.block.confirm": "Block",
88
-  "confirmations.block.message": "Are you sure you want to block {name}?",
89
-  "confirmations.delete.confirm": "Delete",
90
-  "confirmations.delete.message": "Are you sure you want to delete this status?",
91
-  "confirmations.delete_list.confirm": "Delete",
92
-  "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
93
-  "confirmations.domain_block.confirm": "Hide entire domain",
94
-  "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.",
95
-  "confirmations.mute.confirm": "Mute",
96
-  "confirmations.mute.message": "Are you sure you want to mute {name}?",
97
-  "confirmations.redraft.confirm": "Delete & redraft",
98
-  "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
99
-  "confirmations.reply.confirm": "Reply",
100
-  "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
101
-  "confirmations.unfollow.confirm": "Unfollow",
102
-  "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
103
-  "embed.instructions": "Embed this status on your website by copying the code below.",
104
-  "embed.preview": "Here is what it will look like:",
105
-  "emoji_button.activity": "Activity",
106
-  "emoji_button.custom": "Custom",
107
-  "emoji_button.flags": "Flags",
108
-  "emoji_button.food": "Food & Drink",
109
-  "emoji_button.label": "Insert emoji",
110
-  "emoji_button.nature": "Nature",
111
-  "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
112
-  "emoji_button.objects": "Objects",
113
-  "emoji_button.people": "People",
114
-  "emoji_button.recent": "Frequently used",
115
-  "emoji_button.search": "Search...",
116
-  "emoji_button.search_results": "Search results",
117
-  "emoji_button.symbols": "Symbols",
118
-  "emoji_button.travel": "Travel & Places",
119
-  "empty_column.account_timeline": "No toots here!",
120
-  "empty_column.account_unavailable": "Profile unavailable",
121
-  "empty_column.blocks": "You haven't blocked any users yet.",
122
-  "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
123
-  "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
124
-  "empty_column.domain_blocks": "There are no hidden domains yet.",
125
-  "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
126
-  "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
127
-  "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
128
-  "empty_column.hashtag": "There is nothing in this hashtag yet.",
129
-  "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
130
-  "empty_column.home.public_timeline": "the public timeline",
131
-  "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
132
-  "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
133
-  "empty_column.mutes": "You haven't muted any users yet.",
134
-  "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
135
-  "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
136
-  "follow_request.authorize": "Authorize",
137
-  "follow_request.reject": "Reject",
138
-  "getting_started.developers": "Developers",
139
-  "getting_started.directory": "Profile directory",
140
-  "getting_started.documentation": "Documentation",
141
-  "getting_started.heading": "Getting started",
142
-  "getting_started.invite": "Invite people",
143
-  "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
144
-  "getting_started.security": "Security",
145
-  "getting_started.terms": "Terms of service",
146
-  "hashtag.column_header.tag_mode.all": "and {additional}",
147
-  "hashtag.column_header.tag_mode.any": "or {additional}",
148
-  "hashtag.column_header.tag_mode.none": "without {additional}",
149
-  "hashtag.column_settings.select.no_options_message": "No suggestions found",
150
-  "hashtag.column_settings.select.placeholder": "Enter hashtags…",
151
-  "hashtag.column_settings.tag_mode.all": "All of these",
152
-  "hashtag.column_settings.tag_mode.any": "Any of these",
153
-  "hashtag.column_settings.tag_mode.none": "None of these",
154
-  "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
155
-  "home.column_settings.basic": "Basic",
156
-  "home.column_settings.show_reblogs": "Show boosts",
157
-  "home.column_settings.show_replies": "Show replies",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
81
+  "compose_form.sensitive.marked": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করা হয়েছে",
82
+  "compose_form.sensitive.unmarked": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করা হয়নি",
83
+  "compose_form.spoiler.marked": "লেখাটি সাবধানতার পেছনে লুকানো আছে",
84
+  "compose_form.spoiler.unmarked": "লেখাটি লুকানো নেই",
85
+  "compose_form.spoiler_placeholder": "আপনার সাবধানতা এখানে লিখুন",
86
+  "confirmation_modal.cancel": "বাতিল করুন",
87
+  "confirmations.block.block_and_report": "বন্ধ করুন এবং রিপোর্ট করুন",
88
+  "confirmations.block.confirm": "বন্ধ করুন",
89
+  "confirmations.block.message": "আপনি কি নিশ্চিত {name} কে বন্ধ করতে চান ?",
90
+  "confirmations.delete.confirm": "মুছে ফেলুন",
91
+  "confirmations.delete.message": "আপনি কি নিশ্চিত যে এই লেখাটি মুছে ফেলতে চান ?",
92
+  "confirmations.delete_list.confirm": "মুছে ফেলুন",
93
+  "confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?",
94
+  "confirmations.domain_block.confirm": "এই ওয়েবসাইট থেকে সব সরান",
95
+  "confirmations.domain_block.message": "আপনি কি সত্যি সত্যি নিশ্চিত যে {domain} ওয়েবসাইট থেকে সব সরাতে চান ? সাধারণত কিছু লক্ষ্যবস্তু বন্ধ এবং সরানোযা যথেষ্ট। নিশ্চিত করলে ওই ওয়েবসাইট থেকে কোনোকিছু কোনখানে দেখবেন না। যারা আপনাকে অনুসরণ করে ওই ওয়েবসাইট থেকে তাদেরকেও মুছে ফেলা হবে।",
96
+  "confirmations.mute.confirm": "সরিয়ে ফেলুন",
97
+  "confirmations.mute.message": "আপনি কি নিশ্চিত {name} সরিয়ে ফেলতে চান ?",
98
+  "confirmations.redraft.confirm": "মুছে ফেলুন এবং আবার সম্পাদন করুন",
99
+  "confirmations.redraft.message": "আপনি কি নিশ্চিত এটি মুছে ফেলে  এবং আবার সম্পাদন করতে চান ? এটাতে যা পছন্দিত, সমর্থন বা মতামত আছে সেগুলো নতুন লেখার সাথে যুক্ত থাকবে না।",
100
+  "confirmations.reply.confirm": "মতামত",
101
+  "confirmations.reply.message": "এখন মতামত লিখতে গেলে আপনার এখন যেটা লিখছেন সেটা মুছে যাবে। আপনি নি নিশ্চিত এটা করতে চান ?",
102
+  "confirmations.unfollow.confirm": "অনুসরণ বন্ধ করুন",
103
+  "confirmations.unfollow.message": "আপনি কি নিশ্চিত {name} কে আর অনুসরণ করতে চান না ?",
104
+  "embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।",
105
+  "embed.preview": "সেটা দেখতে এরকম হবে:",
106
+  "emoji_button.activity": "কার্যকলাপ",
107
+  "emoji_button.custom": "প্রথা",
108
+  "emoji_button.flags": "পতাকা",
109
+  "emoji_button.food": "খাদ্য ও পানীয়",
110
+  "emoji_button.label": "এমজি যুক্ত করুন",
111
+  "emoji_button.nature": "প্রকৃতি",
112
+  "emoji_button.not_found": "ইমোজি পাওয়া যায়নি !! (╯°□°)╯︵ ┻━┻",
113
+  "emoji_button.objects": "বস্তূ",
114
+  "emoji_button.people": "মানুষ",
115
+  "emoji_button.recent": "ঘন ব্যাবহৃত",
116
+  "emoji_button.search": "খুজুন...",
117
+  "emoji_button.search_results": "খোঁজার ফলাফল",
118
+  "emoji_button.symbols": "প্রতীক",
119
+  "emoji_button.travel": "ভ্রমণ এবং স্থান",
120
+  "empty_column.account_timeline": "এখানে কোনো টুট নেই!",
121
+  "empty_column.account_unavailable": "নিজস্ব পাতা নেই",
122
+  "empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের বন্ধ করেন নি।",
123
+  "empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!",
124
+  "empty_column.direct": "আপনার কাছে সরাসরি পাঠানো কোনো লেখা নেই। যদি কেও পাঠায়, সেটা এখানে দেখা যাবে।",
125
+  "empty_column.domain_blocks": "এখনো কোনো সরানো ওয়েবসাইট নেই।",
126
+  "empty_column.favourited_statuses": "আপনার পছন্দের কোনো টুট এখনো নেই। আপনি কোনো লেখা পছন্দের হিসেবে চিহ্নিত করলে এখানে পাওয়া যাবে।",
127
+  "empty_column.favourites": "কেও এখনো এটাকে পছন্দের টুট হিসেবে চিহ্নিত করেনি। যদি করে, তখন তাদের এখানে পাওয়া যাবে।",
128
+  "empty_column.follow_requests": "আপনার এখনো কোনো অনুসরণের আবেদন পাঠানো নেই। যদি পাঠায়, এখানে পাওয়া যাবে।",
129
+  "empty_column.hashtag": "এই হেসটাগে এখনো কিছু নেই।",
130
+  "empty_column.home": "আপনার বাড়ির সময়রেখা এখনো খালি!  {public}এ ঘুরে আসুন অথবা অনুসন্ধান বেবহার করে শুরু করতে পারেন এবং অন্য ব্যবহারকারীদের সাথে সাক্ষাৎ করতে পারেন।",
131
+  "empty_column.home.public_timeline": "প্রকাশ্য সময়রেখা",
132
+  "empty_column.list": "এই তালিকাতে এখনো কিছু নেই. যখন এই তালিকায় থাকা ব্যবহারকারী নতুন কিছু লিখবে, সেগুলো এখানে পাওয়া যাবে।",
133
+  "empty_column.lists": "আপনার এখনো কোনো তালিকা তৈরী নেই। যদি বা যখন তৈরী করেন, সেগুলো এখানে পাওয়া যাবে।",
134
+  "empty_column.mutes": "আপনি এখনো কোনো ব্যবহারকারীকে সরাননি।",
135
+  "empty_column.notifications": "আপনার এখনো কোনো প্রজ্ঞাপন নেই। কথোপকথন শুরু করতে,  অন্যদের সাথে মেলামেশা করতে পারেন।",
136
+  "empty_column.public": "এখানে এখনো কিছু নেই! প্রকাশ্য ভাবে কিছু লিখুন বা অন্য সার্ভার থেকে কাওকে অনুসরণ করে এই জায়গা ভরে ফেলুন",
137
+  "follow_request.authorize": "অনুমতি দিন",
138
+  "follow_request.reject": "প্রত্যাখ্যান করুন",
139
+  "getting_started.developers": "তৈরিকারকদের জন্য",
140
+  "getting_started.directory": "নিজস্ব পাতার তালিকা",
141
+  "getting_started.documentation": "নথিপত্র",
142
+  "getting_started.heading": "শুরু করা",
143
+  "getting_started.invite": "অন্যদের আমন্ত্রণ করুন",
144
+  "getting_started.open_source_notice": "মাস্টাডন একটি মুক্ত সফটওয়্যার। আপনি তৈরিতে সাহায্য করতে পারেন অথবা সমস্যা রিপোর্ট করতে পারেন গিটহাবে {github}।",
145
+  "getting_started.security": "নিরাপত্তা",
146
+  "getting_started.terms": "ব্যবহারের নিয়মাবলী",
147
+  "hashtag.column_header.tag_mode.all": "এবং {additional}",
148
+  "hashtag.column_header.tag_mode.any": "অথবা {additional}",
149
+  "hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}",
150
+  "hashtag.column_settings.select.no_options_message": "কোনটা পাওয়া যায় নি",
151
+  "hashtag.column_settings.select.placeholder": "হ্যাশট্যাগের ভেতরে ঢুকুন…",
152
+  "hashtag.column_settings.tag_mode.all": "এগুলো সব",
153
+  "hashtag.column_settings.tag_mode.any": "এর ভেতরে যেকোনোটা",
154
+  "hashtag.column_settings.tag_mode.none": "এগুলোর একটাও না",
155
+  "hashtag.column_settings.tag_toggle": "আরো ট্যাগ এই কলামে যুক্ত করুন",
156
+  "home.column_settings.basic": "সাধারণ",
157
+  "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান",
158
+  "home.column_settings.show_replies": "মতামত দেখান",
158 159
   "intervals.full.days": "{number, plural, one {# day} other {# days}}",
159
-  "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
160
+  "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}",
160 161
   "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
161
-  "introduction.federation.action": "Next",
162
-  "introduction.federation.federated.headline": "Federated",
163
-  "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
164
-  "introduction.federation.home.headline": "Home",
165
-  "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
166
-  "introduction.federation.local.headline": "Local",
167
-  "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
168
-  "introduction.interactions.action": "Finish toot-orial!",
169
-  "introduction.interactions.favourite.headline": "Favourite",
170
-  "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
171
-  "introduction.interactions.reblog.headline": "Boost",
172
-  "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
173
-  "introduction.interactions.reply.headline": "Reply",
174
-  "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
175
-  "introduction.welcome.action": "Let's go!",
176
-  "introduction.welcome.headline": "First steps",
177
-  "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
178
-  "keyboard_shortcuts.back": "to navigate back",
179
-  "keyboard_shortcuts.blocked": "to open blocked users list",
180
-  "keyboard_shortcuts.boost": "to boost",
181
-  "keyboard_shortcuts.column": "to focus a status in one of the columns",
182
-  "keyboard_shortcuts.compose": "to focus the compose textarea",
183
-  "keyboard_shortcuts.description": "Description",
184
-  "keyboard_shortcuts.direct": "to open direct messages column",
185
-  "keyboard_shortcuts.down": "to move down in the list",
186
-  "keyboard_shortcuts.enter": "to open status",
187
-  "keyboard_shortcuts.favourite": "to favourite",
188
-  "keyboard_shortcuts.favourites": "to open favourites list",
189
-  "keyboard_shortcuts.federated": "to open federated timeline",
190
-  "keyboard_shortcuts.heading": "Keyboard Shortcuts",
191
-  "keyboard_shortcuts.home": "to open home timeline",
192
-  "keyboard_shortcuts.hotkey": "Hotkey",
193
-  "keyboard_shortcuts.legend": "to display this legend",
194
-  "keyboard_shortcuts.local": "to open local timeline",
195
-  "keyboard_shortcuts.mention": "to mention author",
196
-  "keyboard_shortcuts.muted": "to open muted users list",
197
-  "keyboard_shortcuts.my_profile": "to open your profile",
198
-  "keyboard_shortcuts.notifications": "to open notifications column",
199
-  "keyboard_shortcuts.pinned": "to open pinned toots list",
200
-  "keyboard_shortcuts.profile": "to open author's profile",
201
-  "keyboard_shortcuts.reply": "to reply",
202
-  "keyboard_shortcuts.requests": "to open follow requests list",
203
-  "keyboard_shortcuts.search": "to focus search",
204
-  "keyboard_shortcuts.start": "to open \"get started\" column",
205
-  "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
206
-  "keyboard_shortcuts.toot": "to start a brand new toot",
207
-  "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
208
-  "keyboard_shortcuts.up": "to move up in the list",
209
-  "lightbox.close": "Close",
210
-  "lightbox.next": "Next",
211
-  "lightbox.previous": "Previous",
212
-  "lists.account.add": "Add to list",
213
-  "lists.account.remove": "Remove from list",
214
-  "lists.delete": "Delete list",
215
-  "lists.edit": "Edit list",
216
-  "lists.edit.submit": "Change title",
217
-  "lists.new.create": "Add list",
218
-  "lists.new.title_placeholder": "New list title",
219
-  "lists.search": "Search among people you follow",
220
-  "lists.subheading": "Your lists",
221
-  "loading_indicator.label": "Loading...",
222
-  "media_gallery.toggle_visible": "Toggle visibility",
223
-  "missing_indicator.label": "Not found",
224
-  "missing_indicator.sublabel": "This resource could not be found",
225
-  "mute_modal.hide_notifications": "Hide notifications from this user?",
226
-  "navigation_bar.apps": "Mobile apps",
227
-  "navigation_bar.blocks": "Blocked users",
228
-  "navigation_bar.community_timeline": "Local timeline",
229
-  "navigation_bar.compose": "Compose new toot",
230
-  "navigation_bar.direct": "Direct messages",
231
-  "navigation_bar.discover": "Discover",
232
-  "navigation_bar.domain_blocks": "Hidden domains",
233
-  "navigation_bar.edit_profile": "Edit profile",
234
-  "navigation_bar.favourites": "Favourites",
235
-  "navigation_bar.filters": "Muted words",
236
-  "navigation_bar.follow_requests": "Follow requests",
237
-  "navigation_bar.info": "About this server",
238
-  "navigation_bar.keyboard_shortcuts": "Hotkeys",
239
-  "navigation_bar.lists": "Lists",
240
-  "navigation_bar.logout": "Logout",
241
-  "navigation_bar.mutes": "Muted users",
242
-  "navigation_bar.personal": "Personal",
243
-  "navigation_bar.pins": "Pinned toots",
244
-  "navigation_bar.preferences": "Preferences",
245
-  "navigation_bar.public_timeline": "Federated timeline",
246
-  "navigation_bar.security": "Security",
247
-  "notification.favourite": "{name} favourited your status",
248
-  "notification.follow": "{name} followed you",
249
-  "notification.mention": "{name} mentioned you",
250
-  "notification.poll": "A poll you have voted in has ended",
251
-  "notification.reblog": "{name} boosted your status",
252
-  "notifications.clear": "Clear notifications",
253
-  "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
254
-  "notifications.column_settings.alert": "Desktop notifications",
255
-  "notifications.column_settings.favourite": "Favourites:",
256
-  "notifications.column_settings.filter_bar.advanced": "Display all categories",
257
-  "notifications.column_settings.filter_bar.category": "Quick filter bar",
258
-  "notifications.column_settings.filter_bar.show": "Show",
259
-  "notifications.column_settings.follow": "New followers:",
260
-  "notifications.column_settings.mention": "Mentions:",
261
-  "notifications.column_settings.poll": "Poll results:",
262
-  "notifications.column_settings.push": "Push notifications",
263
-  "notifications.column_settings.reblog": "Boosts:",
264
-  "notifications.column_settings.show": "Show in column",
265
-  "notifications.column_settings.sound": "Play sound",
266
-  "notifications.filter.all": "All",
267
-  "notifications.filter.boosts": "Boosts",
268
-  "notifications.filter.favourites": "Favourites",
269
-  "notifications.filter.follows": "Follows",
270
-  "notifications.filter.mentions": "Mentions",
271
-  "notifications.filter.polls": "Poll results",
272
-  "notifications.group": "{count} notifications",
273
-  "poll.closed": "Closed",
274
-  "poll.refresh": "Refresh",
275
-  "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
276
-  "poll.vote": "Vote",
277
-  "poll_button.add_poll": "Add a poll",
278
-  "poll_button.remove_poll": "Remove poll",
279
-  "privacy.change": "Adjust status privacy",
280
-  "privacy.direct.long": "Post to mentioned users only",
281
-  "privacy.direct.short": "Direct",
282
-  "privacy.private.long": "Post to followers only",
283
-  "privacy.private.short": "Followers-only",
284
-  "privacy.public.long": "Post to public timelines",
285
-  "privacy.public.short": "Public",
286
-  "privacy.unlisted.long": "Do not show in public timelines",
287
-  "privacy.unlisted.short": "Unlisted",
288
-  "regeneration_indicator.label": "Loading…",
289
-  "regeneration_indicator.sublabel": "Your home feed is being prepared!",
290
-  "relative_time.days": "{number}d",
291
-  "relative_time.hours": "{number}h",
292
-  "relative_time.just_now": "now",
293
-  "relative_time.minutes": "{number}m",
294
-  "relative_time.seconds": "{number}s",
295
-  "reply_indicator.cancel": "Cancel",
296
-  "report.forward": "Forward to {target}",
297
-  "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
298
-  "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
299
-  "report.placeholder": "Additional comments",
300
-  "report.submit": "Submit",
301
-  "report.target": "Report {target}",
302
-  "search.placeholder": "Search",
303
-  "search_popout.search_format": "Advanced search format",
304
-  "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.",
305
-  "search_popout.tips.hashtag": "hashtag",
306
-  "search_popout.tips.status": "status",
307
-  "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
308
-  "search_popout.tips.user": "user",
309
-  "search_results.accounts": "People",
310
-  "search_results.hashtags": "Hashtags",
311
-  "search_results.statuses": "Toots",
312
-  "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
313
-  "status.admin_account": "Open moderation interface for @{name}",
314
-  "status.admin_status": "Open this status in the moderation interface",
315
-  "status.block": "Block @{name}",
316
-  "status.cancel_reblog_private": "Unboost",
317
-  "status.cannot_reblog": "This post cannot be boosted",
318
-  "status.copy": "Copy link to status",
319
-  "status.delete": "Delete",
320
-  "status.detailed_status": "Detailed conversation view",
321
-  "status.direct": "Direct message @{name}",
322
-  "status.embed": "Embed",
323
-  "status.favourite": "Favourite",
324
-  "status.filtered": "Filtered",
325
-  "status.load_more": "Load more",
326
-  "status.media_hidden": "Media hidden",
327
-  "status.mention": "Mention @{name}",
328
-  "status.more": "More",
329
-  "status.mute": "Mute @{name}",
330
-  "status.mute_conversation": "Mute conversation",
331
-  "status.open": "Expand this status",
332
-  "status.pin": "Pin on profile",
333
-  "status.pinned": "Pinned toot",
334
-  "status.read_more": "Read more",
335
-  "status.reblog": "Boost",
336
-  "status.reblog_private": "Boost to original audience",
337
-  "status.reblogged_by": "{name} boosted",
338
-  "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
339
-  "status.redraft": "Delete & re-draft",
340
-  "status.reply": "Reply",
341
-  "status.replyAll": "Reply to thread",
342
-  "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Click to view",
344
-  "status.sensitive_warning": "Sensitive content",
345
-  "status.share": "Share",
346
-  "status.show_less": "Show less",
347
-  "status.show_less_all": "Show less for all",
348
-  "status.show_more": "Show more",
349
-  "status.show_more_all": "Show more for all",
350
-  "status.show_thread": "Show thread",
351
-  "status.unmute_conversation": "Unmute conversation",
352
-  "status.unpin": "Unpin from profile",
353
-  "suggestions.dismiss": "Dismiss suggestion",
354
-  "suggestions.header": "You might be interested in…",
355
-  "tabs_bar.federated_timeline": "Federated",
356
-  "tabs_bar.home": "Home",
357
-  "tabs_bar.local_timeline": "Local",
358
-  "tabs_bar.notifications": "Notifications",
359
-  "tabs_bar.search": "Search",
360
-  "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
361
-  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
362
-  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
363
-  "time_remaining.moments": "Moments remaining",
364
-  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
365
-  "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
366
-  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
367
-  "upload_area.title": "Drag & drop to upload",
368
-  "upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)",
369
-  "upload_error.limit": "File upload limit exceeded.",
370
-  "upload_error.poll": "File upload not allowed with polls.",
371
-  "upload_form.description": "Describe for the visually impaired",
372
-  "upload_form.focus": "Crop",
373
-  "upload_form.undo": "Delete",
374
-  "upload_progress.label": "Uploading...",
375
-  "video.close": "Close video",
376
-  "video.exit_fullscreen": "Exit full screen",
377
-  "video.expand": "Expand video",
378
-  "video.fullscreen": "Full screen",
379
-  "video.hide": "Hide video",
380
-  "video.mute": "Mute sound",
381
-  "video.pause": "Pause",
382
-  "video.play": "Play",
383
-  "video.unmute": "Unmute sound"
162
+  "introduction.federation.action": "পরবর্তী",
163
+  "introduction.federation.federated.headline": "যুক্তবিশ্ব",
164
+  "introduction.federation.federated.text": "অন্যান্য যুক্তবিশ্বের সার্ভারের লেখাগুলি যুক্তবিশ্বের সময়রেখাতে আসবে ।",
165
+  "introduction.federation.home.headline": "বাড়ি",
166
+  "introduction.federation.home.text": "যাদেরকে অনুসরণ করেন তাদের লেখাগুলো  আপনার বাড়ি-সময়রেখাতে আসবে। আপনি এখান থেকে যুক্তবিশ্বে যেকোনো সার্ভারের যে কাওকে  অনুসরণ করতে পারেন!",
167
+  "introduction.federation.local.headline": "স্থানীয়",
168
+  "introduction.federation.local.text": "আপনি যে সার্ভারে আছেন সেখানকার মানুষের প্রকাশ্য লেখাগুলো স্থানীয় সময়রেখাতে আসবে।",
169
+  "introduction.interactions.action": "ব্যবহার জানার অংশটি শেষ করুন!",
170
+  "introduction.interactions.favourite.headline": "পছন্দের",
171
+  "introduction.interactions.favourite.text": "পরে পড়ার জন্য বা লেখা পছন্ধ হয়েছে সেটা লেখককে জানাতে, কোনো লেখা পছন্দের হিসেবে চিহ্নিত করতে পারেন।",
172
+  "introduction.interactions.reblog.headline": "সমর্থন",
173
+  "introduction.interactions.reblog.text": "কারোর লেখা সমর্থন দিয়ে চিহ্নিত করে সেটা আপনার অনুসরণকারীদের দেখতে পারেন।",
174
+  "introduction.interactions.reply.headline": "মতামত",
175
+  "introduction.interactions.reply.text": "আপনি অন্যদের এবং নিজের লেখায় মতামত টুট করতে পারেন, যেগুলো লেখার সাথে কথোপকথন হিসেবে যুক্ত থাকবে।",
176
+  "introduction.welcome.action": "শুরু করা যাক!",
177
+  "introduction.welcome.headline": "প্রথম ধাপ",
178
+  "introduction.welcome.text": "যুক্তবিশ্বে স্বাগতম! কিছুক্ষনের মধ্যেই আপনি আপনার লেখা বিভিন্ন সার্ভারে সম্প্রচার করতে পারবেন। কিন্তু মনে রাখবে যে এটা একটা বিশেষ সার্ভার, {domain} কারণ এখানে আপনার নিজেস্ব পাতা রাখা হচ্ছে।",
179
+  "keyboard_shortcuts.back": "পেছনে যেতে",
180
+  "keyboard_shortcuts.blocked": "বন্ধ করা ব্যবহারকারীদের তালিকা দেখতে",
181
+  "keyboard_shortcuts.boost": "সমর্থন করতে",
182
+  "keyboard_shortcuts.column": "কোনো কলামএ কোনো লেখা ফোকাস করতে",
183
+  "keyboard_shortcuts.compose": "লেখা সম্পদনার জায়গায় ফোকাস করতে",
184
+  "keyboard_shortcuts.description": "বিবরণ",
185
+  "keyboard_shortcuts.direct": "সরাসরি পাঠানো লেখা দেখতে",
186
+  "keyboard_shortcuts.down": "তালিকার ভেতরে নিচে যেতে",
187
+  "keyboard_shortcuts.enter": "অবস্থা দেখতে",
188
+  "keyboard_shortcuts.favourite": "পছন্দের দেখতে",
189
+  "keyboard_shortcuts.favourites": "পছন্দের তালিকা বের করতে",
190
+  "keyboard_shortcuts.federated": "যুক্তবিশ্বের সময়রেখাতে যেতে",
191
+  "keyboard_shortcuts.heading": "কিবোর্ডের দ্রুতকারক (শর্টকাট)",
192
+  "keyboard_shortcuts.home": "বাড়ির সময়রেখা খুলতে",
193
+  "keyboard_shortcuts.hotkey": "দ্রুতকারক ছবিগুলো",
194
+  "keyboard_shortcuts.legend": "এই প্রদর্শনঅর্থ(legend) দেখতে",
195
+  "keyboard_shortcuts.local": "স্থানীয় সময়রেখাতে যেতে",
196
+  "keyboard_shortcuts.mention": "লেখককে উল্লেখ করতে",
197
+  "keyboard_shortcuts.muted": "বন্ধ করা ব্যবহারকারীদের তালিকা খুলতে",
198
+  "keyboard_shortcuts.my_profile": "নিজের পাতা দেখতে",
199
+  "keyboard_shortcuts.notifications": "প্রজ্ঞাপনের কলাম খুলতে",
200
+  "keyboard_shortcuts.pinned": "পিন দেওয়া টুটের তালিকা খুলতে",
201
+  "keyboard_shortcuts.profile": "লেখকের পাতা দেখতে",
202
+  "keyboard_shortcuts.reply": "মতামত দিতে",
203
+  "keyboard_shortcuts.requests": "অনুসরণ অনুরোধের তালিকা দেখতে",
204
+  "keyboard_shortcuts.search": "খোঁজার অংশে ফোকাস করতে",
205
+  "keyboard_shortcuts.start": "\"প্রথম শুরুর\" কলাম বের করতে",
206
+  "keyboard_shortcuts.toggle_hidden": "CW লেখা দেখতে বা লুকাতে",
207
+  "keyboard_shortcuts.toot": "নতুন একটা টুট লেখা শুরু করতে",
208
+  "keyboard_shortcuts.unfocus": "লেখা বা খোঁজার জায়গায় ফোকাস না করতে",
209
+  "keyboard_shortcuts.up": "তালিকার উপরের দিকে যেতে",
210
+  "lightbox.close": "বন্ধ",
211
+  "lightbox.next": "পরবর্তী",
212
+  "lightbox.previous": "পূর্ববর্তী",
213
+  "lightbox.view_context": "View context",
214
+  "lists.account.add": "তালিকাতে যুক্ত করতে",
215
+  "lists.account.remove": "তালিকা থেকে বাদ দিতে",
216
+  "lists.delete": "তালিকা মুছে ফেলতে",
217
+  "lists.edit": "তালিকা সম্পাদনা করতে",
218
+  "lists.edit.submit": "শিরোনাম সম্পাদনা করতে",
219
+  "lists.new.create": "তালিকাতে যুক্ত করতে",
220
+  "lists.new.title_placeholder": "তালিকার নতুন শিরোনাম দিতে",
221
+  "lists.search": "যাদের অনুসরণ করেন তাদের ভেতরে খুঁজুন",
222
+  "lists.subheading": "আপনার তালিকা",
223
+  "loading_indicator.label": "আসছে...",
224
+  "media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান",
225
+  "missing_indicator.label": "খুঁজে পাওয়া যায়নি",
226
+  "missing_indicator.sublabel": "জিনিসটা খুঁজে পাওয়া যায়নি",
227
+  "mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?",
228
+  "navigation_bar.apps": "মোবাইলের আপ্প",
229
+  "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
230
+  "navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
231
+  "navigation_bar.compose": "নতুন টুট লিখুন",
232
+  "navigation_bar.direct": "সরাসরি লেখা",
233
+  "navigation_bar.discover": "ঘুরে দেখুন",
234
+  "navigation_bar.domain_blocks": "বন্ধ করা ওয়েবসাইট",
235
+  "navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করুন",
236
+  "navigation_bar.favourites": "পছন্দের",
237
+  "navigation_bar.filters": "বন্ধ করা শব্দ",
238
+  "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
239
+  "navigation_bar.info": "এই সার্ভার সম্পর্কে",
240
+  "navigation_bar.keyboard_shortcuts": "চাবি ব্যবহার",
241
+  "navigation_bar.lists": "তালিকাগুলো",
242
+  "navigation_bar.logout": "বাইরে যান",
243
+  "navigation_bar.mutes": "যেসব বেভহারকারীদের কার্যক্রম বন্ধ করা আছে",
244
+  "navigation_bar.personal": "নিজস্ব",
245
+  "navigation_bar.pins": "পিন দেওয়া টুট",
246
+  "navigation_bar.preferences": "পছন্দসমূহ",
247
+  "navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা",
248
+  "navigation_bar.security": "নিরাপত্তা",
249
+  "notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
250
+  "notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
251
+  "notification.mention": "{name} আপনাকে উল্লেখ করেছেন",
252
+  "notification.poll": "আপনি ভোট দিয়েছিলেন এমন এক  নির্বাচনের ভোটের সময় শেষ হয়েছে",
253
+  "notification.reblog": "{name} আপনার কার্যক্রমে সমর্থন দেখিয়েছেন",
254
+  "notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে",
255
+  "notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?",
256
+  "notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপন",
257
+  "notifications.column_settings.favourite": "পছন্দের:",
258
+  "notifications.column_settings.filter_bar.advanced": "সব শ্রেণীগুলো দেখতে",
259
+  "notifications.column_settings.filter_bar.category": "দ্রুত ছাঁকনি বার",
260
+  "notifications.column_settings.filter_bar.show": "দেখতে",
261
+  "notifications.column_settings.follow": "নতুন অনুসরণকারীরা:",
262
+  "notifications.column_settings.mention": "প্রজ্ঞাপনগুলো:",
263
+  "notifications.column_settings.poll": "নির্বাচনের ফলাফল:",
264
+  "notifications.column_settings.push": "পুশ প্রজ্ঞাপন",
265
+  "notifications.column_settings.reblog": "সমর্থনগুলো:",
266
+  "notifications.column_settings.show": "কলামে দেখান",
267
+  "notifications.column_settings.sound": "শব্দ বাজাতে",
268
+  "notifications.filter.all": "সব",
269
+  "notifications.filter.boosts": "সমর্থনগুলো",
270
+  "notifications.filter.favourites": "পছন্দের গুলো",
271
+  "notifications.filter.follows": "অনুসরণের",
272
+  "notifications.filter.mentions": "উল্লেখিত",
273
+  "notifications.filter.polls": "নির্বাচনের ফলাফল",
274
+  "notifications.group": "{count} প্রজ্ঞাপন",
275
+  "poll.closed": "বন্ধ",
276
+  "poll.refresh": "আবার সতেজ করতে",
277
+  "poll.total_votes": "{count, plural, one {# ভোট} other {# ভোট}}",
278
+  "poll.vote": "ভোট",
279
+  "poll_button.add_poll": "একটা নির্বাচন যোগ করতে",
280
+  "poll_button.remove_poll": "নির্বাচন বাদ দিতে",
281
+  "privacy.change": "লেখার গোপনীয়তা অবস্থা ঠিক করতে",
282
+  "privacy.direct.long": "শুধুমাত্র উল্লেখিত ব্যবহারকারীদের কাছে লিখতে",
283
+  "privacy.direct.short": "সরাসরি",
284
+  "privacy.private.long": "শুধুমাত্র আপনার অনুসরণকারীদের লিখতে",
285
+  "privacy.private.short": "শুধুমাত্র অনুসরণকারীদের জন্য",
286
+  "privacy.public.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে লিখতে",
287
+  "privacy.public.short": "সর্বজনীন প্রকাশ্য",
288
+  "privacy.unlisted.long": "সর্বজনীন প্রকাশ্য সময়রেখাতে না দেখাতে",
289
+  "privacy.unlisted.short": "প্রকাশ্য নয়",
290
+  "regeneration_indicator.label": "আসছে…",
291
+  "regeneration_indicator.sublabel": "আপনার বাড়ির-সময়রেখা প্রস্তূত করা হচ্ছে!",
292
+  "relative_time.days": "{number} দিন",
293
+  "relative_time.hours": "{number} ঘন্টা",
294
+  "relative_time.just_now": "এখন",
295
+  "relative_time.minutes": "{number} মাস",
296
+  "relative_time.seconds": "{number} সেকেন্ড",
297
+  "reply_indicator.cancel": "বাতিল করতে",
298
+  "report.forward": "এটা আরো পাঠান {target} তে",
299
+  "report.forward_hint": "এই নিবন্ধনটি অন্য একটি সার্ভারে। অপ্রকাশিতনামাভাবে রিপোর্টের কপি সেখানেও কি পাঠাতে চান ?",
300
+  "report.hint": "রিপোর্টটি আপনার সার্ভারের পরিচালকের কাছে পাঠানো হবে। রিপোর্ট পাঠানোর কারণ নিচে বিস্তারিত লিখতে পারেন:",
301
+  "report.placeholder": "অন্য কোনো মন্তব্য",
302
+  "report.submit": "জমা দিন",
303
+  "report.target": "{target} রিপোর্ট করুন",
304
+  "search.placeholder": "খুঁজতে",
305
+  "search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি",
306
+  "search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা,  যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।",
307
+  "search_popout.tips.hashtag": "হ্যাশট্যাগ",
308
+  "search_popout.tips.status": "লেখা",
309
+  "search_popout.tips.text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো",
310
+  "search_popout.tips.user": "ব্যবহারকারী",
311
+  "search_results.accounts": "মানুষ",
312
+  "search_results.hashtags": "হ্যাশট্যাগগুলি",
313
+  "search_results.statuses": "টুট",
314
+  "search_results.total": "{count, number} {count, plural, one {ফলাফল} other {ফলাফল}}",
315
+  "status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন",
316
+  "status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন",
317
+  "status.block": "@{name}কে বন্ধ করুন",
318
+  "status.cancel_reblog_private": "সমর্থন বাতিল করতে",
319
+  "status.cannot_reblog": "এটিতে সমর্থন দেওয়া যাবেনা",
320
+  "status.copy": "লেখাটির লিংক কপি করতে",
321
+  "status.delete": "মুছে ফেলতে",
322
+  "status.detailed_status": "বিস্তারিত কথোপকথনের হিসেবে দেখতে",
323
+  "status.direct": "@{name} কে সরাসরি পাঠান",
324
+  "status.embed": "এমবেড করতে",
325
+  "status.favourite": "পছন্দের করতে",
326
+  "status.filtered": "ছাঁকনিদিত",
327
+  "status.load_more": "আরো দেখুন",
328
+  "status.media_hidden": "ছবি বা ভিডিও পেছনে",
329
+  "status.mention": "@{name}কে উল্লেখ করতে",
330
+  "status.more": "আরো",
331
+  "status.mute": "@{name}র কার্যক্রম সরিয়ে ফেলতে",
332
+  "status.mute_conversation": "কথোপকথননের প্রজ্ঞাপন সরিয়ে ফেলতে",
333
+  "status.open": "এটার সম্পূর্ণটা দেখতে",
334
+  "status.pin": "নিজের পাতায় এটা পিন করতে",
335
+  "status.pinned": "পিন করা টুট",
336
+  "status.read_more": "আরো পড়ুন",
337
+  "status.reblog": "সমর্থন দিতে",
338
+  "status.reblog_private": "আপনার অনুসরণকারীদের কাছে এটার সমর্থন দেখাতে",
339
+  "status.reblogged_by": "{name} সমর্থন দিয়েছে",
340
+  "status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।",
341
+  "status.redraft": "মুছে আবার নতুন করে লিখতে",
342
+  "status.reply": "মতামত জানাতে",
343
+  "status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে",
344
+  "status.report": "@{name}কে রিপোর্ট করতে",
345
+  "status.sensitive_warning": "সংবেদনশীল কিছু",
346
+  "status.share": "অন্যদের জানান",
347
+  "status.show_less": "কম দেখতে",
348
+  "status.show_less_all": "সবগুলোতে কম দেখতে",
349
+  "status.show_more": "আরো দেখাতে",
350
+  "status.show_more_all": "সবগুলোতে আরো দেখতে",
351
+  "status.show_thread": "আলোচনা দেখতে",
352
+  "status.unmute_conversation": "আলোচনার প্রজ্ঞাপন চালু করতে",
353
+  "status.unpin": "নিজের পাতা থেকে পিন করে রাখাটির পিন খুলতে",
354
+  "suggestions.dismiss": "সাহায্যের জন্য পরামর্শগুলো সরাতে",
355
+  "suggestions.header": "আপনি হয়তোবা এগুলোতে আগ্রহী হতে পারেন…",
356
+  "tabs_bar.federated_timeline": "যুক্তবিশ্ব",
357
+  "tabs_bar.home": "বাড়ি",
358
+  "tabs_bar.local_timeline": "স্থানীয়",
359
+  "tabs_bar.notifications": "প্রজ্ঞাপনগুলো",
360
+  "tabs_bar.search": "খুঁজতে",
361
+  "time_remaining.days": "{number, plural, one {# day} other {# days}} বাকি আছে",
362
+  "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} বাকি আছে",
363
+  "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} বাকি আছে",
364
+  "time_remaining.moments": "সময় বাকি আছে",
365
+  "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} বাকি আছে",
366
+  "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} কথা বলছে",
367
+  "ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।",
368
+  "upload_area.title": "টেনে এখানে ছেড়ে দিলে এখানে যুক্ত করা যাবে",
369
+  "upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের JPEG, PNG, GIF, WebM, MP4, MOV)",
370
+  "upload_error.limit": "যা যুক্ত করতে চাচ্ছেন সেটি বেশি বড়, এখানকার সর্বাধিকের মেমোরির উপরে চলে গেছে।",
371
+  "upload_error.poll": "নির্বাচনক্ষেত্রে কোনো ফাইল যুক্ত করা যাবেনা।",
372
+  "upload_form.description": "যারা দেখতে পায়না তাদের জন্য এটা বর্ণনা করতে",
373
+  "upload_form.focus": "সাধারণ দেখাটি পরিবর্তন করতে",
374
+  "upload_form.undo": "মুছে ফেলতে",
375
+  "upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...",
376
+  "video.close": "ভিডিওটি বন্ধ করতে",
377
+  "video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে",
378
+  "video.expand": "ভিডিওটি বড়ো করতে",
379
+  "video.fullscreen": "পূর্ণ পর্দা করতে",
380
+  "video.hide": "ভিডিওটি লুকাতে",
381
+  "video.mute": "শব্দ বন্ধ করতে",
382
+  "video.pause": "থামাতে",
383
+  "video.play": "শুরু করতে",
384
+  "video.unmute": "শব্দ চালু করতে"
384 385
 }

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

@@ -342,7 +342,6 @@
342 342
   "status.reply": "Odpovědět",
343 343
   "status.replyAll": "Odpovědět na vlákno",
344 344
   "status.report": "Nahlásit uživatele @{name}",
345
-  "status.sensitive_toggle": "Klikněte pro zobrazení",
346 345
   "status.sensitive_warning": "Citlivý obsah",
347 346
   "status.share": "Sdílet",
348 347
   "status.show_less": "Zobrazit méně",

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

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tŵt",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
81 82
   "compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
82 83
   "compose_form.spoiler.marked": "Testun wedi ei guddio gan rybudd",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Cau",
210 211
   "lightbox.next": "Nesaf",
211 212
   "lightbox.previous": "Blaenorol",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Ychwanegwch at restr",
213 215
   "lists.account.remove": "Dileu o'r rhestr",
214 216
   "lists.delete": "Dileu rhestr",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Ateb",
341 343
   "status.replyAll": "Ateb i edefyn",
342 344
   "status.report": "Adrodd @{name}",
343
-  "status.sensitive_toggle": "Clicio i weld",
344 345
   "status.sensitive_warning": "Cynnwys sensitif",
345 346
   "status.share": "Rhannu",
346 347
   "status.show_less": "Dangos llai",

+ 2
- 1
app/javascript/mastodon/locales/da.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Trut",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Medie er markeret som værende følsomt",
81 82
   "compose_form.sensitive.unmarked": "Mediet er ikke markeret som værende følsomt",
82 83
   "compose_form.spoiler.marked": "Teksten er skjult bag en advarsel",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Luk",
210 211
   "lightbox.next": "Næste",
211 212
   "lightbox.previous": "Forrige",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Tilføj til liste",
213 215
   "lists.account.remove": "Fjern fra liste",
214 216
   "lists.delete": "Slet liste",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Svar",
341 343
   "status.replyAll": "Svar samtale",
342 344
   "status.report": "Anmeld @{name}",
343
-  "status.sensitive_toggle": "Tryk for at se",
344 345
   "status.sensitive_warning": "Følsomt indhold",
345 346
   "status.share": "Del",
346 347
   "status.show_less": "Vis mindre",

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

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Auswahl entfernen",
78 78
   "compose_form.publish": "Tröt",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Medien sind als heikel markiert",
81 82
   "compose_form.sensitive.unmarked": "Medien sind nicht als heikel markiert",
82 83
   "compose_form.spoiler.marked": "Text ist hinter einer Warnung versteckt",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Schließen",
210 211
   "lightbox.next": "Weiter",
211 212
   "lightbox.previous": "Zurück",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Zur Liste hinzufügen",
213 215
   "lists.account.remove": "Von der Liste entfernen",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Antworten",
341 343
   "status.replyAll": "Auf Thread antworten",
342 344
   "status.report": "@{name} melden",
343
-  "status.sensitive_toggle": "Zum Ansehen klicken",
344 345
   "status.sensitive_warning": "Heikle Inhalte",
345 346
   "status.share": "Teilen",
346 347
   "status.show_less": "Weniger anzeigen",

+ 4
- 0
app/javascript/mastodon/locales/defaultMessages.json View File

@@ -2157,6 +2157,10 @@
2157 2157
   {
2158 2158
     "descriptors": [
2159 2159
       {
2160
+        "defaultMessage": "Unboost",
2161
+        "id": "status.cancel_reblog_private"
2162
+      },
2163
+      {
2160 2164
         "defaultMessage": "Boost",
2161 2165
         "id": "status.reblog"
2162 2166
       },

+ 2
- 1
app/javascript/mastodon/locales/el.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Αφαίρεση επιλογής",
78 78
   "compose_form.publish": "Τουτ",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Το πολυμέσο έχει σημειωθεί ως ευαίσθητο",
81 82
   "compose_form.sensitive.unmarked": "Το πολυμέσο δεν έχει σημειωθεί ως ευαίσθητο",
82 83
   "compose_form.spoiler.marked": "Κείμενο κρυμμένο πίσω από προειδοποίηση",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Κλείσιμο",
210 211
   "lightbox.next": "Επόμενο",
211 212
   "lightbox.previous": "Προηγούμενο",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Πρόσθεσε στη λίστα",
213 215
   "lists.account.remove": "Βγάλε από τη λίστα",
214 216
   "lists.delete": "Διαγραφή λίστας",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Απάντησε",
341 343
   "status.replyAll": "Απάντησε στην συζήτηση",
342 344
   "status.report": "Κατάγγειλε @{name}",
343
-  "status.sensitive_toggle": "Κλικ για να δεις",
344 345
   "status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
345 346
   "status.share": "Μοιράσου",
346 347
   "status.show_less": "Δείξε λιγότερα",

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

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Forigi ĉi tiu elekton",
78 78
   "compose_form.publish": "Hup",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Aŭdovidaĵo markita tikla",
81 82
   "compose_form.sensitive.unmarked": "Aŭdovidaĵo ne markita tikla",
82 83
   "compose_form.spoiler.marked": "Teksto kaŝita malantaŭ averto",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Fermi",
210 211
   "lightbox.next": "Sekva",
211 212
   "lightbox.previous": "Antaŭa",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Aldoni al la listo",
213 215
   "lists.account.remove": "Forigi de la listo",
214 216
   "lists.delete": "Forigi la liston",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Respondi",
341 343
   "status.replyAll": "Respondi al la fadeno",
342 344
   "status.report": "Signali @{name}",
343
-  "status.sensitive_toggle": "Alklaki por vidi",
344 345
   "status.sensitive_warning": "Tikla enhavo",
345 346
   "status.share": "Diskonigi",
346 347
   "status.show_less": "Malgrandigi",

+ 2
- 1
app/javascript/mastodon/locales/es.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tootear",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Material marcado como sensible",
81 82
   "compose_form.sensitive.unmarked": "Material no marcado como sensible",
82 83
   "compose_form.spoiler.marked": "Texto oculto tras la advertencia",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Cerrar",
210 211
   "lightbox.next": "Siguiente",
211 212
   "lightbox.previous": "Anterior",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Añadir a lista",
213 215
   "lists.account.remove": "Quitar de lista",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Responder",
341 343
   "status.replyAll": "Responder al hilo",
342 344
   "status.report": "Reportar",
343
-  "status.sensitive_toggle": "Haz clic para ver",
344 345
   "status.sensitive_warning": "Contenido sensible",
345 346
   "status.share": "Compartir",
346 347
   "status.show_less": "Mostrar menos",

+ 2
- 1
app/javascript/mastodon/locales/eu.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Multimedia edukia hunkigarri gisa markatu da",
81 82
   "compose_form.sensitive.unmarked": "Multimedia edukia ez da hunkigarri gisa markatu",
82 83
   "compose_form.spoiler.marked": "Testua abisu batek ezkutatzen du",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Itxi",
210 211
   "lightbox.next": "Hurrengoa",
211 212
   "lightbox.previous": "Aurrekoa",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Gehitu zerrendara",
213 215
   "lists.account.remove": "Kendu zerrendatik",
214 216
   "lists.delete": "Ezabatu zerrenda",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Erantzun",
341 343
   "status.replyAll": "Erantzun harian",
342 344
   "status.report": "Salatu @{name}",
343
-  "status.sensitive_toggle": "Egin klik ikusteko",
344 345
   "status.sensitive_warning": "Kontuz: Eduki hunkigarria",
345 346
   "status.share": "Partekatu",
346 347
   "status.show_less": "Erakutsi gutxiago",

+ 2
- 1
app/javascript/mastodon/locales/fa.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "حذف این گزینه",
78 78
   "compose_form.publish": "بوق",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "این تصویر به عنوان حساس علامت‌گذاری شده",
81 82
   "compose_form.sensitive.unmarked": "این تصویر به عنوان حساس علامت‌گذاری نشده",
82 83
   "compose_form.spoiler.marked": "نوشته پشت هشدار محتوا پنهان است",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "بستن",
210 211
   "lightbox.next": "بعدی",
211 212
   "lightbox.previous": "قبلی",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "افزودن به فهرست",
213 215
   "lists.account.remove": "پاک‌کردن از فهرست",
214 216
   "lists.delete": "حذف فهرست",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "پاسخ",
341 343
   "status.replyAll": "به نوشته پاسخ دهید",
342 344
   "status.report": "گزارش دادن @{name}",
343
-  "status.sensitive_toggle": "برای دیدن کلیک کنید",
344 345
   "status.sensitive_warning": "محتوای حساس",
345 346
   "status.share": "هم‌رسانی",
346 347
   "status.show_less": "نهفتن",

+ 2
- 1
app/javascript/mastodon/locales/fi.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tuuttaa",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media on merkitty arkaluontoiseksi",
81 82
   "compose_form.sensitive.unmarked": "Mediaa ei ole merkitty arkaluontoiseksi",
82 83
   "compose_form.spoiler.marked": "Teksti on piilotettu varoituksen taakse",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Sulje",
210 211
   "lightbox.next": "Seuraava",
211 212
   "lightbox.previous": "Edellinen",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Lisää listaan",
213 215
   "lists.account.remove": "Poista listasta",
214 216
   "lists.delete": "Poista lista",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Vastaa",
341 343
   "status.replyAll": "Vastaa ketjuun",
342 344
   "status.report": "Raportoi @{name}",
343
-  "status.sensitive_toggle": "Klikkaa nähdäksesi",
344 345
   "status.sensitive_warning": "Arkaluontoista sisältöä",
345 346
   "status.share": "Jaa",
346 347
   "status.show_less": "Näytä vähemmän",

+ 2
- 1
app/javascript/mastodon/locales/gl.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Medios marcados como sensibles",
81 82
   "compose_form.sensitive.unmarked": "Os medios non están marcados como sensibles",
82 83
   "compose_form.spoiler.marked": "O texto está agochado tras un aviso",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Fechar",
210 211
   "lightbox.next": "Seguinte",
211 212
   "lightbox.previous": "Anterior",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Engadir á lista",
213 215
   "lists.account.remove": "Eliminar da lista",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Resposta",
341 343
   "status.replyAll": "Resposta a conversa",
342 344
   "status.report": "Informar @{name}",
343
-  "status.sensitive_toggle": "Pulse para ver",
344 345
   "status.sensitive_warning": "Contido sensible",
345 346
   "status.share": "Compartir",
346 347
   "status.show_less": "Mostrar menos",

+ 2
- 1
app/javascript/mastodon/locales/he.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "ללחוש",
79 79
   "compose_form.publish_loud": "לחצרץ!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "סגירה",
210 211
   "lightbox.next": "הלאה",
211 212
   "lightbox.previous": "הקודם",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "תגובה",
341 343
   "status.replyAll": "תגובה לכולם",
342 344
   "status.report": "דיווח על @{name}",
343
-  "status.sensitive_toggle": "לחצו כדי לראות",
344 345
   "status.sensitive_warning": "תוכן רגיש",
345 346
   "status.share": "שיתוף",
346 347
   "status.show_less": "הראה פחות",

+ 2
- 1
app/javascript/mastodon/locales/hi.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Close",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Reply",
341 343
   "status.replyAll": "Reply to thread",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Click to view",
344 345
   "status.sensitive_warning": "Sensitive content",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Show less",

+ 2
- 1
app/javascript/mastodon/locales/hr.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Zatvori",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Odgovori",
341 343
   "status.replyAll": "Odgovori na temu",
342 344
   "status.report": "Prijavi @{name}",
343
-  "status.sensitive_toggle": "Klikni da bi vidio",
344 345
   "status.sensitive_warning": "Osjetljiv sadržaj",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Pokaži manje",

+ 2
- 1
app/javascript/mastodon/locales/hu.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tülk",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Bezárás",
210 211
   "lightbox.next": "Következő",
211 212
   "lightbox.previous": "Előző",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Hozzáadás a listához",
213 215
   "lists.account.remove": "Eltávolít a listából",
214 216
   "lists.delete": "Lista törlése",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Válasz",
341 343
   "status.replyAll": "Válaszolj a beszélgetésre",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Katt a megtekintéshez",
344 345
   "status.sensitive_warning": "Érzékeny tartalom",
345 346
   "status.share": "Megosztás",
346 347
   "status.show_less": "Kevesebb",

+ 2
- 1
app/javascript/mastodon/locales/hy.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Թթել",
79 79
   "compose_form.publish_loud": "Թթե՜լ",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Փակել",
210 211
   "lightbox.next": "Հաջորդ",
211 212
   "lightbox.previous": "Նախորդ",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Ավելացնել ցանկին",
213 215
   "lists.account.remove": "Հանել ցանկից",
214 216
   "lists.delete": "Ջնջել ցանկը",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Պատասխանել",
341 343
   "status.replyAll": "Պատասխանել թելին",
342 344
   "status.report": "Բողոքել @{name}֊ից",
343
-  "status.sensitive_toggle": "Կտացրու՝ դիտելու համար",
344 345
   "status.sensitive_warning": "Կասկածելի բովանդակություն",
345 346
   "status.share": "Կիսվել",
346 347
   "status.show_less": "Պակաս",

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

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Sumber ini telah ditandai sebagai sumber sensitif.",
81 82
   "compose_form.sensitive.unmarked": "Sumber ini tidak ditandai sebagai sumber sensitif",
82 83
   "compose_form.spoiler.marked": "Teks disembunyikan dibalik peringatan",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Tutup",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Balas",
341 343
   "status.replyAll": "Balas ke semua",
342 344
   "status.report": "Laporkan @{name}",
343
-  "status.sensitive_toggle": "Klik untuk menampilkan",
344 345
   "status.sensitive_warning": "Konten sensitif",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Tampilkan lebih sedikit",

+ 2
- 1
app/javascript/mastodon/locales/io.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Siflar",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Klozar",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Respondar",
341 343
   "status.replyAll": "Respondar a filo",
342 344
   "status.report": "Denuncar @{name}",
343
-  "status.sensitive_toggle": "Kliktar por vidar",
344 345
   "status.sensitive_warning": "Trubliva kontenajo",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Montrar mine",

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

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Questo media è contrassegnato come sensibile",
81 82
   "compose_form.sensitive.unmarked": "Questo media non è contrassegnato come sensibile",
82 83
   "compose_form.spoiler.marked": "Il testo è nascosto dall'avviso",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Chiudi",
210 211
   "lightbox.next": "Successivo",
211 212
   "lightbox.previous": "Precedente",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Aggiungi alla lista",
213 215
   "lists.account.remove": "Togli dalla lista",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Rispondi",
341 343
   "status.replyAll": "Rispondi alla conversazione",
342 344
   "status.report": "Segnala @{name}",
343
-  "status.sensitive_toggle": "Clicca per vedere",
344 345
   "status.sensitive_warning": "Materiale sensibile",
345 346
   "status.share": "Condividi",
346 347
   "status.show_less": "Mostra meno",

+ 2
- 1
app/javascript/mastodon/locales/ka.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "ტუტი",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "მედია მონიშნულია მგრძნობიარედ",
81 82
   "compose_form.sensitive.unmarked": "მედია არაა მონიშნული მგრძნობიარედ",
82 83
   "compose_form.spoiler.marked": "გაფრთხილების უკან ტექსტი დამალულია",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "დახურვა",
210 211
   "lightbox.next": "შემდეგი",
211 212
   "lightbox.previous": "წინა",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "სიაში დამატება",
213 215
   "lists.account.remove": "სიიდან ამოშლა",
214 216
   "lists.delete": "სიის წაშლა",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "პასუხი",
341 343
   "status.replyAll": "უპასუხე თემას",
342 344
   "status.report": "დაარეპორტე @{name}",
343
-  "status.sensitive_toggle": "დააწკაპუნეთ სანახავად",
344 345
   "status.sensitive_warning": "მგრძნობიარე კონტენტი",
345 346
   "status.share": "გაზიარება",
346 347
   "status.show_less": "აჩვენე ნაკლები",

+ 2
- 1
app/javascript/mastodon/locales/kk.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Бұл жауапты өшір",
78 78
   "compose_form.publish": "Түрт",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Медиа нәзік деп белгіленген",
81 82
   "compose_form.sensitive.unmarked": "Медиа нәзік деп белгіленбеген",
82 83
   "compose_form.spoiler.marked": "Мәтін ескертумен жасырылған",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Жабу",
210 211
   "lightbox.next": "Келесі",
211 212
   "lightbox.previous": "Алдыңғы",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Тізімге қосу",
213 215
   "lists.account.remove": "Тізімнен шығару",
214 216
   "lists.delete": "Тізімді өшіру",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Жауап",
341 343
   "status.replyAll": "Тақырыпқа жауап",
342 344
   "status.report": "Шағым @{name}",
343
-  "status.sensitive_toggle": "Қарау үшін басыңыз",
344 345
   "status.sensitive_warning": "Нәзік контент",
345 346
   "status.share": "Бөлісу",
346 347
   "status.show_less": "Аздап көрсет",

+ 2
- 1
app/javascript/mastodon/locales/ko.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "이 항목 삭제",
78 78
   "compose_form.publish": "툿",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다",
81 82
   "compose_form.sensitive.unmarked": "미디어가 열람주의로 설정 되어 있지 않습니다",
82 83
   "compose_form.spoiler.marked": "열람주의가 설정되어 있습니다",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "닫기",
210 211
   "lightbox.next": "다음",
211 212
   "lightbox.previous": "이전",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "리스트에 추가",
213 215
   "lists.account.remove": "리스트에서 제거",
214 216
   "lists.delete": "리스트 삭제",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "답장",
341 343
   "status.replyAll": "전원에게 답장",
342 344
   "status.report": "신고",
343
-  "status.sensitive_toggle": "클릭해서 표시하기",
344 345
   "status.sensitive_warning": "민감한 미디어",
345 346
   "status.share": "공유",
346 347
   "status.show_less": "숨기기",

+ 2
- 1
app/javascript/mastodon/locales/lv.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Publicēt",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Mēdijs ir atzīmēts kā sensitīvs",
81 82
   "compose_form.sensitive.unmarked": "Mēdijs nav atzīmēts kā sensitīvs",
82 83
   "compose_form.spoiler.marked": "Teksts ir paslēpts aiz brīdinājuma",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Close",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Reply",
341 343
   "status.replyAll": "Reply to thread",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Click to view",
344 345
   "status.sensitive_warning": "Sensitive content",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Show less",

+ 2
- 1
app/javascript/mastodon/locales/ms.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Toot",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Close",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Reply",
341 343
   "status.replyAll": "Reply to thread",
342 344
   "status.report": "Report @{name}",
343
-  "status.sensitive_toggle": "Click to view",
344 345
   "status.sensitive_warning": "Sensitive content",
345 346
   "status.share": "Share",
346 347
   "status.show_less": "Show less",

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

@@ -210,6 +210,7 @@
210 210
   "lightbox.close": "Sluiten",
211 211
   "lightbox.next": "Volgende",
212 212
   "lightbox.previous": "Vorige",
213
+  "lightbox.view_context": "View context",
213 214
   "lists.account.add": "Aan lijst toevoegen",
214 215
   "lists.account.remove": "Uit lijst verwijderen",
215 216
   "lists.delete": "Lijst verwijderen",
@@ -341,7 +342,6 @@
341 342
   "status.reply": "Reageren",
342 343
   "status.replyAll": "Reageer op iedereen",
343 344
   "status.report": "Rapporteer @{name}",
344
-  "status.sensitive_toggle": "Klik om te bekijken",
345 345
   "status.sensitive_warning": "Gevoelige inhoud",
346 346
   "status.share": "Delen",
347 347
   "status.show_less": "Minder tonen",

+ 2
- 1
app/javascript/mastodon/locales/no.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tut",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media is marked as sensitive",
81 82
   "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
82 83
   "compose_form.spoiler.marked": "Text is hidden behind warning",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Lukk",
210 211
   "lightbox.next": "Neste",
211 212
   "lightbox.previous": "Forrige",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Legg til i listen",
213 215
   "lists.account.remove": "Fjern fra listen",
214 216
   "lists.delete": "Slett listen",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Svar",
341 343
   "status.replyAll": "Svar til samtale",
342 344
   "status.report": "Rapporter @{name}",
343
-  "status.sensitive_toggle": "Klikk for å vise",
344 345
   "status.sensitive_warning": "Følsomt innhold",
345 346
   "status.share": "Del",
346 347
   "status.show_less": "Vis mindre",

+ 2
- 1
app/javascript/mastodon/locales/oc.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Levar aquesta opcion",
78 78
   "compose_form.publish": "Tut",
79 79
   "compose_form.publish_loud": "{publish} !",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
81 82
   "compose_form.sensitive.unmarked": "Lo mèdia es pas marcat coma sensible",
82 83
   "compose_form.spoiler.marked": "Lo tèxte es rescondut jos l’avertiment",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Tampar",
210 211
   "lightbox.next": "Seguent",
211 212
   "lightbox.previous": "Precedent",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Ajustar a la lista",
213 215
   "lists.account.remove": "Levar de la lista",
214 216
   "lists.delete": "Suprimir la lista",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Respondre",
341 343
   "status.replyAll": "Respondre a la conversacion",
342 344
   "status.report": "Senhalar @{name}",
343
-  "status.sensitive_toggle": "Clicar per mostrar",
344 345
   "status.sensitive_warning": "Contengut sensible",
345 346
   "status.share": "Partejar",
346 347
   "status.show_less": "Tornar plegar",

+ 2
- 1
app/javascript/mastodon/locales/pl.json View File

@@ -81,6 +81,7 @@
81 81
   "compose_form.poll.remove_option": "Usuń tę opcję",
82 82
   "compose_form.publish": "Wyślij",
83 83
   "compose_form.publish_loud": "{publish}!",
84
+  "compose_form.sensitive.hide": "Mark media as sensitive",
84 85
   "compose_form.sensitive.marked": "Zawartość multimedia jest oznaczona jako wrażliwa",
85 86
   "compose_form.sensitive.unmarked": "Zawartość multimedialna nie jest oznaczona jako wrażliwa",
86 87
   "compose_form.spoiler.marked": "Tekst jest ukryty za ostrzeżeniem",
@@ -213,6 +214,7 @@
213 214
   "lightbox.close": "Zamknij",
214 215
   "lightbox.next": "Następne",
215 216
   "lightbox.previous": "Poprzednie",
217
+  "lightbox.view_context": "View context",
216 218
   "lists.account.add": "Dodaj do listy",
217 219
   "lists.account.remove": "Usunąć z listy",
218 220
   "lists.delete": "Usuń listę",
@@ -345,7 +347,6 @@
345 347
   "status.reply": "Odpowiedz",
346 348
   "status.replyAll": "Odpowiedz na wątek",
347 349
   "status.report": "Zgłoś @{name}",
348
-  "status.sensitive_toggle": "Naciśnij aby wyświetlić",
349 350
   "status.sensitive_warning": "Wrażliwa zawartość",
350 351
   "status.share": "Udostępnij",
351 352
   "status.show_less": "Zwiń",

+ 2
- 1
app/javascript/mastodon/locales/pt-BR.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remover essa opção",
78 78
   "compose_form.publish": "Publicar",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Mídia está marcada como sensível",
81 82
   "compose_form.sensitive.unmarked": "Mídia não está marcada como sensível",
82 83
   "compose_form.spoiler.marked": "O texto está escondido por um aviso de conteúdo",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Fechar",
210 211
   "lightbox.next": "Próximo",
211 212
   "lightbox.previous": "Anterior",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Adicionar a listas",
213 215
   "lists.account.remove": "Remover da lista",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Responder",
341 343
   "status.replyAll": "Responder à sequência",
342 344
   "status.report": "Denunciar @{name}",
343
-  "status.sensitive_toggle": "Clique para ver",
344 345
   "status.sensitive_warning": "Conteúdo sensível",
345 346
   "status.share": "Compartilhar",
346 347
   "status.show_less": "Mostrar menos",

+ 2
- 1
app/javascript/mastodon/locales/pt.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Publicar",
79 79
   "compose_form.publish_loud": "{publicar}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media marcado como sensível",
81 82
   "compose_form.sensitive.unmarked": "Media não está marcado como sensível",
82 83
   "compose_form.spoiler.marked": "Texto escondido atrás de aviso",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Fechar",
210 211
   "lightbox.next": "Próximo",
211 212
   "lightbox.previous": "Anterior",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Adicionar à lista",
213 215
   "lists.account.remove": "Remover da lista",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Responder",
341 343
   "status.replyAll": "Responder à conversa",
342 344
   "status.report": "Denunciar @{name}",
343
-  "status.sensitive_toggle": "Clique para ver",
344 345
   "status.sensitive_warning": "Conteúdo sensível",
345 346
   "status.share": "Compartilhar",
346 347
   "status.show_less": "Mostrar menos",

+ 2
- 1
app/javascript/mastodon/locales/ro.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Postează",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Conținutul media este marcat ca sensibil",
81 82
   "compose_form.sensitive.unmarked": "Conținutul media nu este marcat ca sensibil",
82 83
   "compose_form.spoiler.marked": "Textul este ascuns sub o avertizare",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Închide",
210 211
   "lightbox.next": "Următorul",
211 212
   "lightbox.previous": "Precedentul",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Adaugă în listă",
213 215
   "lists.account.remove": "Elimină din listă",
214 216
   "lists.delete": "Șterge lista",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Răspunde",
341 343
   "status.replyAll": "Răspunde la topic",
342 344
   "status.report": "Raportează @{name}",
343
-  "status.sensitive_toggle": "Afișează",
344 345
   "status.sensitive_warning": "Conținut sensibil",
345 346
   "status.share": "Distribuie",
346 347
   "status.show_less": "Arată mai puțin",

+ 2
- 1
app/javascript/mastodon/locales/ru.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Удалить этот вариант",
78 78
   "compose_form.publish": "Трубить",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Медиафайлы не отмечены как чувствительные",
81 82
   "compose_form.sensitive.unmarked": "Медиафайлы не отмечены как чувствительные",
82 83
   "compose_form.spoiler.marked": "Текст скрыт за предупреждением",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Закрыть",
210 211
   "lightbox.next": "Далее",
211 212
   "lightbox.previous": "Назад",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Добавить в список",
213 215
   "lists.account.remove": "Убрать из списка",
214 216
   "lists.delete": "Удалить список",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Ответить",
341 343
   "status.replyAll": "Ответить всем",
342 344
   "status.report": "Пожаловаться",
343
-  "status.sensitive_toggle": "Нажмите для просмотра",
344 345
   "status.sensitive_warning": "Чувствительный контент",
345 346
   "status.share": "Поделиться",
346 347
   "status.show_less": "Свернуть",

+ 2
- 1
app/javascript/mastodon/locales/sk.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Odstráň túto voľbu",
78 78
   "compose_form.publish": "Pošli",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Médiálny obsah je označený ako chúlostivý",
81 82
   "compose_form.sensitive.unmarked": "Médiálny obsah nieje označený ako chúlostivý",
82 83
   "compose_form.spoiler.marked": "Text je ukrytý za varovaním",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Zatvor",
210 211
   "lightbox.next": "Ďalšie",
211 212
   "lightbox.previous": "Predchádzajúci",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Pridaj do zoznamu",
213 215
   "lists.account.remove": "Odober zo zoznamu",
214 216
   "lists.delete": "Vymaž list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Odpovedať",
341 343
   "status.replyAll": "Odpovedz na diskusiu",
342 344
   "status.report": "Nahlás @{name}",
343
-  "status.sensitive_toggle": "Klikni pre zobrazenie",
344 345
   "status.sensitive_warning": "Chúlostivý obsah",
345 346
   "status.share": "Zdieľaj",
346 347
   "status.show_less": "Zobraz menej",

+ 2
- 1
app/javascript/mastodon/locales/sl.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Tutni",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Medij je označen kot občutljiv",
81 82
   "compose_form.sensitive.unmarked": "Medij ni označen kot občutljiv",
82 83
   "compose_form.spoiler.marked": "Besedilo je skrito za opozorilom",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Close",
210 211
   "lightbox.next": "Next",
211 212
   "lightbox.previous": "Previous",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Add to list",
213 215
   "lists.account.remove": "Remove from list",
214 216
   "lists.delete": "Delete list",
@@ -340,7 +342,6 @@
340 342
   "status.reply": "Odgovori",
341 343
   "status.replyAll": "Odgovori na objavo",
342 344
   "status.report": "Prijavi @{name}",
343
-  "status.sensitive_toggle": "Kliknite za ogled",
344 345
   "status.sensitive_warning": "Občutljiva vsebina",
345 346
   "status.share": "Deli",
346 347
   "status.show_less": "Prikaži manj",

+ 2
- 1
app/javascript/mastodon/locales/sq.json View File

@@ -77,6 +77,7 @@
77 77
   "compose_form.poll.remove_option": "Remove this choice",
78 78
   "compose_form.publish": "Mesazh",
79 79
   "compose_form.publish_loud": "{publish}!",
80
+  "compose_form.sensitive.hide": "Mark media as sensitive",
80 81
   "compose_form.sensitive.marked": "Media është shënuar si rezervat",
81 82
   "compose_form.sensitive.unmarked": "Media s’është shënuar si rezervat",
82 83
   "compose_form.spoiler.marked": "Teksti është fshehur pas sinjalizimit",
@@ -209,6 +210,7 @@
209 210
   "lightbox.close": "Mbylle",
210 211
   "lightbox.next": "Pasuesja",
211 212
   "lightbox.previous": "E mëparshmja",
213
+  "lightbox.view_context": "View context",
212 214
   "lists.account.add": "Shto në listë",
213 215
   "lists.account.remove": "Hiqe nga lista",
214 216
   "lists.delete": "Fshije listën",
@@ -340,7 +342,6 @@
340