Browse Source

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

Conflicts:
- `Gemfile.lock`:
  No real conflict, glitch-soc-only dependency (redcarpet) too close to an
  upstream one (rdf-normalize)
- `README.md`:
  we have different READMEs, discarded upstream's changes
- `app/views/admin/custom_emojis/index.html.haml`:
  No real conflict, different context because of glitch-soc theming
- `lib/mastodon/statuses_cli.rb`:
  Upstream added code to keep bookmarked statuses, we were already doing so
  with slightly different code. Discarded upstream's changes.
- `package.json`:
  No real conflict, glitch-soc-only dependency (favico.js) too close to
  an upstream one
master^2^2
Thibaut Girka 1 week ago
parent
commit
980c004f06
100 changed files with 4797 additions and 2413 deletions
  1. 53
    5
      .circleci/config.yml
  2. 7
    5
      Gemfile
  3. 28
    22
      Gemfile.lock
  4. 1
    1
      app/helpers/accounts_helper.rb
  5. 2
    2
      app/helpers/routing_helper.rb
  6. 25
    10
      app/javascript/mastodon/features/audio/index.js
  7. 35
    15
      app/javascript/mastodon/features/video/index.js
  8. 21
    6
      app/javascript/mastodon/locales/ar.json
  9. 91
    76
      app/javascript/mastodon/locales/ast.json
  10. 15
    0
      app/javascript/mastodon/locales/bg.json
  11. 42
    27
      app/javascript/mastodon/locales/bn.json
  12. 40
    25
      app/javascript/mastodon/locales/br.json
  13. 56
    41
      app/javascript/mastodon/locales/ca.json
  14. 15
    0
      app/javascript/mastodon/locales/co.json
  15. 122
    107
      app/javascript/mastodon/locales/cs.json
  16. 15
    0
      app/javascript/mastodon/locales/cy.json
  17. 15
    0
      app/javascript/mastodon/locales/da.json
  18. 17
    2
      app/javascript/mastodon/locales/de.json
  19. 12
    0
      app/javascript/mastodon/locales/defaultMessages.json
  20. 16
    1
      app/javascript/mastodon/locales/el.json
  21. 3
    0
      app/javascript/mastodon/locales/en.json
  22. 16
    1
      app/javascript/mastodon/locales/eo.json
  23. 16
    1
      app/javascript/mastodon/locales/es-AR.json
  24. 73
    58
      app/javascript/mastodon/locales/es.json
  25. 15
    0
      app/javascript/mastodon/locales/et.json
  26. 20
    5
      app/javascript/mastodon/locales/eu.json
  27. 287
    272
      app/javascript/mastodon/locales/fa.json
  28. 15
    0
      app/javascript/mastodon/locales/fi.json
  29. 20
    5
      app/javascript/mastodon/locales/fr.json
  30. 15
    0
      app/javascript/mastodon/locales/ga.json
  31. 296
    281
      app/javascript/mastodon/locales/gl.json
  32. 15
    0
      app/javascript/mastodon/locales/he.json
  33. 15
    0
      app/javascript/mastodon/locales/hi.json
  34. 15
    0
      app/javascript/mastodon/locales/hr.json
  35. 15
    0
      app/javascript/mastodon/locales/hu.json
  36. 141
    126
      app/javascript/mastodon/locales/hy.json
  37. 18
    3
      app/javascript/mastodon/locales/id.json
  38. 15
    0
      app/javascript/mastodon/locales/io.json
  39. 438
    0
      app/javascript/mastodon/locales/is.json
  40. 16
    1
      app/javascript/mastodon/locales/it.json
  41. 17
    2
      app/javascript/mastodon/locales/ja.json
  42. 16
    1
      app/javascript/mastodon/locales/ka.json
  43. 438
    0
      app/javascript/mastodon/locales/kab.json
  44. 15
    0
      app/javascript/mastodon/locales/kk.json
  45. 15
    0
      app/javascript/mastodon/locales/kn.json
  46. 22
    7
      app/javascript/mastodon/locales/ko.json
  47. 15
    0
      app/javascript/mastodon/locales/lt.json
  48. 15
    0
      app/javascript/mastodon/locales/lv.json
  49. 15
    0
      app/javascript/mastodon/locales/mk.json
  50. 150
    135
      app/javascript/mastodon/locales/ml.json
  51. 15
    0
      app/javascript/mastodon/locales/mr.json
  52. 15
    0
      app/javascript/mastodon/locales/ms.json
  53. 17
    2
      app/javascript/mastodon/locales/nl.json
  54. 313
    298
      app/javascript/mastodon/locales/nn.json
  55. 170
    155
      app/javascript/mastodon/locales/no.json
  56. 16
    1
      app/javascript/mastodon/locales/oc.json
  57. 15
    0
      app/javascript/mastodon/locales/pl.json
  58. 210
    195
      app/javascript/mastodon/locales/pt-BR.json
  59. 17
    2
      app/javascript/mastodon/locales/pt-PT.json
  60. 15
    0
      app/javascript/mastodon/locales/ro.json
  61. 106
    91
      app/javascript/mastodon/locales/ru.json
  62. 24
    9
      app/javascript/mastodon/locales/sk.json
  63. 15
    0
      app/javascript/mastodon/locales/sl.json
  64. 15
    0
      app/javascript/mastodon/locales/sq.json
  65. 15
    0
      app/javascript/mastodon/locales/sr-Latn.json
  66. 15
    0
      app/javascript/mastodon/locales/sr.json
  67. 26
    11
      app/javascript/mastodon/locales/sv.json
  68. 42
    27
      app/javascript/mastodon/locales/ta.json
  69. 15
    0
      app/javascript/mastodon/locales/te.json
  70. 39
    24
      app/javascript/mastodon/locales/th.json
  71. 18
    3
      app/javascript/mastodon/locales/tr.json
  72. 15
    0
      app/javascript/mastodon/locales/uk.json
  73. 144
    129
      app/javascript/mastodon/locales/ur.json
  74. 438
    0
      app/javascript/mastodon/locales/vi.json
  75. 2
    0
      app/javascript/mastodon/locales/whitelist_is.json
  76. 2
    0
      app/javascript/mastodon/locales/whitelist_kab.json
  77. 2
    0
      app/javascript/mastodon/locales/whitelist_vi.json
  78. 19
    4
      app/javascript/mastodon/locales/zh-CN.json
  79. 160
    145
      app/javascript/mastodon/locales/zh-HK.json
  80. 23
    8
      app/javascript/mastodon/locales/zh-TW.json
  81. 1
    2
      app/javascript/styles/mastodon/_mixins.scss
  82. 1
    2
      app/javascript/styles/mastodon/about.scss
  83. 0
    1
      app/javascript/styles/mastodon/accounts.scss
  84. 15
    10
      app/javascript/styles/mastodon/admin.scss
  85. 9
    18
      app/javascript/styles/mastodon/components.scss
  86. 0
    1
      app/javascript/styles/mastodon/footer.scss
  87. 0
    2
      app/javascript/styles/mastodon/forms.scss
  88. 2
    5
      app/javascript/styles/mastodon/widgets.scss
  89. 1
    1
      app/lib/activitypub/activity.rb
  90. 3
    2
      app/lib/formatter.rb
  91. 4
    2
      app/lib/request.rb
  92. 1
    1
      app/lib/sanitize_config.rb
  93. 0
    4
      app/models/account.rb
  94. 2
    10
      app/models/concerns/status_threading_concern.rb
  95. 1
    1
      app/models/domain_block.rb
  96. 6
    1
      app/models/status.rb
  97. 1
    1
      app/services/activitypub/process_collection_service.rb
  98. 1
    1
      app/services/fetch_resource_service.rb
  99. 1
    1
      app/services/vote_service.rb
  100. 0
    0
      app/validators/vote_validator.rb

+ 53
- 5
.circleci/config.yml View File

@@ -3,7 +3,7 @@ version: 2
aliases:
- &defaults
docker:
- image: circleci/ruby:2.6-buster-node
- image: circleci/ruby:2.7-buster-node
environment: &ruby_environment
BUNDLE_APP_CONFIG: ./.bundle/
DB_HOST: localhost
@@ -98,8 +98,15 @@ jobs:
<<: *defaults
<<: *install_steps

install-ruby2.7:
<<: *defaults
<<: *install_ruby_dependencies

install-ruby2.6:
<<: *defaults
docker:
- image: circleci/ruby:2.6-buster-node
environment: *ruby_environment
<<: *install_ruby_dependencies

install-ruby2.5:
@@ -128,6 +135,36 @@ jobs:
- ./mastodon/public/assets
- ./mastodon/public/packs-test/

test-migrations:
<<: *defaults
docker:
- image: circleci/ruby:2.7-buster-node
environment: *ruby_environment
- image: circleci/postgres:10.6-alpine
environment:
POSTGRES_USER: root
- image: circleci/redis:5-alpine
steps:
- *attach_workspace
- *install_system_dependencies
- run:
name: Create database
command: ./bin/rails parallel:create
- run:
name: Run migrations
command: ./bin/rails parallel:migrate

test-ruby2.7:
<<: *defaults
docker:
- image: circleci/ruby:2.7-buster-node
environment: *ruby_environment
- image: circleci/postgres:10.6-alpine
environment:
POSTGRES_USER: root
- image: circleci/redis:5-alpine
<<: *test_steps

test-ruby2.6:
<<: *defaults
docker:
@@ -184,20 +221,31 @@ workflows:
build-and-test:
jobs:
- install
- install-ruby2.7:
requires:
- install
- install-ruby2.6:
requires:
- install
- install-ruby2.7
- install-ruby2.5:
requires:
- install
- install-ruby2.6
- install-ruby2.7
- install-ruby2.4:
requires:
- install
- install-ruby2.6
- install-ruby2.7
- build:
requires:
- install-ruby2.6
- install-ruby2.7
- test-migrations:
requires:
- install-ruby2.7
- test-ruby2.7:
requires:
- install-ruby2.7
- build
- test-ruby2.6:
requires:
- install-ruby2.6
@@ -215,4 +263,4 @@ workflows:
- install
- check-i18n:
requires:
- install-ruby2.6
- install-ruby2.7

+ 7
- 5
Gemfile View File

@@ -1,7 +1,7 @@
# frozen_string_literal: true

source 'https://rubygems.org'
ruby '>= 2.4.0', '< 2.7.0'
ruby '>= 2.4.0', '< 3.0.0'

gem 'pkg-config', '~> 1.4'

@@ -10,6 +10,9 @@ gem 'rails', '~> 5.2.4'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 0.20'

gem 'thwait', '~> 0.1.0'
gem 'e2mmap', '~> 0.1.0'

gem 'hamlit-rails', '~> 0.2'
gem 'pg', '~> 1.2'
gem 'makara', '~> 0.4'
@@ -54,7 +57,7 @@ gem 'redis-namespace', '~> 1.7'
gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b'
gem 'html2text'
gem 'htmlentities', '~> 4.3'
gem 'http', '~> 3.3'
gem 'http', '~> 4.3'
gem 'http_accept_language', '~> 2.1'
gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2', submodules: true
gem 'httplog', '~> 1.3'
@@ -66,7 +69,6 @@ gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b
gem 'nokogiri', '~> 1.10'
gem 'nsa', '~> 0.2'
gem 'oj', '~> 3.10'
gem 'ostatus2', '~> 2.0'
gem 'ox', '~> 2.11'
gem 'parslet'
gem 'parallel', '~> 1.19'
@@ -79,7 +81,7 @@ gem 'rails-i18n', '~> 5.1'
gem 'rails-settings-cached', '~> 0.6'
gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis']
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
gem 'rqrcode', '~> 0.10'
gem 'rqrcode', '~> 1.1'
gem 'ruby-progressbar', '~> 1.10'
gem 'sanitize', '~> 5.1'
gem 'sidekiq', '~> 5.2'
@@ -100,7 +102,7 @@ gem 'webpush'

gem 'json-ld', git: 'https://github.com/ruby-rdf/json-ld.git', ref: 'e742697a0906e74e8bb777ef98137bc3955d981d'
gem 'json-ld-preloaded', '~> 3.0'
gem 'rdf-normalize', '~> 0.3'
gem 'rdf-normalize', '~> 0.4'

gem 'redcarpet', '~> 3.4'


+ 28
- 22
Gemfile.lock View File

@@ -128,7 +128,7 @@ GEM
rack (>= 0.9.0)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
blurhash (0.1.3)
blurhash (0.1.4)
ffi (~> 1.10.0)
bootsnap (1.4.5)
msgpack (~> 1.0)
@@ -173,7 +173,7 @@ GEM
activesupport (>= 4.0)
elasticsearch (>= 2.0.0)
elasticsearch-dsl
chunky_png (1.3.10)
chunky_png (1.3.11)
cld3 (3.2.6)
ffi (>= 1.1.0, < 1.12.0)
climate_control (0.2.0)
@@ -216,7 +216,7 @@ GEM
discard (1.1.0)
activerecord (>= 4.2, < 7)
docile (1.3.2)
domain_name (0.5.20180417)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.2.3)
railties (>= 5)
@@ -224,6 +224,7 @@ GEM
dotenv-rails (2.7.5)
dotenv (= 2.7.5)
railties (>= 3.2, < 6.1)
e2mmap (0.1.0)
elasticsearch (7.3.0)
elasticsearch-api (= 7.3.0)
elasticsearch-transport (= 7.3.0)
@@ -247,6 +248,9 @@ GEM
fast_blank (1.0.0)
fastimage (2.1.7)
ffi (1.10.0)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
fog-core (2.1.0)
builder
excon (~> 0.58)
@@ -270,9 +274,9 @@ GEM
ffi (~> 1.0)
globalid (0.4.2)
activesupport (>= 4.2.0)
goldfinger (2.1.0)
goldfinger (2.1.1)
addressable (~> 2.5)
http (~> 3.0)
http (~> 4.0)
nokogiri (~> 1.8)
oj (~> 3.0)
hamlit (2.11.0)
@@ -295,14 +299,16 @@ GEM
html2text (0.2.1)
nokogiri (~> 1.6)
htmlentities (4.3.4)
http (3.3.0)
http (4.3.0)
addressable (~> 2.3)
http-cookie (~> 1.0)
http-form_data (~> 2.0)
http_parser.rb (~> 0.6.0)
http-form_data (~> 2.2)
http-parser (~> 1.2.0)
http-cookie (1.0.3)
domain_name (~> 0.5)
http-form_data (2.1.1)
http-form_data (2.2.0)
http-parser (1.2.1)
ffi-compiler (>= 1.0, < 2.0)
http_accept_language (2.1.1)
httplog (1.3.3)
rack (>= 1.0)
@@ -324,7 +330,7 @@ GEM
iso-639 (0.2.8)
jaro_winkler (1.5.4)
jmespath (1.4.0)
json (2.2.0)
json (2.3.0)
json-canonicalization (0.1.0)
json-ld-preloaded (3.0.6)
json-ld (~> 3.0)
@@ -411,10 +417,6 @@ GEM
omniauth (~> 1.3, >= 1.3.2)
ruby-saml (~> 1.7)
orm_adapter (0.5.0)
ostatus2 (2.0.3)
addressable (~> 2.5)
http (~> 3.0)
nokogiri (~> 1.8)
ox (2.11.0)
paperclip (6.0.0)
activemodel (>= 4.2.0)
@@ -506,11 +508,11 @@ GEM
thor (>= 0.19.0, < 2.0)
rainbow (3.0.0)
rake (13.0.1)
rdf (3.0.13)
rdf (3.1.0)
hamster (~> 3.0)
link_header (~> 0.0, >= 0.0.8)
rdf-normalize (0.3.3)
rdf (>= 2.2, < 4.0)
rdf-normalize (0.4.0)
rdf (~> 3.1)
redcarpet (3.4.0)
redis (4.1.3)
redis-actionpack (5.0.2)
@@ -539,8 +541,10 @@ GEM
railties (>= 5.0)
rotp (2.1.2)
rpam2 (4.0.2)
rqrcode (0.10.1)
rqrcode (1.1.2)
chunky_png (~> 1.0)
rqrcode_core (~> 0.1)
rqrcode_core (0.1.1)
rspec-core (3.9.0)
rspec-support (~> 3.9.0)
rspec-expectations (3.9.0)
@@ -632,6 +636,7 @@ GEM
climate_control (>= 0.0.3, < 1.0)
thor (0.20.3)
thread_safe (0.3.6)
thwait (0.1.0)
tilt (2.0.10)
tty-color (0.5.0)
tty-command (0.9.0)
@@ -712,6 +717,7 @@ DEPENDENCIES
discard (~> 1.1)
doorkeeper (~> 5.2)
dotenv-rails (~> 2.7)
e2mmap (~> 0.1.0)
fabrication (~> 2.21)
faker (~> 2.10)
fast_blank (~> 1.0)
@@ -725,7 +731,7 @@ DEPENDENCIES
hiredis (~> 0.6)
html2text
htmlentities (~> 4.3)
http (~> 3.3)
http (~> 4.3)
http_accept_language (~> 2.1)
http_parser.rb (~> 0.6)!
httplog (~> 1.3)
@@ -752,7 +758,6 @@ DEPENDENCIES
omniauth (~> 1.9)
omniauth-cas (~> 1.1)
omniauth-saml (~> 1.10)
ostatus2 (~> 2.0)
ox (~> 2.11)
paperclip (~> 6.0)
paperclip-av-transcoder (~> 0.6)
@@ -775,12 +780,12 @@ DEPENDENCIES
rails-controller-testing (~> 1.0)
rails-i18n (~> 5.1)
rails-settings-cached (~> 0.6)
rdf-normalize (~> 0.3)
rdf-normalize (~> 0.4)
redcarpet (~> 3.4)
redis (~> 4.1)
redis-namespace (~> 1.7)
redis-rails (~> 5.0)
rqrcode (~> 0.10)
rqrcode (~> 1.1)
rspec-rails (~> 3.9)
rspec-sidekiq (~> 3.0)
rubocop (~> 0.78)
@@ -801,6 +806,7 @@ DEPENDENCIES
streamio-ffmpeg (~> 3.0)
strong_migrations (~> 0.5)
thor (~> 0.20)
thwait (~> 0.1.0)
tty-command (~> 0.9)
tty-prompt (~> 0.20)
twitter-text (~> 1.14)

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

@@ -3,7 +3,7 @@
module AccountsHelper
def display_name(account, **options)
if options[:custom_emojify]
Formatter.instance.format_display_name(account, options)
Formatter.instance.format_display_name(account, **options)
else
account.display_name.presence || account.username
end

+ 2
- 2
app/helpers/routing_helper.rb View File

@@ -13,13 +13,13 @@ module RoutingHelper
end

def full_asset_url(source, **options)
source = ActionController::Base.helpers.asset_url(source, options) unless use_storage?
source = ActionController::Base.helpers.asset_url(source, **options) unless use_storage?

URI.join(root_url, source).to_s
end

def full_pack_url(source, **options)
full_asset_url(asset_pack_path(source, options))
full_asset_url(asset_pack_path(source, **options))
end

private

+ 25
- 10
app/javascript/mastodon/features/audio/index.js View File

@@ -37,15 +37,14 @@ class Audio extends React.PureComponent {
volume: 0.5,
};

// hard coded in components.scss
// any way to get ::before values programatically?

volWidth = 50;

// Hard coded in components.scss
// Any way to get ::before values programatically?
volWidth = 50;
volOffset = 70;

volHandleOffset = v => {
const offset = v * this.volWidth + this.volOffset;

return (offset > 110) ? 110 : offset;
}

@@ -61,6 +60,8 @@ class Audio extends React.PureComponent {
if (this.waveform) {
this._updateWaveform();
}

window.addEventListener('scroll', this.handleScroll);
}

componentDidUpdate (prevProps) {
@@ -70,6 +71,8 @@ class Audio extends React.PureComponent {
}

componentWillUnmount () {
window.removeEventListener('scroll', this.handleScroll);

if (this.wavesurfer) {
this.wavesurfer.destroy();
this.wavesurfer = null;
@@ -128,16 +131,15 @@ class Audio extends React.PureComponent {
this.loaded = true;
}

this.wavesurfer.play();
this.setState({ paused: false });
this.setState({ paused: false }, () => this.wavesurfer.play());
} else {
this.wavesurfer.pause();
this.setState({ paused: true });
this.setState({ paused: true }, () => this.wavesurfer.pause());
}
}

toggleMute = () => {
this.wavesurfer.setMute(!this.state.muted);
const muted = !this.state.muted;
this.setState({ muted }, () => this.wavesurfer.setMute(muted));
}

handleVolumeMouseDown = e => {
@@ -176,6 +178,19 @@ class Audio extends React.PureComponent {
}
}, 60);

handleScroll = throttle(() => {
if (!this.waveform || !this.wavesurfer) {
return;
}

const { top, height } = this.waveform.getBoundingClientRect();
const inView = (top <= (window.innerHeight || document.documentElement.clientHeight)) && (top + height >= 0);

if (!this.state.paused && !inView) {
this.setState({ paused: true }, () => this.wavesurfer.pause());
}
}, 150, { trailing: true })

render () {
const { height, intl, alt, editable } = this.props;
const { paused, muted, volume, currentTime } = this.state;

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

@@ -124,12 +124,14 @@ class Video extends React.PureComponent {
revealed: this.props.visible !== undefined ? this.props.visible : (displayMedia !== 'hide_all' && !this.props.sensitive || displayMedia === 'show_all'),
};

// hard coded in components.scss
// any way to get ::before values programatically?
volWidth = 50;
// Hard-coded in components.scss
// Any way to get ::before values programatically?
volWidth = 50;
volOffset = 70;

volHandleOffset = v => {
const offset = v * this.volWidth + this.volOffset;

return (offset > 110) ? 110 : offset;
}

@@ -138,6 +140,7 @@ class Video extends React.PureComponent {

if (c) {
if (this.props.cacheWidth) this.props.cacheWidth(this.player.offsetWidth);

this.setState({
containerWidth: c.offsetWidth,
});
@@ -205,12 +208,14 @@ class Video extends React.PureComponent {
const x = (e.clientX - rect.left) / this.volWidth; //x position within the element.

if(!isNaN(x)) {
var slideamt = x;
let slideamt = x;

if(x > 1) {
slideamt = 1;
} else if(x < 0) {
slideamt = 0;
}

this.video.volume = slideamt;
this.setState({ volume: slideamt });
}
@@ -252,9 +257,9 @@ class Video extends React.PureComponent {

togglePlay = () => {
if (this.state.paused) {
this.video.play();
this.setState({ paused: false }, () => this.video.play());
} else {
this.video.pause();
this.setState({ paused: true }, () => this.video.pause());
}
}

@@ -272,12 +277,16 @@ class Video extends React.PureComponent {
document.addEventListener('mozfullscreenchange', this.handleFullscreenChange, true);
document.addEventListener('MSFullscreenChange', this.handleFullscreenChange, true);

window.addEventListener('scroll', this.handleScroll);

if (this.props.blurhash) {
this._decode();
}
}

componentWillUnmount () {
window.removeEventListener('scroll', this.handleScroll);

document.removeEventListener('fullscreenchange', this.handleFullscreenChange, true);
document.removeEventListener('webkitfullscreenchange', this.handleFullscreenChange, true);
document.removeEventListener('mozfullscreenchange', this.handleFullscreenChange, true);
@@ -294,6 +303,7 @@ class Video extends React.PureComponent {
if (prevState.revealed && !this.state.revealed && this.video) {
this.video.pause();
}

if (prevProps.blurhash !== this.props.blurhash && this.props.blurhash) {
this._decode();
}
@@ -313,6 +323,19 @@ class Video extends React.PureComponent {
}
}

handleScroll = throttle(() => {
if (!this.video) {
return;
}

const { top, height } = this.video.getBoundingClientRect();
const inView = (top <= (window.innerHeight || document.documentElement.clientHeight)) && (top + height >= 0);

if (!this.state.paused && !inView) {
this.setState({ paused: true }, () => this.video.pause());
}
}, 150, { trailing: true })

handleFullscreenChange = () => {
this.setState({ fullscreen: isFullscreen() });
}
@@ -326,8 +349,11 @@ class Video extends React.PureComponent {
}

toggleMute = () => {
this.video.muted = !this.video.muted;
this.setState({ muted: this.video.muted });
const muted = !this.video.muted;

this.setState({ muted }, () => {
this.video.muted = muted;
});
}

toggleReveal = () => {
@@ -430,7 +456,6 @@ class Video extends React.PureComponent {
src={src}
poster={preview}
preload={preload}
loop
role='button'
tabIndex='0'
aria-label={alt}
@@ -495,13 +520,8 @@ class Video extends React.PureComponent {
{(!onCloseVideo && !editable) && <button type='button' aria-label={intl.formatMessage(messages.hide)} onClick={this.toggleReveal}><Icon id='eye-slash' fixedWidth /></button>}
{(!fullscreen && onOpenVideo) && <button type='button' aria-label={intl.formatMessage(messages.expand)} onClick={this.handleOpenVideo}><Icon id='expand' fixedWidth /></button>}
{onCloseVideo && <button type='button' aria-label={intl.formatMessage(messages.close)} onClick={this.handleCloseVideo}><Icon id='compress' fixedWidth /></button>}
<button type='button' aria-label={intl.formatMessage(messages.download)}>
<a className='video-player__download__icon' href={this.props.src} download>
<Icon id={'download'} fixedWidth />
</a>
</button>
<button type='button' aria-label={intl.formatMessage(messages.download)}><a className='video-player__download__icon' href={this.props.src} download><Icon id={'download'} fixedWidth /></a></button>
<button type='button' aria-label={intl.formatMessage(fullscreen ? messages.exit_fullscreen : messages.fullscreen)} onClick={this.toggleFullscreen}><Icon id={fullscreen ? 'compress' : 'arrows-alt'} fixedWidth /></button>

</div>
</div>
</div>

+ 21
- 6
app/javascript/mastodon/locales/ar.json View File

@@ -1,18 +1,19 @@
{
"account.add_or_remove_from_list": "أضفه أو أزله من القائمة",
"account.badges.bot": "روبوت",
"account.badges.group": "Group",
"account.block": "حظر @{name}",
"account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}",
"account.blocked": "محظور",
"account.cancel_follow_request": "إلغاء طلب المتابَعة",
"account.direct": "رسالة خاصة إلى @{name}",
"account.domain_blocked": "النطاق مخفي",
"account.edit_profile": "تعديل الملف التعريفي",
"account.edit_profile": "تعديل الملف الشخصي",
"account.endorse": "أوصِ به على صفحتك",
"account.follow": "تابِع",
"account.followers": "مُتابِعون",
"account.followers.empty": "لا أحد يتبع هذا الحساب بعد.",
"account.follows": "يتبع",
"account.follows": "يتابع",
"account.follows.empty": "هذا الحساب لا يتبع أحدًا بعد.",
"account.follows_you": "يتابعك",
"account.hide_reblogs": "إخفاء ترقيات @{name}",
@@ -39,7 +40,7 @@
"account.unmute": "إلغاء الكتم عن @{name}",
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
"alert.rate_limited.message": "يرجى إعادة المحاولة بعد {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.rate_limited.title": "المعدل محدود",
"alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
"alert.unexpected.title": "المعذرة!",
"autosuggest_hashtag.per_week": "{count} في الأسبوع",
@@ -51,6 +52,7 @@
"bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
"bundle_modal_error.retry": "إعادة المحاولة",
"column.blocks": "الحسابات المحجوبة",
"column.bookmarks": "الفواصل المرجعية",
"column.community": "الخيط العام المحلي",
"column.direct": "الرسائل المباشرة",
"column.directory": "استعراض الملفات التعريفية",
@@ -82,6 +84,8 @@
"compose_form.poll.duration": "مدة استطلاع الرأي",
"compose_form.poll.option_placeholder": "الخيار {number}",
"compose_form.poll.remove_option": "إزالة هذا الخيار",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "بوّق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "تحديد الوسائط كحساسة",
@@ -138,6 +142,7 @@
"empty_column.account_timeline": "ليس هناك تبويقات!",
"empty_column.account_unavailable": "الملف التعريفي غير متوفر",
"empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
"empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
@@ -153,8 +158,8 @@
"empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.",
"empty_column.public": "لا يوجد أي شيء هنا! قم بنشر شيء ما للعامة، أو اتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"error.unexpected_crash.next_steps": "حاول إعادة إنعاش الصفحة. إن لم تُحلّ المشكلة ، يمكنك دائمًا استخدام ماستدون عبر متصفّح آخر أو تطبيق أصلي.",
"errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة",
"errors.unexpected_crash.report_issue": "الإبلاغ عن خلل",
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
@@ -219,6 +224,7 @@
"keyboard_shortcuts.muted": "لفتح قائمة المستخدِمين المكتومين",
"keyboard_shortcuts.my_profile": "لفتح ملفك التعريفي",
"keyboard_shortcuts.notifications": "لفتح عمود الإشعارات",
"keyboard_shortcuts.open_media": "لفتح الوسائط",
"keyboard_shortcuts.pinned": "لفتح قائمة التبويقات المدبسة",
"keyboard_shortcuts.profile": "لفتح الملف التعريفي للناشر",
"keyboard_shortcuts.reply": "للردّ",
@@ -251,6 +257,7 @@
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
"navigation_bar.apps": "تطبيقات الأجهزة المحمولة",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية",
"navigation_bar.community_timeline": "الخيط العام المحلي",
"navigation_bar.compose": "تحرير تبويق جديد",
"navigation_bar.direct": "الرسائل المباشِرة",
@@ -273,7 +280,9 @@
"navigation_bar.security": "الأمان",
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
"notification.follow_request": "لقد طلب {name} متابعتك",
"notification.mention": "{name} ذكرك",
"notification.own_poll": "انتهى استطلاعك للرأي",
"notification.poll": "لقد إنتها تصويت شاركت فيه",
"notification.reblog": "{name} قام بترقية تبويقك",
"notifications.clear": "امسح الإخطارات",
@@ -284,6 +293,7 @@
"notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة",
"notifications.column_settings.filter_bar.show": "اظهِره",
"notifications.column_settings.follow": "متابعُون جُدُد:",
"notifications.column_settings.follow_request": "الطلبات الجديد لِمتابَعتك:",
"notifications.column_settings.mention": "الإشارات:",
"notifications.column_settings.poll": "نتائج استطلاع الرأي:",
"notifications.column_settings.push": "الإخطارات المدفوعة",
@@ -344,6 +354,7 @@
"status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
"status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
"status.block": "احجب @{name}",
"status.bookmark": "أضفه إلى الفواصل المرجعية",
"status.cancel_reblog_private": "إلغاء الترقية",
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
"status.copy": "نسخ رابط المنشور",
@@ -368,6 +379,7 @@
"status.reblogged_by": "رقّاه {name}",
"status.reblogs.empty": "لم يقم أي أحد بترقية هذا التبويق بعد. عندما يقوم أحدهم بذلك سوف تظهر هنا.",
"status.redraft": "إزالة و إعادة الصياغة",
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
"status.reply": "ردّ",
"status.replyAll": "رُد على الخيط",
"status.report": "ابلِغ عن @{name}",
@@ -400,18 +412,21 @@
"upload_button.label": "إضافة وسائط ({formats})",
"upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
"upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
"upload_form.audio_description": "وصف للأشخاص ذي قِصر السمع",
"upload_form.description": "وصف للمعاقين بصريا",
"upload_form.edit": "تعديل",
"upload_form.undo": "حذف",
"upload_form.video_description": "وصف للمعاقين بصريا أو لِذي قِصر السمع",
"upload_modal.analyzing_picture": "جارٍ فحص الصورة…",
"upload_modal.apply": "طبّق",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "اكتشف النص مِن الصورة",
"upload_modal.edit_media": "تعديل الوسائط",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.hint": "اضغط أو اسحب الدائرة على خانة المعاينة لاختيار نقطة التركيز التي ستُعرَض دائمًا على كل المصغرات.",
"upload_modal.preview_label": "معاينة ({ratio})",
"upload_progress.label": "يرفع...",
"video.close": "إغلاق الفيديو",
"video.download": "تنزيل الملف",
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
"video.expand": "توسيع الفيديو",
"video.fullscreen": "ملء الشاشة",

+ 91
- 76
app/javascript/mastodon/locales/ast.json View File

@@ -1,6 +1,7 @@
{
"account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robó",
"account.badges.group": "Group",
"account.block": "Bloquiar a @{name}",
"account.block_domain": "Anubrir tolo de {domain}",
"account.blocked": "Blocked",
@@ -21,15 +22,15 @@
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Media",
"account.mention": "Mentar a @{name}",
"account.moved_to": "{name} has moved to:",
"account.moved_to": "{name} mudóse a:",
"account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.never_active": "Never",
"account.posts": "Toots",
"account.posts_with_replies": "Toots y rempuestes",
"account.never_active": "Enxamás",
"account.posts": "Barritos",
"account.posts_with_replies": "Barritos y rempuestes",
"account.report": "Report @{name}",
"account.requested": "Awaiting approval",
"account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Desbloquiar a @{name}",
@@ -41,16 +42,17 @@
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Asocedió un fallu inesperáu.",
"alert.unexpected.title": "¡Ups!",
"autosuggest_hashtag.per_week": "{count} per week",
"alert.unexpected.title": "¡Meca!",
"autosuggest_hashtag.per_week": "{count} per selmana",
"boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
"bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error",
"bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.",
"bundle_modal_error.retry": "Try again",
"column.blocks": "Usuarios bloquiaos",
"column.bookmarks": "Marcadores",
"column.community": "Llinia temporal llocal",
"column.direct": "Mensaxes direutos",
"column.directory": "Browse profiles",
@@ -61,7 +63,7 @@
"column.lists": "Llistes",
"column.mutes": "Usuarios silenciaos",
"column.notifications": "Avisos",
"column.pins": "Toots fixaos",
"column.pins": "Barritos fixaos",
"column.public": "Llinia temporal federada",
"column_back_button.label": "Atrás",
"column_header.hide_settings": "Hide settings",
@@ -71,25 +73,27 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Desfixar",
"column_subheading.settings": "Axustes",
"community.column_settings.media_only": "Media only",
"compose_form.direct_message_warning": "Esti toot namái va unviase a los usuarios mentaos.",
"community.column_settings.media_only": "Namái multimedia",
"compose_form.direct_message_warning": "Esti barritu namái va unviase a los usuarios mentaos.",
"compose_form.direct_message_warning_learn_more": "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.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "¿En qué pienses?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.add_option": "Amestar una escoyeta",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.option_placeholder": "Escoyeta {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Toot",
"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.unmarked": "Media is not marked as sensitive",
"compose_form.spoiler.marked": "El testu nun va anubrise darrera d'una alvertencia",
"compose_form.spoiler.unmarked": "El testu va anubrise",
"compose_form.spoiler_placeholder": "Escribi equí l'avertencia",
"compose_form.spoiler.unmarked": "El testu nun va anubrise",
"compose_form.spoiler_placeholder": "Escribi equí l'alvertencia",
"confirmation_modal.cancel": "Encaboxar",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
@@ -106,7 +110,7 @@
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "¿De xuru que quies silenciar a {name}?",
"confirmations.redraft.confirm": "Desaniciar y reeditar",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"confirmations.redraft.message": "¿De xuru que quies desaniciar esti estáu y reeditalu? Van perdese los favoritos y comparticiones, y les rempuestes al toot orixinal van quedar güérfanes.",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Unfollow",
@@ -115,80 +119,81 @@
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
"conversation.with": "With {names}",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.federated": "Dende'l fediversu",
"directory.local": "Dende {domain} namái",
"directory.new_arrivals": "Cuentes nueves",
"directory.recently_active": "Recently active",
"embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.",
"embed.preview": "Asina ye como va vese:",
"embed.preview": "Asina ye cómo va vese:",
"emoji_button.activity": "Actividaes",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Banderes",
"emoji_button.food": "Comida y bébora",
"emoji_button.label": "Insert emoji",
"emoji_button.label": "Inxertar un fustaxe",
"emoji_button.nature": "Natura",
"emoji_button.not_found": "¡Nun hai fustaxes! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Oxetos",
"emoji_button.people": "Xente",
"emoji_button.recent": "Úsase davezu",
"emoji_button.search": "Guetar...",
"emoji_button.search": "Guetar",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes y llugares",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_timeline": "¡Equí nun hai barritos!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
"empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "Entá nun tienes denguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.hashtag": "Entá nun hai nada nesta etiqueta.",
"empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.",
"empty_column.home.public_timeline": "la llinia temporal pública",
"empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.",
"empty_column.lists": "Entá nun tienes denguna llista. Cuando crees una, va amosase equí.",
"empty_column.mutes": "Entá nun silenciesti a dengún usuariu.",
"empty_column.notifications": "Entá nun tienes dengún avisu. Interactua con otros p'aniciar la conversación.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"empty_column.notifications": "Entá nun tienes dengún avisu. Interactúa con otros p'aniciar la conversación.",
"empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun pudo amosase correutamente.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
"getting_started.developers": "Desendolcadores",
"getting_started.directory": "Profile directory",
"getting_started.directory": "Direutoriu de perfiles",
"getting_started.documentation": "Documentación",
"getting_started.heading": "Entamu",
"getting_started.invite": "Convidar xente",
"getting_started.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en {github} (GitHub).",
"getting_started.security": "Seguranza",
"getting_started.invite": "Convidar a persones",
"getting_started.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en GitHub: {github}.",
"getting_started.security": "Axustes de la cuenta",
"getting_started.terms": "Términos del serviciu",
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
"hashtag.column_header.tag_mode.all": "y {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "ensin {additional}",
"hashtag.column_settings.select.no_options_message": "No suggestions found",
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.column_settings.tag_toggle": "Incluyir les etiquetes adicionales d'esta columna",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Amosar toots compartíos",
"home.column_settings.show_replies": "Amosar rempuestes",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"intervals.full.days": "{number, plural, one {# día} other {# díes}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
"intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
"introduction.federation.federated.text": "Los espublizamientos públicos de los demás sirvidores del fediversu van apaecer na llinia temporal federada.",
"introduction.federation.home.headline": "Home",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Finish toot-orial!",
"introduction.interactions.action": "¡Finar el tutorial!",
"introduction.interactions.favourite.headline": "Favourite",
"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.reblog.headline": "Boost",
@@ -196,18 +201,18 @@
"introduction.interactions.reply.headline": "Reply",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.welcome.action": "Let's go!",
"introduction.welcome.headline": "First steps",
"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.headline": "Primeros pasos",
"introduction.welcome.text": "¡Afáyate nel fediversu! Nun momentu vas ser a tresmitir mensaxes y falar colos collacios d'una montonera de sirvidores. Pero esti sirvidor, {domain}, ye especial: agospia'l to perfil, asina qu'alcuérdate de cómo se llama.",
"keyboard_shortcuts.back": "pa dir p'atrás",
"keyboard_shortcuts.blocked": "p'abrir la llista d'usuarios bloquiaos",
"keyboard_shortcuts.boost": "pa compartir un toot",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.compose": "pa enfocar l'área de composición",
"keyboard_shortcuts.description": "Descripción",
"keyboard_shortcuts.direct": "p'abrir la columna de los mensaxes direutos",
"keyboard_shortcuts.down": "pa baxar na llista",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
"keyboard_shortcuts.favourite": "p'amestar a Favoritos",
"keyboard_shortcuts.favourites": "p'abrir la llista de favoritos",
"keyboard_shortcuts.federated": "p'abrir la llinia temporal federada",
"keyboard_shortcuts.heading": "Atayos del tecláu",
@@ -217,18 +222,19 @@
"keyboard_shortcuts.local": "p'abrir la llinia temporal llocal",
"keyboard_shortcuts.mention": "pa mentar al autor",
"keyboard_shortcuts.muted": "p'abrir la llista d'usuarios silenciaos",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.my_profile": "p'abrir el to perfil",
"keyboard_shortcuts.notifications": "p'abrir la columna d'avisos",
"keyboard_shortcuts.pinned": "p'abrir la llista de toots fixaos",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "p'abrir la llista de barritos fixaos",
"keyboard_shortcuts.profile": "p'abrir el perfil del autor",
"keyboard_shortcuts.reply": "pa responder",
"keyboard_shortcuts.requests": "p'abrir la llista de solicitúes de siguimientu",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.search": "pa enfocar la gueta",
"keyboard_shortcuts.start": "p'abrir la columna «entamar»",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "p'apenzar un toot nuevu",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.toot": "p'apenzar un barritu nuevu",
"keyboard_shortcuts.unfocus": "pa desenfocar l'área de composición/gueta",
"keyboard_shortcuts.up": "pa xubir na llista",
"lightbox.close": "Close",
"lightbox.next": "Siguiente",
@@ -243,14 +249,15 @@
"lists.new.title_placeholder": "Títulu nuevu de la llista",
"lists.search": "Guetar ente la xente que sigues",
"lists.subheading": "Les tos llistes",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Cargando...",
"load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando",
"media_gallery.toggle_visible": "Toggle visibility",
"missing_indicator.label": "Nun s'alcontró",
"missing_indicator.sublabel": "Esti recursu nun pudo alcontrase",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Aplicaciones pa móviles",
"navigation_bar.blocks": "Usuarios bloquiaos",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Llinia temporal llocal",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Mensaxes direutos",
@@ -267,13 +274,15 @@
"navigation_bar.logout": "Zarrar sesión",
"navigation_bar.mutes": "Usuarios silenciaos",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Toots fixaos",
"navigation_bar.pins": "Barritos fixaos",
"navigation_bar.preferences": "Preferencies",
"navigation_bar.public_timeline": "Llinia temporal federada",
"navigation_bar.security": "Seguranza",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} siguióte",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} mentóte",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} compartió'l to estáu",
"notifications.clear": "Llimpiar avisos",
@@ -282,19 +291,20 @@
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.filter_bar.advanced": "Display all categories",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.filter_bar.show": "Amosar",
"notifications.column_settings.follow": "Siguidores nuevos:",
"notifications.column_settings.follow_request": "Solicitúes de siguimientu nueves:",
"notifications.column_settings.mention": "Menciones:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Toots compartíos:",
"notifications.column_settings.reblog": "Barritos compartíos:",
"notifications.column_settings.show": "Amosar en columna",
"notifications.column_settings.sound": "Reproducir soníu",
"notifications.column_settings.sound": "Reproducir un soníu",
"notifications.filter.all": "All",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
"notifications.filter.mentions": "Menciones",
"notifications.filter.polls": "Poll results",
"notifications.group": "{count} avisos",
"poll.closed": "Closed",
@@ -312,11 +322,11 @@
"privacy.private.short": "Namái siguidores",
"privacy.public.long": "Post to public timelines",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
"privacy.unlisted.long": "Nun apaez nes llinies temporales públiques",
"privacy.unlisted.short": "Nun llistar",
"refresh": "Refresh",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"regeneration_indicator.sublabel": "¡Tamos tresnando'l feed d'Aniciu!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "agora",
@@ -325,7 +335,7 @@
"reply_indicator.cancel": "Encaboxar",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
"report.hint": "L'informe va unviase a los llendadores del to sirvidor. Embaxo, pues desplicar por qué informes d'esta cuenta:",
"report.placeholder": "Comentarios adicionales",
"report.submit": "Submit",
"report.target": "Report {target}",
@@ -338,12 +348,13 @@
"search_popout.tips.user": "usuariu",
"search_results.accounts": "Xente",
"search_results.hashtags": "Etiquetes",
"search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"search_results.statuses": "Barritos",
"search_results.statuses_fts_disabled": "Esti sirvidor de Mastodon tien activada la gueta de barritos pol so conteníu.",
"search_results.total": "{count, number} {count, plural, one {resultáu} other {resultaos}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Bloquiar a @{name}",
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Dexar de compartir",
"status.cannot_reblog": "Esti artículu nun pue compartise",
"status.copy": "Copy link to status",
@@ -354,20 +365,21 @@
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.load_more": "Cargar más",
"status.media_hidden": "Mediu anubríu",
"status.media_hidden": "Multimedia anubrida",
"status.mention": "Mentar a @{name}",
"status.more": "Más",
"status.mute": "Silenciar a @{name}",
"status.mute_conversation": "Silenciar la conversación",
"status.open": "Espander esti estáu",
"status.pin": "Fixar nel perfil",
"status.pinned": "Toot fixáu",
"status.pinned": "Barritu fixáu",
"status.read_more": "Read more",
"status.reblog": "Compartir",
"status.reblog_private": "Compartir cola audiencia orixinal",
"status.reblogged_by": "{name} compartió",
"status.reblogs.empty": "Naide nun compartió esti toot entá. Cuando daquién lo faiga, va amosase equí.",
"status.reblogs.empty": "Naide nun compartió esti barritu entá. Cuando daquién lo faiga, va amosase equí.",
"status.redraft": "Desaniciar y reeditar",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "Responder",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
@@ -377,7 +389,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Amosar más",
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.show_thread": "Amosar el filu",
"status.uncached_media_warning": "Not available",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Desfixar del perfil",
@@ -388,30 +400,33 @@
"tabs_bar.local_timeline": "Llocal",
"tabs_bar.notifications": "Avisos",
"tabs_bar.search": "Search",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.days": "{number, plural, one {# día} other {# díes}} que queden",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {persones}} falando",
"trends.trending_now": "Trending now",
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
"upload_button.label": "Add media ({formats})",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Descripción pa discapacitaos visuales",
"upload_form.edit": "Edit",
"upload_form.edit": "Editar",
"upload_form.undo": "Desaniciar",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analizando la semeya…",
"upload_modal.apply": "Aplicar",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.edit_media": "Edición",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Xubiendo...",
"upload_modal.preview_label": "Previsualización ({ratio})",
"upload_progress.label": "Xubiendo",
"video.close": "Zarrar el videu",
"video.download": "Download file",
"video.exit_fullscreen": "Colar de la pantalla completa",
"video.expand": "Espander el videu",
"video.fullscreen": "Pantalla completa",

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

@@ -1,6 +1,7 @@
{
"account.add_or_remove_from_list": "Добави или премахни от списъците",
"account.badges.bot": "бот",
"account.badges.group": "Group",
"account.block": "Блокирай",
"account.block_domain": "скрий всичко от (домейн)",
"account.blocked": "Блокирани",
@@ -51,6 +52,7 @@
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"column.blocks": "Blocked users",
"column.bookmarks": "Bookmarks",
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
@@ -82,6 +84,8 @@
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Раздумай",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
@@ -138,6 +142,7 @@
"empty_column.account_timeline": "No toots here!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
@@ -219,6 +224,7 @@
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
@@ -251,6 +257,7 @@
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
@@ -273,7 +280,9 @@
"navigation_bar.security": "Security",
"notification.favourite": "{name} хареса твоята публикация",
"notification.follow": "{name} те последва",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} те спомена",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} сподели твоята публикация",
"notifications.clear": "Clear notifications",
@@ -284,6 +293,7 @@
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Нови последователи:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "Споменавания:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
@@ -344,6 +354,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
@@ -368,6 +379,7 @@
"status.reblogged_by": "{name} сподели",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "Отговор",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
@@ -400,9 +412,11 @@
"upload_button.label": "Добави медия",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "Edit",
"upload_form.undo": "Отмяна",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
@@ -412,6 +426,7 @@
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading…",
"video.close": "Close video",
"video.download": "Download file",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",

+ 42
- 27
app/javascript/mastodon/locales/bn.json View File

@@ -1,56 +1,58 @@
{
"account.add_or_remove_from_list": "তালিকা হতে মুছুন অথবা যুক্ত করুন",
"account.add_or_remove_from_list": "তালিকাতে যুক্ত বা অপসারণ করুন",
"account.badges.bot": "বট",
"account.badges.group": "Group",
"account.block": "@{name} কে ব্লক করুন",
"account.block_domain": "{domain} থেকে সব লুকান",
"account.blocked": "ব্লককৃত",
"account.cancel_follow_request": "অসুসারণ অনুরোধ বাতিল করুন",
"account.block_domain": "{domain} থেকে সব আড়াল করুন",
"account.blocked": "অবরুদ্ধ",
"account.cancel_follow_request": "অনুসরণ অনুরোধ বাতিল করুন",
"account.direct": "@{name} কে সরাসরি বার্তা",
"account.domain_blocked": "ডোমেন লুকানো আছে",
"account.edit_profile": "প্রোফাইল সম্পাদন করুন",
"account.domain_blocked": "ডোমেন গোপন করুন",
"account.edit_profile": "প্রোফাইল পরিবর্তন করুন",
"account.endorse": "নিজের পাতায় দেখান",
"account.follow": "অনুসরণ করুন",
"account.followers": "অনুসরণকার",
"account.followers.empty": "এই ব্যবহারকারীকে কেও এখনো অনুসরণ করে না।",
"account.followers": "অনুসরণকার",
"account.followers.empty": "এই সদস্যকে এখনো কেউ অনুসরণ করে না।.",
"account.follows": "যাদেরকে অনুসরণ করেন",
"account.follows.empty": "এই ব্যবহারকারী কাওকে এখনো অনুসরণ করেন না।",
"account.follows.empty": "এই সদস্য কাওকে এখনো অনুসরণ করেন না.",
"account.follows_you": "আপনাকে অনুসরণ করে",
"account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন",
"account.last_status": "শেষ সক্রিয় ছিল",
"account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিে",
"account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিে",
"account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।",
"account.media": "মিডিয়া",
"account.mention": "@{name} কে উল্লেখ করুন",
"account.moved_to": "{name} কে এখানে সরানো হয়েছে:",
"account.mute": "@{name} কে নিঃশব্দ করুন",
"account.mute_notifications": "@{name}র প্রজ্ঞাপন আপনার কাছ থেকে সরিয়ে ফেলুন",
"account.muted": "সরানো আছে",
"account.mute_notifications": "@{name} র প্রজ্ঞাপন আপনার কাছে নিঃশব্দ করুন",
"account.muted": "নিঃশব্দ",
"account.never_active": "কখনও নয়",
"account.posts": "টুট",
"account.posts_with_replies": "টুট এবং মতামত",
"account.report": "@{name} কে রিপোর্ট করতে",
"account.requested": "অনুমতির অপেক্ষায় আছে। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন",
"account.share": "@{name}র পাতা অন্যদের দেখান",
"account.show_reblogs": "@{name}র সমর্থনগুলো দেখুন",
"account.unblock": "@{name}র কার্যকলাপ আবার দেখুন",
"account.unblock_domain": "{domain} থেকে আবার দেখুন",
"account.unendorse": "আপনার নিজের পাতায় এটা না দেখাতে",
"account.report": "@{name} কে রিপোর্ট করুন",
"account.requested": "অনুমতির অপেক্ষা। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন",
"account.share": "@{name} র প্রোফাইল অন্যদের দেখান",
"account.show_reblogs": "@{name} র সমর্থনগুলো দেখান",
"account.unblock": "@{name} র কার্যকলাপ দেখুন",
"account.unblock_domain": "{domain} কে আবার দেখুন",
"account.unendorse": "আপনার নিজের পাতায় এটা দেখবেন না",
"account.unfollow": "অনুসরণ না করতে",
"account.unmute": "@{name}র কার্যকলাপ আবার দেখুন",
"account.unmute_notifications": "@{name}র প্রজ্ঞাপন দেওয়ার অনুমতি দিন",
"account.unmute": "@{name} র কার্যকলাপ আবার দেখুন",
"account.unmute_notifications": "@{name} র প্রজ্ঞাপন দেখুন",
"alert.rate_limited.message": "{retry_time, time, medium} -এর পরে আবার প্রচেষ্টা করুন।",
"alert.rate_limited.title": "হার সীমিত",
"alert.unexpected.message": "অপ্রত্যাশিত একটি সমস্যা হয়েছে।",
"alert.unexpected.message": "সমস্যা অপ্রত্যাশিত.",
"alert.unexpected.title": "ওহো!",
"autosuggest_hashtag.per_week": "প্রতি সপ্তাহে {count}",
"boost_modal.combo": "পরেরবার আপনি {combo} চাপ দিলে এটার শেষে চলে যেতে পারবেন",
"bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।",
"boost_modal.combo": "পরেরবার আপনি {combo} টিপলে এটি আর আসবে না",
"bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।.",
"bundle_column_error.retry": "আবার চেষ্টা করুন",
"bundle_column_error.title": "নেটওয়ার্কের সমস্যা হচ্ছে",
"bundle_column_error.title": "নেটওয়ার্কের সমস্যা",
"bundle_modal_error.close": "বন্ধ করুন",
"bundle_modal_error.message": "এই অংশটি দেখাতে যেয়ে কোনো সমস্যা হয়েছে।",
"bundle_modal_error.message": "এই অংশটি দেখাতে যেয়ে কোনো সমস্যা হয়েছে।.",
"bundle_modal_error.retry": "আবার চেষ্টা করুন",
"column.blocks": "যাদের ব্লক করে রাখা হয়েছে",
"column.blocks": "যাদের ব্লক করা হয়েছে",
"column.bookmarks": "Bookmarks",
"column.community": "স্থানীয় সময়সারি",
"column.direct": "সরাসরি লেখা",
"column.directory": "প্রোফাইল ব্রাউজ করুন",
@@ -82,6 +84,8 @@
"compose_form.poll.duration": "ভোটগ্রহনের সময়",
"compose_form.poll.option_placeholder": "বিকল্প {number}",
"compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "টুট",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করতে",
@@ -138,6 +142,7 @@
"empty_column.account_timeline": "এখানে কোনো টুট নেই!",
"empty_column.account_unavailable": "নিজস্ব পাতা নেই",
"empty_column.blocks": "আপনি কোনো ব্যবহারকারীদের ব্লক করেন নি।",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "স্থানীয় সময়রেখাতে কিছু নেই। প্রকাশ্যভাবে কিছু লিখে লেখালেখির উদ্বোধন করে ফেলুন!",
"empty_column.direct": "আপনার কাছে সরাসরি পাঠানো কোনো লেখা নেই। যদি কেও পাঠায়, সেটা এখানে দেখা যাবে।",
"empty_column.domain_blocks": "এখনও কোনও লুকানো ডোমেন নেই।",
@@ -219,6 +224,7 @@
"keyboard_shortcuts.muted": "বন্ধ করা ব্যবহারকারীদের তালিকা খুলতে",
"keyboard_shortcuts.my_profile": "আপনার নিজের পাতা দেখতে",
"keyboard_shortcuts.notifications": "প্রজ্ঞাপনের কলাম খুলতে",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "পিন দেওয়া টুটের তালিকা খুলতে",
"keyboard_shortcuts.profile": "লেখকের পাতা দেখতে",
"keyboard_shortcuts.reply": "মতামত দিতে",
@@ -251,6 +257,7 @@
"mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?",
"navigation_bar.apps": "মোবাইলের আপ্প",
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
"navigation_bar.compose": "নতুন টুট লিখুন",
"navigation_bar.direct": "সরাসরি লেখাগুলি",
@@ -273,7 +280,9 @@
"navigation_bar.security": "নিরাপত্তা",
"notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
"notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} আপনাকে উল্লেখ করেছেন",
"notification.own_poll": "আপনার পোল শেষ হয়েছে",
"notification.poll": "আপনি ভোট দিয়েছিলেন এমন এক নির্বাচনের ভোটের সময় শেষ হয়েছে",
"notification.reblog": "{name} আপনার কার্যক্রমে সমর্থন দেখিয়েছেন",
"notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে",
@@ -284,6 +293,7 @@
"notifications.column_settings.filter_bar.category": "সংক্ষিপ্ত ছাঁকনি অংশ",
"notifications.column_settings.filter_bar.show": "দেখানো",
"notifications.column_settings.follow": "নতুন অনুসরণকারীরা:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "প্রজ্ঞাপনগুলো:",
"notifications.column_settings.poll": "নির্বাচনের ফলাফল:",
"notifications.column_settings.push": "পুশ প্রজ্ঞাপনগুলি",
@@ -344,6 +354,7 @@
"status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন",
"status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন",
"status.block": "@{name} কে ব্লক করুন",
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "সমর্থন বাতিল করতে",
"status.cannot_reblog": "এটিতে সমর্থন দেওয়া যাবেনা",
"status.copy": "লেখাটির লিংক কপি করতে",
@@ -368,6 +379,7 @@
"status.reblogged_by": "{name} সমর্থন দিয়েছে",
"status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।",
"status.redraft": "মুছে আবার নতুন করে লিখতে",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "মতামত জানাতে",
"status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে",
"status.report": "@{name} কে রিপোর্ট করতে",
@@ -400,9 +412,11 @@
"upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের: JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_error.limit": "যা যুক্ত করতে চাচ্ছেন সেটি বেশি বড়, এখানকার সর্বাধিকের মেমোরির উপরে চলে গেছে।",
"upload_error.poll": "নির্বাচনক্ষেত্রে কোনো ফাইল যুক্ত করা যাবেনা।",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "যারা দেখতে পায়না তাদের জন্য এটা বর্ণনা করতে",
"upload_form.edit": "সম্পাদন",
"upload_form.undo": "মুছে ফেলতে",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "চিত্র বিশ্লেষণ করা হচ্ছে…",
"upload_modal.apply": "প্রয়োগ করুন",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
@@ -412,6 +426,7 @@
"upload_modal.preview_label": "পূর্বরূপ({ratio})",
"upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...",
"video.close": "ভিডিওটি বন্ধ করতে",
"video.download": "ফাইলটি ডাউনলোড করুন",
"video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে",
"video.expand": "ভিডিওটি বড়ো করতে",
"video.fullscreen": "পূর্ণ পর্দা করতে",

+ 40
- 25
app/javascript/mastodon/locales/br.json View File

@@ -1,6 +1,7 @@
{
"account.add_or_remove_from_list": "Ouzhpenn pe lemel ag ar listennadoù",
"account.badges.bot": "Robot",
"account.badges.group": "Group",
"account.block": "Stankañ @{name}",
"account.block_domain": "Kuzh kement tra a {domain}",
"account.blocked": "Stanket",
@@ -13,7 +14,7 @@
"account.followers": "Heilour·ezed·ion",
"account.followers.empty": "Den na heul an implijour-mañ c'hoazh.",
"account.follows": "Koumanantoù",
"account.follows.empty": "This user doesn't follow anyone yet.",
"account.follows.empty": "An implijer-mañ na heul ket den ebet.",
"account.follows_you": "Ho heul",
"account.hide_reblogs": "Kuzh toudoù skignet gant @{name}",
"account.last_status": "Oberiantiz zivezhañ",
@@ -29,7 +30,7 @@
"account.posts": "Toudoù",
"account.posts_with_replies": "Toudoù ha respontoù",
"account.report": "Disklêriañ @{name}",
"account.requested": "Awaiting approval",
"account.requested": "É c'hortoz bout aprouet. Clikit da nullañ ar pedad heuliañ",
"account.share": "Skignañ profil @{name}",
"account.show_reblogs": "Diskouez toudoù a @{name}",
"account.unblock": "Distankañ @{name}",
@@ -51,39 +52,42 @@
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Klask endro",
"column.blocks": "Implijour·ezed·ion stanket",
"column.bookmarks": "Bookmarks",
"column.community": "Red-amzer lec'hel",
"column.direct": "Kemennadoù prevez",
"column.directory": "Mont a-dreuz ar profiloù",
"column.domain_blocks": "Domani kuzhet",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
"column.lists": "Lists",
"column.mutes": "Muted users",
"column.notifications": "Notifications",
"column.pins": "Pinned toot",
"column.public": "Federated timeline",
"column_back_button.label": "Back",
"column_header.hide_settings": "Hide settings",
"column.follow_requests": "Pedadoù heuliañ",
"column.home": "Degemer",
"column.lists": "Listennoù",
"column.mutes": "Implijer·ion·ezed kuzhet",
"column.notifications": "Kemennoù",
"column.pins": "Toudoù spilhennet",
"column.public": "Red-amzer kevreet",
"column_back_button.label": "Distro",
"column_header.hide_settings": "Kuzhat an arventennoù",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.media_only": "Media only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"column_header.pin": "Spilhennañ",
"column_header.show_settings": "Diskouez an arventennoù",
"column_header.unpin": "Dispilhennañ",
"column_subheading.settings": "Arventennoù",
"community.column_settings.media_only": "Nemet Mediaoù",
"compose_form.direct_message_warning": "An toud-mañ a vo kaset nemet d'an implijer·ion·ezed meneget.",
"compose_form.direct_message_warning_learn_more": "Gouiet hiroc'h",
"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.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.lock_disclaimer.lock": "prennet",
"compose_form.placeholder": "Petra eh oc'h é soñjal a-barzh ?",
"compose_form.poll.add_option": "Ouzhpenniñ un dibab",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.poll.option_placeholder": "Dibab {number}",
"compose_form.poll.remove_option": "Lemel an dibab-mañ",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Toudañ",
"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.unmarked": "Media is not marked as sensitive",
@@ -138,6 +142,7 @@
"empty_column.account_timeline": "No toots here!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
@@ -219,6 +224,7 @@
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
@@ -251,6 +257,7 @@
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
@@ -273,7 +280,9 @@
"navigation_bar.security": "Security",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.follow_request": "{name} has requested to follow you",
"notification.mention": "{name} mentioned you",
"notification.own_poll": "Your poll has ended",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
@@ -284,6 +293,7 @@
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
@@ -344,6 +354,7 @@
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.bookmark": "Bookmark",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
@@ -368,6 +379,7 @@
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
@@ -400,9 +412,11 @@
"upload_button.label": "Add media ({formats})",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "Edit",
"upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
@@ -412,6 +426,7 @@
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading…",
"video.close": "Close video",
"video.download": "Download file",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",

+ 56
- 41
app/javascript/mastodon/locales/ca.json View File

@@ -1,6 +1,7 @@
{
"account.add_or_remove_from_list": "Afegir o Treure de les llistes",
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Bloqueja @{name}",
"account.block_domain": "Amaga-ho tot de {domain}",
"account.blocked": "Bloquejat",
@@ -26,8 +27,8 @@
"account.mute_notifications": "Notificacions desactivades de @{name}",
"account.muted": "Silenciat",
"account.never_active": "Mai",
"account.posts": "Toots",
"account.posts_with_replies": "Toots i respostes",
"account.posts": "Tuts",
"account.posts_with_replies": "Tuts i respostes",
"account.report": "Informe @{name}",
"account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment",
"account.share": "Comparteix el perfil de @{name}",
@@ -51,6 +52,7 @@
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
"bundle_modal_error.retry": "Torna-ho a provar",
"column.blocks": "Usuaris bloquejats",
"column.bookmarks": "Marcadors",
"column.community": "Línia de temps local",
"column.direct": "Missatges directes",
"column.directory": "Navega els perfils",
@@ -61,7 +63,7 @@
"column.lists": "Llistes",
"column.mutes": "Usuaris silenciats",
"column.notifications": "Notificacions",
"column.pins": "Toots fixats",
"column.pins": "Tuts fixats",
"column.public": "Línia de temps federada",
"column_back_button.label": "Enrere",
"column_header.hide_settings": "Amaga la configuració",
@@ -72,9 +74,9 @@
"column_header.unpin": "No fixis",
"column_subheading.settings": "Configuració",
"community.column_settings.media_only": "Només multimèdia",
"compose_form.direct_message_warning": "Aquest toot només serà enviat als usuaris esmentats.",
"compose_form.direct_message_warning": "Aquest tut només serà enviat als usuaris esmentats.",
"compose_form.direct_message_warning_learn_more": "Aprèn més",
"compose_form.hashtag_warning": "Aquest toot no es mostrarà en cap etiqueta ja que no està llistat. Només els toots públics poden ser cercats per etiqueta.",
"compose_form.hashtag_warning": "Aquesta tut no es mostrarà en cap etiqueta ja que no està llistat. Només els tuts públics poden ser cercats per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.",
"compose_form.lock_disclaimer.lock": "bloquejat",
"compose_form.placeholder": "En què penses?",
@@ -82,7 +84,9 @@
"compose_form.poll.duration": "Durada de l'enquesta",
"compose_form.poll.option_placeholder": "Opció {number}",
"compose_form.poll.remove_option": "Elimina aquesta opció",
"compose_form.publish": "Toot",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Marcar mèdia com a sensible",
"compose_form.sensitive.marked": "Mèdia marcat com a sensible",
@@ -95,18 +99,18 @@
"confirmations.block.confirm": "Bloqueja",
"confirmations.block.message": "Estàs segur que vols bloquejar a {name}?",
"confirmations.delete.confirm": "Suprimeix",
"confirmations.delete.message": "Estàs segur que vols suprimir aquest toot?",
"confirmations.delete.message": "Estàs segur que vols suprimir aquest tut?",
"confirmations.delete_list.confirm": "Suprimeix",
"confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?",
"confirmations.domain_block.confirm": "Amaga tot el domini",
"confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut d’aquest domini en cap de les línies públiques ni en les notificacions. Els teus seguidors d’aquest domini seran eliminats.",
"confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut d’aquest domini en cap de les línies de temps ni en les notificacions. Els teus seguidors d’aquest domini seran eliminats.",
"confirmations.logout.confirm": "Tancar sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.mute.confirm": "Silencia",
"confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen però encara els permetrà veure les teves i seguir-te.",
"confirmations.mute.message": "Estàs segur que vols silenciar {name}?",
"confirmations.redraft.confirm": "Esborrar i refer",
"confirmations.redraft.message": "Estàs segur que vols esborrar aquest toot i tornar a redactar-lo? Perderàs totes els impulsos i favorits, i les respostes al toot original es quedaran orfes.",
"confirmations.redraft.message": "Estàs segur que vols esborrar aquest tut i tornar a redactar-lo? Perdràs totes els impulsos i favorits, i les respostes al tut original es quedaran orfes.",
"confirmations.reply.confirm": "Respon",
"confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?",
"confirmations.unfollow.confirm": "Deixa de seguir",
@@ -119,8 +123,8 @@
"directory.local": "Només de {domain}",
"directory.new_arrivals": "Arribades noves",
"directory.recently_active": "Recentment actius",
"embed.instructions": "Incrusta aquest toot al lloc web copiant el codi a continuació.",
"embed.preview": "Aquí tenim quin aspecte tindrá:",
"embed.instructions": "Incrusta aquest tut al lloc web copiant el codi a continuació.",
"embed.preview": "Aquí tenim quin aspecte tindrà:",
"emoji_button.activity": "Activitat",
"emoji_button.custom": "Personalitzat",
"emoji_button.flags": "Banderes",
@@ -135,19 +139,20 @@
"emoji_button.search_results": "Resultats de la cerca",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
"empty_column.account_timeline": "No hi ha toots aquí!",
"empty_column.account_timeline": "No hi ha tuts aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
"empty_column.bookmarked_statuses": "Encara no tens marcat cap tut. Quan marquis un apareixerà aquí.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per a fer rodar la pilota!",
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
"empty_column.domain_blocks": "Encara no hi ha dominis ocults.",
"empty_column.favourited_statuses": "Encara no tens cap toot favorit. Quan en tinguis, apareixerà aquí.",
"empty_column.favourites": "Encara ningú ha marcat aquest toot com a favorit. Quan algú ho faci, apareixera aquí.",
"empty_column.follow_requests": "Encara no teniu cap petició de seguiment. Quan rebis una, apareixerà aquí.",
"empty_column.favourited_statuses": "Encara no has marcat com a favorit cap tut. Quan en facis, apareixerà aquí.",
"empty_column.favourites": "Ningú no ha marcat aquesta barritada com a preferit encara. Quan algú ho faci, apareixerà aquí.",
"empty_column.follow_requests": "Encara no tens cap petició de seguiment. Quan rebis una, apareixerà aquí.",
"empty_column.hashtag": "Encara no hi ha res en aquesta etiqueta.",
"empty_column.home": "Encara no segueixes ningú. Visita {public} o fes cerca per començar i conèixer altres usuaris.",
"empty_column.home.public_timeline": "la línia de temps pública",
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin nous toots, apareixeran aquí.",
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin nous tuts, apareixeran aquí.",
"empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.",
"empty_column.mutes": "Encara no has silenciat cap usuari.",
"empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
@@ -163,7 +168,7 @@
"getting_started.documentation": "Documentació",
"getting_started.heading": "Començant",
"getting_started.invite": "Convida gent",
"getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir o informar de problemes a GitHub a {github}.",
"getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir-hi o informar de problemes a GitHub a {github}.",
"getting_started.security": "Seguretat",
"getting_started.terms": "Termes del servei",
"hashtag.column_header.tag_mode.all": "i {additional}",
@@ -190,27 +195,27 @@
"introduction.federation.local.text": "Les publicacions públiques de les persones del teu mateix servidor apareixeran a la línia de temps local.",
"introduction.interactions.action": "Finalitza el tutorial!",
"introduction.interactions.favourite.headline": "Favorit",
"introduction.interactions.favourite.text": "Pots desar un toot per a més tard i deixar que l'autor sàpiga que t'ha agradat, marcant-lo com a favorit.",
"introduction.interactions.favourite.text": "Pots desar un tut per a més tard i deixar que l'autor sàpiga que t'ha agradat, marcant-lo com a favorit.",
"introduction.interactions.reblog.headline": "Impuls",
"introduction.interactions.reblog.text": "Pots compartir amb els teus seguidors els toots d'altres usuaris, impulsant-los.",
"introduction.interactions.reblog.text": "Pots compartir amb els teus seguidors els tuts d'altres usuaris, impulsant-los.",
"introduction.interactions.reply.headline": "Respondre",
"introduction.interactions.reply.text": "Pots respondre als toots d'altres persones i als teus propis, que els unirà en una conversa.",
"introduction.interactions.reply.text": "Pots respondre als tuts d'altres persones i als teus propis, que els unirà en una conversa.",
"introduction.welcome.action": "Som-hi!",
"introduction.welcome.headline": "Primers passos",
"introduction.welcome.text": "Benvingut al fedivers! En uns moments podràs emetre missatges i conversar amb els teus amics en una gran varietat de servidors. Però aquest servidor, {domain}, és especial: allotja el teu perfil així que recorda el seu nom.",
"keyboard_shortcuts.back": "navegar enrera",
"keyboard_shortcuts.back": "navegar enrere",
"keyboard_shortcuts.blocked": "per obrir la llista d'usuaris bloquejats",
"keyboard_shortcuts.boost": "impulsar",
"keyboard_shortcuts.column": "per a centrar un toot en una de les columnes",
"keyboard_shortcuts.compose": "per centrar l'area de composició de text",
"keyboard_shortcuts.column": "per a centrar un tut en una de les columnes",
"keyboard_shortcuts.compose": "per centrar l'àrea de composició de text",
"keyboard_shortcuts.description": "Descripció",
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
"keyboard_shortcuts.down": "per baixar en la llista",
"keyboard_shortcuts.enter": "ampliar el toot",
"keyboard_shortcuts.enter": "ampliar el tut",
"keyboard_shortcuts.favourite": "afavorir",
"keyboard_shortcuts.favourites": "per obrir la llista de favorits",
"keyboard_shortcuts.federated": "per obrir la línia de temps federada",
"keyboard_shortcuts.heading": "Dreçeres de teclat",
"keyboard_shortcuts.heading": "Dreceres de teclat",
"keyboard_shortcuts.home": "per a obrir la línia de temps Inici",
"keyboard_shortcuts.hotkey": "Tecla d'accés directe",
"keyboard_shortcuts.legend": "per a mostrar aquesta llegenda",
@@ -219,7 +224,8 @@
"keyboard_shortcuts.muted": "per a obrir la llista d'usuaris silenciats",
"keyboard_shortcuts.my_profile": "per a obrir el teu perfil",
"keyboard_shortcuts.notifications": "per a obrir la columna de notificacions",
"keyboard_shortcuts.pinned": "per a obrir la llista de toots fixats",
"keyboard_shortcuts.open_media": "obrir mèdia",
"keyboard_shortcuts.pinned": "per a obrir la llista de tuts fixats",
"keyboard_shortcuts.profile": "per a obrir el perfil de l'autor",
"keyboard_shortcuts.reply": "respondre",
"keyboard_shortcuts.requests": "per a obrir la llista de sol·licituds de seguiment",
@@ -227,8 +233,8 @@
"keyboard_shortcuts.start": "per a obrir la columna \"Començar\"",
"keyboard_shortcuts.toggle_hidden": "per a mostrar/amagar text sota CW",
"keyboard_shortcuts.toggle_sensitivity": "per a mostrar/amagar mèdia",
"keyboard_shortcuts.toot": "per a començar un toot nou de trinca",
"keyboard_shortcuts.unfocus": "descentrar l'area de composició de text/cerca",
"keyboard_shortcuts.toot": "per a començar un tut nou de trinca",
"keyboard_shortcuts.unfocus": "descentrar l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "moure amunt en la llista",
"lightbox.close": "Tancar",
"lightbox.next": "Següent",
@@ -251,13 +257,14 @@
"mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
"navigation_bar.apps": "Apps mòbils",
"navigation_bar.blocks": "Usuaris bloquejats",
"navigation_bar.bookmarks": "Marcadors",
"navigation_bar.community_timeline": "Línia de temps Local",
"navigation_bar.compose": "Redacta nou toot",
"navigation_bar.compose": "Redacta un nou tut",
"navigation_bar.direct": "Missatges directes",
"navigation_bar.discover": "Descobreix",
"navigation_bar.domain_blocks": "Dominis ocults",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.favourites": "Favorits",
"navigation_bar.favourites": "Preferits",
"navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
"navigation_bar.follows_and_followers": "Seguits i seguidors",
@@ -267,29 +274,32 @@
"navigation_bar.logout": "Tancar sessió",
"navigation_bar.mutes": "Usuaris silenciats",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Toots fixats",
"navigation_bar.pins": "Tuts fixats",
"navigation_bar.preferences": "Preferències",
"navigation_bar.public_timeline": "Línia de temps federada",
"navigation_bar.security": "Seguretat",
"notification.favourite": "{name} ha afavorit el teu estat",
"notification.follow": "{name} et segueix",
"notification.follow_request": "{name} ha sol·licitat seguir-te",
"notification.mention": "{name} t'ha esmentat",
"notification.own_poll": "La teva enquesta ha finalitzat",
"notification.poll": "Ha finalitzat una enquesta en la que has votat",
"notification.reblog": "{name} ha impulsat el teu estat",
"notifications.clear": "Netejar notificacions",
"notifications.clear_confirmation": "Estàs segur que vols esborrar permanenment totes les teves notificacions?",
"notifications.clear_confirmation": "Estàs segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Favorits:",
"notifications.column_settings.favourite": "Preferits:",
"notifications.column_settings.filter_bar.advanced": "Mostra totes les categories",
"notifications.column_settings.filter_bar.category": "Barra ràpida de filtres",
"notifications.column_settings.filter_bar.show": "Mostra",
"notifications.column_settings.follow": "Nous seguidors:",
"notifications.column_settings.follow_request": "Nova sol·licitud de seguiment:",
"notifications.column_settings.mention": "Mencions:",
"notifications.column_settings.poll": "Resultats de l’enquesta:",
"notifications.column_settings.push": "Notificacions push",
"notifications.column_settings.reblog": "Impulsos:",
"notifications.column_settings.show": "Mostrar en la columna",
"notifications.column_settings.sound": "Reproduïr so",
"notifications.column_settings.sound": "Reproduir so",
"notifications.filter.all": "Tots",
"notifications.filter.boosts": "Impulsos",
"notifications.filter.favourites": "Favorits",
@@ -333,20 +343,21 @@