Merge pull request #1065 from ThibG/glitch-soc/merge-upstream

Merge upstream changes
master
ThibG 6 years ago committed by GitHub
commit c394d3cb25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .github/FUNDING.yml
  2. 6
      Gemfile
  3. 30
      Gemfile.lock
  4. 6
      app/controllers/api/v1/notifications_controller.rb
  5. 29
      app/controllers/concerns/signature_verification.rb
  6. 1
      app/javascript/flavours/glitch/styles/components/emoji.scss
  7. 2
      app/javascript/mastodon/components/autosuggest_input.js
  8. 10
      app/javascript/mastodon/features/compose/index.js
  9. 19
      app/javascript/mastodon/features/getting_started/index.js
  10. 10
      app/javascript/mastodon/features/ui/components/columns_area.js
  11. 23
      app/javascript/mastodon/features/ui/components/notifications_counter_icon.js
  12. 3
      app/javascript/mastodon/features/ui/components/tabs_bar.js
  13. 17
      app/javascript/mastodon/features/ui/index.js
  14. 3
      app/javascript/mastodon/locales/ar.json
  15. 3
      app/javascript/mastodon/locales/ast.json
  16. 3
      app/javascript/mastodon/locales/bg.json
  17. 753
      app/javascript/mastodon/locales/bn.json
  18. 1
      app/javascript/mastodon/locales/cs.json
  19. 3
      app/javascript/mastodon/locales/cy.json
  20. 3
      app/javascript/mastodon/locales/da.json
  21. 3
      app/javascript/mastodon/locales/de.json
  22. 4
      app/javascript/mastodon/locales/defaultMessages.json
  23. 3
      app/javascript/mastodon/locales/el.json
  24. 3
      app/javascript/mastodon/locales/eo.json
  25. 3
      app/javascript/mastodon/locales/es.json
  26. 3
      app/javascript/mastodon/locales/eu.json
  27. 3
      app/javascript/mastodon/locales/fa.json
  28. 3
      app/javascript/mastodon/locales/fi.json
  29. 3
      app/javascript/mastodon/locales/gl.json
  30. 3
      app/javascript/mastodon/locales/he.json
  31. 3
      app/javascript/mastodon/locales/hi.json
  32. 3
      app/javascript/mastodon/locales/hr.json
  33. 3
      app/javascript/mastodon/locales/hu.json
  34. 3
      app/javascript/mastodon/locales/hy.json
  35. 3
      app/javascript/mastodon/locales/id.json
  36. 3
      app/javascript/mastodon/locales/io.json
  37. 3
      app/javascript/mastodon/locales/it.json
  38. 3
      app/javascript/mastodon/locales/ka.json
  39. 3
      app/javascript/mastodon/locales/kk.json
  40. 3
      app/javascript/mastodon/locales/ko.json
  41. 3
      app/javascript/mastodon/locales/lv.json
  42. 3
      app/javascript/mastodon/locales/ms.json
  43. 2
      app/javascript/mastodon/locales/nl.json
  44. 3
      app/javascript/mastodon/locales/no.json
  45. 3
      app/javascript/mastodon/locales/oc.json
  46. 3
      app/javascript/mastodon/locales/pl.json
  47. 3
      app/javascript/mastodon/locales/pt-BR.json
  48. 3
      app/javascript/mastodon/locales/pt.json
  49. 3
      app/javascript/mastodon/locales/ro.json
  50. 3
      app/javascript/mastodon/locales/ru.json
  51. 3
      app/javascript/mastodon/locales/sk.json
  52. 3
      app/javascript/mastodon/locales/sl.json
  53. 3
      app/javascript/mastodon/locales/sq.json
  54. 3
      app/javascript/mastodon/locales/sr-Latn.json
  55. 3
      app/javascript/mastodon/locales/sr.json
  56. 3
      app/javascript/mastodon/locales/sv.json
  57. 3
      app/javascript/mastodon/locales/ta.json
  58. 3
      app/javascript/mastodon/locales/te.json
  59. 3
      app/javascript/mastodon/locales/th.json
  60. 3
      app/javascript/mastodon/locales/tr.json
  61. 3
      app/javascript/mastodon/locales/uk.json
  62. 3
      app/javascript/mastodon/locales/zh-CN.json
  63. 3
      app/javascript/mastodon/locales/zh-HK.json
  64. 3
      app/javascript/mastodon/locales/zh-TW.json
  65. 2
      app/javascript/mastodon/reducers/settings.js
  66. 329
      app/javascript/styles/mastodon/components.scss
  67. 8
      app/models/notification.rb
  68. 2
      app/workers/activitypub/delivery_worker.rb
  69. 20
      config/locales/sk.yml
  70. 4
      package.json
  71. 66
      spec/controllers/api/v1/notifications_controller_spec.rb
  72. 25
      streaming/index.js
  73. 10
      yarn.lock

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

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

@ -76,17 +76,17 @@ GEM
av (0.9.0) av (0.9.0)
cocaine (~> 0.5.3) cocaine (~> 0.5.3)
aws-eventstream (1.0.3) aws-eventstream (1.0.3)
aws-partitions (1.162.0) aws-partitions (1.165.0)
aws-sdk-core (3.52.1) aws-sdk-core (3.53.0)
aws-eventstream (~> 1.0, >= 1.0.2) aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1.0) aws-partitions (~> 1.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
jmespath (~> 1.0) jmespath (~> 1.0)
aws-sdk-kms (1.20.0) aws-sdk-kms (1.21.0)
aws-sdk-core (~> 3, >= 3.52.1) aws-sdk-core (~> 3, >= 3.53.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.39.0) aws-sdk-s3 (1.40.0)
aws-sdk-core (~> 3, >= 3.52.1) aws-sdk-core (~> 3, >= 3.53.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.0) aws-sigv4 (~> 1.0)
aws-sigv4 (1.1.0) aws-sigv4 (1.1.0)
@ -129,14 +129,13 @@ GEM
sshkit (~> 1.3) sshkit (~> 1.3)
capistrano-yarn (2.0.2) capistrano-yarn (2.0.2)
capistrano (~> 3.0) capistrano (~> 3.0)
capybara (3.20.0) capybara (3.20.2)
addressable addressable
mini_mime (>= 0.1.3) mini_mime (>= 0.1.3)
nokogiri (~> 1.8) nokogiri (~> 1.8)
rack (>= 1.6.0) rack (>= 1.6.0)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
regexp_parser (~> 1.2) regexp_parser (~> 1.2)
uglifier
xpath (~> 3.2) xpath (~> 3.2)
case_transform (0.2) case_transform (0.2)
activesupport activesupport
@ -208,7 +207,6 @@ GEM
et-orbi (1.1.6) et-orbi (1.1.6)
tzinfo tzinfo
excon (0.62.0) excon (0.62.0)
execjs (2.7.0)
fabrication (2.20.2) fabrication (2.20.2)
faker (1.9.3) faker (1.9.3)
i18n (>= 0.7) i18n (>= 0.7)
@ -273,7 +271,7 @@ GEM
domain_name (~> 0.5) domain_name (~> 0.5)
http-form_data (2.1.1) http-form_data (2.1.1)
http_accept_language (2.1.1) http_accept_language (2.1.1)
httplog (1.2.2) httplog (1.3.0)
rack (>= 1.0) rack (>= 1.0)
rainbow (>= 2.0.0) rainbow (>= 2.0.0)
i18n (1.6.0) i18n (1.6.0)
@ -324,7 +322,7 @@ GEM
letter_opener (~> 1.0) letter_opener (~> 1.0)
railties (>= 3.2) railties (>= 3.2)
link_header (0.0.8) link_header (0.0.8)
lograge (0.11.0) lograge (0.11.1)
actionpack (>= 4) actionpack (>= 4)
activesupport (>= 4) activesupport (>= 4)
railties (>= 4) railties (>= 4)
@ -532,7 +530,7 @@ GEM
rspec-core (~> 3.0, >= 3.0.0) rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0) sidekiq (>= 2.4.0)
rspec-support (3.8.0) rspec-support (3.8.0)
rubocop (0.69.0) rubocop (0.70.0)
jaro_winkler (~> 1.5.1) jaro_winkler (~> 1.5.1)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 2.6) parser (>= 2.6)
@ -630,8 +628,6 @@ GEM
thread_safe (~> 0.1) thread_safe (~> 0.1)
tzinfo-data (1.2019.1) tzinfo-data (1.2019.1)
tzinfo (>= 1.0.0) tzinfo (>= 1.0.0)
uglifier (4.1.20)
execjs (>= 0.3.0, < 3)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.5) unf_ext (0.0.7.5)
@ -665,7 +661,7 @@ DEPENDENCIES
active_record_query_trace (~> 1.6) active_record_query_trace (~> 1.6)
addressable (~> 2.6) addressable (~> 2.6)
annotate (~> 2.7) annotate (~> 2.7)
aws-sdk-s3 (~> 1.39) aws-sdk-s3 (~> 1.40)
better_errors (~> 2.5) better_errors (~> 2.5)
binding_of_caller (~> 0.7) binding_of_caller (~> 0.7)
blurhash (~> 0.1) blurhash (~> 0.1)
@ -705,7 +701,7 @@ DEPENDENCIES
http (~> 3.3) http (~> 3.3)
http_accept_language (~> 2.1) http_accept_language (~> 2.1)
http_parser.rb (~> 0.6)! http_parser.rb (~> 0.6)!
httplog (~> 1.2) httplog (~> 1.3)
i18n-tasks (~> 0.9) i18n-tasks (~> 0.9)
idn-ruby idn-ruby
iso-639 iso-639
@ -757,7 +753,7 @@ DEPENDENCIES
rqrcode (~> 0.10) rqrcode (~> 0.10)
rspec-rails (~> 3.8) rspec-rails (~> 3.8)
rspec-sidekiq (~> 3.0) rspec-sidekiq (~> 3.0)
rubocop (~> 0.69) rubocop (~> 0.70)
sanitize (~> 5.0) sanitize (~> 5.0)
scss_lint (~> 0.58) scss_lint (~> 0.58)
sidekiq (~> 5.2) sidekiq (~> 5.2)

@ -53,7 +53,7 @@ class Api::V1::NotificationsController < Api::BaseController
end end
def browserable_account_notifications def browserable_account_notifications
current_account.notifications.browserable(exclude_types) current_account.notifications.browserable(exclude_types, from_account)
end end
def target_statuses_from_notifications def target_statuses_from_notifications
@ -90,6 +90,10 @@ class Api::V1::NotificationsController < Api::BaseController
val val
end end
def from_account
params[:account_id]
end
def pagination_params(core_params) def pagination_params(core_params)
params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params) params.slice(:limit, :exclude_types).permit(:limit, exclude_types: []).merge(core_params)
end end

@ -43,13 +43,7 @@ module SignatureVerification
return return
end end
account_stoplight = Stoplight("source:#{request.ip}") { account_from_key_id(signature_params['keyId']) } account = account_from_key_id(signature_params['keyId'])
.with_fallback { nil }
.with_threshold(1)
.with_cool_off_time(5.minutes.seconds)
.with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
account = account_stoplight.run
if account.nil? if account.nil?
@signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}" @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"
@ -62,13 +56,7 @@ module SignatureVerification
return account unless verify_signature(account, signature, compare_signed_string).nil? return account unless verify_signature(account, signature, compare_signed_string).nil?
account_stoplight = Stoplight("source:#{request.ip}") { account.possibly_stale? ? account.refresh! : account_refresh_key(account) } account = stoplight_wrap_request { account.possibly_stale? ? account.refresh! : account_refresh_key(account) }
.with_fallback { nil }
.with_threshold(1)
.with_cool_off_time(5.minutes.seconds)
.with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
account = account_stoplight.run
if account.nil? if account.nil?
@signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}" @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"
@ -136,14 +124,23 @@ module SignatureVerification
def account_from_key_id(key_id) def account_from_key_id(key_id)
if key_id.start_with?('acct:') if key_id.start_with?('acct:')
ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) }
elsif !ActivityPub::TagManager.instance.local_uri?(key_id) elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account) account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account)
account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) }
account account
end end
end end
def stoplight_wrap_request(&block)
Stoplight("source:#{request.remote_ip}", &block)
.with_fallback { nil }
.with_threshold(1)
.with_cool_off_time(5.minutes.seconds)
.with_error_handler { |error, handle| error.is_a?(HTTP::Error) ? handle.call(error) : raise(error) }
.run
end
def account_refresh_key(account) def account_refresh_key(account)
return if account.local? || !account.activitypub? return if account.local? || !account.activitypub?
ActivityPub::FetchRemoteAccountService.new.call(account.uri, only_key: true) ActivityPub::FetchRemoteAccountService.new.call(account.uri, only_key: true)

@ -17,6 +17,7 @@
box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
border-radius: 4px; border-radius: 4px;
margin-top: 5px; margin-top: 5px;
z-index: 2;
.emoji-mart-scroll { .emoji-mart-scroll {
transition: opacity 200ms ease; transition: opacity 200ms ease;

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

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

@ -8,11 +8,13 @@ import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import { me, invitesEnabled, version, profile_directory, repository, source_url } from '../../initial_state'; import { me, invitesEnabled, version, profile_directory, repository, source_url } from '../../initial_state';
import { fetchFollowRequests } from '../../actions/accounts'; import { fetchFollowRequests } from 'mastodon/actions/accounts';
import { changeSetting } from 'mastodon/actions/settings';
import { List as ImmutableList } from 'immutable'; import { List as ImmutableList } from 'immutable';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import NavigationBar from '../compose/components/navigation_bar'; import NavigationBar from '../compose/components/navigation_bar';
import Icon from 'mastodon/components/icon'; import Icon from 'mastodon/components/icon';
import Toggle from 'react-toggle';
const messages = defineMessages({ const messages = defineMessages({
home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' }, home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },
@ -39,10 +41,12 @@ const messages = defineMessages({
const mapStateToProps = state => ({ const mapStateToProps = state => ({
myAccount: state.getIn(['accounts', me]), myAccount: state.getIn(['accounts', me]),
unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size,
forceSingleColumn: state.getIn(['settings', 'forceSingleColumn'], false),
}); });
const mapDispatchToProps = dispatch => ({ const mapDispatchToProps = dispatch => ({
fetchFollowRequests: () => dispatch(fetchFollowRequests()), fetchFollowRequests: () => dispatch(fetchFollowRequests()),
changeForceSingleColumn: checked => dispatch(changeSetting(['forceSingleColumn'], checked)),
}); });
const badgeDisplay = (number, limit) => { const badgeDisplay = (number, limit) => {
@ -67,6 +71,8 @@ class GettingStarted extends ImmutablePureComponent {
fetchFollowRequests: PropTypes.func.isRequired, fetchFollowRequests: PropTypes.func.isRequired,
unreadFollowRequests: PropTypes.number, unreadFollowRequests: PropTypes.number,
unreadNotifications: PropTypes.number, unreadNotifications: PropTypes.number,
forceSingleColumn: PropTypes.bool,
changeForceSingleColumn: PropTypes.func.isRequired,
}; };
componentDidMount () { componentDidMount () {
@ -77,8 +83,12 @@ class GettingStarted extends ImmutablePureComponent {
} }
} }
handleForceSingleColumnChange = ({ target }) => {
this.props.changeForceSingleColumn(target.checked);
}
render () { render () {
const { intl, myAccount, multiColumn, unreadFollowRequests } = this.props; const { intl, myAccount, multiColumn, unreadFollowRequests, forceSingleColumn } = this.props;
const navItems = []; const navItems = [];
let i = 1; let i = 1;
@ -177,6 +187,11 @@ class GettingStarted extends ImmutablePureComponent {
</p> </p>
</div> </div>
</div> </div>
<label className='navigational-toggle'>
<FormattedMessage id='getting_started.use_simple_layout' defaultMessage='Use simple layout' />
<Toggle checked={forceSingleColumn} onChange={this.handleForceSingleColumnChange} />
</label>
</Column> </Column>
); );
} }

@ -5,7 +5,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import ReactSwipeableViews from 'react-swipeable-views'; import ReactSwipeableViews from 'react-swipeable-views';
import { links, getIndex, getLink } from './tabs_bar'; import TabsBar, { links, getIndex, getLink } from './tabs_bar';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import BundleContainer from '../containers/bundle_container'; import BundleContainer from '../containers/bundle_container';
@ -139,7 +139,7 @@ class ColumnsArea extends ImmutablePureComponent {
<ColumnLoading title={title} icon={icon} />; <ColumnLoading title={title} icon={icon} />;
return ( return (
<div className='columns-area' key={index}> <div className='columns-area columns-area--mobile' key={index}>
{view} {view}
</div> </div>
); );
@ -164,13 +164,17 @@ class ColumnsArea extends ImmutablePureComponent {
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>; 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>;
return columnIndex !== -1 ? [ return columnIndex !== -1 ? [
<TabsBar key='tabs' />,
<ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}> <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}>
{links.map(this.renderView)} {links.map(this.renderView)}
</ReactSwipeableViews>, </ReactSwipeableViews>,
floatingActionButton, floatingActionButton,
] : [ ] : [
<div className='columns-area'>{children}</div>, <TabsBar key='tabs' />,
<div key='content' className='columns-area columns-area--mobile'>{children}</div>,
floatingActionButton, floatingActionButton,
]; ];

@ -0,0 +1,23 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import Icon from 'mastodon/components/icon';
const mapStateToProps = state => ({
count: state.getIn(['notifications', 'unread']),
});
const formatNumber = num => num > 99 ? '99+' : num;
const NotificationsCounterIcon = ({ count }) => (
<i className='icon-with-badge'>
<Icon id='bell' fixedWidth />
{count > 0 && <i className='icon-with-badge__badge'>{formatNumber(count)}</i>}
</i>
);
NotificationsCounterIcon.propTypes = {
count: PropTypes.number.isRequired,
};
export default connect(mapStateToProps)(NotificationsCounterIcon);

@ -5,10 +5,11 @@ import { FormattedMessage, injectIntl } from 'react-intl';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import { isUserTouching } from '../../../is_mobile'; import { isUserTouching } from '../../../is_mobile';
import Icon from 'mastodon/components/icon'; import Icon from 'mastodon/components/icon';
import NotificationsCounterIcon from './notifications_counter_icon';
export const links = [ export const links = [
<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>, <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>,
<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>, <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>,
<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>, <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>,
<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>, <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>,

@ -7,7 +7,6 @@ import { Redirect, withRouter } from 'react-router-dom';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import NotificationsContainer from './containers/notifications_container'; import NotificationsContainer from './containers/notifications_container';
import LoadingBarContainer from './containers/loading_bar_container'; import LoadingBarContainer from './containers/loading_bar_container';
import TabsBar from './components/tabs_bar';
import ModalContainer from './containers/modal_container'; import ModalContainer from './containers/modal_container';
import { isMobile } from '../../is_mobile'; import { isMobile } from '../../is_mobile';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
@ -63,6 +62,7 @@ const mapStateToProps = state => ({
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0, hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0, hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null, dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null,
forceSingleColumn: state.getIn(['settings', 'forceSingleColumn'], false),
}); });
const keyMap = { const keyMap = {
@ -101,6 +101,7 @@ class SwitchingColumnsArea extends React.PureComponent {
children: PropTypes.node, children: PropTypes.node,
location: PropTypes.object, location: PropTypes.object,
onLayoutChange: PropTypes.func.isRequired, onLayoutChange: PropTypes.func.isRequired,
forceSingleColumn: PropTypes.bool,
}; };
state = { state = {
@ -139,12 +140,13 @@ class SwitchingColumnsArea extends React.PureComponent {
} }
render () { render () {
const { children } = this.props; const { children, forceSingleColumn } = this.props;
const { mobile } = this.state; const { mobile } = this.state;
const redirect = mobile ? <Redirect from='/' to='/timelines/home' exact /> : <Redirect from='/' to='/getting-started' exact />; const singleColumn = forceSingleColumn || mobile;
const redirect = singleColumn ? <Redirect from='/' to='/timelines/home' exact /> : <Redirect from='/' to='/getting-started' exact />;
return ( return (
<ColumnsAreaContainer ref={this.setRef} singleColumn={mobile}> <ColumnsAreaContainer ref={this.setRef} singleColumn={singleColumn}>
<WrappedSwitch> <WrappedSwitch>
{redirect} {redirect}
<WrappedRoute path='/getting-started' component={GettingStarted} content={children} /> <WrappedRoute path='/getting-started' component={GettingStarted} content={children} />
@ -205,6 +207,7 @@ class UI extends React.PureComponent {
location: PropTypes.object, location: PropTypes.object,
intl: PropTypes.object.isRequired, intl: PropTypes.object.isRequired,
dropdownMenuIsOpen: PropTypes.bool, dropdownMenuIsOpen: PropTypes.bool,
forceSingleColumn: PropTypes.bool,
}; };
state = { state = {
@ -453,7 +456,7 @@ class UI extends React.PureComponent {
render () { render () {
const { draggingOver } = this.state; const { draggingOver } = this.state;
const { children, isComposing, location, dropdownMenuIsOpen } = this.props; const { children, isComposing, location, dropdownMenuIsOpen, forceSingleColumn } = this.props;
const handlers = { const handlers = {
help: this.handleHotkeyToggleHelp, help: this.handleHotkeyToggleHelp,
@ -479,9 +482,7 @@ class UI extends React.PureComponent {
return ( return (
<HotKeys keyMap={keyMap} handlers={handlers} ref={this.setHotkeysRef} attach={window} focused> <HotKeys keyMap={keyMap} handlers={handlers} ref={this.setHotkeysRef} attach={window} focused>
<div className={classNames('ui', { 'is-composing': isComposing })} ref={this.setRef} style={{ pointerEvents: dropdownMenuIsOpen ? 'none' : null }}> <div className={classNames('ui', { 'is-composing': isComposing })} ref={this.setRef} style={{ pointerEvents: dropdownMenuIsOpen ? 'none' : null }}>
<TabsBar /> <SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange} forceSingleColumn={forceSingleColumn}>
<SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange}>
{children} {children}
</SwitchingColumnsArea> </SwitchingColumnsArea>

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

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

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

@ -1,384 +1,385 @@
{ {
"account.add_or_remove_from_list": "ি আরত বন", "account.add_or_remove_from_list": "ি আরত বন",
"account.badges.bot": "রবট", "account.badges.bot": "রবট",
"account.block": "@{name} বনধ করন", "account.block": "@{name} বনধ করন",
"account.block_domain": "{domain} থ সব সরিন", "account.block_domain": "{domain} থ সব সরিন",
"account.blocked": "বনধ কর হয়", "account.blocked": "বনধ কর হয়",
"account.direct": "@{name}ক সরকি ন", "account.direct": "@{name}ক সরকি িন",
"account.domain_blocked": "িিটটি সর", "account.domain_blocked": "ওয়বসইট সরি হয়",
"account.edit_profile": "Edit profile", "account.edit_profile": "ির প সমদন কর",
"account.endorse": "Feature on profile", "account.endorse": "ির পয় দ",
"account.follow": "Follow", "account.follow": "অনসরণ কর",
"account.followers": "Followers", "account.followers": "অনসরণকরক",
"account.followers.empty": "No one follows this user yet.", "account.followers.empty": "এই বযবহরকও এখন অনসরণ কর",
"account.follows": "Follows", "account.follows": "রক অনসরণ কর",
"account.follows.empty": "This user doesn't follow anyone yet.", "account.follows.empty": "এই বযবহরকওক এখন অনসরণ করন ন",
"account.follows_you": "Follows you", "account.follows_you": "আপন অনসরণ কর",
"account.hide_reblogs": "Hide boosts from @{name}", "account.hide_reblogs": "@{name}র সমরথনগি সরি",
"account.link_verified_on": "Ownership of this link was checked on {date}", "account.link_verified_on": "এই লির মিক কর হয় {date} তি",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.locked_info": "এই নিবনধনর গপনয়তর কর তওয় আছ। নিবনধনক অনসরণ করর অনমতিরকন, শই অনসরণ করতরবন।",
"account.media": "Media", "account.media": "ছবিিি",
"account.mention": "Mention @{name}", "account.mention": "@{name} উলখ কর",
"account.moved_to": "{name} has moved to:", "account.moved_to": "{name} চল এখ:",
"account.mute": "Mute @{name}", "account.mute": "@{name}র কযকরম সরি",
"account.mute_notifications": "Mute notifications from @{name}", "account.mute_notifications": "@{name}র পরজপন আপনর কছ থ সরি",
"account.muted": "Muted", "account.muted": "সর আছ",
"account.posts": "Toots", "account.posts": "",
"account.posts_with_replies": "Toots and replies", "account.posts_with_replies": "ট এব মতমত",
"account.report": "Report @{name}", "account.report": "@{name}িট করি",
"account.requested": "Awaiting approval. Click to cancel follow request", "account.requested": "অনমতির অপয় আছ। অনসরণ করর অনধ বিল করত এখিক কর",
"account.share": "Share @{name}'s profile", "account.share": "@{name}র প অনযদর দ",
"account.show_reblogs": "Show boosts from @{name}", "account.show_reblogs": "@{name}র সমরথনগ",
"account.unblock": "Unblock @{name}", "account.unblock": "@{name}র কযকলপ আবর দ",
"account.unblock_domain": "Unhide {domain}", "account.unblock_domain": "{domain} আবর দ",
"account.unendorse": "Don't feature on profile", "account.unendorse": "ির পয় এটখতন ন",
"account.unfollow": "Unfollow", "account.unfollow": "অনসরণ বনধ কর",
"account.unmute": "Unmute @{name}", "account.unmute": "@{name}র কযকলপ আবর দ",
"account.unmute_notifications": "Unmute notifications from @{name}", "account.unmute_notifications": "@{name}র পরজপন দওয়র অনমতিি",
"alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.message": "অপরতিত একটি সমস হয়",
"alert.unexpected.title": "Oops!", "alert.unexpected.title": "ওহ!",
"boost_modal.combo": "You can press {combo} to skip this next time", "boost_modal.combo": "পররবর আপনি {combo} চপ দি এটর শ চলরব",
"bundle_column_error.body": "Something went wrong while loading this component.", "bundle_column_error.body": "এই অশটিখত সমস হয়",
"bundle_column_error.retry": "Try again", "bundle_column_error.retry": "আবর চ কর",
"bundle_column_error.title": "Network error", "bundle_column_error.title": "টওযর সমস হচ",
"bundle_modal_error.close": "Close", "bundle_modal_error.close": "বনধ কর",
"bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.message": "এই অশটিখত সমস হয়",
"bundle_modal_error.retry": "Try again", "bundle_modal_error.retry": "আবর চ কর",
"column.blocks": "Blocked users", "column.blocks": "র বনধ কর হয়",
"column.community": "Local timeline", "column.community": " সময়সি",
"column.direct": "Direct messages", "column.direct": "সরসরি",
"column.domain_blocks": "Hidden domains", "column.domain_blocks": "সরি ওয়বসইট",
"column.favourites": "Favourites", "column.favourites": "পছনর গ",
"column.follow_requests": "Follow requests", "column.follow_requests": "অনসরণর অনমতি",
"column.home": "Home", "column.home": "ি",
"column.lists": "Lists", "column.lists": "ি",
"column.mutes": "Muted users", "column.mutes": "র কযকরম দ বনধ আছ",
"column.notifications": "Notifications", "column.notifications": "রজপনগ",
"column.pins": "Pinned toot", "column.pins": "িন কর",
"column.public": "Federated timeline", "column.public": "ত সময়র",
"column_back_button.label": "Back", "column_back_button.label": "ছন",
"column_header.hide_settings": "Hide settings", "column_header.hide_settings": "ি সর",
"column_header.moveLeft_settings": "Move column to the left", "column_header.moveLeft_settings": "কলমট সর",
"column_header.moveRight_settings": "Move column to the right", "column_header.moveRight_settings": "কলমট সর",
"column_header.pin": "Pin", "column_header.pin": "িন দি",
"column_header.show_settings": "Show settings", "column_header.show_settings": "ি",
"column_header.unpin": "Unpin", "column_header.unpin": "িন খ",
"column_subheading.settings": "Settings", "column_subheading.settings": "ি",
"community.column_settings.media_only": "Media Only", "community.column_settings.media_only": "র ছবিিি",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.", "compose_form.direct_message_warning": "র যরক উলখ কর হয়রকই এই টটটি হব",
"compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.direct_message_warning_learn_more": "আর",
"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.", "compose_form.hashtag_warning": "শটর ভতর এই টটটিকবরণ এটিিবহিত। শর পরকয ঠটগশটর ভতরওয়",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer": "আপনর নিবনধনওয়ই, যও আপন অনসরণ করতরব এব অনরকদর জনয লখতরব",
"compose_form.lock_disclaimer.lock": "locked", "compose_form.lock_disclaimer.lock": "ওয়",
"compose_form.placeholder": "What is on your mind?", "compose_form.placeholder": "আপনিিবছ?",
"compose_form.poll.add_option": "Add a choice", "compose_form.poll.add_option": "আরকটিিকলপ যগ কর",
"compose_form.poll.duration": "Poll duration", "compose_form.poll.duration": "টগরহনর সময়",
"compose_form.poll.option_placeholder": "Choice {number}", "compose_form.poll.option_placeholder": "িকল {number}",
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "এই বিকলপটি",
"compose_form.publish": "Toot", "compose_form.publish": "",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive", "compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.sensitive.marked": "এই ছবিিিওটিদনশল হিিিত কর হয়",
"compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.sensitive.unmarked": "এই ছবিিিওটিদনশল হিিিত কর হয়নি",
"compose_form.spoiler.unmarked": "Text is not hidden", "compose_form.spoiler.marked": "লিবধনতর পছন আছ",
"compose_form.spoiler_placeholder": "Write your warning here", "compose_form.spoiler.unmarked": "লিই",
"confirmation_modal.cancel": "Cancel", "compose_form.spoiler_placeholder": "আপনর সবধনত এখিন",
"confirmations.block.block_and_report": "Block & Report", "confirmation_modal.cancel": "বিল করন",
"confirmations.block.confirm": "Block", "confirmations.block.block_and_report": "বনধ করন এবিট করন",
"confirmations.block.message": "Are you sure you want to block {name}?", "confirmations.block.confirm": "বনধ করন",
"confirmations.delete.confirm": "Delete", "confirmations.block.message": "আপনিিিিত {name} ক বনধ করতন ?",
"confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete.confirm": "মন",
"confirmations.delete_list.confirm": "Delete", "confirmations.delete.message": "আপনিিিিত য এই লিলতন ?",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.delete_list.confirm": "মন",
"confirmations.domain_block.confirm": "Hide entire domain", "confirmations.delete_list.message": "আপনিিিিত য আপনি এই তিিিলতন ?",
"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.", "confirmations.domain_block.confirm": "এই ওয়বসইট থ সব সরন",
"confirmations.mute.confirm": "Mute", "confirmations.domain_block.message": "আপনিি সতি সতিিিত য {domain} ওয়বসইট থ সব সরন ? সরণত কি লকযবস বনধ এব সর যথট। নিিত করল ওই ওয়বসইট থিনখখবন ন। য আপন অনসরণ কর ওই ওয়বসইট থরকও ম হব।",
"confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.mute.confirm": "সরিন",
"confirmations.redraft.confirm": "Delete & redraft", "confirmations.mute.message": "আপনিিিিত {name} সরিলতন ?",
"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.", "confirmations.redraft.confirm": "মন এব আবর সমদন করন",
"confirmations.reply.confirm": "Reply", "confirmations.redraft.message": "আপনিিিিত এটি এব আবর সমদন করতন ? এট পছনিত, সমরথন ব মতমত আছ নতন লর সত থকব।",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.reply.confirm": "মতমত",
"confirmations.unfollow.confirm": "Unfollow", "confirmations.reply.message": "এখন মতমত লিখত আপনর এখন যিখছন স। আপনিিিিত এট করতন ?",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", "confirmations.unfollow.confirm": "অনসরণ বনধ করন",
"embed.instructions": "Embed this status on your website by copying the code below.", "confirmations.unfollow.message": "আপনিিিিত {name} ক আর অনসরণ করতন ন ?",
"embed.preview": "Here is what it will look like:", "embed.instructions": "এই লি আপনর ওয়বসইটত করতির কডটিবহর করন।",
"emoji_button.activity": "Activity", "embed.preview": "সখত এরকম হব:",
"emoji_button.custom": "Custom", "emoji_button.activity": "কযকলপ",
"emoji_button.flags": "Flags", "emoji_button.custom": "পরথ",
"emoji_button.food": "Food & Drink", "emoji_button.flags": "পত",
"emoji_button.label": "Insert emoji", "emoji_button.food": "খয ও প",
"emoji_button.nature": "Nature", "emoji_button.label": "এমজিত করন",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.nature": "পরকি",
"emoji_button.objects": "Objects", "emoji_button.not_found": "ইমিওয়য়নি !! (╯°□°)╯︵ ┻━┻",
"emoji_button.people": "People", "emoji_button.objects": "বস",
"emoji_button.recent": "Frequently used", "emoji_button.people": "মষ",
"emoji_button.search": "Search...", "emoji_button.recent": "ঘন ববহত",
"emoji_button.search_results": "Search results", "emoji_button.search": "খন...",
"emoji_button.symbols": "Symbols", "emoji_button.search_results": "খর ফলফল",
"emoji_button.travel": "Travel & Places", "emoji_button.symbols": "পরতক",
"empty_column.account_timeline": "No toots here!", "emoji_button.travel": "ভরমণ এবন",
"empty_column.account_unavailable": "Profile unavailable", "empty_column.account_timeline": "এখট নই!",
"empty_column.blocks": "You haven't blocked any users yet.", "empty_column.account_unavailable": "নিজসব পই",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", "empty_column.blocks": "আপনিযবহরকর বনধ করন নি।",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.", "empty_column.community": "স সময়রিই। পরকযভিিির উদধন করন!",
"empty_column.domain_blocks": "There are no hidden domains yet.", "empty_column.direct": "আপনর ক সরসরিই। যদিও পয়, স এখ।",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", "empty_column.domain_blocks": "এখন সর ওয়বসইট নই।",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.", "empty_column.favourited_statuses": "আপনর পছনর কট এখনই। আপনি পছনর হিিিত করল এখওয়।",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.favourites": "কও এখন এট পছনর টট হিিিত করি। যদি কর, তখন তর এখওয়।",
"empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.follow_requests": "আপনর এখন অনসরণর আবদন পই। যদিয়, এখওয়।",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.", "empty_column.hashtag": "এই হসট এখনিই।",
"empty_column.home.public_timeline": "the public timeline", "empty_column.home": "আপনর বির সময়র এখনি! {public}এ ঘ আসন অথব অনসনন ববহর কর করতন এব অনয বযবহরকর সৎ করতন।",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.home.public_timeline": "পরকয সময়র",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.list": "এই তি এখনিই. যখন এই তিয় থযবহরক নতন কিিখব, স এখওয়।",
"empty_column.mutes": "You haven't muted any users yet.", "empty_column.lists": "আপনর এখনিই। যদি যখন ত করন, স এখওয়।",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.", "empty_column.mutes": "আপনি এখনযবহরক সরননি।",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "empty_column.notifications": "আপনর এখনরজপন নই। কথপকথন শ করত, অনযদর স করতন।",
"follow_request.authorize": "Authorize", "empty_column.public": "এখ এখনিই! পরকয ভিিন ব অনয সর থওক অনসরণ কর এই জয়গ ভরন",
"follow_request.reject": "Reject", "follow_request.authorize": "অনমতিিন",
"getting_started.developers": "Developers", "follow_request.reject": "পরতন করন",
"getting_started.directory": "Profile directory", "getting_started.developers": "তিরকদর জনয",
"getting_started.documentation": "Documentation", "getting_started.directory": "নিজসব পর তি",
"getting_started.heading": "Getting started", "getting_started.documentation": "নথিপতর",
"getting_started.invite": "Invite people", "getting_started.heading": "শ কর",
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "getting_started.invite": "অনযদর আমনরণ করন",
"getting_started.security": "Security", "getting_started.open_source_notice": "মডন একটিত সফটওয়র। আপনিিয করতন অথব সমসিট করতন গিটহ {github}।",
"getting_started.terms": "Terms of service", "getting_started.security": "নিপত",
"hashtag.column_header.tag_mode.all": "and {additional}", "getting_started.terms": "বযবহর নিয়মবল",
"hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.all": "এব {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}", "hashtag.column_header.tag_mode.any": "অথব {additional}",
"hashtag.column_settings.select.no_options_message": "No suggestions found", "hashtag.column_header.tag_mode.none": "বদ দি {additional}",
"hashtag.column_settings.select.placeholder": "Enter hashtags…", "hashtag.column_settings.select.no_options_message": "কনটওযি",
"hashtag.column_settings.tag_mode.all": "All of these", "hashtag.column_settings.select.placeholder": "হশটর ভতরন…",
"hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.all": "এগ সব",
"hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_mode.any": "এর ভতর",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.column_settings.tag_mode.none": "এগর একটও ন",
"home.column_settings.basic": "Basic", "hashtag.column_settings.tag_toggle": "আরগ এই কলত করন",
"home.column_settings.show_reblogs": "Show boosts", "home.column_settings.basic": "সরণ",
"home.column_settings.show_replies": "Show replies", "home.column_settings.show_reblogs": "সমরথনগন",
"home.column_settings.show_replies": "মতমত দন",
"intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.hours": "{number, plural, one {# ঘট} other {# ঘট}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next", "introduction.federation.action": "পরবর",
"introduction.federation.federated.headline": "Federated", "introduction.federation.federated.headline": "তবি",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", "introduction.federation.federated.text": "অনয যতবির সর লিতবির সময়র আসব",
"introduction.federation.home.headline": "Home", "introduction.federation.home.headline": "ি",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", "introduction.federation.home.text": "রক অনসরণ করন তর ল আপনর বি-সময়র আসব। আপনি এখন থতবির যওক অনসরণ করত!",
"introduction.federation.local.headline": "Local", "introduction.federation.local.headline": "",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", "introduction.federation.local.text": "আপনি আছন সনকর মর পরকয ল সময়র আসব",
"introduction.interactions.action": "Finish toot-orial!", "introduction.interactions.action": "যবহর জর অশটিষ কর!",
"introduction.interactions.favourite.headline": "Favourite", "introduction.interactions.favourite.headline": "পছন",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", "introduction.interactions.favourite.text": "পর পড়র জনয ব পছনধ হয়খকক, ক পছনর হিিিত করতন।",
"introduction.interactions.reblog.headline": "Boost", "introduction.interactions.reblog.headline": "সমরথন",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", "introduction.interactions.reblog.text": "র ল সমরথন দিিিত কর আপনর অনসরণকর দখতন।",
"introduction.interactions.reply.headline": "Reply", "introduction.interactions.reply.headline": "মতমত",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.", "introduction.interactions.reply.text": "আপনি অনযদর এবির লয় মতমত টট করতন, যর স কথপকথন হিত থকব",
"introduction.welcome.action": "Let's go!", "introduction.welcome.action": " কর!",
"introduction.welcome.headline": "First steps", "introduction.welcome.headline": "রথম ধ",
"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.", "introduction.welcome.text": "তবিগতম! কিষনর মধই আপনি আপনর লিিন স সমরচর করতরবন। কি মনখব এট একটিষ সর, {domain} করণ এখ আপনর নিব প হচ",
"keyboard_shortcuts.back": "to navigate back", "keyboard_shortcuts.back": "ছন",
"keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.blocked": "বনধ করযবহরকর তিখত",
"keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.boost": "সমরথন করত",
"keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.column": " কলমএ কস করত",
"keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.compose": " সমপদনর জয়গয় ফস করত",
"keyboard_shortcuts.description": "Description", "keyboard_shortcuts.description": "িবরণ",
"keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.direct": "সরসরিখত",
"keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.down": "ির ভতরি",
"keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.enter": "অবসখত",
"keyboard_shortcuts.favourite": "to favourite", "keyboard_shortcuts.favourite": "পছনর দখত",
"keyboard_shortcuts.favourites": "to open favourites list", "keyboard_shortcuts.favourites": "পছনর তির করত",
"keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.federated": "তবির সময়র",
"keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.heading": "ির দতকরক (শরটকট)",
"keyboard_shortcuts.home": "to open home timeline", "keyboard_shortcuts.home": "ির সময়রলত",
"keyboard_shortcuts.hotkey": "Hotkey", "keyboard_shortcuts.hotkey": "তকরক ছবি",
"keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.legend": "এই পরদরশনঅরথ(legend) দখত",
"keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.local": " সময়র",
"keyboard_shortcuts.mention": "to mention author", "keyboard_shortcuts.mention": "খকক উলখ করত",
"keyboard_shortcuts.muted": "to open muted users list", "keyboard_shortcuts.muted": "বনধ করযবহরকর তিলত",
"keyboard_shortcuts.my_profile": "to open your profile", "keyboard_shortcuts.my_profile": "ির পখত",
"keyboard_shortcuts.notifications": "to open notifications column", "keyboard_shortcuts.notifications": "রজপনর কলম খলত",
"keyboard_shortcuts.pinned": "to open pinned toots list", "keyboard_shortcuts.pinned": "িন দওয়র তিলত",
"keyboard_shortcuts.profile": "to open author's profile", "keyboard_shortcuts.profile": "খকর পখত",
"keyboard_shortcuts.reply": "to reply", "keyboard_shortcuts.reply": "মতমত দি",
"keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.requests": "অনসরণ অনর তিখত",
"keyboard_shortcuts.search": "to focus search", "keyboard_shortcuts.search": "র অস করত",
"keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.start": "\"পরথম শর\" কলম বর করত",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", "keyboard_shortcuts.toggle_hidden": "CW লখত",
"keyboard_shortcuts.toot": "to start a brand new toot", "keyboard_shortcuts.toot": "নতন একটট ল করত",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.unfocus": "র জয়গয় ফস ন করত",
"keyboard_shortcuts.up": "to move up in the list", "keyboard_shortcuts.up": "ির উপরর দি",
"lightbox.close": "Close", "lightbox.close": "বন",
"lightbox.next": "Next", "lightbox.next": "পরবর",
"lightbox.previous": "Previous", "lightbox.previous": "ববর",
"lists.account.add": "Add to list", "lightbox.view_context": "View context",
"lists.account.remove": "Remove from list", "lists.account.add": "তিত করত",
"lists.delete": "Delete list", "lists.account.remove": "তিদ দি",
"lists.edit": "Edit list", "lists.delete": "তিলত",
"lists.edit.submit": "Change title", "lists.edit": "ি সমদন করত",
"lists.new.create": "Add list", "lists.edit.submit": "শিম সমদন করত",
"lists.new.title_placeholder": "New list title", "lists.new.create": "তিত করত",
"lists.search": "Search among people you follow", "lists.new.title_placeholder": "তির নতন শিম দি",
"lists.subheading": "Your lists", "lists.search": "যর অনসরণ করন তর ভতর",
"loading_indicator.label": "Loading...", "lists.subheading": "আপনর তি",
"media_gallery.toggle_visible": "Toggle visibility", "loading_indicator.label": "আসছ...",
"missing_indicator.label": "Not found", "media_gallery.toggle_visible": "দযতর অবস বদল",
"missing_indicator.sublabel": "This resource could not be found", "missing_indicator.label": "ওয়য়নি",
"mute_modal.hide_notifications": "Hide notifications from this user?", "missing_indicator.sublabel": "জিিসটওয়য়নি",
"navigation_bar.apps": "Mobile apps", "mute_modal.hide_notifications": "এই বযবহরকর পরজপন বনধ করবন ?",
"navigation_bar.blocks": "Blocked users", "navigation_bar.apps": "মইলর আপ",
"navigation_bar.community_timeline": "Local timeline", "navigation_bar.blocks": "বনধ করযবহরক",
"navigation_bar.compose": "Compose new toot", "navigation_bar.community_timeline": "স সময়র",
"navigation_bar.direct": "Direct messages", "navigation_bar.compose": "নতন টট লি",
"navigation_bar.discover": "Discover", "navigation_bar.direct": "সরসরি",
"navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.discover": "ঘ",
"navigation_bar.edit_profile": "Edit profile", "navigation_bar.domain_blocks": "বনধ কর ওয়বসইট",
"navigation_bar.favourites": "Favourites", "navigation_bar.edit_profile": "নির প সমদন কর",
"navigation_bar.filters": "Muted words", "navigation_bar.favourites": "পছন",
"navigation_bar.follow_requests": "Follow requests", "navigation_bar.filters": "বনধ কর শব",
"navigation_bar.info": "About this server", "navigation_bar.follow_requests": "অনসরণর অনধগি",
"navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.info": "এই সর সমপর",
"navigation_bar.lists": "Lists", "navigation_bar.keyboard_shortcuts": "চিযবহ",
"navigation_bar.logout": "Logout", "navigation_bar.lists": "তি",
"navigation_bar.mutes": "Muted users", "navigation_bar.logout": "বইর",
"navigation_bar.personal": "Personal", "navigation_bar.mutes": "যসব বভহরকর কযকরম বনধ কর আছ",
"navigation_bar.pins": "Pinned toots", "navigation_bar.personal": "নিজস",
"navigation_bar.preferences": "Preferences", "navigation_bar.pins": "পিন দওয়",
"navigation_bar.public_timeline": "Federated timeline", "navigation_bar.preferences": "পছনদসম",
"navigation_bar.security": "Security", "navigation_bar.public_timeline": "যতবির সময়র",
"notification.favourite": "{name} favourited your status", "navigation_bar.security": "নিপত",
"notification.follow": "{name} followed you", "notification.favourite": "{name} আপনর কযকরম পছনদ কর",
"notification.mention": "{name} mentioned you", "notification.follow": "{name} আপন অনসরণ কর",
"notification.poll": "A poll you have voted in has ended", "notification.mention": "{name} আপন উলখ কর",
"notification.reblog": "{name} boosted your status", "notification.poll": "আপনিট দিিন এমন এক নিচনর ভর সময় শষ হয়",
"notifications.clear": "Clear notifications", "notification.reblog": "{name} আপনর কযকরম সমরথন দি",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", "notifications.clear": "রজপনগলত",
"notifications.column_settings.alert": "Desktop notifications", "notifications.clear_confirmation": "আপনিিিিত পরজপনগলতন ?",
"notifications.column_settings.favourite": "Favourites:", "notifications.column_settings.alert": "কমিউটরজপন",
"notifications.column_settings.filter_bar.advanced": "Display all categories", "notifications.column_settings.favourite": "পছনর:",
"notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.advanced": "সব শখত",
"notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.filter_bar.category": "দত ছকনি",
"notifications.column_settings.follow": "New followers:", "notifications.column_settings.filter_bar.show": "দখত",
"notifications.column_settings.mention": "Mentions:", "notifications.column_settings.follow": "নতন অনসরণক:",
"notifications.column_settings.poll": "Poll results:", "notifications.column_settings.mention": "পরজপনগ:",
"notifications.column_settings.push": "Push notifications", "notifications.column_settings.poll": "নিচনর ফলফল:",
"notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.push": "পশ পরজপন",
"notifications.column_settings.show": "Show in column", "notifications.column_settings.reblog": "সমরথনগ:",
"notifications.column_settings.sound": "Play sound", "notifications.column_settings.show": "কল",
"notifications.filter.all": "All", "notifications.column_settings.sound": "শবদ ব",
"notifications.filter.boosts": "Boosts", "notifications.filter.all": "সব",
"notifications.filter.favourites": "Favourites", "notifications.filter.boosts": "সমরথনগ",
"notifications.filter.follows": "Follows", "notifications.filter.favourites": "পছনর গ",
"notifications.filter.mentions": "Mentions", "notifications.filter.follows": "অনসরণ",
"notifications.filter.polls": "Poll results", "notifications.filter.mentions": "উলি",
"notifications.group": "{count} notifications", "notifications.filter.polls": "নিচনর ফলফল",
"poll.closed": "Closed", "notifications.group": "{count} পরজপন",
"poll.refresh": "Refresh", "poll.closed": "বন",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.refresh": "আবর সতজ করত",
"poll.vote": "Vote", "poll.total_votes": "{count, plural, one {# ভট} other {# ভট}}",
"poll_button.add_poll": "Add a poll", "poll.vote": "ভ",
"poll_button.remove_poll": "Remove poll", "poll_button.add_poll": "একটিচন যগ করত",
"privacy.change": "Adjust status privacy", "poll_button.remove_poll": "নিচন বদ দি",
"privacy.direct.long": "Post to mentioned users only", "privacy.change": "লর গপনয়ত অবসিক করত",
"privacy.direct.short": "Direct", "privacy.direct.long": "শর উলিত বযবহরকর কিখত",
"privacy.private.long": "Post to followers only", "privacy.direct.short": "সরসরি",
"privacy.private.short": "Followers-only", "privacy.private.long": "শর আপনর অনসরণকর লিখত",
"privacy.public.long": "Post to public timelines", "privacy.private.short": "শর অনসরণকর জন",
"privacy.public.short": "Public", "privacy.public.long": "সরবজনন পরকয সময়রিখত",
"privacy.unlisted.long": "Do not show in public timelines", "privacy.public.short": "সরবজনন পরক",
"privacy.unlisted.short": "Unlisted", "privacy.unlisted.long": "সরবজনন পরকয সময়র",
"regeneration_indicator.label": "Loading…", "privacy.unlisted.short": "পরকয নয়",
"regeneration_indicator.sublabel": "Your home feed is being prepared!", "regeneration_indicator.label": "আসছ",
"relative_time.days": "{number}d", "regeneration_indicator.sublabel": "আপনর বির-সময়ররসত কর হচ!",
"relative_time.hours": "{number}h", "relative_time.days": "{number} দি",
"relative_time.just_now": "now", "relative_time.hours": "{number} ঘন",
"relative_time.minutes": "{number}m", "relative_time.just_now": "এখন",
"relative_time.seconds": "{number}s", "relative_time.minutes": "{number} ম",
"reply_indicator.cancel": "Cancel", "relative_time.seconds": "{number} স",
"report.forward": "Forward to {target}", "reply_indicator.cancel": "বিল করত",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", "report.forward": "এট আরন {target} ত",
"report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:", "report.forward_hint": "এই নিবনধনটি অনয একটি। অপরকিতনির কপিও কিন ?",
"report.placeholder": "Additional comments", "report.hint": "রিটটি আপনর সর পরিলকর ক হব। রিট পর করণ নিিিত লিখতন:",
"report.submit": "Submit", "report.placeholder": "অনয ক মনতব",
"report.target": "Report {target}", "report.submit": "জমি",
"search.placeholder": "Search", "report.target": "{target} রিট কর",
"search_popout.search_format": "Advanced search format", "search.placeholder": "খজত",
"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.", "search_popout.search_format": "বিিতভর পদধতি",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.full_text": "সরণ লিজলর হবরকম আপনর ল, পছনর ল, সমরথন কর, আপন উলখকর, যজছন সরকম কযবহরকর নম বশটগগ",
"search_popout.tips.status": "status", "search_popout.tips.hashtag": "হশট",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", "search_popout.tips.status": "ল",
"search_popout.tips.user": "user", "search_popout.tips.text": "সরণ লিজলর হবরকম বযবহরকর নম বশটগগ",
"search_results.accounts": "People", "search_popout.tips.user": "বযবহরক",
"search_results.hashtags": "Hashtags", "search_results.accounts": "ম",
"search_results.statuses": "Toots", "search_results.hashtags": "হশটগগি",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}", "search_results.statuses": "ট",
"status.admin_account": "Open moderation interface for @{name}", "search_results.total": "{count, number} {count, plural, one {ফলফল} other {ফলফল}}",
"status.admin_status": "Open this status in the moderation interface", "status.admin_account": "@{name} র জনয পরিলনর ইনরফ",
"status.block": "Block @{name}", "status.admin_status": "যয় লি পরিলনর ইনরফ",
"status.cancel_reblog_private": "Unboost", "status.block": "@{name}ক বনধ কর",
"status.cannot_reblog": "This post cannot be boosted", "status.cancel_reblog_private": "সমরথন বিল করত",
"status.copy": "Copy link to status", "status.cannot_reblog": "এটি সমরথন দওয়",
"status.delete": "Delete", "status.copy": "লির লিক কপি করত",
"status.detailed_status": "Detailed conversation view", "status.delete": "মলত",
"status.direct": "Direct message @{name}", "status.detailed_status": "বিিত কথপকথনর হিখত",
"status.embed": "Embed", "status.direct": "@{name} ক সরসরি",
"status.favourite": "Favourite", "status.embed": "এমবড করত",
"status.filtered": "Filtered", "status.favourite": "পছনর করত",
"status.load_more": "Load more", "status.filtered": "ছকনিি",
"status.media_hidden": "Media hidden", "status.load_more": "আর",
"status.mention": "Mention @{name}", "status.media_hidden": "ছবিিিও পছন",
"status.more": "More", "status.mention": "@{name}ক উলখ করত",
"status.mute": "Mute @{name}", "status.more": "আর",
"status.mute_conversation": "Mute conversation", "status.mute": "@{name}র কযকরম সরিলত",
"status.open": "Expand this status", "status.mute_conversation": "কথপকথননর পরজপন সরিলত",
"status.pin": "Pin on profile", "status.open": "এটর সমণটখত",
"status.pinned": "Pinned toot", "status.pin": "ির পয় এটিন করত",
"status.read_more": "Read more", "status.pinned": "পিন কর",
"status.reblog": "Boost", "status.read_more": "আর পড়",
"status.reblog_private": "Boost to original audience", "status.reblog": "সমরথন দি",
"status.reblogged_by": "{name} boosted", "status.reblog_private": "আপনর অনসরণকর ক এটর সমরথন দ",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.reblogged_by": "{name} সমরথন দি",
"status.redraft": "Delete & re-draft", "status.reblogs.empty": "এখনও এট সমরথন দয়নি। যখন কও দয়, স তখন এখ",
"status.reply": "Reply", "status.redraft": "ম আবর নতন করিখত",
"status.replyAll": "Reply to thread", "status.reply": "মতমত জ",
"status.report": "Report @{name}", "status.replyAll": "লত সবর ক মতমত জ",
"status.sensitive_toggle": "Click to view", "status.report": "@{name}কিট করত",
"status.sensitive_warning": "Sensitive content", "status.sensitive_warning": "দনশল কি",
"status.share": "Share", "status.share": "অনযদর জ",
"status.show_less": "Show less", "status.show_less": "কম দখত",
"status.show_less_all": "Show less for all", "status.show_less_all": "সবগ কম দখত",
"status.show_more": "Show more", "status.show_more": "আর",
"status.show_more_all": "Show more for all", "status.show_more_all": "সবগ আরখত",
"status.show_thread": "Show thread", "status.show_thread": "আলচনখত",
"status.unmute_conversation": "Unmute conversation", "status.unmute_conversation": "আলচনর পরজপন চ করত",
"status.unpin": "Unpin from profile", "status.unpin": "ির পিন করির পিন খলত",
"suggestions.dismiss": "Dismiss suggestion", "suggestions.dismiss": "র জনয পরমরশগ সর",
"suggestions.header": "You might be interested in…", "suggestions.header": "আপনি হয়ত এগ আগরহ হত…",
"tabs_bar.federated_timeline": "Federated", "tabs_bar.federated_timeline": "তবি",
"tabs_bar.home": "Home", "tabs_bar.home": "ি",
"tabs_bar.local_timeline": "Local", "tabs_bar.local_timeline": "",
"tabs_bar.notifications": "Notifications", "tabs_bar.notifications": "রজপনগ",
"tabs_bar.search": "Search", "tabs_bar.search": "জত",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.days": "{number, plural, one {# day} other {# days}} ি আছ",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} ি আছ",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} ি আছ",
"time_remaining.moments": "Moments remaining", "time_remaining.moments": "সময় বি আছ",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} ি আছ",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} কথ বলছ",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "ui.beforeunload": " পরযনত এট হয়, মডন থ চল এট",
"upload_area.title": "Drag & drop to upload", "upload_area.title": " এখি এখত কর",
"upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_button.label": "ছবিিিও যত করত (এসব ধরণJPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_error.limit": "File upload limit exceeded.", "upload_error.limit": "ত করতন সিি বড়, এখনকর সরির মির উপর চল",
"upload_error.poll": "File upload not allowed with polls.", "upload_error.poll": "িচনকইল যত কর",
"upload_form.description": "Describe for the visually impaired", "upload_form.description": "খতয়নর জনয এট বরণন করত",
"upload_form.focus": "Crop", "upload_form.focus": "রণ দি পরিবরতন করত",
"upload_form.undo": "Delete", "upload_form.undo": "লত",
"upload_progress.label": "Uploading...", "upload_progress.label": "ত করত হচ...",
"video.close": "Close video", "video.close": "িিওটি বনধ করত",
"video.exit_fullscreen": "Exit full screen", "video.exit_fullscreen": "ণ পরইরর হত",
"video.expand": "Expand video", "video.expand": "িিওটি বড় করত",
"video.fullscreen": "Full screen", "video.fullscreen": "ণ পর করত",
"video.hide": "Hide video", "video.hide": "িিওটি",
"video.mute": "Mute sound", "video.mute": "শবদ বনধ করত",
"video.pause": "Pause", "video.pause": "",
"video.play": "Play", "video.play": " করত",
"video.unmute": "Unmute sound" "video.unmute": "শবদ চ করত"
} }

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

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

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

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

@ -2156,6 +2156,10 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "Unboost",
"id": "status.cancel_reblog_private"
},
{ {
"defaultMessage": "Boost", "defaultMessage": "Boost",
"id": "status.reblog" "id": "status.reblog"

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

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

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

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

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "حذف این گزینه", "compose_form.poll.remove_option": "حذف این گزینه",
"compose_form.publish": "بوق", "compose_form.publish": "بوق",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "این تصویر به عنوان حساس علامتگذاری شده", "compose_form.sensitive.marked": "این تصویر به عنوان حساس علامتگذاری شده",
"compose_form.sensitive.unmarked": "این تصویر به عنوان حساس علامتگذاری نشده", "compose_form.sensitive.unmarked": "این تصویر به عنوان حساس علامتگذاری نشده",
"compose_form.spoiler.marked": "نوشته پشت هشدار محتوا پنهان است", "compose_form.spoiler.marked": "نوشته پشت هشدار محتوا پنهان است",
@ -209,6 +210,7 @@
"lightbox.close": "بستن", "lightbox.close": "بستن",
"lightbox.next": "بعدی", "lightbox.next": "بعدی",
"lightbox.previous": "قبلی", "lightbox.previous": "قبلی",
"lightbox.view_context": "View context",
"lists.account.add": "افزودن به فهرست", "lists.account.add": "افزودن به فهرست",
"lists.account.remove": "پاککردن از فهرست", "lists.account.remove": "پاککردن از فهرست",
"lists.delete": "حذف فهرست", "lists.delete": "حذف فهرست",
@ -340,7 +342,6 @@
"status.reply": "پاسخ", "status.reply": "پاسخ",
"status.replyAll": "به نوشته پاسخ دهید", "status.replyAll": "به نوشته پاسخ دهید",
"status.report": "گزارش دادن @{name}", "status.report": "گزارش دادن @{name}",
"status.sensitive_toggle": "برای دیدن کلیک کنید",
"status.sensitive_warning": "محتوای حساس", "status.sensitive_warning": "محتوای حساس",
"status.share": "همرسانی", "status.share": "همرسانی",
"status.show_less": "نهفتن", "status.show_less": "نهفتن",

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Mesazh", "compose_form.publish": "Mesazh",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media është shënuar si rezervat", "compose_form.sensitive.marked": "Media është shënuar si rezervat",
"compose_form.sensitive.unmarked": "Media s’është shënuar si rezervat", "compose_form.sensitive.unmarked": "Media s’është shënuar si rezervat",
"compose_form.spoiler.marked": "Teksti është fshehur pas sinjalizimit", "compose_form.spoiler.marked": "Teksti është fshehur pas sinjalizimit",
@ -209,6 +210,7 @@
"lightbox.close": "Mbylle", "lightbox.close": "Mbylle",
"lightbox.next": "Pasuesja", "lightbox.next": "Pasuesja",
"lightbox.previous": "E mëparshmja", "lightbox.previous": "E mëparshmja",
"lightbox.view_context": "View context",
"lists.account.add": "Shto në listë", "lists.account.add": "Shto në listë",
"lists.account.remove": "Hiqe nga lista", "lists.account.remove": "Hiqe nga lista",
"lists.delete": "Fshije listën", "lists.delete": "Fshije listën",
@ -340,7 +342,6 @@
"status.reply": "Përgjigjuni", "status.reply": "Përgjigjuni",
"status.replyAll": "Përgjigjuni rrjedhës", "status.replyAll": "Përgjigjuni rrjedhës",
"status.report": "Raportojeni @{name}", "status.report": "Raportojeni @{name}",
"status.sensitive_toggle": "Klikoni që ta shihni",
"status.sensitive_warning": "Lëndë me spec", "status.sensitive_warning": "Lëndë me spec",
"status.share": "Ndajeni me të tjerët", "status.share": "Ndajeni me të tjerët",
"status.show_less": "Shfaq më pak", "status.show_less": "Shfaq më pak",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tutni", "compose_form.publish": "Tutni",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media is marked as sensitive", "compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
"compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.marked": "Text is hidden behind warning",
@ -209,6 +210,7 @@
"lightbox.close": "Zatvori", "lightbox.close": "Zatvori",
"lightbox.next": "Sledeći", "lightbox.next": "Sledeći",
"lightbox.previous": "Prethodni", "lightbox.previous": "Prethodni",
"lightbox.view_context": "View context",
"lists.account.add": "Dodaj na listu", "lists.account.add": "Dodaj na listu",
"lists.account.remove": "Ukloni sa liste", "lists.account.remove": "Ukloni sa liste",
"lists.delete": "Obriši listu", "lists.delete": "Obriši listu",
@ -340,7 +342,6 @@
"status.reply": "Odgovori", "status.reply": "Odgovori",
"status.replyAll": "Odgovori na diskusiju", "status.replyAll": "Odgovori na diskusiju",
"status.report": "Prijavi korisnika @{name}", "status.report": "Prijavi korisnika @{name}",
"status.sensitive_toggle": "Kliknite da vidite",
"status.sensitive_warning": "Osetljiv sadržaj", "status.sensitive_warning": "Osetljiv sadržaj",
"status.share": "Podeli", "status.share": "Podeli",
"status.show_less": "Prikaži manje", "status.show_less": "Prikaži manje",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Труби", "compose_form.publish": "Труби",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Медији су означени као осетљиви", "compose_form.sensitive.marked": "Медији су означени као осетљиви",
"compose_form.sensitive.unmarked": "Медији су означени као не-осетљиви", "compose_form.sensitive.unmarked": "Медији су означени као не-осетљиви",
"compose_form.spoiler.marked": "Текст је сакривен иза упозорења", "compose_form.spoiler.marked": "Текст је сакривен иза упозорења",
@ -209,6 +210,7 @@
"lightbox.close": "Затвори", "lightbox.close": "Затвори",
"lightbox.next": "Следећи", "lightbox.next": "Следећи",
"lightbox.previous": "Претходни", "lightbox.previous": "Претходни",
"lightbox.view_context": "View context",
"lists.account.add": "Додај на листу", "lists.account.add": "Додај на листу",
"lists.account.remove": "Уклони са листе", "lists.account.remove": "Уклони са листе",
"lists.delete": "Обриши листу", "lists.delete": "Обриши листу",
@ -340,7 +342,6 @@
"status.reply": "Одговори", "status.reply": "Одговори",
"status.replyAll": "Одговори на дискусију", "status.replyAll": "Одговори на дискусију",
"status.report": "Пријави корисника @{name}", "status.report": "Пријави корисника @{name}",
"status.sensitive_toggle": "Кликните да видите",
"status.sensitive_warning": "Осетљив садржај", "status.sensitive_warning": "Осетљив садржај",
"status.share": "Подели", "status.share": "Подели",
"status.show_less": "Прикажи мање", "status.show_less": "Прикажи мање",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot", "compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media har markerats som känsligt", "compose_form.sensitive.marked": "Media har markerats som känsligt",
"compose_form.sensitive.unmarked": "Media har inte markerats som känsligt", "compose_form.sensitive.unmarked": "Media har inte markerats som känsligt",
"compose_form.spoiler.marked": "Texten har dolts bakom en varning", "compose_form.spoiler.marked": "Texten har dolts bakom en varning",
@ -209,6 +210,7 @@
"lightbox.close": "Stäng", "lightbox.close": "Stäng",
"lightbox.next": "Nästa", "lightbox.next": "Nästa",
"lightbox.previous": "Tidigare", "lightbox.previous": "Tidigare",
"lightbox.view_context": "View context",
"lists.account.add": "Lägg till i lista", "lists.account.add": "Lägg till i lista",
"lists.account.remove": "Ta bort från lista", "lists.account.remove": "Ta bort från lista",
"lists.delete": "Radera lista", "lists.delete": "Radera lista",
@ -340,7 +342,6 @@
"status.reply": "Svara", "status.reply": "Svara",
"status.replyAll": "Svara på tråden", "status.replyAll": "Svara på tråden",
"status.report": "Rapportera @{name}", "status.report": "Rapportera @{name}",
"status.sensitive_toggle": "Klicka för att se",
"status.sensitive_warning": "Känsligt innehåll", "status.sensitive_warning": "Känsligt innehåll",
"status.share": "Dela", "status.share": "Dela",
"status.show_less": "Visa mindre", "status.show_less": "Visa mindre",

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

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "ఈ ఎికనలగి", "compose_form.poll.remove_option": "ఈ ఎికనలగి",
"compose_form.publish": "ట", "compose_form.publish": "ట",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "మిితమనదిిచబడిి", "compose_form.sensitive.marked": "మిితమనదిిచబడిి",
"compose_form.sensitive.unmarked": "మిితమనదిిచబడల", "compose_form.sensitive.unmarked": "మిితమనదిిచబడల",
"compose_form.spoiler.marked": "హచరిక వక పచబడిి", "compose_form.spoiler.marked": "హచరిక వక పచబడిి",
@ -209,6 +210,7 @@
"lightbox.close": "మి", "lightbox.close": "మి",
"lightbox.next": "తరత", "lightbox.next": "తరత",
"lightbox.previous": "మపటి", "lightbox.previous": "మపటి",
"lightbox.view_context": "View context",
"lists.account.add": "జిి", "lists.account.add": "జిి",
"lists.account.remove": "జిిలగి", "lists.account.remove": "జిిలగి",
"lists.delete": "జిలగి", "lists.delete": "జిలగి",
@ -340,7 +342,6 @@
"status.reply": "పరతతర", "status.reply": "పరతతర",
"status.replyAll": "సషణకరతతర ఇవి", "status.replyAll": "సషణకరతతర ఇవి",
"status.report": "@{name}పి", "status.report": "@{name}పి",
"status.sensitive_toggle": "విచడిిిి",
"status.sensitive_warning": "సితమన క", "status.sensitive_warning": "సితమన క",
"status.share": "పి", "status.share": "పి",
"status.show_less": "తకవ చి", "status.show_less": "తకవ చి",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "โพสต", "compose_form.publish": "โพสต",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media is marked as sensitive", "compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
"compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.marked": "Text is hidden behind warning",
@ -209,6 +210,7 @@
"lightbox.close": "ปด", "lightbox.close": "ปด",
"lightbox.next": "ถดไป", "lightbox.next": "ถดไป",
"lightbox.previous": "กอนหนา", "lightbox.previous": "กอนหนา",
"lightbox.view_context": "View context",
"lists.account.add": "เพมไปยงรายการ", "lists.account.add": "เพมไปยงรายการ",
"lists.account.remove": "เอาออกจากรายการ", "lists.account.remove": "เอาออกจากรายการ",
"lists.delete": "ลบรายการ", "lists.delete": "ลบรายการ",
@ -340,7 +342,6 @@
"status.reply": "ตอบกลบ", "status.reply": "ตอบกลบ",
"status.replyAll": "ตอบกลบกระท", "status.replyAll": "ตอบกลบกระท",
"status.report": "รายงาน @{name}", "status.report": "รายงาน @{name}",
"status.sensitive_toggle": "คลกเพอด",
"status.sensitive_warning": "เนอหาทละเอยดออน", "status.sensitive_warning": "เนอหาทละเอยดออน",
"status.share": "แบงปน", "status.share": "แบงปน",
"status.show_less": "แสดงนอยลง", "status.show_less": "แสดงนอยลง",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Bu seçimi kaldır", "compose_form.poll.remove_option": "Bu seçimi kaldır",
"compose_form.publish": "Gönder", "compose_form.publish": "Gönder",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Medya hassas olarak işaretlendi", "compose_form.sensitive.marked": "Medya hassas olarak işaretlendi",
"compose_form.sensitive.unmarked": "Medya hassas olarak işaretlenmemiş", "compose_form.sensitive.unmarked": "Medya hassas olarak işaretlenmemiş",
"compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir", "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir",
@ -209,6 +210,7 @@
"lightbox.close": "Kapat", "lightbox.close": "Kapat",
"lightbox.next": "Sonraki", "lightbox.next": "Sonraki",
"lightbox.previous": "Önceli", "lightbox.previous": "Önceli",
"lightbox.view_context": "View context",
"lists.account.add": "Listeye ekle", "lists.account.add": "Listeye ekle",
"lists.account.remove": "Listeden kaldır", "lists.account.remove": "Listeden kaldır",
"lists.delete": "Listeyi sil", "lists.delete": "Listeyi sil",
@ -340,7 +342,6 @@
"status.reply": "Cevapla", "status.reply": "Cevapla",
"status.replyAll": "Konuşmayı cevapla", "status.replyAll": "Konuşmayı cevapla",
"status.report": "@{name}'i raporla", "status.report": "@{name}'i raporla",
"status.sensitive_toggle": "Görmek için tıklayınız",
"status.sensitive_warning": "Hassas içerik", "status.sensitive_warning": "Hassas içerik",
"status.share": "Paylaş", "status.share": "Paylaş",
"status.show_less": "Daha az göster", "status.show_less": "Daha az göster",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Дмухнути", "compose_form.publish": "Дмухнути",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Медіа відмічене <b>несприйнятливим</b>", "compose_form.sensitive.marked": "Медіа відмічене <b>несприйнятливим</b>",
"compose_form.sensitive.unmarked": "Медіа відмічене сприйнятливим", "compose_form.sensitive.unmarked": "Медіа відмічене сприйнятливим",
"compose_form.spoiler.marked": "Текст приховано за попередженням", "compose_form.spoiler.marked": "Текст приховано за попередженням",
@ -209,6 +210,7 @@
"lightbox.close": "Закрити", "lightbox.close": "Закрити",
"lightbox.next": "Далі", "lightbox.next": "Далі",
"lightbox.previous": "Назад", "lightbox.previous": "Назад",
"lightbox.view_context": "View context",
"lists.account.add": "Додати до списку", "lists.account.add": "Додати до списку",
"lists.account.remove": "Видалити зі списку", "lists.account.remove": "Видалити зі списку",
"lists.delete": "Видалити список", "lists.delete": "Видалити список",
@ -340,7 +342,6 @@
"status.reply": "Відповісти", "status.reply": "Відповісти",
"status.replyAll": "Відповісти на тред", "status.replyAll": "Відповісти на тред",
"status.report": "Поскаржитися", "status.report": "Поскаржитися",
"status.sensitive_toggle": "Натисніть, щоб подивитися",
"status.sensitive_warning": "Непристойний зміст", "status.sensitive_warning": "Непристойний зміст",
"status.share": "Share", "status.share": "Share",
"status.show_less": "Згорнути", "status.show_less": "Згорнути",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "嘟嘟", "compose_form.publish": "嘟嘟",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "媒体已被标记为敏感内容", "compose_form.sensitive.marked": "媒体已被标记为敏感内容",
"compose_form.sensitive.unmarked": "媒体未被标记为敏感内容", "compose_form.sensitive.unmarked": "媒体未被标记为敏感内容",
"compose_form.spoiler.marked": "正文已被折叠在警告信息之后", "compose_form.spoiler.marked": "正文已被折叠在警告信息之后",
@ -209,6 +210,7 @@
"lightbox.close": "关闭", "lightbox.close": "关闭",
"lightbox.next": "下一步", "lightbox.next": "下一步",
"lightbox.previous": "上一步", "lightbox.previous": "上一步",
"lightbox.view_context": "View context",
"lists.account.add": "添加到列表", "lists.account.add": "添加到列表",
"lists.account.remove": "从列表中删除", "lists.account.remove": "从列表中删除",
"lists.delete": "删除列表", "lists.delete": "删除列表",
@ -340,7 +342,6 @@
"status.reply": "回复", "status.reply": "回复",
"status.replyAll": "回复所有人", "status.replyAll": "回复所有人",
"status.report": "举报 @{name}", "status.report": "举报 @{name}",
"status.sensitive_toggle": "点击显示",
"status.sensitive_warning": "敏感内容", "status.sensitive_warning": "敏感内容",
"status.share": "分享", "status.share": "分享",
"status.show_less": "隐藏内容", "status.show_less": "隐藏内容",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "Remove this choice", "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "發文", "compose_form.publish": "發文",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "媒體被標示為敏感", "compose_form.sensitive.marked": "媒體被標示為敏感",
"compose_form.sensitive.unmarked": "媒體沒有被標示為敏感", "compose_form.sensitive.unmarked": "媒體沒有被標示為敏感",
"compose_form.spoiler.marked": "文字被警告隱藏", "compose_form.spoiler.marked": "文字被警告隱藏",
@ -209,6 +210,7 @@
"lightbox.close": "關閉", "lightbox.close": "關閉",
"lightbox.next": "繼續", "lightbox.next": "繼續",
"lightbox.previous": "回退", "lightbox.previous": "回退",
"lightbox.view_context": "View context",
"lists.account.add": "新增到列表", "lists.account.add": "新增到列表",
"lists.account.remove": "從列表刪除", "lists.account.remove": "從列表刪除",
"lists.delete": "刪除列表", "lists.delete": "刪除列表",
@ -340,7 +342,6 @@
"status.reply": "回應", "status.reply": "回應",
"status.replyAll": "回應所有人", "status.replyAll": "回應所有人",
"status.report": "舉報 @{name}", "status.report": "舉報 @{name}",
"status.sensitive_toggle": "點擊顯示",
"status.sensitive_warning": "敏感內容", "status.sensitive_warning": "敏感內容",
"status.share": "分享", "status.share": "分享",
"status.show_less": "減少顯示", "status.show_less": "減少顯示",

@ -77,6 +77,7 @@
"compose_form.poll.remove_option": "移除此選擇", "compose_form.poll.remove_option": "移除此選擇",
"compose_form.publish": "嘟掉", "compose_form.publish": "嘟掉",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "此媒體被標記為敏感內容", "compose_form.sensitive.marked": "此媒體被標記為敏感內容",
"compose_form.sensitive.unmarked": "此媒體未被標記為敏感內容", "compose_form.sensitive.unmarked": "此媒體未被標記為敏感內容",
"compose_form.spoiler.marked": "正文已隱藏在警告之後", "compose_form.spoiler.marked": "正文已隱藏在警告之後",
@ -209,6 +210,7 @@
"lightbox.close": "關閉", "lightbox.close": "關閉",
"lightbox.next": "下一步", "lightbox.next": "下一步",
"lightbox.previous": "上一步", "lightbox.previous": "上一步",
"lightbox.view_context": "View context",
"lists.account.add": "新增至名單", "lists.account.add": "新增至名單",
"lists.account.remove": "從名單中移除", "lists.account.remove": "從名單中移除",
"lists.delete": "刪除名單", "lists.delete": "刪除名單",
@ -340,7 +342,6 @@
"status.reply": "回覆", "status.reply": "回覆",
"status.replyAll": "回覆所有人", "status.replyAll": "回覆所有人",
"status.report": "檢舉 @{name}", "status.report": "檢舉 @{name}",
"status.sensitive_toggle": "點擊顯示",
"status.sensitive_warning": "敏感內容", "status.sensitive_warning": "敏感內容",
"status.share": "分享", "status.share": "分享",
"status.show_less": "減少顯示", "status.show_less": "減少顯示",

@ -14,6 +14,8 @@ const initialState = ImmutableMap({
skinTone: 1, skinTone: 1,
forceSingleColumn: false,
home: ImmutableMap({ home: ImmutableMap({
shows: ImmutableMap({ shows: ImmutableMap({
reblog: true, reblog: true,

@ -1788,16 +1788,6 @@ a.account__display-name {
} }
} }
@media screen and (min-width: 360px) {
.columns-area {
padding: 10px;
}
.react-swipeable-view-container .columns-area {
height: calc(100% - 20px) !important;
}
}
.react-swipeable-view-container { .react-swipeable-view-container {
&, &,
.columns-area, .columns-area,
@ -1860,36 +1850,6 @@ a.account__display-name {
overflow: hidden; overflow: hidden;
} }
@media screen and (min-width: 360px) {
.tabs-bar {
margin: 10px;
margin-bottom: 0;
}
.getting-started__wrapper,
.getting-started__trends,
.search {
margin-bottom: 10px;
}
}
@media screen and (max-width: 630px) {
.column,
.drawer {
width: 100%;
padding: 0;
}
.columns-area {
flex-direction: column;
}
.search__input,
.autosuggest-textarea__textarea {
font-size: 16px;
}
}
@media screen and (min-width: 631px) { @media screen and (min-width: 631px) {
.columns-area { .columns-area {
padding: 0; padding: 0;
@ -1920,6 +1880,172 @@ a.account__display-name {
} }
} }
.tabs-bar {
box-sizing: border-box;
display: flex;
background: lighten($ui-base-color, 8%);
flex: 0 0 auto;
overflow-y: auto;
}
.tabs-bar__link {
display: block;
flex: 1 1 auto;
padding: 15px 10px;
color: $primary-text-color;
text-decoration: none;
text-align: center;
font-size: 14px;
font-weight: 500;
border-bottom: 2px solid lighten($ui-base-color, 8%);
transition: all 50ms linear;
transition-property: border-bottom, background, color;
.fa {
font-weight: 400;
font-size: 16px;
}
&.active {
border-bottom: 2px solid $highlight-text-color;
color: $highlight-text-color;
}
&:hover,
&:focus,
&:active {
@media screen and (min-width: 631px) {
background: lighten($ui-base-color, 14%);
}
}
span {
margin-left: 5px;
display: none;
}
}
@media screen and (min-width: 600px) {
.tabs-bar__link {
span {
display: inline;
}
}
}
.columns-area--mobile {
flex-direction: column;
width: 100%;
max-width: 600px;
margin: 0 auto;
.column,
.drawer {
width: 100%;
height: 100%;
padding: 0;
}
.search__input,
.autosuggest-textarea__textarea {
font-size: 16px;
}
@media screen and (min-width: 360px) {
padding: 10px;
}
@media screen and (min-width: 630px) {
.detailed-status {
padding: 15px;
.media-gallery,
.video-player {
margin-top: 15px;
}
}
.account__header__bar {
padding: 5px 10px;
}
.navigation-bar,
.compose-form {
padding: 15px;
}
.compose-form .compose-form__publish .compose-form__publish-button-wrapper {
padding-top: 15px;
}
.status {
padding: 15px 15px 15px (48px + 15px * 2);
min-height: 48px + 2px;
&__avatar {
left: 15px;
top: 17px;
}
&__content {
padding-top: 5px;
}
&__prepend {
margin-left: 48px + 15px * 2;
padding-top: 15px;
}
&__prepend-icon-wrapper {
left: -32px;
}
.media-gallery,
&__action-bar,
.video-player {
margin-top: 10px;
}
}
}
}
@media screen and (min-width: 360px) {
.tabs-bar {
margin: 10px auto;
margin-bottom: 0;
width: calc(100% - 20px);
max-width: 600px;
}
.react-swipeable-view-container .columns-area--mobile {
height: calc(100% - 20px) !important;
}
.getting-started__wrapper,
.getting-started__trends,
.search {
margin-bottom: 10px;
}
}
.icon-with-badge {
position: relative;
&__badge {
position: absolute;
right: -13px;
top: -13px;
background: $ui-highlight-color;
border: 2px solid lighten($ui-base-color, 8%);
padding: 1px 6px;
border-radius: 6px;
font-size: 10px;
font-weight: 500;
line-height: 14px;
color: $primary-text-color;
}
}
.drawer__pager { .drawer__pager {
box-sizing: border-box; box-sizing: border-box;
padding: 0; padding: 0;
@ -1952,6 +2078,7 @@ a.account__display-name {
background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-color)}"/></svg>') no-repeat bottom / 100% auto; background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-color)}"/></svg>') no-repeat bottom / 100% auto;
flex: 1; flex: 1;
min-height: 47px; min-height: 47px;
display: none;
> img { > img {
display: block; display: block;
@ -1963,6 +2090,19 @@ a.account__display-name {
user-drag: none; user-drag: none;
user-select: none; user-select: none;
} }
@media screen and (min-height: 640px) {
display: block;
}
}
.navigational-toggle {
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
color: $dark-text-color;
} }
.pseudo-drawer { .pseudo-drawer {
@ -1989,64 +2129,6 @@ a.account__display-name {
} }
} }
.tabs-bar {
display: flex;
background: lighten($ui-base-color, 8%);
flex: 0 0 auto;
overflow-y: auto;
}
.tabs-bar__link {
display: block;
flex: 1 1 auto;
padding: 15px 10px;
color: $primary-text-color;
text-decoration: none;
text-align: center;
font-size: 14px;
font-weight: 500;
border-bottom: 2px solid lighten($ui-base-color, 8%);
transition: all 50ms linear;
transition-property: border-bottom, background, color;
.fa {
font-weight: 400;
font-size: 16px;
}
&.active {
border-bottom: 2px solid $highlight-text-color;
color: $highlight-text-color;
}
&:hover,
&:focus,
&:active {
@media screen and (min-width: 631px) {
background: lighten($ui-base-color, 14%);
}
}
span {
margin-left: 5px;
display: none;
}
}
@media screen and (min-width: 600px) {
.tabs-bar__link {
span {
display: inline;
}
}
}
@media screen and (min-width: 631px) {
.tabs-bar {
display: none;
}
}
.scrollable { .scrollable {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
@ -3190,6 +3272,10 @@ a.status-card.compact:hover {
contain: strict; contain: strict;
} }
& > span {
max-width: 400px;
}
a { a {
color: $highlight-text-color; color: $highlight-text-color;
text-decoration: none; text-decoration: none;
@ -3279,6 +3365,7 @@ a.status-card.compact:hover {
box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4); box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
border-radius: 4px; border-radius: 4px;
margin-top: 5px; margin-top: 5px;
z-index: 2;
.emoji-mart-scroll { .emoji-mart-scroll {
transition: opacity 200ms ease; transition: opacity 200ms ease;
@ -5610,3 +5697,49 @@ noscript {
} }
} }
} }
.layout-toggle {
display: flex;
padding: 5px;
button {
box-sizing: border-box;
flex: 0 0 50%;
background: transparent;
padding: 5px;
border: 0;
position: relative;
&:hover,
&:focus,
&:active {
svg path:first-child {
fill: lighten($ui-base-color, 16%);
}
}
}
svg {
width: 100%;
height: auto;
path:first-child {
fill: lighten($ui-base-color, 12%);
}
path:last-child {
fill: darken($ui-base-color, 14%);
}
}
&__active {
color: $ui-highlight-color;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: lighten($ui-base-color, 12%);
border-radius: 50%;
padding: 0.35rem;
}
}

@ -41,9 +41,13 @@ class Notification < ApplicationRecord
validates :account_id, uniqueness: { scope: [:activity_type, :activity_id] } validates :account_id, uniqueness: { scope: [:activity_type, :activity_id] }
validates :activity_type, inclusion: { in: TYPE_CLASS_MAP.values } validates :activity_type, inclusion: { in: TYPE_CLASS_MAP.values }
scope :browserable, ->(exclude_types = []) { scope :browserable, ->(exclude_types = [], account_id = nil) {
types = TYPE_CLASS_MAP.values - activity_types_from_types(exclude_types + [:follow_request]) types = TYPE_CLASS_MAP.values - activity_types_from_types(exclude_types + [:follow_request])
where(activity_type: types) if account_id.nil?
where(activity_type: types)
else
where(activity_type: types, from_account_id: account_id)
end
} }
cache_associated :from_account, status: STATUS_INCLUDES, mention: [status: STATUS_INCLUDES], favourite: [:account, status: STATUS_INCLUDES], follow: :account, poll: [status: STATUS_INCLUDES] cache_associated :from_account, status: STATUS_INCLUDES, mention: [status: STATUS_INCLUDES], favourite: [:account, status: STATUS_INCLUDES], follow: :account, poll: [status: STATUS_INCLUDES]

@ -51,7 +51,7 @@ class ActivityPub::DeliveryWorker
end end
def response_error_unsalvageable?(response) def response_error_unsalvageable?(response)
(400...500).cover?(response.code) && response.code != 429 (400...500).cover?(response.code) && ![401, 408, 429].include?(response.code)
end end
def failure_tracker def failure_tracker

@ -14,7 +14,7 @@ sk:
browse_public_posts: Prebádaj naživo prúd verejných príspevkov na Mastodone browse_public_posts: Prebádaj naživo prúd verejných príspevkov na Mastodone
contact: Kontakt contact: Kontakt
contact_missing: Nezadaný contact_missing: Nezadaný
contact_unavailable: Neuvedený contact_unavailable: Neuvedený
discover_users: Objavuj užívateľov discover_users: Objavuj užívateľov
documentation: Dokumentácia documentation: Dokumentácia
extended_description_html: | extended_description_html: |
@ -67,9 +67,9 @@ sk:
other: Príspevky other: Príspevky
posts_tab_heading: Príspevky posts_tab_heading: Príspevky
posts_with_replies: Príspevky s odpoveďami posts_with_replies: Príspevky s odpoveďami
reserved_username: Prihlasovacie meno je rezervova reserved_username: Prihlasovacie meno je vyhrade
roles: roles:
admin: Administrátor admin: Správca
bot: Bot bot: Bot
moderator: Moderátor moderator: Moderátor
unavailable: Profil nieje dostupný unavailable: Profil nieje dostupný
@ -177,7 +177,7 @@ sk:
silenced: Stíšený/é silenced: Stíšený/é
statuses: Príspevky statuses: Príspevky
subscribe: Odoberaj subscribe: Odoberaj
suspended: Zablokovaní suspended: Vylúčený/á
title: Účty title: Účty
unconfirmed_email: Nepotvrdený email unconfirmed_email: Nepotvrdený email
undo_silenced: Zruš stíšenie undo_silenced: Zruš stíšenie
@ -288,10 +288,10 @@ sk:
reject_reports: Zamietni hlásenia reject_reports: Zamietni hlásenia
reject_reports_hint: Ignoruj všetky hlásenia prichádzajúce z tejto domény. Nevplýva na blokovania reject_reports_hint: Ignoruj všetky hlásenia prichádzajúce z tejto domény. Nevplýva na blokovania
rejecting_media: odmietanie médiálnych súborov rejecting_media: odmietanie médiálnych súborov
rejecting_reports: odmietané hlásenia rejecting_reports: odmietanie hlásení
severity: severity:
silence: stíšený silence: stíšené
suspend: vylúčený suspend: vylúčené
show: show:
affected_accounts: affected_accounts:
few: Je ovplyvnených %{count} účtov v databázi few: Je ovplyvnených %{count} účtov v databázi
@ -315,7 +315,7 @@ sk:
title: Blokované emailové adresy title: Blokované emailové adresy
followers: followers:
back_to_account: Späť na účet back_to_account: Späť na účet
title: Následovatielia užívateľa %{acct} title: Sledovatielia užívateľa %{acct}
instances: instances:
by_domain: Doména by_domain: Doména
delivery_available: Je v dosahu doručovania delivery_available: Je v dosahu doručovania
@ -464,7 +464,7 @@ sk:
statuses: statuses:
back_to_account: Späť na účet back_to_account: Späť na účet
batch: batch:
delete: Vymazať delete: Vymaž
nsfw_off: Označ ako nechúlostivé nsfw_off: Označ ako nechúlostivé
nsfw_on: Označ ako chúlostivé nsfw_on: Označ ako chúlostivé
failed_to_execute: Nepodarilo sa vykonať failed_to_execute: Nepodarilo sa vykonať
@ -992,5 +992,5 @@ sk:
seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné. seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné.
signed_in_as: 'Prihlásená/ý ako:' signed_in_as: 'Prihlásená/ý ako:'
verification: verification:
explanation_html: 'Môžeš sa <strong>overiť ako majiteľ odkazov v metadátach tvojho profilu</strong>. Na to musí ale odkazovaná stránka obsahovať odkaz späť na tvoj Mastodon profil. Tento spätný odkaz <strong>musí</strong> mať prívlastok <code>rel="me"</code>. Na texte odkazu nezáleží. Tu je príklad:' explanation_html: 'Môžeš sa <strong>overiť ako majiteľ odkazov v metadátach tvojho profilu</strong>. Na to ale musí odkazovaná stránka obsahovať odkaz späť na tvoj Mastodon profil. Tento spätný odkaz <strong>musí</strong> mať prívlastok <code>rel="me"</code>. Na texte odkazu nezáleží. Tu je príklad:'
verification: Overenie verification: Overenie

@ -2,7 +2,7 @@
"name": "mastodon", "name": "mastodon",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"engines": { "engines": {
"node": ">=8 <11" "node": ">=8.12 <12"
}, },
"scripts": { "scripts": {
"postversion": "git push --tags", "postversion": "git push --tags",
@ -70,6 +70,7 @@
"@babel/preset-env": "^7.3.4", "@babel/preset-env": "^7.3.4",
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"@babel/runtime": "^7.3.4", "@babel/runtime": "^7.3.4",
"@clusterws/cws": "^0.14.0",
"array-includes": "^3.0.3", "array-includes": "^3.0.3",
"atrament": "^0.2.3", "atrament": "^0.2.3",
"autoprefixer": "^9.4.10", "autoprefixer": "^9.4.10",
@ -160,7 +161,6 @@
"tiny-queue": "^0.2.1", "tiny-queue": "^0.2.1",
"uglifyjs-webpack-plugin": "^2.1.2", "uglifyjs-webpack-plugin": "^2.1.2",
"uuid": "^3.1.0", "uuid": "^3.1.0",
"uws": "10.148.0",
"webpack": "^4.29.6", "webpack": "^4.29.6",
"webpack-assets-manifest": "^3.1.1", "webpack-assets-manifest": "^3.1.1",
"webpack-bundle-analyzer": "^3.1.0", "webpack-bundle-analyzer": "^3.1.0",

@ -6,6 +6,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:other) { Fabricate(:user, account: Fabricate(:account, username: 'bob')) } let(:other) { Fabricate(:user, account: Fabricate(:account, username: 'bob')) }
let(:third) { Fabricate(:user, account: Fabricate(:account, username: 'carol')) }
before do before do
allow(controller).to receive(:doorkeeper_token) { token } allow(controller).to receive(:doorkeeper_token) { token }
@ -55,6 +56,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
mentioning_status = PostStatusService.new.call(other.account, text: 'Hello @alice') mentioning_status = PostStatusService.new.call(other.account, text: 'Hello @alice')
@mention_from_status = mentioning_status.mentions.first @mention_from_status = mentioning_status.mentions.first
@favourite = FavouriteService.new.call(other.account, first_status) @favourite = FavouriteService.new.call(other.account, first_status)
@second_favourite = FavouriteService.new.call(third.account, first_status)
@follow = FollowService.new.call(other.account, 'alice') @follow = FollowService.new.call(other.account, 'alice')
end end
@ -84,6 +86,66 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end end
end end
describe 'from specified user' do
before do
get :index, params: { account_id: third.account.id }
end
it 'returns http success' do
expect(response).to have_http_status(200)
end
it 'includes favourite' do
expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
end
it 'excludes favourite' do
expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
end
it 'excludes mention' do
expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
end
it 'excludes reblog' do
expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
end
it 'excludes follow' do
expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
end
end
describe 'from nonexistent user' do
before do
get :index, params: { account_id: 'foo' }
end
it 'returns http success' do
expect(response).to have_http_status(200)
end
it 'excludes favourite' do
expect(assigns(:notifications).map(&:activity)).to_not include(@favourite)
end
it 'excludes second favourite' do
expect(assigns(:notifications).map(&:activity)).to_not include(@second_favourite)
end
it 'excludes mention' do
expect(assigns(:notifications).map(&:activity)).to_not include(@mention_from_status)
end
it 'excludes reblog' do
expect(assigns(:notifications).map(&:activity)).to_not include(@reblog_of_first_status)
end
it 'excludes follow' do
expect(assigns(:notifications).map(&:activity)).to_not include(@follow)
end
end
describe 'with excluded mentions' do describe 'with excluded mentions' do
before do before do
get :index, params: { exclude_types: ['mention'] } get :index, params: { exclude_types: ['mention'] }
@ -105,6 +167,10 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
expect(assigns(:notifications).map(&:activity)).to include(@favourite) expect(assigns(:notifications).map(&:activity)).to include(@favourite)
end end
it 'includes third favourite' do
expect(assigns(:notifications).map(&:activity)).to include(@second_favourite)
end
it 'includes follow' do it 'includes follow' do
expect(assigns(:notifications).map(&:activity)).to include(@follow) expect(assigns(:notifications).map(&:activity)).to include(@follow)
end end

@ -7,7 +7,7 @@ const redis = require('redis');
const pg = require('pg'); const pg = require('pg');
const log = require('npmlog'); const log = require('npmlog');
const url = require('url'); const url = require('url');
const WebSocket = require('uws'); const { WebSocketServer } = require('@clusterws/cws');
const uuid = require('uuid'); const uuid = require('uuid');
const fs = require('fs'); const fs = require('fs');
@ -542,20 +542,13 @@ const startWorker = (workerId) => {
}); });
}); });
const wss = new WebSocket.Server({ server, verifyClient: wsVerifyClient }); const wss = new WebSocketServer({ server, verifyClient: wsVerifyClient });
wss.on('connection', ws => { wss.on('connection', (ws, req) => {
const req = ws.upgradeReq;
const location = url.parse(req.url, true); const location = url.parse(req.url, true);
req.requestId = uuid.v4(); req.requestId = uuid.v4();
req.remoteAddress = ws._socket.remoteAddress; req.remoteAddress = ws._socket.remoteAddress;
ws.isAlive = true;
ws.on('pong', () => {
ws.isAlive = true;
});
let channel; let channel;
switch(location.query.stream) { switch(location.query.stream) {
@ -616,17 +609,7 @@ const startWorker = (workerId) => {
} }
}); });
setInterval(() => { wss.startAutoPing(30000);
wss.clients.forEach(ws => {
if (ws.isAlive === false) {
ws.terminate();
return;
}
ws.isAlive = false;
ws.ping('', false, true);
});
}, 30000);
attachServerWithConfig(server, address => { attachServerWithConfig(server, address => {
log.info(`Worker ${workerId} now listening on ${address}`); log.info(`Worker ${workerId} now listening on ${address}`);

@ -782,6 +782,11 @@
lodash "^4.17.11" lodash "^4.17.11"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@clusterws/cws@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.14.0.tgz#242824b6884454001340222a836db6f6c5e62bfb"
integrity sha512-knZj3KZNHIAGsX7TUc/0Q5gcx2bKMMcTPsAOZomLKdK5a4o/umKFlttWRH84Yr1nVlQy+UMO23qfDR8gRZ/4cw==
"@cnakazawa/watch@^1.0.3": "@cnakazawa/watch@^1.0.3":
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
@ -9277,11 +9282,6 @@ uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
uws@10.148.0:
version "10.148.0"
resolved "https://registry.yarnpkg.com/uws/-/uws-10.148.0.tgz#3fcd35f083ca515e091cd33b2d78f0f51a666215"
integrity sha512-aJpFgMMyxubiE/ll4nj9nWoQbv0HzZZDWXfwyu78nuFObX0Zoyv3TWjkqKPQ1vb2sMPZoz67tri7QNE6dybNmQ==
v8-compile-cache@^2.0.2: v8-compile-cache@^2.0.2:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"

Loading…
Cancel
Save