From 44f88a334b1630fc236bdd6fbd4cde42f2882e21 Mon Sep 17 00:00:00 2001 From: Aries Date: Tue, 24 Dec 2019 02:12:22 +0900 Subject: [PATCH 001/207] Fix sample SAML_ACS_URL, SAML_ISSUER (#12669) --- .env.nanobox | 4 ++-- .env.production.sample | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.env.nanobox b/.env.nanobox index 03aa01a34..5951777a2 100644 --- a/.env.nanobox +++ b/.env.nanobox @@ -231,8 +231,8 @@ SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io # Optional SAML authentication (cf. omniauth-saml) # SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback +# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback +# SAML_ISSUER=https://example.com # SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO # SAML_IDP_CERT= # SAML_IDP_CERT_FINGERPRINT= diff --git a/.env.production.sample b/.env.production.sample index 9cab992e3..038000041 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -226,8 +226,8 @@ STREAMING_CLUSTER_NUM=1 # Optional SAML authentication (cf. omniauth-saml) # SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback +# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback +# SAML_ISSUER=https://example.com # SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO # SAML_IDP_CERT= # SAML_IDP_CERT_FINGERPRINT= From 28376b319b7ff6db77ebeaac4e6b5b6fbce80967 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2019 22:35:04 +0100 Subject: [PATCH 002/207] Bump oj from 3.9.2 to 3.10.0 (#12683) Bumps [oj](https://github.com/ohler55/oj) from 3.9.2 to 3.10.0. - [Release notes](https://github.com/ohler55/oj/releases) - [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ohler55/oj/compare/v3.9.2...v3.10.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 3a0161c45..477715564 100644 --- a/Gemfile +++ b/Gemfile @@ -64,7 +64,7 @@ gem 'mime-types', '~> 3.3', require: 'mime/types/columnar' gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532' gem 'nokogiri', '~> 1.10' gem 'nsa', '~> 0.2' -gem 'oj', '~> 3.9' +gem 'oj', '~> 3.10' gem 'ostatus2', '~> 2.0' gem 'ox', '~> 2.11' gem 'parslet' diff --git a/Gemfile.lock b/Gemfile.lock index 63d71b433..2ab854c9d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -397,7 +397,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.9.2) + oj (3.10.0) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) @@ -744,7 +744,7 @@ DEPENDENCIES nilsimsa! nokogiri (~> 1.10) nsa (~> 0.2) - oj (~> 3.9) + oj (~> 3.10) omniauth (~> 1.9) omniauth-cas (~> 1.1) omniauth-saml (~> 1.10) From cb4831a5ac5674953c28d50be75ab6a11c2fdf58 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2019 22:36:06 +0100 Subject: [PATCH 003/207] Bump rack-attack from 6.2.1 to 6.2.2 (#12681) Bumps [rack-attack](https://github.com/kickstarter/rack-attack) from 6.2.1 to 6.2.2. - [Release notes](https://github.com/kickstarter/rack-attack/releases) - [Changelog](https://github.com/kickstarter/rack-attack/blob/master/CHANGELOG.md) - [Commits](https://github.com/kickstarter/rack-attack/compare/v6.2.1...v6.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2ab854c9d..bfc391921 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -459,7 +459,7 @@ GEM activesupport (>= 3.0.0) raabro (1.1.6) rack (2.0.8) - rack-attack (6.2.1) + rack-attack (6.2.2) rack (>= 1.0, < 3) rack-cors (1.1.0) rack (>= 2.0.0) From e0c2ecb1d3b04c7b7646a32c3a91cb5fd9112e90 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2019 22:37:35 +0100 Subject: [PATCH 004/207] Bump rails from 5.2.4 to 5.2.4.1 (#12682) Bumps [rails](https://github.com/rails/rails) from 5.2.4 to 5.2.4.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v5.2.4...v5.2.4.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 74 ++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bfc391921..05d5f8e63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,25 +44,25 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.2.4) - actionpack (= 5.2.4) + actioncable (5.2.4.1) + actionpack (= 5.2.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.4) - actionpack (= 5.2.4) - actionview (= 5.2.4) - activejob (= 5.2.4) + actionmailer (5.2.4.1) + actionpack (= 5.2.4.1) + actionview (= 5.2.4.1) + activejob (= 5.2.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.4) - actionview (= 5.2.4) - activesupport (= 5.2.4) - rack (~> 2.0) + actionpack (5.2.4.1) + actionview (= 5.2.4.1) + activesupport (= 5.2.4.1) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.4) - activesupport (= 5.2.4) + actionview (5.2.4.1) + activesupport (= 5.2.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -73,20 +73,20 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.7) - activejob (5.2.4) - activesupport (= 5.2.4) + activejob (5.2.4.1) + activesupport (= 5.2.4.1) globalid (>= 0.3.6) - activemodel (5.2.4) - activesupport (= 5.2.4) - activerecord (5.2.4) - activemodel (= 5.2.4) - activesupport (= 5.2.4) + activemodel (5.2.4.1) + activesupport (= 5.2.4.1) + activerecord (5.2.4.1) + activemodel (= 5.2.4.1) + activesupport (= 5.2.4.1) arel (>= 9.0) - activestorage (5.2.4) - actionpack (= 5.2.4) - activerecord (= 5.2.4) + activestorage (5.2.4.1) + actionpack (= 5.2.4.1) + activerecord (= 5.2.4.1) marcel (~> 0.3.1) - activesupport (5.2.4) + activesupport (5.2.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -469,18 +469,18 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.4) - actioncable (= 5.2.4) - actionmailer (= 5.2.4) - actionpack (= 5.2.4) - actionview (= 5.2.4) - activejob (= 5.2.4) - activemodel (= 5.2.4) - activerecord (= 5.2.4) - activestorage (= 5.2.4) - activesupport (= 5.2.4) + rails (5.2.4.1) + actioncable (= 5.2.4.1) + actionmailer (= 5.2.4.1) + actionpack (= 5.2.4.1) + actionview (= 5.2.4.1) + activejob (= 5.2.4.1) + activemodel (= 5.2.4.1) + activerecord (= 5.2.4.1) + activestorage (= 5.2.4.1) + activesupport (= 5.2.4.1) bundler (>= 1.3.0) - railties (= 5.2.4) + railties (= 5.2.4.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.4) actionpack (>= 5.0.1.x) @@ -496,9 +496,9 @@ GEM railties (>= 5.0, < 6) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (5.2.4) - actionpack (= 5.2.4) - activesupport (= 5.2.4) + railties (5.2.4.1) + actionpack (= 5.2.4.1) + activesupport (= 5.2.4.1) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) From d22f38bb6e770def7199d259d2921fc378bd1f68 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2019 22:38:19 +0100 Subject: [PATCH 005/207] Bump strong_migrations from 0.5.0 to 0.5.1 (#12679) Bumps [strong_migrations](https://github.com/ankane/strong_migrations) from 0.5.0 to 0.5.1. - [Release notes](https://github.com/ankane/strong_migrations/releases) - [Changelog](https://github.com/ankane/strong_migrations/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/strong_migrations/compare/v0.5.0...v0.5.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 05d5f8e63..e28840f83 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -620,7 +620,7 @@ GEM stoplight (2.2.0) streamio-ffmpeg (3.0.2) multi_json (~> 1.8) - strong_migrations (0.5.0) + strong_migrations (0.5.1) activerecord (>= 5) temple (0.8.1) terminal-table (1.8.0) From ab25e9e691eab45b00b5a6704347665747208911 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:25:14 +0900 Subject: [PATCH 006/207] Bump faker from 2.8.1 to 2.9.0 (#12680) Bumps [faker](https://github.com/faker-ruby/faker) from 2.8.1 to 2.9.0. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v2.8.1...v2.9.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 477715564..7817dd9fb 100644 --- a/Gemfile +++ b/Gemfile @@ -117,7 +117,7 @@ end group :test do gem 'capybara', '~> 3.29' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 2.8' + gem 'faker', '~> 2.9' gem 'microformats', '~> 4.1' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index e28840f83..b8d295970 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -240,7 +240,7 @@ GEM tzinfo excon (0.71.0) fabrication (2.21.0) - faker (2.8.1) + faker (2.9.0) i18n (>= 1.6, < 1.8) faraday (0.15.4) multipart-post (>= 1.2, < 3) @@ -710,7 +710,7 @@ DEPENDENCIES doorkeeper (~> 5.2) dotenv-rails (~> 2.7) fabrication (~> 2.21) - faker (~> 2.8) + faker (~> 2.9) fast_blank (~> 1.0) fastimage fog-core (<= 2.1.0) From 41854528eea980582c4667bbd2e8f2d6330c25b3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:25:51 +0900 Subject: [PATCH 007/207] Bump array-includes from 3.1.0 to 3.1.1 (#12671) Bumps [array-includes](https://github.com/es-shims/array-includes) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/es-shims/array-includes/releases) - [Changelog](https://github.com/es-shims/array-includes/blob/master/CHANGELOG.md) - [Commits](https://github.com/es-shims/array-includes/compare/v3.1.0...v3.1.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 79 +++++++++++++++++++++++++--------------------------- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 98d4c37bb..50e5ae7dc 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@babel/runtime": "^7.7.6", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.16.0", - "array-includes": "^3.1.0", + "array-includes": "^3.1.1", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", "axios": "^0.19.0", diff --git a/yarn.lock b/yarn.lock index 6e196404b..c0c1dae55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1604,13 +1604,14 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.0.3, array-includes@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.0.tgz#48a929ef4c6bb1fa6dc4a92c9b023a261b0ca404" - integrity sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ== +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.0-next.0" + es-abstract "^1.17.0" + is-string "^1.0.5" array-union@^1.0.1: version "1.0.2" @@ -3657,38 +3658,22 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1: - version "1.16.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34" - integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA== +es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.5.0, es-abstract@^1.5.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.7.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - -es-abstract@^1.17.0-next.0: - version "1.17.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172" - integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.4" - is-regex "^1.0.4" + is-callable "^1.1.5" + is-regex "^1.0.5" object-inspect "^1.7.0" object-keys "^1.1.1" object.assign "^4.1.0" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -5494,6 +5479,11 @@ is-callable@^1.1.3, is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -5701,6 +5691,13 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -5711,10 +5708,10 @@ is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= +is-string@^1.0.4, is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-subset@^0.1.1: version "0.1.1" @@ -9958,18 +9955,18 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" From ea08fc7dd21cd45f7302370594dbf5671be70b0a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:27:14 +0900 Subject: [PATCH 008/207] Bump rubocop from 0.77.0 to 0.78.0 (#12677) Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.77.0 to 0.78.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.77.0...v0.78.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7817dd9fb..8bd791d71 100644 --- a/Gemfile +++ b/Gemfile @@ -135,7 +135,7 @@ group :development do gem 'letter_opener', '~> 1.7' gem 'letter_opener_web', '~> 1.3' gem 'memory_profiler' - gem 'rubocop', '~> 0.77', require: false + gem 'rubocop', '~> 0.78', require: false gem 'rubocop-rails', '~> 2.4', require: false gem 'brakeman', '~> 4.7', require: false gem 'bundler-audit', '~> 0.6', require: false diff --git a/Gemfile.lock b/Gemfile.lock index b8d295970..967b2cf87 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -558,7 +558,7 @@ GEM rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) rspec-support (3.9.0) - rubocop (0.77.0) + rubocop (0.78.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) parser (>= 2.6) @@ -778,7 +778,7 @@ DEPENDENCIES rqrcode (~> 0.10) rspec-rails (~> 3.9) rspec-sidekiq (~> 3.0) - rubocop (~> 0.77) + rubocop (~> 0.78) rubocop-rails (~> 2.4) ruby-progressbar (~> 1.10) sanitize (~> 5.1) From d29655c495499620be3decccf3a379228048e3dd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:33:12 +0900 Subject: [PATCH 009/207] Bump sass from 1.23.3 to 1.24.0 (#12676) Bumps [sass](https://github.com/sass/dart-sass) from 1.23.3 to 1.24.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.23.3...1.24.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 50e5ae7dc..f48bb5097 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.0.0", "rimraf": "^3.0.0", - "sass": "^1.23.3", + "sass": "^1.24.0", "sass-loader": "^8.0.0", "stringz": "^2.0.0", "substring-trie": "^1.0.2", diff --git a/yarn.lock b/yarn.lock index c0c1dae55..04b2a09e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9384,10 +9384,10 @@ sass-loader@^8.0.0: schema-utils "^2.1.0" semver "^6.3.0" -sass@^1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.23.3.tgz#f07503b9e8d2bcf06ef69e8beea5d085589b1620" - integrity sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog== +sass@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.24.0.tgz#e8b9931bc5d18a37d271749311ef2edc83102a77" + integrity sha512-1TsPyMhLTx+9DLlmwg02iBW2p4poGA7LlkWJLpUY/XticFKNhPcx+l4FsIJLKl6oSUfXmAKpVljHEez1hwjqiw== dependencies: chokidar ">=2.0.0 <4.0.0" From ec6de73001a3a1b33cf45921ecc5b93b9bbed668 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:38:44 +0900 Subject: [PATCH 010/207] Bump mini-css-extract-plugin from 0.8.0 to 0.9.0 (#12674) Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.8.0 to 0.9.0. - [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases) - [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.0...v0.9.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f48bb5097..589fada07 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "lodash": "^4.17.14", "mark-loader": "^0.1.6", "marky": "^1.2.1", - "mini-css-extract-plugin": "^0.8.0", + "mini-css-extract-plugin": "^0.9.0", "mkdirp": "^0.5.1", "npmlog": "^4.1.2", "object-assign": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 04b2a09e3..4c7fa704c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6804,10 +6804,10 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" - integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" From 530ac83cc1d6c12bff1893c3a2bc4a8a74663b26 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:40:58 +0900 Subject: [PATCH 011/207] Bump css-loader from 3.3.2 to 3.4.0 (#12673) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.3.2 to 3.4.0. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.3.2...v3.4.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 589fada07..cfea5eb46 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "compression-webpack-plugin": "^3.0.1", "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", - "css-loader": "^3.3.2", + "css-loader": "^3.4.0", "cssnano": "^4.1.10", "detect-passive-events": "^1.0.2", "dotenv": "^8.2.0", diff --git a/yarn.lock b/yarn.lock index 4c7fa704c..cf3508e16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2941,10 +2941,10 @@ css-list-helpers@^1.0.1: dependencies: tcomb "^2.5.0" -css-loader@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.3.2.tgz#41b2086528aa4fbf8c0692e874bc14f081129b21" - integrity sha512-4XSiURS+YEK2fQhmSaM1onnUm0VKWNf6WWBYjkp9YbSDGCBTVZ5XOM6Gkxo8tLgQlzkZOBJvk9trHlDk4gjEYg== +css-loader@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.0.tgz#9fb263436783117a41d014e45e8eaeba54dd6670" + integrity sha512-JornYo4RAXl1Mzt0lOSVPmArzAMV3rGY2VuwtaDc732WTWjdwTaeS19nCGWMcSCf305Q396lhhDAJEWWM0SgPQ== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" From 504763dd063207b8f69178e58c5c8f59300267fe Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 02:42:11 +0900 Subject: [PATCH 012/207] Bump @babel/preset-env from 7.7.6 to 7.7.7 (#12672) Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.6 to 7.7.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.6...v7.7.7) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 65 ++++++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index cfea5eb46..43aab49b4 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@babel/plugin-proposal-decorators": "^7.7.4", "@babel/plugin-transform-react-inline-elements": "^7.7.4", "@babel/plugin-transform-runtime": "^7.7.6", - "@babel/preset-env": "^7.7.6", + "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.7.6", "@gamestdio/websocket": "^0.3.2", diff --git a/yarn.lock b/yarn.lock index cf3508e16..23ff26a8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -299,10 +299,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.7.4" -"@babel/plugin-proposal-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71" - integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ== +"@babel/plugin-proposal-object-rest-spread@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" + integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.7.4" @@ -315,10 +315,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" -"@babel/plugin-proposal-unicode-property-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb" - integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA== +"@babel/plugin-proposal-unicode-property-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" + integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -438,10 +438,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96" - integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw== +"@babel/plugin-transform-dotall-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" + integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -548,10 +548,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.7.4" -"@babel/plugin-transform-parameters@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce" - integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw== +"@babel/plugin-transform-parameters@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" + integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== dependencies: "@babel/helper-call-delegate" "^7.7.4" "@babel/helper-get-function-arity" "^7.7.4" @@ -673,19 +673,19 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@^7.7.6": - version "7.7.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2" - integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ== +"@babel/preset-env@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.7.4" "@babel/plugin-proposal-dynamic-import" "^7.7.4" "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.4" + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" "@babel/plugin-syntax-async-generators" "^7.7.4" "@babel/plugin-syntax-dynamic-import" "^7.7.4" "@babel/plugin-syntax-json-strings" "^7.7.4" @@ -699,7 +699,7 @@ "@babel/plugin-transform-classes" "^7.7.4" "@babel/plugin-transform-computed-properties" "^7.7.4" "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.4" + "@babel/plugin-transform-dotall-regex" "^7.7.7" "@babel/plugin-transform-duplicate-keys" "^7.7.4" "@babel/plugin-transform-exponentiation-operator" "^7.7.4" "@babel/plugin-transform-for-of" "^7.7.4" @@ -713,7 +713,7 @@ "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" "@babel/plugin-transform-new-target" "^7.7.4" "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.4" + "@babel/plugin-transform-parameters" "^7.7.7" "@babel/plugin-transform-property-literals" "^7.7.4" "@babel/plugin-transform-regenerator" "^7.7.5" "@babel/plugin-transform-reserved-words" "^7.7.4" @@ -725,7 +725,7 @@ "@babel/plugin-transform-unicode-regex" "^7.7.4" "@babel/types" "^7.7.4" browserslist "^4.6.0" - core-js-compat "^3.4.7" + core-js-compat "^3.6.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" @@ -2767,13 +2767,13 @@ copy-webpack-plugin@^5.1.1: serialize-javascript "^2.1.2" webpack-log "^2.0.0" -core-js-compat@^3.4.7: - version "3.5.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.5.0.tgz#5a11a619a9e9dd2dcf1c742b2060bc4a2143e5b6" - integrity sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg== +core-js-compat@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" + integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== dependencies: browserslist "^4.8.2" - semver "^6.3.0" + semver "7.0.0" core-js@^1.0.0: version "1.2.7" @@ -9459,6 +9459,11 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" From 038a1246f5727560599a6f04302133d663cc6bfa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 03:15:44 +0900 Subject: [PATCH 013/207] Bump object.values from 1.1.0 to 1.1.1 (#12625) Bumps [object.values](https://github.com/es-shims/Object.values) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/es-shims/Object.values/releases) - [Changelog](https://github.com/es-shims/Object.values/blob/master/CHANGELOG.md) - [Commits](https://github.com/es-shims/Object.values/compare/v1.1.0...v1.1.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 43aab49b4..6577e7e99 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "npmlog": "^4.1.2", "object-assign": "^4.1.1", "object-fit-images": "^3.2.3", - "object.values": "^1.1.0", + "object.values": "^1.1.1", "offline-plugin": "^5.0.7", "path-complete-extname": "^1.0.0", "pg": "^6.4.0", diff --git a/yarn.lock b/yarn.lock index 23ff26a8e..a7473240e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3658,7 +3658,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.5.0, es-abstract@^1.5.1: +es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.5.0, es-abstract@^1.5.1: version "1.17.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== @@ -7336,13 +7336,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== +object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" From 14cca940d92f4716092441435b256e6401896281 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 09:15:03 +0900 Subject: [PATCH 014/207] Bump enzyme from 3.10.0 to 3.11.0 (#12675) Bumps [enzyme](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme) from 3.10.0 to 3.11.0. - [Release notes](https://github.com/airbnb/enzyme/releases) - [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md) - [Commits](https://github.com/airbnb/enzyme/commits/enzyme@3.11.0/packages/enzyme) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 190 ++++++++++++++++++++++++--------------------------- 2 files changed, 89 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 6577e7e99..8da2ae92d 100644 --- a/package.json +++ b/package.json @@ -170,7 +170,7 @@ "devDependencies": { "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", - "enzyme": "^3.10.0", + "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.1", "eslint": "^6.7.2", "eslint-plugin-import": "~2.19.1", diff --git a/yarn.lock b/yarn.lock index a7473240e..20e1e8845 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1638,14 +1638,13 @@ array.prototype.find@^2.1.0: define-properties "^1.1.3" es-abstract "^1.13.0" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" arrify@^1.0.1: version "1.0.1" @@ -2384,13 +2383,13 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== -cheerio@^1.0.0-rc.2: - version "1.0.0-rc.2" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" - integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== dependencies: css-select "~1.2.0" - dom-serializer "~0.1.0" + dom-serializer "~0.1.1" entities "~1.1.1" htmlparser2 "^3.9.1" lodash "^4.15.0" @@ -3409,7 +3408,7 @@ dom-helpers@^3.2.1, dom-helpers@^3.3.1: dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0, dom-serializer@~0.1.0: +dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= @@ -3417,6 +3416,14 @@ dom-serializer@0, dom-serializer@~0.1.0: domelementtype "~1.1.1" entities "~1.1.1" +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -3609,40 +3616,41 @@ enzyme-adapter-utils@^1.12.1: prop-types "^15.7.2" semver "^5.7.0" -enzyme-shallow-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.0.tgz#d8e4603495e6ea279038eef05a4bf4887b55dc69" - integrity sha512-VUf+q5o1EIv2ZaloNQQtWCJM9gpeux6vudGVH6vLmfPXFLRuxl5+Aq3U260wof9nn0b0i+P5OEUXm1vnxkRpXQ== +enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" + integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== dependencies: has "^1.0.3" - object-is "^1.0.1" + object-is "^1.0.2" -enzyme@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -3658,7 +3666,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.5.0, es-abstract@^1.5.1: +es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.5.1: version "1.17.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== @@ -4572,36 +4580,26 @@ fsevents@^2.0.6: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== -function-bind@^1.0.2, function-bind@^1.1.1: +function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" - integrity sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - is-callable "^1.1.3" - -function.prototype.name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" - integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q== +function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" - functions-have-names "^1.1.1" - is-callable "^1.1.4" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -functions-have-names@^1.1.1: +functions-have-names@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.0.tgz#83da7583e4ea0c9ac5ff530f73394b033e0bf77d" integrity sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ== @@ -4902,7 +4900,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -5016,10 +5014,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-element-map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.0.1.tgz#3c4fcb4874ebddfe4283b51c8994e7713782b592" - integrity sha512-BZSfdEm6n706/lBfXKWa4frZRZcT5k1cOusw95ijZsHlI+GdgY0v95h6IzO3iIDf2ROwq570YTwqNPqHcNMozw== +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -5452,10 +5450,10 @@ is-binary-path@^2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" - integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== is-buffer@^1.1.5: version "1.1.6" @@ -5474,12 +5472,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-callable@^1.1.5: +is-callable@^1.1.4, is-callable@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== @@ -5621,10 +5614,10 @@ is-nan@^1.2.1: dependencies: define-properties "^1.1.1" -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" - integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -5684,14 +5677,7 @@ is-property@^1.0.0, is-property@^1.0.2: resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-regex@^1.0.5: +is-regex@^1.0.4, is-regex@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== @@ -5708,7 +5694,7 @@ is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.4, is-string@^1.0.5: +is-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== @@ -7269,15 +7255,15 @@ object-fit-images@^3.2.3: resolved "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz#6c299d38fdf207746e5d2d46c2877f6f25d15b52" integrity sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg== -object-inspect@^1.6.0, object-inspect@^1.7.0: +object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= +object-is@^1.0.1, object-is@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -7301,13 +7287,13 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4, object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== +object.entries@^1.1.0, object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -8491,7 +8477,7 @@ quote@^0.4.0: resolved "https://registry.yarnpkg.com/quote/-/quote-0.4.0.tgz#10839217f6c1362b89194044d29b233fd7f32f01" integrity sha1-EIOSF/bBNiuJGUBE0psjP9fzLwE= -raf@^3.1.0, raf@^3.4.0, raf@^3.4.1: +raf@^3.1.0, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -9951,14 +9937,14 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trim@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" - integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= +string.prototype.trim@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" string.prototype.trimleft@^2.1.1: version "2.1.1" From 8e2cbade798e9d9cfaad68a91be9ebe4f2af1c78 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 09:15:31 +0900 Subject: [PATCH 015/207] Bump @babel/runtime from 7.7.6 to 7.7.7 (#12670) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.7.6 to 7.7.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.7.7/packages/babel-runtime) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8da2ae92d..5568f3c04 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", - "@babel/runtime": "^7.7.6", + "@babel/runtime": "^7.7.7", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.16.0", "array-includes": "^3.1.1", diff --git a/yarn.lock b/yarn.lock index 20e1e8845..c805f1d9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -755,10 +755,10 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6": - version "7.7.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.6.tgz#d18c511121aff1b4f2cd1d452f1bac9601dd830f" - integrity sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" + integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== dependencies: regenerator-runtime "^0.13.2" From 7ff7ca8c7c8d6612760db93d533a18e83b0a9c70 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2019 11:41:55 +0900 Subject: [PATCH 016/207] [Security] Bump handlebars from 4.2.0 to 4.5.3 (#12694) Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.2.0 to 4.5.3. **This update includes a security fix.** - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.0...v4.5.3) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index c805f1d9b..4bb3c8049 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2613,11 +2613,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, commander@~2.20.0: +commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: version "2.20.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== +commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -4819,9 +4824,9 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -10441,11 +10446,11 @@ ua-parser-js@^0.7.18: integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9" + integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA== dependencies: - commander "~2.20.0" + commander "~2.20.3" source-map "~0.6.1" unicode-astral-regex@^1.0.1: From 1155dc08352c3aa1cb763729122c34a3db6e64ec Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 29 Dec 2019 05:39:08 +0100 Subject: [PATCH 017/207] Fix old migrations failing because of strong_migrations update (#12692) Fixes #12690 The `strong_migrations` update from ba2eac8824a85aa9541f8070ed7bcd22b9982cc8 introduced a check for `change_column_null` specific to Postgres. This rejects old migrations. This commit just wraps old migrations with `safety_assured` to bypass this check. Alternatives would have been to: - Disable that check entirely (a possibility added in that same `strong_migrations` version) for Mastodon, but it makes sense to write new migrations without such a strong lock. - Rewrite the old migrations to do it in a way that do not require an exclusive lock. I thought fixing those old migrations for performance wasn't worth the pain. Also, if I understand correctly, the next version of `strong_migrations` is going to include a helper to do that. We could update those migrations at that point. --- .../20170711225116_fix_null_booleans.rb | 20 ++++++++++--------- ...nonnullable_in_account_moderation_notes.rb | 6 ++++-- ..._change_account_id_nonnullable_in_lists.rb | 4 +++- ...ge_columns_in_notifications_nonnullable.rb | 10 ++++++---- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/db/migrate/20170711225116_fix_null_booleans.rb b/db/migrate/20170711225116_fix_null_booleans.rb index 5b319471d..aabb81f21 100644 --- a/db/migrate/20170711225116_fix_null_booleans.rb +++ b/db/migrate/20170711225116_fix_null_booleans.rb @@ -1,17 +1,19 @@ class FixNullBooleans < ActiveRecord::Migration[5.1] def change - change_column_default :domain_blocks, :reject_media, false - change_column_null :domain_blocks, :reject_media, false, false + safety_assured do + change_column_default :domain_blocks, :reject_media, false + change_column_null :domain_blocks, :reject_media, false, false - change_column_default :imports, :approved, false - change_column_null :imports, :approved, false, false + change_column_default :imports, :approved, false + change_column_null :imports, :approved, false, false - change_column_null :statuses, :sensitive, false, false - change_column_null :statuses, :reply, false, false + change_column_null :statuses, :sensitive, false, false + change_column_null :statuses, :reply, false, false - change_column_null :users, :admin, false, false + change_column_null :users, :admin, false, false - change_column_default :users, :otp_required_for_login, false - change_column_null :users, :otp_required_for_login, false, false + change_column_default :users, :otp_required_for_login, false + change_column_null :users, :otp_required_for_login, false, false + end end end diff --git a/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb b/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb index 747e5a826..1d7a0086c 100644 --- a/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb +++ b/db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb @@ -1,6 +1,8 @@ class ChangeAccountsNonnullableInAccountModerationNotes < ActiveRecord::Migration[5.1] def change - change_column_null :account_moderation_notes, :account_id, false - change_column_null :account_moderation_notes, :target_account_id, false + safety_assured do + change_column_null :account_moderation_notes, :account_id, false + change_column_null :account_moderation_notes, :target_account_id, false + end end end diff --git a/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb b/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb index 3369e3b9e..ac86c9e77 100644 --- a/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb +++ b/db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb @@ -1,5 +1,7 @@ class ChangeAccountIdNonnullableInLists < ActiveRecord::Migration[5.1] def change - change_column_null :lists, :account_id, false + safety_assured do + change_column_null :lists, :account_id, false + end end end diff --git a/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb b/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb index 05ffd0501..dba789207 100644 --- a/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb +++ b/db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb @@ -1,8 +1,10 @@ class ChangeColumnsInNotificationsNonnullable < ActiveRecord::Migration[5.1] def change - change_column_null :notifications, :activity_id, false - change_column_null :notifications, :activity_type, false - change_column_null :notifications, :account_id, false - change_column_null :notifications, :from_account_id, false + safety_assured do + change_column_null :notifications, :activity_id, false + change_column_null :notifications, :activity_type, false + change_column_null :notifications, :account_id, false + change_column_null :notifications, :from_account_id, false + end end end From 31f7c3fc5d9bf24fc79f3246a0de2cc907ecb34d Mon Sep 17 00:00:00 2001 From: Matt Panaro Date: Sat, 28 Dec 2019 23:39:48 -0500 Subject: [PATCH 018/207] =?UTF-8?q?Summary:=20fix=20slowness=20due=20to=20?= =?UTF-8?q?layout=20thrashing=20when=20reloading=20a=20large=20=E2=80=A6?= =?UTF-8?q?=20(#12661)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Summary: fix slowness due to layout thrashing when reloading a large set of status updates in order to limit the maximum size of a status in a list view (e.g. the home timeline), so as to avoid having to scroll all the way through an abnormally large status update (see https://github.com/tootsuite/mastodon/pull/8205), the following steps are taken: •the element containing the status is rendered in the browser •its height is calculated, to determine if it exceeds the maximum height threshold. Unfortunately for performance, these steps are carried out in the componentDidMount(/Update) method, which also performs style modifications on the element. The combination of height request and style modification during javascript evaluation in the browser leads to layout-thrashing, where the elements are repeatedly re-laid-out (see https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing & https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers). The solution implemented here is to memoize the collapsed state in Redux the first time the status is seen (e.g. when fetched as part of a small batch, to populate the home timeline) , so that on subsequent re-renders, the value can be queried, rather than recalculated. This strategy is derived from https://github.com/tootsuite/mastodon/pull/4439 & https://github.com/tootsuite/mastodon/pull/4909, and should resolve https://github.com/tootsuite/mastodon/issues/12455. Andrew Lin (https://github.com/onethreeseven) is thanked for his assistance in root cause analysis and solution brainstorming * remove getSnapshotBeforeUpdate from status * remove componentWillUnmount from status * persist last-intersected status update and restore when ScrollableList is restored e.g. when navigating from home-timeline to a status conversational thread and ({ + type: CURRENTLY_VIEWING, + timeline, + id, +}); + export const loadPending = timeline => ({ type: TIMELINE_LOAD_PENDING, timeline, diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.js index e453730ba..d475e5d1c 100644 --- a/app/javascript/mastodon/components/intersection_observer_article.js +++ b/app/javascript/mastodon/components/intersection_observer_article.js @@ -20,6 +20,8 @@ export default class IntersectionObserverArticle extends React.Component { cachedHeight: PropTypes.number, onHeightChange: PropTypes.func, children: PropTypes.node, + currentlyViewing: PropTypes.number, + updateCurrentlyViewing: PropTypes.func, }; state = { @@ -48,6 +50,8 @@ export default class IntersectionObserverArticle extends React.Component { ); this.componentMounted = true; + + if(id === this.props.currentlyViewing) this.node.scrollIntoView(); } componentWillUnmount () { @@ -60,6 +64,8 @@ export default class IntersectionObserverArticle extends React.Component { handleIntersection = (entry) => { this.entry = entry; + if(entry.intersectionRatio > 0.75 && this.props.updateCurrentlyViewing) this.props.updateCurrentlyViewing(this.id); + scheduleIdleTask(this.calculateHeight); this.setState(this.updateStateAfterIntersection); } diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 421756803..6338ccd5c 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -36,6 +36,8 @@ export default class ScrollableList extends PureComponent { emptyMessage: PropTypes.node, children: PropTypes.node, bindToDocument: PropTypes.bool, + currentlyViewing: PropTypes.number, + updateCurrentlyViewing: PropTypes.func, }; static defaultProps = { @@ -309,6 +311,8 @@ export default class ScrollableList extends PureComponent { listLength={childrenCount} intersectionObserverWrapper={this.intersectionObserverWrapper} saveHeightKey={trackScroll ? `${this.context.router.route.location.key}:${scrollKey}` : null} + currentlyViewing={this.props.currentlyViewing} + updateCurrentlyViewing={this.props.updateCurrentlyViewing} > {React.cloneElement(child, { getScrollPosition: this.getScrollPosition, diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index e120278a0..12fc4a9a6 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -76,6 +76,7 @@ class Status extends ImmutablePureComponent { onEmbed: PropTypes.func, onHeightChange: PropTypes.func, onToggleHidden: PropTypes.func, + onToggleCollapsed: PropTypes.func, muted: PropTypes.bool, hidden: PropTypes.bool, unread: PropTypes.bool, @@ -107,14 +108,6 @@ class Status extends ImmutablePureComponent { this.didShowCard = !this.props.muted && !this.props.hidden && this.props.status && this.props.status.get('card'); } - getSnapshotBeforeUpdate () { - if (this.props.getScrollPosition) { - return this.props.getScrollPosition(); - } else { - return null; - } - } - static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { return { @@ -141,17 +134,6 @@ class Status extends ImmutablePureComponent { } } - componentWillUnmount() { - if (this.node && this.props.getScrollPosition) { - const position = this.props.getScrollPosition(); - if (position !== null && this.node.offsetTop < position.top) { - requestAnimationFrame(() => { - this.props.updateScrollBottom(position.height - position.top); - }); - } - } - } - handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); } @@ -196,7 +178,11 @@ class Status extends ImmutablePureComponent { handleExpandedToggle = () => { this.props.onToggleHidden(this._properStatus()); - }; + } + + handleCollapsedToggle = isCollapsed => { + this.props.onToggleCollapsed(this._properStatus(), isCollapsed); + } renderLoadingMediaGallery () { return
; @@ -466,7 +452,7 @@ class Status extends ImmutablePureComponent {
- + {media} diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js index d13091325..5d921fd41 100644 --- a/app/javascript/mastodon/components/status_content.js +++ b/app/javascript/mastodon/components/status_content.js @@ -23,11 +23,11 @@ export default class StatusContent extends React.PureComponent { onExpandedToggle: PropTypes.func, onClick: PropTypes.func, collapsable: PropTypes.bool, + onCollapsedToggle: PropTypes.func, }; state = { hidden: true, - collapsed: null, // `collapsed: null` indicates that an element doesn't need collapsing, while `true` or `false` indicates that it does (and is/isn't). }; _updateStatusLinks () { @@ -62,14 +62,16 @@ export default class StatusContent extends React.PureComponent { link.setAttribute('rel', 'noopener noreferrer'); } - if ( - this.props.collapsable - && this.props.onClick - && this.state.collapsed === null - && node.clientHeight > MAX_HEIGHT - && this.props.status.get('spoiler_text').length === 0 - ) { - this.setState({ collapsed: true }); + if (this.props.status.get('collapsed', null) === null) { + let collapsed = + this.props.collapsable + && this.props.onClick + && node.clientHeight > MAX_HEIGHT + && this.props.status.get('spoiler_text').length === 0; + + if(this.props.onCollapsedToggle) this.props.onCollapsedToggle(collapsed); + + this.props.status.set('collapsed', collapsed); } } @@ -178,6 +180,7 @@ export default class StatusContent extends React.PureComponent { } const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; + const renderReadMore = this.props.onClick && status.get('collapsed'); const content = { __html: status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; @@ -185,7 +188,7 @@ export default class StatusContent extends React.PureComponent { const classNames = classnames('status__content', { 'status__content--with-action': this.props.onClick && this.context.router, 'status__content--with-spoiler': status.get('spoiler_text').length > 0, - 'status__content--collapsed': this.state.collapsed === true, + 'status__content--collapsed': renderReadMore, }); if (isRtl(status.get('search_index'))) { @@ -237,7 +240,7 @@ export default class StatusContent extends React.PureComponent { , ]; - if (this.state.collapsed) { + if (renderReadMore) { output.push(readMoreButton); } diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.js index e1b370c91..82e069601 100644 --- a/app/javascript/mastodon/components/status_list.js +++ b/app/javascript/mastodon/components/status_list.js @@ -26,6 +26,8 @@ export default class StatusList extends ImmutablePureComponent { emptyMessage: PropTypes.node, alwaysPrepend: PropTypes.bool, timelineId: PropTypes.string, + currentlyViewing: PropTypes.number, + updateCurrentlyViewing: PropTypes.func, }; static defaultProps = { @@ -58,6 +60,12 @@ export default class StatusList extends ImmutablePureComponent { this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined); }, 300, { leading: true }) + updateCurrentlyViewingWithCache = (id) => { + if(this.cachedCurrentlyViewing === id) return; + this.cachedCurrentlyViewing = id; + this.props.updateCurrentlyViewing(id); + } + _selectChild (index, align_top) { const container = this.node.node; const element = container.querySelector(`article:nth-of-type(${index + 1}) .focusable`); @@ -79,6 +87,7 @@ export default class StatusList extends ImmutablePureComponent { render () { const { statusIds, featuredStatusIds, shouldUpdateScroll, onLoadMore, timelineId, ...other } = this.props; const { isLoading, isPartial } = other; + other.updateCurrentlyViewing = this.updateCurrentlyViewingWithCache; if (isPartial) { return ; diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index 35c16a20c..2ba3a3123 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -23,6 +23,7 @@ import { deleteStatus, hideStatus, revealStatus, + toggleStatusCollapse, } from '../actions/statuses'; import { unmuteAccount, @@ -190,6 +191,10 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } }, + onToggleCollapsed (status, isCollapsed) { + dispatch(toggleStatusCollapse(status.get('id'), isCollapsed)); + }, + onBlockDomain (domain) { dispatch(openModal('CONFIRM', { message: {domain} }} />, diff --git a/app/javascript/mastodon/features/ui/containers/status_list_container.js b/app/javascript/mastodon/features/ui/containers/status_list_container.js index 9f6cbf988..33af628ca 100644 --- a/app/javascript/mastodon/features/ui/containers/status_list_container.js +++ b/app/javascript/mastodon/features/ui/containers/status_list_container.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import StatusList from '../../../components/status_list'; -import { scrollTopTimeline, loadPending } from '../../../actions/timelines'; +import { scrollTopTimeline, loadPending, updateCurrentlyViewing } from '../../../actions/timelines'; import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; import { createSelector } from 'reselect'; import { debounce } from 'lodash'; @@ -39,6 +39,7 @@ const makeMapStateToProps = () => { isPartial: state.getIn(['timelines', timelineId, 'isPartial'], false), hasMore: state.getIn(['timelines', timelineId, 'hasMore']), numPending: getPendingStatusIds(state, { type: timelineId }).size, + currentlyViewing: state.getIn(['timelines', timelineId, 'currentlyViewing'], -1), }); return mapStateToProps; @@ -56,6 +57,7 @@ const mapDispatchToProps = (dispatch, { timelineId }) => ({ onLoadPending: () => dispatch(loadPending(timelineId)), + updateCurrentlyViewing: id => dispatch(updateCurrentlyViewing(timelineId, id)), }); export default connect(makeMapStateToProps, mapDispatchToProps)(StatusList); diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index 772f98bcb..398a48cff 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -12,6 +12,7 @@ import { STATUS_UNMUTE_SUCCESS, STATUS_REVEAL, STATUS_HIDE, + STATUS_COLLAPSE, } from '../actions/statuses'; import { TIMELINE_DELETE } from '../actions/timelines'; import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer'; @@ -73,6 +74,8 @@ export default function statuses(state = initialState, action) { } }); }); + case STATUS_COLLAPSE: + return state.setIn([action.id, 'collapsed'], action.isCollapsed); case TIMELINE_DELETE: return deleteStatus(state, action.id, action.references); default: diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js index 0d7222e10..970db425e 100644 --- a/app/javascript/mastodon/reducers/timelines.js +++ b/app/javascript/mastodon/reducers/timelines.js @@ -9,6 +9,7 @@ import { TIMELINE_CONNECT, TIMELINE_DISCONNECT, TIMELINE_LOAD_PENDING, + CURRENTLY_VIEWING, } from '../actions/timelines'; import { ACCOUNT_BLOCK_SUCCESS, @@ -28,6 +29,7 @@ const initialTimeline = ImmutableMap({ hasMore: true, pendingItems: ImmutableList(), items: ImmutableList(), + currentlyViewing: -1, }); const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent, usePendingItems) => { @@ -168,6 +170,8 @@ export default function timelines(state = initialState, action) { initialTimeline, map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items) ); + case CURRENTLY_VIEWING: + return state.update(action.timeline, initialTimeline, map => map.set('currentlyViewing', action.id)); default: return state; } From 162dc845a04741f15d0d8ca70e17f1ee9ed38841 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 29 Dec 2019 05:41:26 +0100 Subject: [PATCH 019/207] Fix batch actions on non-pending tags in admin interface (#12537) - Allow batch actions on unreviewed tags - Hide checkboxes when batch actions aren't available --- app/views/admin/tags/_tag.html.haml | 5 +++-- app/views/admin/tags/index.html.haml | 15 ++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml index 670f3bc05..287d28e53 100644 --- a/app/views/admin/tags/_tag.html.haml +++ b/app/views/admin/tags/_tag.html.haml @@ -1,6 +1,7 @@ .batch-table__row - %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox - = f.check_box :tag_ids, { multiple: true, include_hidden: false }, tag.id + - if batch_available + %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox + = f.check_box :tag_ids, { multiple: true, include_hidden: false }, tag.id .directory__tag = link_to admin_tag_path(tag.id) do diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml index b29991328..7f2c53190 100644 --- a/app/views/admin/tags/index.html.haml +++ b/app/views/admin/tags/index.html.haml @@ -50,25 +50,26 @@ .batch-table.optional .batch-table__toolbar - %label.batch-table__toolbar__select.batch-checkbox-all - = check_box_tag :batch_checkbox_all, nil, false - .batch-table__toolbar__actions - - if params[:pending_review] == '1' + - if params[:pending_review] == '1' || params[:unreviewed] == '1' + %label.batch-table__toolbar__select.batch-checkbox-all + = check_box_tag :batch_checkbox_all, nil, false + .batch-table__toolbar__actions = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - - else + - else + .batch-table__toolbar__actions %span.neutral-hint= t('generic.no_batch_actions_available') .batch-table__body - if @tags.empty? = nothing_here 'nothing-here--under-tabs' - else - = render partial: 'tag', collection: @tags, locals: { f: f } + = render partial: 'tag', collection: @tags, locals: { f: f, batch_available: params[:pending_review] == '1' || params[:unreviewed] == '1' } = paginate @tags -- if params[:pending_review] == '1' +- if params[:pending_review] == '1' || params[:unreviewed] == '1' %hr.spacer/ %div{ style: 'overflow: hidden' } From 0e8c0287d01d270238aeb7f25c6337b2bcb8afba Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Mon, 30 Dec 2019 00:59:25 +0900 Subject: [PATCH 020/207] Fix shortNumberFormat to within 3 chars without units (#12706) --- app/javascript/mastodon/utils/numbers.js | 8 ++++++-- app/javascript/styles/mastodon/components.scss | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/utils/numbers.js b/app/javascript/mastodon/utils/numbers.js index f7e4ceb93..af18dcfdd 100644 --- a/app/javascript/mastodon/utils/numbers.js +++ b/app/javascript/mastodon/utils/numbers.js @@ -4,9 +4,13 @@ import { FormattedNumber } from 'react-intl'; export const shortNumberFormat = number => { if (number < 1000) { return ; - } else if (number < 1000000) { + } else if (number < 10000) { return K; - } else { + } else if (number < 1000000) { + return K; + } else if (number < 10000000) { return M; + } else { + return M; } }; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 4c7ce9ba7..7121030d2 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6399,13 +6399,13 @@ noscript { &__links { font-size: 14px; color: $darker-text-color; + padding: 10px 0; a { display: inline-block; color: $darker-text-color; text-decoration: none; - padding: 10px; - padding-top: 20px; + padding: 5px 10px; font-weight: 500; strong { From 7a81346d5557053425bc8cf942b05eff0e93fe15 Mon Sep 17 00:00:00 2001 From: Shlee Date: Mon, 30 Dec 2019 00:00:43 +0800 Subject: [PATCH 021/207] Circleci - Upgrade to Buster Images (#12705) * Update config.yml * Update Gemfile.lock --- .circleci/config.yml | 26 +++++++++++++------------- Gemfile.lock | 6 ------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ff8eb4859..83a2088d7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 aliases: - &defaults docker: - - image: circleci/ruby:2.6-stretch-node + - image: circleci/ruby:2.6-buster-node environment: &ruby_environment BUNDLE_APP_CONFIG: ./.bundle/ DB_HOST: localhost @@ -39,7 +39,6 @@ aliases: steps: - checkout - *attach_workspace - - restore_cache: keys: - v1-node-dependencies-{{ checksum "yarn.lock" }} @@ -49,7 +48,6 @@ aliases: key: v1-node-dependencies-{{ checksum "yarn.lock" }} paths: - ./node_modules/ - - *persist_to_workspace - &install_system_dependencies @@ -58,13 +56,17 @@ aliases: command: | sudo apt-get update sudo apt-get install -y libicu-dev libidn11-dev libprotobuf-dev protobuf-compiler + + ## TODO: FIX THESE BUSTER DEPENDANCES + sudo wget http://ftp.au.debian.org/debian/pool/main/i/icu/libicu57_57.1-6+deb9u3_amd64.deb + sudo dpkg -i libicu57_57.1-6+deb9u3_amd64.deb + sudo wget http://ftp.au.debian.org/debian/pool/main/p/protobuf/libprotobuf10_3.0.0-9_amd64.deb + sudo dpkg -i libprotobuf10_3.0.0-9_amd64.deb - &install_ruby_dependencies steps: - *attach_workspace - - *install_system_dependencies - - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version - *restore_ruby_dependencies - run: bundle install --clean --jobs 16 --path ./vendor/bundle/ --retry 3 --with pam_authentication --without development production && bundle clean @@ -82,10 +84,8 @@ aliases: - &test_steps steps: - *attach_workspace - - *install_system_dependencies - run: sudo apt-get install -y ffmpeg - - run: name: Prepare Tests command: ./bin/rails parallel:create parallel:load_schema parallel:prepare @@ -105,14 +105,14 @@ jobs: install-ruby2.5: <<: *defaults docker: - - image: circleci/ruby:2.5-stretch-node + - image: circleci/ruby:2.5-buster-node environment: *ruby_environment <<: *install_ruby_dependencies install-ruby2.4: <<: *defaults docker: - - image: circleci/ruby:2.4-stretch-node + - image: circleci/ruby:2.4-buster-node environment: *ruby_environment <<: *install_ruby_dependencies @@ -131,7 +131,7 @@ jobs: test-ruby2.6: <<: *defaults docker: - - image: circleci/ruby:2.6-stretch-node + - image: circleci/ruby:2.6-buster-node environment: *ruby_environment - image: circleci/postgres:10.6-alpine environment: @@ -142,7 +142,7 @@ jobs: test-ruby2.5: <<: *defaults docker: - - image: circleci/ruby:2.5-stretch-node + - image: circleci/ruby:2.5-buster-node environment: *ruby_environment - image: circleci/postgres:10.6-alpine environment: @@ -153,7 +153,7 @@ jobs: test-ruby2.4: <<: *defaults docker: - - image: circleci/ruby:2.4-stretch-node + - image: circleci/ruby:2.4-buster-node environment: *ruby_environment - image: circleci/postgres:10.6-alpine environment: @@ -164,7 +164,7 @@ jobs: test-webui: <<: *defaults docker: - - image: circleci/node:12.9-stretch + - image: circleci/node:12-buster steps: - *attach_workspace - run: ./bin/retry yarn test:jest diff --git a/Gemfile.lock b/Gemfile.lock index 967b2cf87..6cd3dca1f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -803,9 +803,3 @@ DEPENDENCIES webmock (~> 3.7) webpacker (~> 4.2) webpush - -RUBY VERSION - ruby 2.6.5p114 - -BUNDLED WITH - 1.17.3 From 7e074610a6651d499267e976f45aadce8cd60d96 Mon Sep 17 00:00:00 2001 From: "chr v1.x" Date: Sun, 29 Dec 2019 18:17:54 -0800 Subject: [PATCH 022/207] Fix backups stopping due to read timeouts (#12281) * Make BackupService resilient to read timeouts If an attachment read times out, assume that the resources is inaccessible and continue the backup without it. This fixes #12280. * Both errors on one line --- app/services/backup_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index fba2d19a0..d1090dff1 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -165,7 +165,7 @@ class BackupService < BaseService io.write(buffer) end end - rescue Errno::ENOENT + rescue Errno::ENOENT, Seahorse::Client::NetworkingError Rails.logger.warn "Could not backup file #{filename}: file not found" end end From ca78b1473ec6ea10ea0b42916dc1240371437027 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 30 Dec 2019 03:55:11 +0100 Subject: [PATCH 023/207] Fix undefined error regression in status component in web UI (#12712) Regression from #12661 --- app/javascript/mastodon/components/status.js | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 12fc4a9a6..0dc00cb98 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -103,11 +103,6 @@ class Status extends ImmutablePureComponent { statusId: undefined, }; - // Track height changes we know about to compensate scrolling - componentDidMount () { - this.didShowCard = !this.props.muted && !this.props.hidden && this.props.status && this.props.status.get('card'); - } - static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { return { @@ -119,21 +114,6 @@ class Status extends ImmutablePureComponent { } } - // Compensate height changes - componentDidUpdate (prevProps, prevState, snapshot) { - const doShowCard = !this.props.muted && !this.props.hidden && this.props.status && this.props.status.get('card'); - - if (doShowCard && !this.didShowCard) { - this.didShowCard = true; - - if (snapshot !== null && this.props.updateScrollBottom) { - if (this.node && this.node.offsetTop < snapshot.top) { - this.props.updateScrollBottom(snapshot.height - snapshot.top); - } - } - } - } - handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); } From 353c94910bf02e2cd7f82ae47a55af3164926b3d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 30 Dec 2019 04:38:18 +0100 Subject: [PATCH 024/207] Fix HTML error pages being returned when JSON is expected (#12713) Fix #12509 See also #12214 --- app/controllers/application_controller.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ca5229f79..3f9205381 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -136,6 +136,9 @@ class ApplicationController < ActionController::Base end def respond_with_error(code) - render "errors/#{code}", layout: 'error', status: code, formats: [:html] + respond_to do |format| + format.any { render "errors/#{code}", layout: 'error', status: code, formats: [:html] } + format.json { render json: { error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code } + end end end From 6e9e8d89fa0dbfe9c3c683c7e7dede8a54d3b6d3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 30 Dec 2019 04:38:30 +0100 Subject: [PATCH 025/207] Fix settings pages being cacheable by the browser (#12714) Fix #12255 --- app/controllers/auth/registrations_controller.rb | 5 +++++ app/controllers/oauth/authorizations_controller.rb | 5 +++++ app/controllers/settings/base_controller.rb | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 019caf9c1..212519c8b 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -10,6 +10,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController before_action :set_instance_presenter, only: [:new, :create, :update] before_action :set_body_classes, only: [:new, :create, :edit, :update] before_action :require_not_suspended!, only: [:update] + before_action :set_cache_headers, only: [:edit, :update] skip_before_action :require_functional!, only: [:edit, :update] @@ -109,4 +110,8 @@ class Auth::RegistrationsController < Devise::RegistrationsController def require_not_suspended! forbidden if current_account.suspended? end + + def set_cache_headers + response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' + end end diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb index cebbdc4d0..bb5d639ce 100644 --- a/app/controllers/oauth/authorizations_controller.rb +++ b/app/controllers/oauth/authorizations_controller.rb @@ -5,6 +5,7 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController before_action :store_current_location before_action :authenticate_resource_owner! + before_action :set_cache_headers include Localized @@ -27,4 +28,8 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController def truthy_param?(key) ActiveModel::Type::Boolean.new.cast(params[key]) end + + def set_cache_headers + response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' + end end diff --git a/app/controllers/settings/base_controller.rb b/app/controllers/settings/base_controller.rb index 9bb14afa2..3c404cfff 100644 --- a/app/controllers/settings/base_controller.rb +++ b/app/controllers/settings/base_controller.rb @@ -2,10 +2,15 @@ class Settings::BaseController < ApplicationController before_action :set_body_classes + before_action :set_cache_headers private def set_body_classes @body_classes = 'admin' end + + def set_cache_headers + response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' + end end From e7d3495874bd60d426815c8a9df24ef6e8df5a52 Mon Sep 17 00:00:00 2001 From: Shlee Date: Mon, 30 Dec 2019 14:41:40 +0800 Subject: [PATCH 026/207] Upgrade Node v12 in Dockerfile (#12703) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 117727d08..cc75bd6be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM ubuntu:18.04 as build-dep SHELL ["bash", "-c"] # Install Node v12 (LTS) -ENV NODE_VER="12.13.1" +ENV NODE_VER="12.14.0" RUN echo "Etc/UTC" > /etc/localtime && \ apt update && \ apt -y install wget python && \ From 54e6c1c47e6294b9c07ab5e74c31998728cac53b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 21:54:04 +0900 Subject: [PATCH 027/207] Bump eslint from 6.7.2 to 6.8.0 (#12717) Bumps [eslint](https://github.com/eslint/eslint) from 6.7.2 to 6.8.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v6.7.2...v6.8.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 5568f3c04..f8a7c0bbb 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "babel-jest": "^24.9.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.1", - "eslint": "^6.7.2", + "eslint": "^6.8.0", "eslint-plugin-import": "~2.19.1", "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-promise": "~4.2.1", diff --git a/yarn.lock b/yarn.lock index 4bb3c8049..50736ccc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3938,10 +3938,10 @@ eslint@^2.7.0: text-table "~0.2.0" user-home "^2.0.0" -eslint@^6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.7.2.tgz#c17707ca4ad7b2d8af986a33feba71e18a9fecd1" - integrity sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng== +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -4027,12 +4027,7 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -esutils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= - -esutils@^2.0.2: +esutils@^2.0.0, esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== From 0242f8ae8b28c69a03a8475f3edc362fabeeb95a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 23:54:43 +0900 Subject: [PATCH 028/207] Bump redux from 4.0.4 to 4.0.5 (#12719) Bumps [redux](https://github.com/reduxjs/redux) from 4.0.4 to 4.0.5. - [Release notes](https://github.com/reduxjs/redux/releases) - [Changelog](https://github.com/reduxjs/redux/blob/master/CHANGELOG.md) - [Commits](https://github.com/reduxjs/redux/compare/v4.0.4...v4.0.5) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f8a7c0bbb..1910f3e45 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "react-textarea-autosize": "^7.1.2", "react-toggle": "^4.1.1", "redis": "^2.7.1", - "redux": "^4.0.4", + "redux": "^4.0.5", "redux-immutable": "^4.0.0", "redux-thunk": "^2.2.0", "rellax": "^1.10.0", diff --git a/yarn.lock b/yarn.lock index 50736ccc1..18a18c7cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8933,10 +8933,10 @@ redux-thunk@^2.2.0: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== -redux@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.4.tgz#4ee1aeb164b63d6a1bcc57ae4aa0b6e6fa7a3796" - integrity sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q== +redux@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== dependencies: loose-envify "^1.4.0" symbol-observable "^1.2.0" From ed34c0401a9c8964a80f865bc84c0424dfafac6a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 23:55:03 +0900 Subject: [PATCH 029/207] Bump @babel/core from 7.7.5 to 7.7.7 (#12720) Bumps [@babel/core](https://github.com/babel/babel) from 7.7.5 to 7.7.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.5...v7.7.7) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 1910f3e45..788b9a837 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.7.5", + "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.7.4", "@babel/plugin-proposal-decorators": "^7.7.4", "@babel/plugin-transform-react-inline-elements": "^7.7.4", diff --git a/yarn.lock b/yarn.lock index 18a18c7cd..22e0aca3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,15 +9,15 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e" - integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw== +"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.4" + "@babel/generator" "^7.7.7" "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.5" + "@babel/parser" "^7.7.7" "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" @@ -29,10 +29,10 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" - integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== +"@babel/generator@^7.0.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== dependencies: "@babel/types" "^7.7.4" jsesc "^2.5.1" @@ -252,10 +252,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" - integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" + integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== "@babel/plugin-proposal-async-generator-functions@^7.7.4": version "7.7.4" From 3902b7677ab1aea953532a715bc0f5b81c679a9e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 23:56:23 +0900 Subject: [PATCH 030/207] Bump terser-webpack-plugin from 2.2.2 to 2.3.1 (#12722) Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.2.2 to 2.3.1. - [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.2.2...v2.3.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 788b9a837..81df3667c 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "sass-loader": "^8.0.0", "stringz": "^2.0.0", "substring-trie": "^1.0.2", - "terser-webpack-plugin": "^2.2.2", + "terser-webpack-plugin": "^2.3.1", "tesseract.js": "^2.0.0-alpha.16", "throng": "^4.0.0", "tiny-queue": "^0.2.1", diff --git a/yarn.lock b/yarn.lock index 22e0aca3d..3c7c2a052 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4372,10 +4372,10 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz#9935894999debef4cf9f677fdf646d002c4cdecb" - integrity sha512-zw+EFiNBNPgI2NTrKkDd1xd7q0cs6wr/iWnr/oUkI0yF9K9GqQ+riIt4aiyFaaqpaWbxPrJXHI+QvmNUQbX+0Q== +find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" + integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== dependencies: commondir "^1.0.1" make-dir "^3.0.0" @@ -9479,7 +9479,7 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -serialize-javascript@^2.1.1, serialize-javascript@^2.1.2: +serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== @@ -10166,24 +10166,24 @@ terser-webpack-plugin@^1.4.1: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.2.tgz#2a6e00237125564a455ad69b22e08ee59420473a" - integrity sha512-/CHMNswPMAwuD2kd++qys8UmBRmsshPSzHw4BlDwurPtK9YjeK93OV89YWkJulHk972cs07K/7Z92V6PNjWF8A== +terser-webpack-plugin@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.1.tgz#6a63c27debc15b25ffd2588562ee2eeabdcab923" + integrity sha512-dNxivOXmDgZqrGxOttBH6B4xaxT4zNC+Xd+2K8jwGDMK5q2CZI+KZMA1AAnSRT+BTRvuzKsDx+fpxzPAmAMVcA== dependencies: cacache "^13.0.1" - find-cache-dir "^3.1.0" + find-cache-dir "^3.2.0" jest-worker "^24.9.0" schema-utils "^2.6.1" - serialize-javascript "^2.1.1" + serialize-javascript "^2.1.2" source-map "^0.6.1" - terser "^4.4.2" + terser "^4.4.3" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.2.tgz#448fffad0245f4c8a277ce89788b458bfd7706e8" - integrity sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ== +terser@^4.1.2, terser@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.3.tgz#401abc52b88869cf904412503b1eb7da093ae2f0" + integrity sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA== dependencies: commander "^2.20.0" source-map "~0.6.1" From a80fb33be4bae46621885038111ec5675e53b332 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 23:58:24 +0900 Subject: [PATCH 031/207] Bump rack-cors from 1.1.0 to 1.1.1 (#12730) Bumps [rack-cors](https://github.com/cyu/rack-cors) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/cyu/rack-cors/releases) - [Changelog](https://github.com/cyu/rack-cors/blob/master/CHANGELOG.md) - [Commits](https://github.com/cyu/rack-cors/compare/v1.1.0...v1.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6cd3dca1f..cf5226779 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -461,7 +461,7 @@ GEM rack (2.0.8) rack-attack (6.2.2) rack (>= 1.0, < 3) - rack-cors (1.1.0) + rack-cors (1.1.1) rack (>= 2.0.0) rack-protection (2.0.7) rack From 6245075158f5bf79a329e16b9b1622a790524b4b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:07:27 +0900 Subject: [PATCH 032/207] Bump is-nan from 1.2.1 to 1.3.0 (#12723) Bumps [is-nan](https://github.com/es-shims/is-nan) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/es-shims/is-nan/releases) - [Changelog](https://github.com/es-shims/is-nan/blob/master/CHANGELOG.md) - [Commits](https://github.com/es-shims/is-nan/compare/v1.2.1...v1.3.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 81df3667c..99fd0b3fd 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "intl": "^1.2.5", "intl-messageformat": "^2.2.0", "intl-relativeformat": "^6.4.3", - "is-nan": "^1.2.1", + "is-nan": "^1.3.0", "js-yaml": "^3.13.1", "lodash": "^4.17.14", "mark-loader": "^0.1.6", diff --git a/yarn.lock b/yarn.lock index 3c7c2a052..fced722e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3243,7 +3243,7 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -define-properties@^1.1.1, define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -5607,12 +5607,12 @@ is-my-json-valid@^2.10.0: jsonpointer "^4.0.0" xtend "^4.0.0" -is-nan@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2" - integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI= +is-nan@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.0.tgz#85d1f5482f7051c2019f5673ccebdb06f3b0db03" + integrity sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ== dependencies: - define-properties "^1.1.1" + define-properties "^1.1.3" is-number-object@^1.0.4: version "1.0.4" From 9fe5ba82c533f54db2d0311f68f91f742caf4ec3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:13:25 +0900 Subject: [PATCH 033/207] Bump derailed_benchmarks from 1.4.2 to 1.4.3 (#12729) Bumps [derailed_benchmarks](https://github.com/schneems/derailed_benchmarks) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/schneems/derailed_benchmarks/releases) - [Changelog](https://github.com/schneems/derailed_benchmarks/blob/master/CHANGELOG.md) - [Commits](https://github.com/schneems/derailed_benchmarks/compare/v1.4.2...v1.4.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index cf5226779..54917b8ae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -188,7 +188,7 @@ GEM css_parser (1.7.0) addressable debug_inspector (0.0.3) - derailed_benchmarks (1.4.2) + derailed_benchmarks (1.4.3) benchmark-ips (~> 2) get_process_mem (~> 0) heapy (~> 0) From a2fe2e98eee537eb4d769d2d751fc5afa79e049b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:14:42 +0900 Subject: [PATCH 034/207] Bump react-test-renderer from 16.11.0 to 16.12.0 (#12721) Bumps [react-test-renderer](https://github.com/facebook/react/tree/HEAD/packages/react-test-renderer) from 16.11.0 to 16.12.0. - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v16.12.0/packages/react-test-renderer) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 18 +++++------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 99fd0b3fd..89c282e2f 100644 --- a/package.json +++ b/package.json @@ -180,7 +180,7 @@ "jest": "^24.9.0", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", - "react-test-renderer": "^16.11.0", + "react-test-renderer": "^16.12.0", "sass-lint": "^1.13.1", "webpack-dev-server": "^3.9.0", "yargs": "^15.0.2" diff --git a/yarn.lock b/yarn.lock index fced722e4..822d852f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8772,15 +8772,15 @@ react-swipeable-views@^0.13.3: react-swipeable-views-utils "^0.13.3" warning "^4.0.1" -react-test-renderer@^16.0.0-0, react-test-renderer@^16.11.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.11.0.tgz#72574566496462c808ac449b0287a4c0a1a7d8f8" - integrity sha512-nh9gDl8R4ut+ZNNb2EeKO5VMvTKxwzurbSMuGBoKtjpjbg8JK/u3eVPVNi1h1Ue+eYK9oSzJjb+K3lzLxyA4ag== +react-test-renderer@^16.0.0-0, react-test-renderer@^16.12.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.12.0.tgz#11417ffda579306d4e841a794d32140f3da1b43f" + integrity sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" react-is "^16.8.6" - scheduler "^0.17.0" + scheduler "^0.18.0" react-textarea-autosize@^7.1.2: version "7.1.2" @@ -9382,14 +9382,6 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" - integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" From 333009d8b1c8d9b7476e91500e9371edde5bd911 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:15:16 +0900 Subject: [PATCH 035/207] Bump faker from 2.9.0 to 2.10.0 (#12728) Bumps [faker](https://github.com/faker-ruby/faker) from 2.9.0 to 2.10.0. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v2.9.0...v2.10.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 8bd791d71..098d7be80 100644 --- a/Gemfile +++ b/Gemfile @@ -117,7 +117,7 @@ end group :test do gem 'capybara', '~> 3.29' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 2.9' + gem 'faker', '~> 2.10' gem 'microformats', '~> 4.1' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 54917b8ae..79cc0e322 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -240,7 +240,7 @@ GEM tzinfo excon (0.71.0) fabrication (2.21.0) - faker (2.9.0) + faker (2.10.0) i18n (>= 1.6, < 1.8) faraday (0.15.4) multipart-post (>= 1.2, < 3) @@ -710,7 +710,7 @@ DEPENDENCIES doorkeeper (~> 5.2) dotenv-rails (~> 2.7) fabrication (~> 2.21) - faker (~> 2.9) + faker (~> 2.10) fast_blank (~> 1.0) fastimage fog-core (<= 2.1.0) From a439fc7f72fa4598635e8388e09ea90cdcb6b6c3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:16:45 +0900 Subject: [PATCH 036/207] Bump redis-namespace from 1.6.0 to 1.7.0 (#12727) Bumps [redis-namespace](https://github.com/resque/redis-namespace) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/resque/redis-namespace/releases) - [Changelog](https://github.com/resque/redis-namespace/blob/master/CHANGELOG.md) - [Commits](https://github.com/resque/redis-namespace/compare/v1.6.0...v1.7.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 098d7be80..1a28afa42 100644 --- a/Gemfile +++ b/Gemfile @@ -50,7 +50,7 @@ gem 'fast_blank', '~> 1.0' gem 'fastimage' gem 'goldfinger', '~> 2.1' gem 'hiredis', '~> 0.6' -gem 'redis-namespace', '~> 1.5' +gem 'redis-namespace', '~> 1.7' gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b' gem 'htmlentities', '~> 4.3' gem 'http', '~> 3.3' diff --git a/Gemfile.lock b/Gemfile.lock index 79cc0e322..3e42bdfc8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -517,7 +517,7 @@ GEM redis-activesupport (5.0.4) activesupport (>= 3, < 6) redis-store (>= 1.3, < 2) - redis-namespace (1.6.0) + redis-namespace (1.7.0) redis (>= 3.0.4) redis-rack (2.0.4) rack (>= 1.5, < 3) @@ -773,7 +773,7 @@ DEPENDENCIES rails-settings-cached (~> 0.6) rdf-normalize (~> 0.3) redis (~> 4.1) - redis-namespace (~> 1.5) + redis-namespace (~> 1.7) redis-rails (~> 5.0) rqrcode (~> 0.10) rspec-rails (~> 3.9) From d5f93ea6186100f8882f62737611536f66e8d1be Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:21:51 +0900 Subject: [PATCH 037/207] Bump pg from 1.1.4 to 1.2.0 (#12725) Bumps [pg](https://github.com/ged/ruby-pg) from 1.1.4 to 1.2.0. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.1.4...v1.2.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 1a28afa42..c7ed114ca 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'sprockets', '~> 3.7' gem 'thor', '~> 0.20' gem 'hamlit-rails', '~> 0.2' -gem 'pg', '~> 1.1' +gem 'pg', '~> 1.2' gem 'makara', '~> 0.4' gem 'pghero', '~> 2.4' gem 'dotenv-rails', '~> 2.7' diff --git a/Gemfile.lock b/Gemfile.lock index 3e42bdfc8..afa68d9b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,7 +432,7 @@ GEM pastel (0.7.3) equatable (~> 0.6) tty-color (~> 0.5) - pg (1.1.4) + pg (1.2.0) pghero (2.4.1) activerecord (>= 5) pkg-config (1.4.0) @@ -755,7 +755,7 @@ DEPENDENCIES parallel (~> 1.19) parallel_tests (~> 2.30) parslet - pg (~> 1.1) + pg (~> 1.2) pghero (~> 2.4) pkg-config (~> 1.4) posix-spawn! From 5c8a8bf798d33bc7a3b7645cf1e729ccf3ca6e57 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 00:23:05 +0900 Subject: [PATCH 038/207] Bump stackprof from 0.2.14 to 0.2.15 (#12726) Bumps [stackprof](https://github.com/tmm1/stackprof) from 0.2.14 to 0.2.15. - [Release notes](https://github.com/tmm1/stackprof/releases) - [Changelog](https://github.com/tmm1/stackprof/blob/master/CHANGELOG.md) - [Commits](https://github.com/tmm1/stackprof/compare/v0.2.14...v0.2.15) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index afa68d9b5..9610eccd9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -615,7 +615,7 @@ GEM sshkit (1.20.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.14) + stackprof (0.2.15) statsd-ruby (1.4.0) stoplight (2.2.0) streamio-ffmpeg (3.0.2) From 108e390d231159a6dc3509f8aece1c325296e0c3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2019 01:49:08 +0900 Subject: [PATCH 039/207] Bump webpack from 4.41.2 to 4.41.5 (#12724) Bumps [webpack](https://github.com/webpack/webpack) from 4.41.2 to 4.41.5. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v4.41.2...v4.41.5) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 25 ++++++++++--------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 89c282e2f..707db3375 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "tiny-queue": "^0.2.1", "uuid": "^3.3.3", "wavesurfer.js": "^3.2.0", - "webpack": "^4.41.2", + "webpack": "^4.41.5", "webpack-assets-manifest": "^3.1.1", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.3.10", diff --git a/yarn.lock b/yarn.lock index 822d852f3..d4a4657eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9466,11 +9466,6 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" @@ -10143,16 +10138,16 @@ tcomb@^2.5.0: resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0" integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA= -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.7.0" + serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" @@ -10837,10 +10832,10 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== +webpack@^4.41.5: + version "4.41.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" + integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -10862,7 +10857,7 @@ webpack@^4.41.2: node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" From bb27ca14ef5e2b0b3108c476a62a0e6d559e070a Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 30 Dec 2019 18:30:24 +0100 Subject: [PATCH 040/207] Fix error when searching for empty phrase (#12711) Fix #12619 --- app/lib/search_query_transformer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/search_query_transformer.rb b/app/lib/search_query_transformer.rb index 6a299f59d..e07ebfffe 100644 --- a/app/lib/search_query_transformer.rb +++ b/app/lib/search_query_transformer.rb @@ -78,7 +78,7 @@ class SearchQueryTransformer < Parslet::Transform elsif clause[:shortcode] TermClause.new(prefix, operator, ":#{clause[:term]}:") elsif clause[:phrase] - PhraseClause.new(prefix, operator, clause[:phrase].map { |p| p[:term].to_s }.join(' ')) + PhraseClause.new(prefix, operator, clause[:phrase].is_a?(Array) ? clause[:phrase].map { |p| p[:term].to_s }.join(' ') : clause[:phrase].to_s) else raise "Unexpected clause type: #{clause}" end From b2f81060b75e5128279cd3f85f55de0982e8f35b Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 30 Dec 2019 19:13:02 +0100 Subject: [PATCH 041/207] Remove unused AccountRelationshipsPresenter call in public pages (#12734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Those were used to show a “follow” or “unfollow” button on account grid on public pages, but that got removed a while ago. --- app/controllers/follower_accounts_controller.rb | 1 - app/controllers/following_accounts_controller.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb index 705ff4122..ef183eca7 100644 --- a/app/controllers/follower_accounts_controller.rb +++ b/app/controllers/follower_accounts_controller.rb @@ -18,7 +18,6 @@ class FollowerAccountsController < ApplicationController next if @account.user_hides_network? follows - @relationships = AccountRelationshipsPresenter.new(follows.map(&:account_id), current_user.account_id) if user_signed_in? end format.json do diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb index 968de980d..fb1eaaa37 100644 --- a/app/controllers/following_accounts_controller.rb +++ b/app/controllers/following_accounts_controller.rb @@ -18,7 +18,6 @@ class FollowingAccountsController < ApplicationController next if @account.user_hides_network? follows - @relationships = AccountRelationshipsPresenter.new(follows.map(&:target_account_id), current_user.account_id) if user_signed_in? end format.json do From f86ee4b59f25727d248609e0afe277a4f69f6be7 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 30 Dec 2019 19:20:43 +0100 Subject: [PATCH 042/207] Fix IDN mentions not being processed, IDN domains not being rendered (#12715) This changes the REST API to return unicode domains in the `acct` attribute instead of punycode, and to render unicode instead of punycode on public HTML pages as well. Fix #7812, fix #12246 --- app/helpers/accounts_helper.rb | 2 +- app/models/account.rb | 6 ++- app/serializers/rest/account_serializer.rb | 4 ++ app/services/process_mentions_service.rb | 11 ++++- .../services/process_mentions_service_spec.rb | 46 ++++++++++++------- 5 files changed, 50 insertions(+), 19 deletions(-) diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb index 99815be7b..53939adfc 100644 --- a/app/helpers/accounts_helper.rb +++ b/app/helpers/accounts_helper.rb @@ -13,7 +13,7 @@ module AccountsHelper if account.local? "@#{account.acct}@#{Rails.configuration.x.local_domain}" else - "@#{account.acct}" + "@#{account.pretty_acct}" end end diff --git a/app/models/account.rb b/app/models/account.rb index 884332e5a..feaf273c1 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -50,7 +50,7 @@ class Account < ApplicationRecord USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i - MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i + MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[a-z0-9]+)?)/i include AccountAssociations include AccountAvatar @@ -164,6 +164,10 @@ class Account < ApplicationRecord local? ? username : "#{username}@#{domain}" end + def pretty_acct + local? ? username : "#{username}@#{Addressable::IDNA.to_unicode(domain)}" + end + def local_username_and_domain "#{username}@#{Rails.configuration.x.local_domain}" end diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index 5fec75673..fd361a34c 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -24,6 +24,10 @@ class REST::AccountSerializer < ActiveModel::Serializer object.id.to_s end + def acct + object.pretty_acct + end + def note Formatter.instance.simplified_format(object) end diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index 2f7a9e985..b2d868165 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -14,7 +14,16 @@ class ProcessMentionsService < BaseService mentions = [] status.text = status.text.gsub(Account::MENTION_RE) do |match| - username, domain = Regexp.last_match(1).split('@') + username, domain = Regexp.last_match(1).split('@') + + domain = begin + if TagManager.instance.local_domain?(domain) + nil + else + TagManager.instance.normalize_domain(domain) + end + end + mentioned_account = Account.find_remote(username, domain) if mention_undeliverable?(mentioned_account) diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index b1abd79b0..c30de8eeb 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -5,11 +5,11 @@ RSpec.describe ProcessMentionsService, type: :service do let(:visibility) { :public } let(:status) { Fabricate(:status, account: account, text: "Hello @#{remote_user.acct}", visibility: visibility) } + subject { ProcessMentionsService.new } + context 'OStatus with public toot' do let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :ostatus, domain: 'example.com', salmon_url: 'http://salmon.example.com') } - subject { ProcessMentionsService.new } - before do stub_request(:post, remote_user.salmon_url) subject.call(status) @@ -24,8 +24,6 @@ RSpec.describe ProcessMentionsService, type: :service do let(:visibility) { :private } let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :ostatus, domain: 'example.com', salmon_url: 'http://salmon.example.com') } - subject { ProcessMentionsService.new } - before do stub_request(:post, remote_user.salmon_url) subject.call(status) @@ -41,29 +39,45 @@ RSpec.describe ProcessMentionsService, type: :service do end context 'ActivityPub' do - let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') } + context do + let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') } - subject { ProcessMentionsService.new } + before do + stub_request(:post, remote_user.inbox_url) + subject.call(status) + end - before do - stub_request(:post, remote_user.inbox_url) - subject.call(status) + it 'creates a mention' do + expect(remote_user.mentions.where(status: status).count).to eq 1 + end + + it 'sends activity to the inbox' do + expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once + end end - it 'creates a mention' do - expect(remote_user.mentions.where(status: status).count).to eq 1 - end + context 'with an IDN domain' do + let(:remote_user) { Fabricate(:account, username: 'sneak', protocol: :activitypub, domain: 'xn--hresiar-mxa.ch', inbox_url: 'http://example.com/inbox') } + let(:status) { Fabricate(:status, account: account, text: "Hello @sneak@hæresiar.ch") } - it 'sends activity to the inbox' do - expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once + before do + stub_request(:post, remote_user.inbox_url) + subject.call(status) + end + + it 'creates a mention' do + expect(remote_user.mentions.where(status: status).count).to eq 1 + end + + it 'sends activity to the inbox' do + expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once + end end end context 'Temporarily-unreachable ActivityPub user' do let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox', last_webfingered_at: nil) } - subject { ProcessMentionsService.new } - before do stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404) stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com").to_return(status: 500) From 2999c955968c8d8a6b4a35d13f9b4e7f6769b014 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 31 Dec 2019 00:54:38 +0100 Subject: [PATCH 043/207] Fix error when fetching followers/following from REST API when user has network hidden (#12716) Fix #12510 --- app/controllers/api/v1/accounts/follower_accounts_controller.rb | 2 +- .../api/v1/accounts/following_accounts_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index 2dabb8398..950e9acf0 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -25,7 +25,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController end def hide_results? - (@account.user_hides_network? && current_account.id != @account.id) || (current_account && @account.blocking?(current_account)) + (@account.user_hides_network? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account)) end def default_accounts diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index 44e89804b..b1433af5e 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -25,7 +25,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController end def hide_results? - (@account.user_hides_network? && current_account.id != @account.id) || (current_account && @account.blocking?(current_account)) + (@account.user_hides_network? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account)) end def default_accounts From 3b3bdc7293493735a2169d3377a5a5b7d9006497 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 31 Dec 2019 00:55:32 +0100 Subject: [PATCH 044/207] Hide blocked users from more places (#12733) * Hide blocked, muted, and blocked-by users from toot favourite lists * Hide blocked, muted, and blocked-by users from toot reblog lists * Hide blocked, muted, and blocked-by users from followers/following (API) * Fix tests * Hide blocked, muted, and blocked-by users from followers/following on public pages --- .../accounts/follower_accounts_controller.rb | 4 ++- .../accounts/following_accounts_controller.rb | 4 ++- .../favourited_by_accounts_controller.rb | 4 ++- .../reblogged_by_accounts_controller.rb | 4 ++- .../follower_accounts_controller.rb | 6 ++++- .../following_accounts_controller.rb | 6 ++++- .../follower_accounts_controller_spec.rb | 27 ++++++++++++++++--- .../following_accounts_controller_spec.rb | 27 ++++++++++++++++--- .../favourited_by_accounts_controller_spec.rb | 20 ++++++++++++-- .../reblogged_by_accounts_controller_spec.rb | 20 ++++++++++++-- .../follower_accounts_controller_spec.rb | 12 +++++++++ .../following_accounts_controller_spec.rb | 12 +++++++++ 12 files changed, 128 insertions(+), 18 deletions(-) diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index 950e9acf0..e360b8a92 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -21,7 +21,9 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController def load_accounts return [] if hide_results? - default_accounts.merge(paginated_follows).to_a + scope = default_accounts + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope.merge(paginated_follows).to_a end def hide_results? diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index b1433af5e..a405b365f 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -21,7 +21,9 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController def load_accounts return [] if hide_results? - default_accounts.merge(paginated_follows).to_a + scope = default_accounts + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope.merge(paginated_follows).to_a end def hide_results? diff --git a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb index 657e57831..99eff360e 100644 --- a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb @@ -17,7 +17,9 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::BaseController private def load_accounts - default_accounts.merge(paginated_favourites).to_a + scope = default_accounts + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope.merge(paginated_favourites).to_a end def default_accounts diff --git a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb index 6851099f6..cc285ad23 100644 --- a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb @@ -17,7 +17,9 @@ class Api::V1::Statuses::RebloggedByAccountsController < Api::BaseController private def load_accounts - default_accounts.merge(paginated_statuses).to_a + scope = default_accounts + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope.merge(paginated_statuses).to_a end def default_accounts diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb index ef183eca7..7103749ad 100644 --- a/app/controllers/follower_accounts_controller.rb +++ b/app/controllers/follower_accounts_controller.rb @@ -36,7 +36,11 @@ class FollowerAccountsController < ApplicationController private def follows - @follows ||= Follow.where(target_account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:account) + return @follows if defined?(@follows) + + scope = Follow.where(target_account: @account) + scope = scope.where.not(account_id: current_account.excluded_from_timeline_account_ids) if user_signed_in? + @follows = scope.recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:account) end def page_requested? diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb index fb1eaaa37..6c8fb84d8 100644 --- a/app/controllers/following_accounts_controller.rb +++ b/app/controllers/following_accounts_controller.rb @@ -36,7 +36,11 @@ class FollowingAccountsController < ApplicationController private def follows - @follows ||= Follow.where(account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:target_account) + return @follows if defined?(@follows) + + scope = Follow.where(account: @account) + scope = scope.where.not(target_account_id: current_account.excluded_from_timeline_account_ids) if user_signed_in? + @follows = scope.recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:target_account) end def page_requested? diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb index 75e0570e9..54587187f 100644 --- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb @@ -3,19 +3,38 @@ require 'rails_helper' describe Api::V1::Accounts::FollowerAccountsController do render_views - let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } - let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + let(:alice) { Fabricate(:account) } + let(:bob) { Fabricate(:account) } before do - Fabricate(:follow, target_account: user.account) + alice.follow!(account) + bob.follow!(account) allow(controller).to receive(:doorkeeper_token) { token } end describe 'GET #index' do it 'returns http success' do - get :index, params: { account_id: user.account.id, limit: 1 } + get :index, params: { account_id: account.id, limit: 2 } expect(response).to have_http_status(200) end + + it 'returns accounts following the given account' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(body_as_json.size).to eq 2 + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + end + + it 'does not return blocked users' do + user.account.block!(bob) + get :index, params: { account_id: account.id, limit: 2 } + + expect(body_as_json.size).to eq 1 + expect(body_as_json[0][:id]).to eq alice.id.to_s + end end end diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb index 7f7105ad3..a580a7368 100644 --- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb @@ -3,19 +3,38 @@ require 'rails_helper' describe Api::V1::Accounts::FollowingAccountsController do render_views - let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } - let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') } + let(:account) { Fabricate(:account) } + let(:alice) { Fabricate(:account) } + let(:bob) { Fabricate(:account) } before do - Fabricate(:follow, account: user.account) + account.follow!(alice) + account.follow!(bob) allow(controller).to receive(:doorkeeper_token) { token } end describe 'GET #index' do it 'returns http success' do - get :index, params: { account_id: user.account.id, limit: 1 } + get :index, params: { account_id: account.id, limit: 2 } expect(response).to have_http_status(200) end + + it 'returns accounts followed by the given account' do + get :index, params: { account_id: account.id, limit: 2 } + + expect(body_as_json.size).to eq 2 + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + end + + it 'does not return blocked users' do + user.account.block!(bob) + get :index, params: { account_id: account.id, limit: 2 } + + expect(body_as_json.size).to eq 1 + expect(body_as_json[0][:id]).to eq alice.id.to_s + end end end diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb index 40f75c700..f053ae573 100644 --- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb @@ -6,6 +6,8 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: app, scopes: 'read:accounts') } + let(:alice) { Fabricate(:account) } + let(:bob) { Fabricate(:account) } context 'with an oauth token' do before do @@ -16,14 +18,28 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control let(:status) { Fabricate(:status, account: user.account) } before do - Fabricate(:favourite, status: status) + Favourite.create!(account: alice, status: status) + Favourite.create!(account: bob, status: status) end it 'returns http success' do - get :index, params: { status_id: status.id, limit: 1 } + get :index, params: { status_id: status.id, limit: 2 } expect(response).to have_http_status(200) expect(response.headers['Link'].links.size).to eq(2) end + + it 'returns accounts who favorited the status' do + get :index, params: { status_id: status.id, limit: 2 } + expect(body_as_json.size).to eq 2 + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + end + + it 'does not return blocked users' do + user.account.block!(bob) + get :index, params: { status_id: status.id, limit: 2 } + expect(body_as_json.size).to eq 1 + expect(body_as_json[0][:id]).to eq alice.id.to_s + end end end diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb index d758786dc..60908b7b3 100644 --- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb +++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb @@ -6,6 +6,8 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:app) { Fabricate(:application, name: 'Test app', website: 'http://testapp.com') } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: app, scopes: 'read:accounts') } + let(:alice) { Fabricate(:account) } + let(:bob) { Fabricate(:account) } context 'with an oauth token' do before do @@ -16,14 +18,28 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll let(:status) { Fabricate(:status, account: user.account) } before do - Fabricate(:status, reblog_of_id: status.id) + Fabricate(:status, account: alice, reblog_of_id: status.id) + Fabricate(:status, account: bob, reblog_of_id: status.id) end it 'returns http success' do - get :index, params: { status_id: status.id, limit: 1 } + get :index, params: { status_id: status.id, limit: 2 } expect(response).to have_http_status(200) expect(response.headers['Link'].links.size).to eq(2) end + + it 'returns accounts who reblogged the status' do + get :index, params: { status_id: status.id, limit: 2 } + expect(body_as_json.size).to eq 2 + expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s]) + end + + it 'does not return blocked users' do + user.account.block!(bob) + get :index, params: { status_id: status.id, limit: 2 } + expect(body_as_json.size).to eq 1 + expect(body_as_json[0][:id]).to eq alice.id.to_s + end end end diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb index 83032ab64..34a0cf3f4 100644 --- a/spec/controllers/follower_accounts_controller_spec.rb +++ b/spec/controllers/follower_accounts_controller_spec.rb @@ -22,6 +22,18 @@ describe FollowerAccountsController do expect(assigned[0]).to eq follow1 expect(assigned[1]).to eq follow0 end + + it 'does not assign blocked users' do + user = Fabricate(:user) + user.account.block!(follower0) + sign_in(user) + + expect(response).to have_http_status(200) + + assigned = assigns(:follows).to_a + expect(assigned.size).to eq 1 + expect(assigned[0]).to eq follow1 + end end context 'when format is json' do diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb index d5e4ee587..e9a1f597d 100644 --- a/spec/controllers/following_accounts_controller_spec.rb +++ b/spec/controllers/following_accounts_controller_spec.rb @@ -22,6 +22,18 @@ describe FollowingAccountsController do expect(assigned[0]).to eq follow1 expect(assigned[1]).to eq follow0 end + + it 'does not assign blocked users' do + user = Fabricate(:user) + user.account.block!(followee0) + sign_in(user) + + expect(response).to have_http_status(200) + + assigned = assigns(:follows).to_a + expect(assigned.size).to eq 1 + expect(assigned[0]).to eq follow1 + end end context 'when format is json' do From 2a5da8c9613b0ef6659edc60831b4fe8e84f3fc8 Mon Sep 17 00:00:00 2001 From: Matt Panaro Date: Tue, 31 Dec 2019 15:39:25 -0500 Subject: [PATCH 045/207] refactor IntersectionObserver to observe viewport in single-column mode (#12735) --- app/javascript/mastodon/components/scrollable_list.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 6338ccd5c..e4adabb36 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -210,10 +210,13 @@ export default class ScrollableList extends PureComponent { } attachIntersectionObserver () { - this.intersectionObserverWrapper.connect({ + let nodeOptions = { root: this.node, rootMargin: '300% 0px', - }); + }; + + this.intersectionObserverWrapper + .connect(this.props.bindToDocument ? {} : nodeOptions); } detachIntersectionObserver () { From 9edab7afafd6f6db9338ada83a84b2ef14f397a9 Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Wed, 1 Jan 2020 04:15:05 +0700 Subject: [PATCH 046/207] Add translation project promotion link (#12736) This commit adds promotional notice on appearance settings about translation project if any other locale than English is used. It allows users to learn and contribute translations to Mastodon. Step ahead, in this commit one unusual string is added - link to a guide. By default it refers to Crowdin project itself, but if any of Mastodon localization teams established their own guide, they can refer it. Or, if Crowdin supports localized domain for language, it can also be put there (e.g. https://fr.crowdin.com/...). --- app/views/settings/preferences/appearance/show.html.haml | 4 ++++ config/locales/en.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml index 9ed83fb93..d2b05513e 100644 --- a/app/views/settings/preferences/appearance/show.html.haml +++ b/app/views/settings/preferences/appearance/show.html.haml @@ -8,6 +8,10 @@ .fields-group.fields-row__column.fields-row__column-6 = f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false + - unless I18n.locale == :en + .flash-message{ style: "text-align: unset; color: unset" } + #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener", style: "text-decoration: underline")} + %h4= t 'appearance.advanced_web_interface' %p.hint= t 'appearance.advanced_web_interface_hint' diff --git a/config/locales/en.yml b/config/locales/en.yml index c7179d304..42bd81e40 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -581,6 +581,10 @@ en: animations_and_accessibility: Animations and accessibility confirmation_dialogs: Confirmation dialogs discovery: Discovery + localization: + body: Mastodon is translated by volunteers. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Everyone can contribute. sensitive_content: Sensitive content toot_layout: Toot layout application_mailer: From 09d54d1f626163fcc6e282544dfc9939fd3cdfd3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 2 Jan 2020 17:14:58 +0100 Subject: [PATCH 047/207] Fix uncaught query param encoding errors (#12741) --- .../handle_bad_encoding_middleware.rb | 18 ++++++++++++++++ config/application.rb | 2 ++ config/initializers/rack_attack.rb | 3 --- .../handle_bad_encoding_middleware_spec.rb | 21 +++++++++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 app/middleware/handle_bad_encoding_middleware.rb create mode 100644 spec/middleware/handle_bad_encoding_middleware_spec.rb diff --git a/app/middleware/handle_bad_encoding_middleware.rb b/app/middleware/handle_bad_encoding_middleware.rb new file mode 100644 index 000000000..6fce84b15 --- /dev/null +++ b/app/middleware/handle_bad_encoding_middleware.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true +# See: https://jamescrisp.org/2018/05/28/fixing-invalid-query-parameters-invalid-encoding-in-a-rails-app/ + +class HandleBadEncodingMiddleware + def initialize(app) + @app = app + end + + def call(env) + begin + Rack::Utils.parse_nested_query(env['QUERY_STRING'].to_s) + rescue Rack::Utils::InvalidParameterError + env['QUERY_STRING'] = '' + end + + @app.call(env) + end +end diff --git a/config/application.rb b/config/application.rb index e1f7ae707..58e59fd51 100644 --- a/config/application.rb +++ b/config/application.rb @@ -7,6 +7,7 @@ require 'rails/all' Bundler.require(*Rails.groups) require_relative '../app/lib/exceptions' +require_relative '../app/middleware/handle_bad_encoding_middleware' require_relative '../lib/paperclip/lazy_thumbnail' require_relative '../lib/paperclip/gif_transcoder' require_relative '../lib/paperclip/video_transcoder' @@ -118,6 +119,7 @@ module Mastodon config.active_job.queue_adapter = :sidekiq + config.middleware.insert_before Rack::Runtime, HandleBadEncodingMiddleware config.middleware.use Rack::Attack config.middleware.use Rack::Deflater diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb index 273cac9ca..3cd7ea3a6 100644 --- a/config/initializers/rack_attack.rb +++ b/config/initializers/rack_attack.rb @@ -46,10 +46,7 @@ class Rack::Attack PROTECTED_PATHS_REGEX = Regexp.union(PROTECTED_PATHS.map { |path| /\A#{Regexp.escape(path)}/ }) - # Always allow requests from localhost - # (blocklist & throttles are skipped) Rack::Attack.safelist('allow from localhost') do |req| - # Requests are allowed if the return value is truthy req.remote_ip == '127.0.0.1' || req.remote_ip == '::1' end diff --git a/spec/middleware/handle_bad_encoding_middleware_spec.rb b/spec/middleware/handle_bad_encoding_middleware_spec.rb new file mode 100644 index 000000000..8c0d24f18 --- /dev/null +++ b/spec/middleware/handle_bad_encoding_middleware_spec.rb @@ -0,0 +1,21 @@ +require 'rails_helper' + +RSpec.describe HandleBadEncodingMiddleware do + let(:app) { double() } + let(:middleware) { HandleBadEncodingMiddleware.new(app) } + + it "request with query string is unchanged" do + expect(app).to receive(:call).with("PATH" => "/some/path", "QUERY_STRING" => "name=fred") + middleware.call("PATH" => "/some/path", "QUERY_STRING" => "name=fred") + end + + it "request with no query string is unchanged" do + expect(app).to receive(:call).with("PATH" => "/some/path") + middleware.call("PATH" => "/some/path") + end + + it "request with invalid encoding in query string drops query string" do + expect(app).to receive(:call).with("QUERY_STRING" => "", "PATH" => "/some/path") + middleware.call("QUERY_STRING" => "q=%2Fsearch%2Fall%Forder%3Ddescending%26page%3D5%26sort%3Dcreated_at", "PATH" => "/some/path") + end +end From aa138ea350dfb2a47ef0b29eff811c6da402a830 Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 2 Jan 2020 20:52:39 +0100 Subject: [PATCH 048/207] Fix RefollowWorker not keeping show_reblogs setting (#12707) * Fix RefollowWorker not keeping show_reblogs setting * Fix RefollowWorker --- app/workers/refollow_worker.rb | 9 ++++++--- spec/workers/refollow_worker_spec.rb | 30 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 spec/workers/refollow_worker_spec.rb diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb index 12f2bf671..9b07ce1b5 100644 --- a/app/workers/refollow_worker.rb +++ b/app/workers/refollow_worker.rb @@ -7,15 +7,18 @@ class RefollowWorker def perform(target_account_id) target_account = Account.find(target_account_id) - return unless target_account.protocol == :activitypub + return unless target_account.activitypub? + + target_account.passive_relationships.where(account: Account.where(domain: nil)).includes(:account).reorder(nil).find_each do |follow| + reblogs = follow.show_reblogs? - target_account.followers.where(domain: nil).reorder(nil).find_each do |follower| # Locally unfollow remote account + follower = follow.account follower.unfollow!(target_account) # Schedule re-follow begin - FollowService.new.call(follower, target_account) + FollowService.new.call(follower, target_account, reblogs: reblogs) rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound, Mastodon::UnexpectedResponseError, HTTP::Error, OpenSSL::SSL::SSLError next end diff --git a/spec/workers/refollow_worker_spec.rb b/spec/workers/refollow_worker_spec.rb new file mode 100644 index 000000000..29771aa59 --- /dev/null +++ b/spec/workers/refollow_worker_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe RefollowWorker do + subject { described_class.new } + let(:account) { Fabricate(:account, domain: 'example.org', protocol: :activitypub) } + let(:alice) { Fabricate(:account, domain: nil, username: 'alice') } + let(:bob) { Fabricate(:account, domain: nil, username: 'bob') } + + describe 'perform' do + let(:service) { double } + + before do + allow(FollowService).to receive(:new).and_return(service) + allow(service).to receive(:call) + + alice.follow!(account, reblogs: true) + bob.follow!(account, reblogs: false) + end + + it 'calls FollowService for local followers' do + result = subject.perform(account.id) + + expect(result).to be_nil + expect(service).to have_received(:call).with(alice, account, reblogs: true) + expect(service).to have_received(:call).with(bob, account, reblogs: false) + end + end +end From 9cbbc50fcdfe2ec852107b1757d92d54b862a91a Mon Sep 17 00:00:00 2001 From: Matt Panaro Date: Thu, 2 Jan 2020 16:46:42 -0500 Subject: [PATCH 049/207] Fix 12661 (#12744) * Revert "persist last-intersected status update and restore when ScrollableList is restored" This reverts commit 07e26142ef6a8e74bd2ac5e9b461a5a1699bd4c8. accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661. https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list * Revert "cache currently-viewing status id to avoid calling redux with identical value" This reverts commit c93df2159fbd3888a5c48d8a8b8ae61dbbc54b89. accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661. https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list --- app/javascript/mastodon/actions/timelines.js | 8 -------- .../mastodon/components/intersection_observer_article.js | 6 ------ app/javascript/mastodon/components/scrollable_list.js | 4 ---- app/javascript/mastodon/components/status_list.js | 9 --------- .../features/ui/containers/status_list_container.js | 4 +--- app/javascript/mastodon/reducers/timelines.js | 4 ---- 6 files changed, 1 insertion(+), 34 deletions(-) diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 1a634b55d..bc2ac5e82 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -17,14 +17,6 @@ export const TIMELINE_LOAD_PENDING = 'TIMELINE_LOAD_PENDING'; export const TIMELINE_DISCONNECT = 'TIMELINE_DISCONNECT'; export const TIMELINE_CONNECT = 'TIMELINE_CONNECT'; -export const CURRENTLY_VIEWING = 'CURRENTLY_VIEWING'; - -export const updateCurrentlyViewing = (timeline, id) => ({ - type: CURRENTLY_VIEWING, - timeline, - id, -}); - export const loadPending = timeline => ({ type: TIMELINE_LOAD_PENDING, timeline, diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.js index d475e5d1c..e453730ba 100644 --- a/app/javascript/mastodon/components/intersection_observer_article.js +++ b/app/javascript/mastodon/components/intersection_observer_article.js @@ -20,8 +20,6 @@ export default class IntersectionObserverArticle extends React.Component { cachedHeight: PropTypes.number, onHeightChange: PropTypes.func, children: PropTypes.node, - currentlyViewing: PropTypes.number, - updateCurrentlyViewing: PropTypes.func, }; state = { @@ -50,8 +48,6 @@ export default class IntersectionObserverArticle extends React.Component { ); this.componentMounted = true; - - if(id === this.props.currentlyViewing) this.node.scrollIntoView(); } componentWillUnmount () { @@ -64,8 +60,6 @@ export default class IntersectionObserverArticle extends React.Component { handleIntersection = (entry) => { this.entry = entry; - if(entry.intersectionRatio > 0.75 && this.props.updateCurrentlyViewing) this.props.updateCurrentlyViewing(this.id); - scheduleIdleTask(this.calculateHeight); this.setState(this.updateStateAfterIntersection); } diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index e4adabb36..47a87b149 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -36,8 +36,6 @@ export default class ScrollableList extends PureComponent { emptyMessage: PropTypes.node, children: PropTypes.node, bindToDocument: PropTypes.bool, - currentlyViewing: PropTypes.number, - updateCurrentlyViewing: PropTypes.func, }; static defaultProps = { @@ -314,8 +312,6 @@ export default class ScrollableList extends PureComponent { listLength={childrenCount} intersectionObserverWrapper={this.intersectionObserverWrapper} saveHeightKey={trackScroll ? `${this.context.router.route.location.key}:${scrollKey}` : null} - currentlyViewing={this.props.currentlyViewing} - updateCurrentlyViewing={this.props.updateCurrentlyViewing} > {React.cloneElement(child, { getScrollPosition: this.getScrollPosition, diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.js index 82e069601..e1b370c91 100644 --- a/app/javascript/mastodon/components/status_list.js +++ b/app/javascript/mastodon/components/status_list.js @@ -26,8 +26,6 @@ export default class StatusList extends ImmutablePureComponent { emptyMessage: PropTypes.node, alwaysPrepend: PropTypes.bool, timelineId: PropTypes.string, - currentlyViewing: PropTypes.number, - updateCurrentlyViewing: PropTypes.func, }; static defaultProps = { @@ -60,12 +58,6 @@ export default class StatusList extends ImmutablePureComponent { this.props.onLoadMore(this.props.statusIds.size > 0 ? this.props.statusIds.last() : undefined); }, 300, { leading: true }) - updateCurrentlyViewingWithCache = (id) => { - if(this.cachedCurrentlyViewing === id) return; - this.cachedCurrentlyViewing = id; - this.props.updateCurrentlyViewing(id); - } - _selectChild (index, align_top) { const container = this.node.node; const element = container.querySelector(`article:nth-of-type(${index + 1}) .focusable`); @@ -87,7 +79,6 @@ export default class StatusList extends ImmutablePureComponent { render () { const { statusIds, featuredStatusIds, shouldUpdateScroll, onLoadMore, timelineId, ...other } = this.props; const { isLoading, isPartial } = other; - other.updateCurrentlyViewing = this.updateCurrentlyViewingWithCache; if (isPartial) { return ; diff --git a/app/javascript/mastodon/features/ui/containers/status_list_container.js b/app/javascript/mastodon/features/ui/containers/status_list_container.js index 33af628ca..9f6cbf988 100644 --- a/app/javascript/mastodon/features/ui/containers/status_list_container.js +++ b/app/javascript/mastodon/features/ui/containers/status_list_container.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import StatusList from '../../../components/status_list'; -import { scrollTopTimeline, loadPending, updateCurrentlyViewing } from '../../../actions/timelines'; +import { scrollTopTimeline, loadPending } from '../../../actions/timelines'; import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; import { createSelector } from 'reselect'; import { debounce } from 'lodash'; @@ -39,7 +39,6 @@ const makeMapStateToProps = () => { isPartial: state.getIn(['timelines', timelineId, 'isPartial'], false), hasMore: state.getIn(['timelines', timelineId, 'hasMore']), numPending: getPendingStatusIds(state, { type: timelineId }).size, - currentlyViewing: state.getIn(['timelines', timelineId, 'currentlyViewing'], -1), }); return mapStateToProps; @@ -57,7 +56,6 @@ const mapDispatchToProps = (dispatch, { timelineId }) => ({ onLoadPending: () => dispatch(loadPending(timelineId)), - updateCurrentlyViewing: id => dispatch(updateCurrentlyViewing(timelineId, id)), }); export default connect(makeMapStateToProps, mapDispatchToProps)(StatusList); diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js index 970db425e..0d7222e10 100644 --- a/app/javascript/mastodon/reducers/timelines.js +++ b/app/javascript/mastodon/reducers/timelines.js @@ -9,7 +9,6 @@ import { TIMELINE_CONNECT, TIMELINE_DISCONNECT, TIMELINE_LOAD_PENDING, - CURRENTLY_VIEWING, } from '../actions/timelines'; import { ACCOUNT_BLOCK_SUCCESS, @@ -29,7 +28,6 @@ const initialTimeline = ImmutableMap({ hasMore: true, pendingItems: ImmutableList(), items: ImmutableList(), - currentlyViewing: -1, }); const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent, usePendingItems) => { @@ -170,8 +168,6 @@ export default function timelines(state = initialState, action) { initialTimeline, map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items) ); - case CURRENTLY_VIEWING: - return state.update(action.timeline, initialTimeline, map => map.set('currentlyViewing', action.id)); default: return state; } From 6c1ba513ee00443cba684adfe41f62567bd6bb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A8r=20Kessels?= Date: Fri, 3 Jan 2020 02:44:06 +0100 Subject: [PATCH 050/207] Add feature test that tests behaviour of profile name and bio (#12658) * Add feature test that tests behaviour of profile name and bio * Fix rubocop style errors in Login Spec. * DRY log_in_spec by reusing the stories helper Co-authored-by: Eugen Rochko --- spec/features/log_in_spec.rb | 36 +++++++++-------- spec/features/profile_spec.rb | 53 +++++++++++++++++++++++++ spec/support/stories/profile_stories.rb | 45 +++++++++++++++++++++ 3 files changed, 118 insertions(+), 16 deletions(-) create mode 100644 spec/features/profile_spec.rb create mode 100644 spec/support/stories/profile_stories.rb diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index b874c255b..de1a6de03 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -1,47 +1,51 @@ -require "rails_helper" +# frozen_string_literal: true + +require 'rails_helper' + +feature 'Log in' do + include ProfileStories -feature "Log in" do given(:email) { "test@example.com" } given(:password) { "password" } given(:confirmed_at) { Time.zone.now } background do - Fabricate(:user, email: email, password: password, confirmed_at: confirmed_at) + as_a_registered_user visit new_user_session_path end subject { page } - scenario "A valid email and password user is able to log in" do - fill_in "user_email", with: email - fill_in "user_password", with: password + scenario 'A valid email and password user is able to log in' do + fill_in 'user_email', with: email + fill_in 'user_password', with: password click_on I18n.t('auth.login') - is_expected.to have_css("div.app-holder") + is_expected.to have_css('div.app-holder') end - scenario "A invalid email and password user is not able to log in" do - fill_in "user_email", with: "invalid_email" - fill_in "user_password", with: "invalid_password" + scenario 'A invalid email and password user is not able to log in' do + fill_in 'user_email', with: 'invalid_email' + fill_in 'user_password', with: 'invalid_password' click_on I18n.t('auth.login') - is_expected.to have_css(".flash-message", text: failure_message("invalid")) + is_expected.to have_css('.flash-message', text: failure_message('invalid')) end context do given(:confirmed_at) { nil } - scenario "A unconfirmed user is able to log in" do - fill_in "user_email", with: email - fill_in "user_password", with: password + scenario 'A unconfirmed user is able to log in' do + fill_in 'user_email', with: email + fill_in 'user_password', with: password click_on I18n.t('auth.login') - is_expected.to have_css("div.admin-wrapper") + is_expected.to have_css('div.admin-wrapper') end end def failure_message(message) keys = User.authentication_keys.map { |key| User.human_attribute_name(key) } - I18n.t("devise.failure.#{message}", authentication_keys: keys.join("support.array.words_connector")) + I18n.t("devise.failure.#{message}", authentication_keys: keys.join('support.array.words_connector')) end end diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb new file mode 100644 index 000000000..3202167ca --- /dev/null +++ b/spec/features/profile_spec.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require 'rails_helper' + +feature 'Profile' do + include ProfileStories + + given(:local_domain) { ENV['LOCAL_DOMAIN'] } + + background do + as_a_logged_in_user + with_alice_as_local_user + end + + subject { page } + + scenario 'I can view Annes public account' do + visit account_path('alice') + + is_expected.to have_title("alice (@alice@#{local_domain})") + + within('.public-account-header h1') do + is_expected.to have_content("alice @alice@#{local_domain}") + end + + bio_elem = first('.public-account-bio') + expect(bio_elem).to have_content(alice_bio) + # The bio has hashtags made clickable + expect(bio_elem).to have_link('cryptology') + expect(bio_elem).to have_link('science') + # Nicknames are make clickable + expect(bio_elem).to have_link('@alice') + expect(bio_elem).to have_link('@bob') + # Nicknames not on server are not clickable + expect(bio_elem).not_to have_link('@pepe') + end + + scenario 'I can change my account' do + visit settings_profile_path + fill_in 'Display name', with: 'Bob' + fill_in 'Bio', with: 'Bob is silent' + click_on 'Save changes' + is_expected.to have_content 'Changes successfully saved!' + + # View my own public profile and see the changes + click_link "Bob @bob@#{local_domain}" + + within('.public-account-header h1') do + is_expected.to have_content("Bob @bob@#{local_domain}") + end + expect(first('.public-account-bio')).to have_content('Bob is silent') + end +end diff --git a/spec/support/stories/profile_stories.rb b/spec/support/stories/profile_stories.rb new file mode 100644 index 000000000..75b413330 --- /dev/null +++ b/spec/support/stories/profile_stories.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module ProfileStories + attr_reader :bob, :alice, :alice_bio + + def as_a_registered_user + @bob = Fabricate( + :user, + email: email, password: password, confirmed_at: confirmed_at, + account: Fabricate(:account, username: 'bob') + ) + end + + def as_a_logged_in_user + as_a_registered_user + visit new_user_session_path + fill_in 'user_email', with: email + fill_in 'user_password', with: password + click_on I18n.t('auth.login') + end + + def with_alice_as_local_user + @alice_bio = '@alice and @bob are fictional characters commonly used as'\ + 'placeholder names in #cryptology, as well as #science and'\ + 'engineering 📖 literature. Not affilated with @pepe.' + + @alice = Fabricate( + :user, + email: 'alice@example.com', password: password, confirmed_at: confirmed_at, + account: Fabricate(:account, username: 'alice', note: @alice_bio) + ) + end + + def confirmed_at + @confirmed_at ||= Time.zone.now + end + + def email + @email ||= 'test@example.com' + end + + def password + @password ||= 'password' + end +end From 6a8c8dc6fb67f58f5aadc082fe49d0fcdc5e47ed Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Jan 2020 05:00:17 +0100 Subject: [PATCH 051/207] Fix cache digesting log noise on status embeds (#12750) --- app/views/statuses/embed.html.haml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/views/statuses/embed.html.haml b/app/views/statuses/embed.html.haml index 6f2ec646f..2f111f53f 100644 --- a/app/views/statuses/embed.html.haml +++ b/app/views/statuses/embed.html.haml @@ -1,3 +1,2 @@ -- cache @status do - .activity-stream.activity-stream--headless - = render 'status', status: @status, centered: true, autoplay: @autoplay +.activity-stream.activity-stream--headless + = render 'status', status: @status, centered: true, autoplay: @autoplay From e4d75f238b751329f1d9729046cc65b7b363c7d8 Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 3 Jan 2020 05:01:45 +0100 Subject: [PATCH 052/207] Fix URL search not returning private toots user has access to (#12742) --- app/services/resolve_url_service.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb index 79b1bad0c..1a2b0d60c 100644 --- a/app/services/resolve_url_service.rb +++ b/app/services/resolve_url_service.rb @@ -12,6 +12,8 @@ class ResolveURLService < BaseService process_local_url elsif !fetched_resource.nil? process_url + elsif @on_behalf_of.present? + process_url_from_db end end @@ -24,15 +26,19 @@ class ResolveURLService < BaseService status = FetchRemoteStatusService.new.call(resource_url, body) authorize_with @on_behalf_of, status, :show? unless status.nil? status - elsif fetched_resource.nil? && @on_behalf_of.present? - # It may happen that the resource is a private toot, and thus not fetchable, - # but we can return the toot if we already know about it. - status = Status.find_by(uri: @url) || Status.find_by(url: @url) - authorize_with @on_behalf_of, status, :show? unless status.nil? - status end end + def process_url_from_db + # It may happen that the resource is a private toot, and thus not fetchable, + # but we can return the toot if we already know about it. + status = Status.find_by(uri: @url) || Status.find_by(url: @url) + authorize_with @on_behalf_of, status, :show? unless status.nil? + status + rescue Mastodon::NotPermittedError + nil + end + def fetched_resource @fetched_resource ||= FetchResourceService.new.call(@url) end From 83deae5bd7adf37550bb8e14d1ec696a84555c39 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Jan 2020 05:28:56 +0100 Subject: [PATCH 053/207] Fix uncaught unknown format errors in host meta controller (#12747) --- app/controllers/well_known/host_meta_controller.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/controllers/well_known/host_meta_controller.rb b/app/controllers/well_known/host_meta_controller.rb index 2e9298c4a..2fd6bc7cc 100644 --- a/app/controllers/well_known/host_meta_controller.rb +++ b/app/controllers/well_known/host_meta_controller.rb @@ -8,12 +8,8 @@ module WellKnown def show @webfinger_template = "#{webfinger_url}?resource={uri}" - - respond_to do |format| - format.xml { render content_type: 'application/xrd+xml' } - end - expires_in 3.days, public: true + render content_type: 'application/xrd+xml', formats: [:xml] end end end From 47293419034ed64e5d75e8f60621824762edb967 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Jan 2020 05:29:08 +0100 Subject: [PATCH 054/207] Fix missing authentication call in filters controller (#12746) --- app/controllers/filters_controller.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/filters_controller.rb b/app/controllers/filters_controller.rb index d2e0fb739..63d9d9cd3 100644 --- a/app/controllers/filters_controller.rb +++ b/app/controllers/filters_controller.rb @@ -1,10 +1,9 @@ # frozen_string_literal: true class FiltersController < ApplicationController - include Authorization - layout 'admin' + before_action :authenticate_user! before_action :set_filters, only: :index before_action :set_filter, only: [:edit, :update, :destroy] before_action :set_body_classes From 59c697a30cae2d50e5be2dd273e5c3956b2a2d6e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 3 Jan 2020 05:35:46 +0100 Subject: [PATCH 055/207] Fix resource_owner_from_credentials in Doorkeeper initializer (#12743) - Nil error when e-mail not found - LDAP authentication used in place of PAM authentication --- config/initializers/doorkeeper.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 7784bec62..e03380cec 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -8,20 +8,15 @@ Doorkeeper.configure do end resource_owner_from_credentials do |_routes| - if Devise.ldap_authentication - user = User.authenticate_with_ldap({ :email => request.params[:username], :password => request.params[:password] }) - end - - if Devise.pam_authentication - user ||= User.authenticate_with_ldap({ :email => request.params[:username], :password => request.params[:password] }) - end + user = User.authenticate_with_ldap(email: request.params[:username], password: request.params[:password]) if Devise.ldap_authentication + user ||= User.authenticate_with_pam(email: request.params[:username], password: request.params[:password]) if Devise.pam_authentication if user.nil? user = User.find_by(email: request.params[:username]) - user = nil unless user.valid_password?(request.params[:password]) + user = nil unless user&.valid_password?(request.params[:password]) end - user if !user&.otp_required_for_login? + user unless user&.otp_required_for_login? end # If you want to restrict access to the web interface for adding oauth authorized applications, you need to declare the block below. From 500276c99bfba2a74e177f46d27d020e3f06a719 Mon Sep 17 00:00:00 2001 From: Bastien Durel Date: Fri, 3 Jan 2020 11:57:25 +0100 Subject: [PATCH 056/207] fix unresolved external in @clusterws/cws by upgrading it (#12752) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 707db3375..02bbba2a6 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.7.7", "@gamestdio/websocket": "^0.3.2", - "@clusterws/cws": "^0.16.0", + "@clusterws/cws": "^0.16.1", "array-includes": "^3.1.1", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", diff --git a/yarn.lock b/yarn.lock index d4a4657eb..4c23f8ae5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -795,10 +795,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@clusterws/cws@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.16.0.tgz#f6116cbf3a8b7ad0657916616ce5f8248746b797" - integrity sha512-YeGpAPIdkBsOnAkmFKVMWEjCKDH900U2if0B+nc1imfv+64AIb2JX2xiTA6BLDLppEgWV5c6bpWESjbHCNblHw== +"@clusterws/cws@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.16.1.tgz#443c47909601e87b881ffb2c4c83cbf27a228487" + integrity sha512-OamMsXwVppfmwX14Ed1msJJN0KNi+VBQh5AkAqUvIGTcJyHcjpsKjU15wS8QumvEewxx9gvGp7aSDop0/R5Gqg== "@cnakazawa/watch@^1.0.3": version "1.0.3" From 49b2f7c0a2aa41b1da77b652415078e19fcdcad8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 4 Jan 2020 01:54:07 +0100 Subject: [PATCH 057/207] Fix base64-encoded file uploads not being possible (#12748) Fix #3804, Fix #5776 --- .../admin/custom_emojis_controller.rb | 4 --- app/controllers/api/v1/media_controller.rb | 3 -- app/controllers/application_controller.rb | 1 + .../concerns/obfuscate_filename.rb | 16 ---------- .../settings/profiles_controller.rb | 5 ---- app/models/concerns/attachmentable.rb | 11 +++++++ app/models/media_attachment.rb | 3 ++ config/initializers/paperclip.rb | 2 ++ .../controllers/api/proofs_controller_spec.rb | 5 +--- .../concerns/obfuscate_filename_spec.rb | 30 ------------------- spec/models/account_spec.rb | 1 + spec/models/media_attachment_spec.rb | 18 +++++++++++ .../models/concerns/account_avatar.rb | 20 +++++++++++++ .../models/concerns/account_header.rb | 23 ++++++++++++++ 14 files changed, 80 insertions(+), 62 deletions(-) delete mode 100644 app/controllers/concerns/obfuscate_filename.rb delete mode 100644 spec/controllers/concerns/obfuscate_filename_spec.rb create mode 100644 spec/support/examples/models/concerns/account_header.rb diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index 2af90f051..a446465c9 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -2,10 +2,6 @@ module Admin class CustomEmojisController < BaseController - include ObfuscateFilename - - obfuscate_filename [:custom_emoji, :image] - def index authorize :custom_emoji, :index? diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb index aaa93b615..81825db15 100644 --- a/app/controllers/api/v1/media_controller.rb +++ b/app/controllers/api/v1/media_controller.rb @@ -4,9 +4,6 @@ class Api::V1::MediaController < Api::BaseController before_action -> { doorkeeper_authorize! :write, :'write:media' } before_action :require_user! - include ObfuscateFilename - obfuscate_filename :file - respond_to :json def create diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3f9205381..0cfa2b386 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -24,6 +24,7 @@ class ApplicationController < ActionController::Base rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, with: :not_acceptable rescue_from ActionController::ParameterMissing, with: :bad_request + rescue_from Paperclip::AdapterRegistry::NoHandlerError, with: :bad_request rescue_from ActiveRecord::RecordNotFound, with: :not_found rescue_from Mastodon::NotPermittedError, with: :forbidden rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error diff --git a/app/controllers/concerns/obfuscate_filename.rb b/app/controllers/concerns/obfuscate_filename.rb deleted file mode 100644 index 22736ec3a..000000000 --- a/app/controllers/concerns/obfuscate_filename.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module ObfuscateFilename - extend ActiveSupport::Concern - - class_methods do - def obfuscate_filename(path) - before_action do - file = params.dig(*path) - next if file.nil? - - file.original_filename = SecureRandom.hex(8) + File.extname(file.original_filename) - end - end - end -end diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb index 8b640cdca..19a7ce157 100644 --- a/app/controllers/settings/profiles_controller.rb +++ b/app/controllers/settings/profiles_controller.rb @@ -1,16 +1,11 @@ # frozen_string_literal: true class Settings::ProfilesController < Settings::BaseController - include ObfuscateFilename - layout 'admin' before_action :authenticate_user! before_action :set_account - obfuscate_filename [:account, :avatar] - obfuscate_filename [:account, :header] - def show @account.build_fields end diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb index 3bbc6453c..1e8c4806f 100644 --- a/app/models/concerns/attachmentable.rb +++ b/app/models/concerns/attachmentable.rb @@ -9,6 +9,7 @@ module Attachmentable GIF_MATRIX_LIMIT = 921_600 # 1280x720px included do + before_post_process :obfuscate_file_name before_post_process :set_file_extensions before_post_process :check_image_dimensions before_post_process :set_file_content_type @@ -68,4 +69,14 @@ module Attachmentable rescue Terrapin::CommandLineError '' end + + def obfuscate_file_name + self.class.attachment_definitions.each_key do |attachment_name| + attachment = send(attachment_name) + + next if attachment.blank? + + attachment.instance_write :file_name, SecureRandom.hex(8) + File.extname(attachment.instance_read(:file_name)) + end + end end diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 573ef5dfc..1fd0adfd0 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -202,9 +202,12 @@ class MediaAttachment < ApplicationRecord end after_commit :reset_parent_cache, on: :update + before_create :prepare_description, unless: :local? before_create :set_shortcode + before_post_process :set_type_and_extension + before_save :set_meta class << self diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 5109baff7..8909678d6 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +Paperclip::DataUriAdapter.register + Paperclip.interpolates :filename do |attachment, style| if style == :original attachment.original_filename diff --git a/spec/controllers/api/proofs_controller_spec.rb b/spec/controllers/api/proofs_controller_spec.rb index dbde4927f..2fe615005 100644 --- a/spec/controllers/api/proofs_controller_spec.rb +++ b/spec/controllers/api/proofs_controller_spec.rb @@ -85,10 +85,7 @@ describe Api::ProofsController do end it 'has the correct avatar url' do - first_part = 'https://cb6e6126.ngrok.io/system/accounts/avatars/' - last_part = 'original/avatar.gif' - - expect(body_as_json[:avatar]).to match /#{Regexp.quote(first_part)}(?:\d{3,5}\/){3}#{Regexp.quote(last_part)}/ + expect(body_as_json[:avatar]).to match "https://cb6e6126.ngrok.io#{alice.avatar.url}" end end end diff --git a/spec/controllers/concerns/obfuscate_filename_spec.rb b/spec/controllers/concerns/obfuscate_filename_spec.rb deleted file mode 100644 index e06d53c03..000000000 --- a/spec/controllers/concerns/obfuscate_filename_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe ApplicationController, type: :controller do - controller do - include ObfuscateFilename - - obfuscate_filename :file - - def file - render plain: params[:file]&.original_filename - end - end - - before do - routes.draw { get 'file' => 'anonymous#file' } - end - - it 'obfusticates filename if the given parameter is specified' do - file = fixture_file_upload('files/imports.txt', 'text/plain') - post 'file', params: { file: file } - expect(response.body).to end_with '.txt' - expect(response.body).not_to include 'imports' - end - - it 'does nothing if the given parameter is not specified' do - post 'file' - end -end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index b2f6234cb..3cca9b343 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -823,4 +823,5 @@ RSpec.describe Account, type: :model do end include_examples 'AccountAvatar', :account + include_examples 'AccountHeader', :account end diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 7ddfba7ed..a275621a1 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -133,6 +133,24 @@ RSpec.describe MediaAttachment, type: :model do expect(media.file.meta["small"]["height"]).to eq 327 expect(media.file.meta["small"]["aspect"]).to eq 490.0 / 327 end + + it 'gives the file a random name' do + expect(media.file_file_name).to_not eq 'attachment.jpg' + end + end + + describe 'base64-encoded jpeg' do + let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" } + let(:media) { MediaAttachment.create(account: Fabricate(:account), file: base64_attachment) } + + it 'saves media attachment' do + expect(media.persisted?).to be true + expect(media.file).to_not be_nil + end + + it 'gives the file a file name' do + expect(media.file_file_name).to_not be_blank + end end describe 'descriptions for remote attachments' do diff --git a/spec/support/examples/models/concerns/account_avatar.rb b/spec/support/examples/models/concerns/account_avatar.rb index f2a8a2459..2180f5273 100644 --- a/spec/support/examples/models/concerns/account_avatar.rb +++ b/spec/support/examples/models/concerns/account_avatar.rb @@ -16,4 +16,24 @@ shared_examples 'AccountAvatar' do |fabricator| end end end + + describe 'base64-encoded files' do + let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" } + let(:account) { Fabricate(fabricator, avatar: base64_attachment) } + + it 'saves avatar' do + expect(account.persisted?).to be true + expect(account.avatar).to_not be_nil + end + + it 'gives the avatar a file name' do + expect(account.avatar_file_name).to_not be_blank + end + + it 'saves a new avatar under a different file name' do + previous_file_name = account.avatar_file_name + account.update(avatar: base64_attachment) + expect(account.avatar_file_name).to_not eq previous_file_name + end + end end diff --git a/spec/support/examples/models/concerns/account_header.rb b/spec/support/examples/models/concerns/account_header.rb new file mode 100644 index 000000000..77ee0e629 --- /dev/null +++ b/spec/support/examples/models/concerns/account_header.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +shared_examples 'AccountHeader' do |fabricator| + describe 'base64-encoded files' do + let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('attachment.jpg').read)}" } + let(:account) { Fabricate(fabricator, header: base64_attachment) } + + it 'saves header' do + expect(account.persisted?).to be true + expect(account.header).to_not be_nil + end + + it 'gives the header a file name' do + expect(account.header_file_name).to_not be_blank + end + + it 'saves a new header under a different file name' do + previous_file_name = account.header_file_name + account.update(header: base64_attachment) + expect(account.header_file_name).to_not eq previous_file_name + end + end +end From 882a7d3d1413cae361a618f6686169c5aa599d54 Mon Sep 17 00:00:00 2001 From: Shlee Date: Sun, 5 Jan 2020 05:48:18 +0800 Subject: [PATCH 058/207] Gemfile Updates - fixes warnings (#12759) * Update Gemfile.lock * Update Gemfile.lock * Update Gemfile --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index c7ed114ca..c3bc3b835 100644 --- a/Gemfile +++ b/Gemfile @@ -60,7 +60,7 @@ gem 'httplog', '~> 1.3' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.1' gem 'link_header', '~> 0.0' -gem 'mime-types', '~> 3.3', require: 'mime/types/columnar' +gem 'mime-types', '~> 3.3.1', require: 'mime/types/columnar' gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532' gem 'nokogiri', '~> 1.10' gem 'nsa', '~> 0.2' diff --git a/Gemfile.lock b/Gemfile.lock index 9610eccd9..38f0a24af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -242,7 +242,7 @@ GEM fabrication (2.21.0) faker (2.10.0) i18n (>= 1.6, < 1.8) - faraday (0.15.4) + faraday (1.0.0) multipart-post (>= 1.2, < 3) fast_blank (1.0.0) fastimage (2.1.7) @@ -372,9 +372,9 @@ GEM microformats (4.1.0) json (~> 2.1) nokogiri (~> 1.8, >= 1.8.3) - mime-types (3.3) + mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.0904) + mime-types-data (3.2019.1009) mimemagic (0.3.3) mini_mime (1.0.2) mini_portile2 (2.4.0) From 3537bb1b5246c148ca31fa4d24750879cdd84e63 Mon Sep 17 00:00:00 2001 From: Shlee Date: Sun, 5 Jan 2020 05:48:34 +0800 Subject: [PATCH 059/207] Gemfile Updates - Ruby 2.7 prep (#12758) * Update Gemfile * Update Gemfile --- Gemfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c3bc3b835..b6e845342 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gem 'pkg-config', '~> 1.4' gem 'puma', '~> 4.3' gem 'rails', '~> 5.2.4' -gem 'sprockets', '~> 3.7' +gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 0.20' gem 'hamlit-rails', '~> 0.2' @@ -31,7 +31,7 @@ gem 'browser' gem 'charlock_holmes', '~> 0.7.7' gem 'iso-639' gem 'chewy', '~> 5.1' -gem 'cld3', '~> 3.2.4' +gem 'cld3', '~> 3.2.6' gem 'devise', '~> 4.7' gem 'devise-two-factor', '~> 3.1' @@ -118,7 +118,7 @@ group :test do gem 'capybara', '~> 3.29' gem 'climate_control', '~> 0.2' gem 'faker', '~> 2.10' - gem 'microformats', '~> 4.1' + gem 'microformats', '~> 4.2' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' gem 'simplecov', '~> 0.17', require: false From 2ecc7802caf4d272191a7fd582fc97996f750827 Mon Sep 17 00:00:00 2001 From: Shlee Date: Sun, 5 Jan 2020 05:48:57 +0800 Subject: [PATCH 060/207] Gemfile Updates - Others (#12761) * Update Gemfile.lock * Update Gemfile * Update Gemfile.lock * Update Gemfile.lock * Update Gemfile * Update Gemfile.lock --- Gemfile.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 38f0a24af..2e86eda19 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -185,7 +185,7 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.5) - css_parser (1.7.0) + css_parser (1.7.1) addressable debug_inspector (0.0.3) derailed_benchmarks (1.4.3) @@ -275,8 +275,8 @@ GEM http (~> 3.0) nokogiri (~> 1.8) oj (~> 3.0) - hamlit (2.9.3) - temple (>= 0.8.0) + hamlit (2.11.0) + temple (>= 0.8.2) thor tilt hamlit-rails (0.2.3) @@ -452,7 +452,7 @@ GEM pry (~> 0.10) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.1) + public_suffix (4.0.2) puma (4.3.1) nio4r (~> 2.0) pundit (2.1.0) @@ -529,7 +529,7 @@ GEM redis-store (1.5.0) redis (>= 2.2, < 5) regexp_parser (1.6.0) - request_store (1.4.1) + request_store (1.5.0) rack (>= 1.4) responders (3.0.0) actionpack (>= 5.0) @@ -622,14 +622,14 @@ GEM multi_json (~> 1.8) strong_migrations (0.5.1) activerecord (>= 5) - temple (0.8.1) + temple (0.8.2) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.9) + tilt (2.0.10) tty-color (0.5.0) tty-command (0.9.0) pastel (~> 0.7.0) @@ -651,7 +651,7 @@ GEM tzinfo (>= 1.0.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.5) + unf_ext (0.0.7.6) unicode-display_width (1.6.0) uniform_notifier (1.12.1) warden (1.2.8) From bd42608be2e0d73afbb344e5d5d7859e0da5017c Mon Sep 17 00:00:00 2001 From: mayaeh Date: Sun, 5 Jan 2020 10:25:07 +0900 Subject: [PATCH 061/207] Update lockfile for #12758 (#12762) --- Gemfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2e86eda19..c5e66a5ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -174,8 +174,8 @@ GEM elasticsearch (>= 2.0.0) elasticsearch-dsl chunky_png (1.3.10) - cld3 (3.2.4) - ffi (>= 1.1.0, < 1.11.0) + cld3 (3.2.6) + ffi (>= 1.1.0, < 1.12.0) climate_control (0.2.0) cocaine (0.5.8) climate_control (>= 0.0.3, < 1.0) @@ -369,9 +369,9 @@ GEM redis (>= 3.0.5) memory_profiler (0.9.14) method_source (0.9.2) - microformats (4.1.0) - json (~> 2.1) - nokogiri (~> 1.8, >= 1.8.3) + microformats (4.2.0) + json (~> 2.2) + nokogiri (~> 1.10) mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2019.1009) @@ -698,7 +698,7 @@ DEPENDENCIES capybara (~> 3.29) charlock_holmes (~> 0.7.7) chewy (~> 5.1) - cld3 (~> 3.2.4) + cld3 (~> 3.2.6) climate_control (~> 0.2) concurrent-ruby connection_pool @@ -738,8 +738,8 @@ DEPENDENCIES makara (~> 0.4) mario-redis-lock (~> 1.2) memory_profiler - microformats (~> 4.1) - mime-types (~> 3.3) + microformats (~> 4.2) + mime-types (~> 3.3.1) net-ldap (~> 0.16) nilsimsa! nokogiri (~> 1.10) @@ -789,7 +789,7 @@ DEPENDENCIES simple-navigation (~> 4.1) simple_form (~> 5.0) simplecov (~> 0.17) - sprockets (~> 3.7) + sprockets (~> 3.7.2) sprockets-rails (~> 3.2) stackprof stoplight (~> 2.2.0) From e6fc490011e2bcc0018214298df2aa0a85a87874 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 19:39:37 +0900 Subject: [PATCH 062/207] Bump css-loader from 3.4.0 to 3.4.1 (#12772) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.0...v3.4.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 02bbba2a6..bda2e88e9 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "compression-webpack-plugin": "^3.0.1", "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", - "css-loader": "^3.4.0", + "css-loader": "^3.4.1", "cssnano": "^4.1.10", "detect-passive-events": "^1.0.2", "dotenv": "^8.2.0", diff --git a/yarn.lock b/yarn.lock index 4c23f8ae5..2c7d1f823 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2945,10 +2945,10 @@ css-list-helpers@^1.0.1: dependencies: tcomb "^2.5.0" -css-loader@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.0.tgz#9fb263436783117a41d014e45e8eaeba54dd6670" - integrity sha512-JornYo4RAXl1Mzt0lOSVPmArzAMV3rGY2VuwtaDc732WTWjdwTaeS19nCGWMcSCf305Q396lhhDAJEWWM0SgPQ== +css-loader@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.1.tgz#dfb7968aa9bffb26bd20375afdffe77d5a234b77" + integrity sha512-+ybmv7sVxxNEenQhkifQDvny/1iNQM7YooJbSfVUdQQvisyg1aKIqgGjCjoFSyVLJMp17z9rfZFQaR5HGHcMbw== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" From 862ba3afad56f0b5353926c87bf515b3fb04c7f8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 19:41:02 +0900 Subject: [PATCH 063/207] Bump yargs from 15.0.2 to 15.1.0 (#12771) Bumps [yargs](https://github.com/yargs/yargs) from 15.0.2 to 15.1.0. - [Release notes](https://github.com/yargs/yargs/releases) - [Changelog](https://github.com/yargs/yargs/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/yargs/compare/v15.0.2...v15.1.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bda2e88e9..16c47c69c 100644 --- a/package.json +++ b/package.json @@ -183,6 +183,6 @@ "react-test-renderer": "^16.12.0", "sass-lint": "^1.13.1", "webpack-dev-server": "^3.9.0", - "yargs": "^15.0.2" + "yargs": "^15.1.0" } } diff --git a/yarn.lock b/yarn.lock index 2c7d1f823..78b786fb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11133,10 +11133,10 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" -yargs@^15.0.2: - version "15.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.0.2.tgz#4248bf218ef050385c4f7e14ebdf425653d13bd3" - integrity sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q== +yargs@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" + integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== dependencies: cliui "^6.0.0" decamelize "^1.2.0" From 7a7ef7fb0ae085fb9eb81ed239ab182c419c6e8a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 19:42:03 +0900 Subject: [PATCH 064/207] Bump enzyme-adapter-react-16 from 1.15.1 to 1.15.2 (#12777) Bumps [enzyme-adapter-react-16](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme-adapter-react-16) from 1.15.1 to 1.15.2. - [Release notes](https://github.com/airbnb/enzyme/releases) - [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md) - [Commits](https://github.com/airbnb/enzyme/commits/enzyme-adapter-react-16@1.15.2/packages/enzyme-adapter-react-16) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 46 ++++++++++++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 16c47c69c..078821727 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.1", + "enzyme-adapter-react-16": "^1.15.2", "eslint": "^6.8.0", "eslint-plugin-import": "~2.19.1", "eslint-plugin-jsx-a11y": "~6.2.3", diff --git a/yarn.lock b/yarn.lock index 78b786fb0..0709a5a74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3594,34 +3594,34 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -enzyme-adapter-react-16@^1.15.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.1.tgz#8ad55332be7091dc53a25d7d38b3485fc2ba50d5" - integrity sha512-yMPxrP3vjJP+4wL/qqfkT6JAIctcwKF+zXO6utlGPgUJT2l4tzrdjMDWGd/Pp1BjHBcljhN24OzNEGRteibJhA== +enzyme-adapter-react-16@^1.15.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" + integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== dependencies: - enzyme-adapter-utils "^1.12.1" - enzyme-shallow-equal "^1.0.0" + enzyme-adapter-utils "^1.13.0" + enzyme-shallow-equal "^1.0.1" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.0" + object.values "^1.1.1" prop-types "^15.7.2" - react-is "^16.10.2" + react-is "^16.12.0" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.1.tgz#e828e0d038e2b1efa4b9619ce896226f85c9dd88" - integrity sha512-KWiHzSjZaLEoDCOxY8Z1RAbUResbqKN5bZvenPbfKtWorJFVETUw754ebkuCQ3JKm0adx1kF8JaiR+PHPiP47g== +enzyme-adapter-utils@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" + integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== dependencies: airbnb-prop-types "^2.15.0" - function.prototype.name "^1.1.1" + function.prototype.name "^1.1.2" object.assign "^4.1.0" - object.fromentries "^2.0.1" + object.fromentries "^2.0.2" prop-types "^15.7.2" - semver "^5.7.0" + semver "^5.7.1" -enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: +enzyme-shallow-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== @@ -7307,6 +7307,16 @@ object.fromentries@^2.0.1: function-bind "^1.1.1" has "^1.0.3" +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -8619,7 +8629,7 @@ react-intl@^2.9.0: intl-relativeformat "^2.1.0" invariant "^2.1.1" -react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== @@ -9427,7 +9437,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== From 531afaef0f81033ed0d3fc7a43f9052cc71bd3a6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 22:30:00 +0900 Subject: [PATCH 065/207] Bump webpack-dev-server from 3.9.0 to 3.10.1 (#12773) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.9.0 to 3.10.1. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/v3.10.1/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.9.0...v3.10.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 078821727..891c3da49 100644 --- a/package.json +++ b/package.json @@ -182,7 +182,7 @@ "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.12.0", "sass-lint": "^1.13.1", - "webpack-dev-server": "^3.9.0", + "webpack-dev-server": "^3.10.1", "yargs": "^15.1.0" } } diff --git a/yarn.lock b/yarn.lock index 0709a5a74..77d82049d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6576,10 +6576,10 @@ lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -loglevel@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" - integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== +loglevel@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" + integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" @@ -10780,10 +10780,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== +webpack-dev-server@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" + integrity sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -10800,7 +10800,7 @@ webpack-dev-server@^3.9.0: ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.4" + loglevel "^1.6.6" opn "^5.5.0" p-retry "^3.0.1" portfinder "^1.0.25" From 061233d35dee40065f45cd3de379bae40a1214e5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 22:44:02 +0900 Subject: [PATCH 066/207] Bump @clusterws/cws from 0.16.1 to 0.17.3 (#12776) Bumps @clusterws/cws from 0.16.1 to 0.17.3. Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 891c3da49..926e3e81d 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.7.7", "@gamestdio/websocket": "^0.3.2", - "@clusterws/cws": "^0.16.1", + "@clusterws/cws": "^0.17.3", "array-includes": "^3.1.1", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", diff --git a/yarn.lock b/yarn.lock index 77d82049d..34f819adf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -795,10 +795,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@clusterws/cws@^0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.16.1.tgz#443c47909601e87b881ffb2c4c83cbf27a228487" - integrity sha512-OamMsXwVppfmwX14Ed1msJJN0KNi+VBQh5AkAqUvIGTcJyHcjpsKjU15wS8QumvEewxx9gvGp7aSDop0/R5Gqg== +"@clusterws/cws@^0.17.3": + version "0.17.3" + resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.17.3.tgz#64ce6a34b2bd357c29bdc0675f27b37279e8661f" + integrity sha512-5WSpxwD8yIIWPTyMspS/IDBp1d4yHnK4A0pjIzYGS1EmJHKylc4jgMiG66qbirjxZ9/IlzuvmYCgaXA+TQbe+A== "@cnakazawa/watch@^1.0.3": version "1.0.3" From 7dcecdfcbdedf85a4d8fc69728b17dee429658fd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 22:44:42 +0900 Subject: [PATCH 067/207] Bump wavesurfer.js from 3.2.0 to 3.3.0 (#12775) Bumps [wavesurfer.js](https://github.com/katspaugh/wavesurfer.js) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/katspaugh/wavesurfer.js/releases) - [Changelog](https://github.com/katspaugh/wavesurfer.js/blob/master/CHANGES.md) - [Commits](https://github.com/katspaugh/wavesurfer.js/compare/3.2.0...3.3.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 926e3e81d..008de4c5e 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "throng": "^4.0.0", "tiny-queue": "^0.2.1", "uuid": "^3.3.3", - "wavesurfer.js": "^3.2.0", + "wavesurfer.js": "^3.3.0", "webpack": "^4.41.5", "webpack-assets-manifest": "^3.1.1", "webpack-bundle-analyzer": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 34f819adf..a1bbfe63c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10703,10 +10703,10 @@ watchpack@^1.6.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -wavesurfer.js@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.2.0.tgz#c316f3bd1b9f0f4d26188c6865a57e29a13efedc" - integrity sha512-P75SSpYTpzpCKFKjxmHkdp2jGpcm4neaGncBGV/jzfI5FPSIfl5mXTTZlZFpJhs7To+NI34Dj5y661JI43HEzA== +wavesurfer.js@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.0.tgz#8e3429c5981162562aeb48f555d75bfeaaa4c5c8" + integrity sha512-Lfa5c2uN3ykVTxjkves+hcCpT+aePIr6aTKDgHXvIXIZo/ypC9KNd6kpclygnhEMCZo8VZA2ST/rq8UrBdyteQ== wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" From 974a015d95462ebe53e4b851aec21558b0d34535 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 22:56:04 +0900 Subject: [PATCH 068/207] Bump capybara from 3.29.0 to 3.30.0 (#12781) Bumps [capybara](https://github.com/teamcapybara/capybara) from 3.29.0 to 3.30.0. - [Release notes](https://github.com/teamcapybara/capybara/releases) - [Changelog](https://github.com/teamcapybara/capybara/blob/master/History.md) - [Commits](https://github.com/teamcapybara/capybara/compare/3.29.0...3.30.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index b6e845342..f4c5bedf7 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :production, :test do end group :test do - gem 'capybara', '~> 3.29' + gem 'capybara', '~> 3.30' gem 'climate_control', '~> 0.2' gem 'faker', '~> 2.10' gem 'microformats', '~> 4.2' diff --git a/Gemfile.lock b/Gemfile.lock index c5e66a5ef..1c565967f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -158,7 +158,7 @@ GEM sshkit (~> 1.3) capistrano-yarn (2.0.2) capistrano (~> 3.0) - capybara (3.29.0) + capybara (3.30.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -452,7 +452,7 @@ GEM pry (~> 0.10) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.2) + public_suffix (4.0.3) puma (4.3.1) nio4r (~> 2.0) pundit (2.1.0) @@ -695,7 +695,7 @@ DEPENDENCIES capistrano-rails (~> 1.4) capistrano-rbenv (~> 2.1) capistrano-yarn (~> 2.0) - capybara (~> 3.29) + capybara (~> 3.30) charlock_holmes (~> 0.7.7) chewy (~> 5.1) cld3 (~> 3.2.6) From 1d039c27f8670ddc703485a7355b82cfd18611e6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 23:02:46 +0900 Subject: [PATCH 069/207] Bump bullet from 6.0.2 to 6.1.0 (#12782) Bumps [bullet](https://github.com/flyerhzm/bullet) from 6.0.2 to 6.1.0. - [Release notes](https://github.com/flyerhzm/bullet/releases) - [Changelog](https://github.com/flyerhzm/bullet/blob/master/CHANGELOG.md) - [Commits](https://github.com/flyerhzm/bullet/compare/6.0.2...6.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index f4c5bedf7..820e4242d 100644 --- a/Gemfile +++ b/Gemfile @@ -131,7 +131,7 @@ group :development do gem 'annotate', '~> 3.0' gem 'better_errors', '~> 2.5' gem 'binding_of_caller', '~> 0.7' - gem 'bullet', '~> 6.0' + gem 'bullet', '~> 6.1' gem 'letter_opener', '~> 1.7' gem 'letter_opener_web', '~> 1.3' gem 'memory_profiler' diff --git a/Gemfile.lock b/Gemfile.lock index 1c565967f..7982f12ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,7 +135,7 @@ GEM brakeman (4.7.2) browser (2.7.1) builder (3.2.4) - bullet (6.0.2) + bullet (6.1.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) bundler-audit (0.6.1) @@ -645,7 +645,7 @@ GEM tty-screen (0.7.0) twitter-text (1.14.7) unf (~> 0.1.0) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) tzinfo-data (1.2019.3) tzinfo (>= 1.0.0) @@ -653,7 +653,7 @@ GEM unf_ext unf_ext (0.0.7.6) unicode-display_width (1.6.0) - uniform_notifier (1.12.1) + uniform_notifier (1.13.0) warden (1.2.8) rack (>= 2.0.6) webmock (3.7.6) @@ -689,7 +689,7 @@ DEPENDENCIES bootsnap (~> 1.4) brakeman (~> 4.7) browser - bullet (~> 6.0) + bullet (~> 6.1) bundler-audit (~> 0.6) capistrano (~> 3.11) capistrano-rails (~> 1.4) From 746c4131ec5d624f39c916ec41e18bf5396fb2bd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 23:03:05 +0900 Subject: [PATCH 070/207] Bump aws-sdk-s3 from 1.59.0 to 1.60.1 (#12784) Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.59.0 to 1.60.1. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/compare/v1.59.0...v1.60.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 820e4242d..263b24ab1 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,7 @@ gem 'makara', '~> 0.4' gem 'pghero', '~> 2.4' gem 'dotenv-rails', '~> 2.7' -gem 'aws-sdk-s3', '~> 1.59', require: false +gem 'aws-sdk-s3', '~> 1.60', require: false gem 'fog-core', '<= 2.1.0' gem 'fog-openstack', '~> 0.3', require: false gem 'paperclip', '~> 6.0' diff --git a/Gemfile.lock b/Gemfile.lock index 7982f12ce..d00938d3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -105,16 +105,16 @@ GEM av (0.9.0) cocaine (~> 0.5.3) aws-eventstream (1.0.3) - aws-partitions (1.251.0) - aws-sdk-core (3.84.0) + aws-partitions (1.261.0) + aws-sdk-core (3.86.0) aws-eventstream (~> 1.0, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.26.0) + aws-sdk-kms (1.27.0) aws-sdk-core (~> 3, >= 3.71.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.59.0) + aws-sdk-s3 (1.60.1) aws-sdk-core (~> 3, >= 3.83.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) @@ -682,7 +682,7 @@ DEPENDENCIES active_record_query_trace (~> 1.7) addressable (~> 2.7) annotate (~> 3.0) - aws-sdk-s3 (~> 1.59) + aws-sdk-s3 (~> 1.60) better_errors (~> 2.5) binding_of_caller (~> 0.7) blurhash (~> 0.1) From 74c99e8b184f585272488108df4da5d21fb64c55 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 23:03:26 +0900 Subject: [PATCH 071/207] Bump sass from 1.24.0 to 1.24.2 (#12778) Bumps [sass](https://github.com/sass/dart-sass) from 1.24.0 to 1.24.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.24.0...1.24.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 008de4c5e..75972be45 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.0.0", "rimraf": "^3.0.0", - "sass": "^1.24.0", + "sass": "^1.24.2", "sass-loader": "^8.0.0", "stringz": "^2.0.0", "substring-trie": "^1.0.2", diff --git a/yarn.lock b/yarn.lock index a1bbfe63c..ed0e943ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9380,10 +9380,10 @@ sass-loader@^8.0.0: schema-utils "^2.1.0" semver "^6.3.0" -sass@^1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.24.0.tgz#e8b9931bc5d18a37d271749311ef2edc83102a77" - integrity sha512-1TsPyMhLTx+9DLlmwg02iBW2p4poGA7LlkWJLpUY/XticFKNhPcx+l4FsIJLKl6oSUfXmAKpVljHEez1hwjqiw== +sass@^1.24.2: + version "1.24.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.24.2.tgz#0a0e0f00368be6808b2e94470172266ac45498fe" + integrity sha512-0JxdMMRd0fOmGFQFRI91vh4n0Ed766ib9JwPUa+1C37zn3VaqlHxbknUn/6LqP/MSfvNPxRYoCrYf5g8vu4OHw== dependencies: chokidar ">=2.0.0 <4.0.0" From 7c57c3d2fffb7be67a8edd1964d2be932437c6c8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 23:52:23 +0900 Subject: [PATCH 072/207] Bump pg from 1.2.0 to 1.2.1 (#12783) Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.0...v1.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d00938d3d..aed327dba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,7 +432,7 @@ GEM pastel (0.7.3) equatable (~> 0.6) tty-color (~> 0.5) - pg (1.2.0) + pg (1.2.1) pghero (2.4.1) activerecord (>= 5) pkg-config (1.4.0) From 12a9813a0cc269d7b7c72095e279f70ddb7bec6e Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 6 Jan 2020 18:22:17 +0100 Subject: [PATCH 073/207] Fix reuse of detailed status components (#12792) Fixes #12770 --- app/javascript/mastodon/features/status/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 6b18f34d1..c058120d6 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -542,6 +542,7 @@ class Status extends ImmutablePureComponent {
Date: Tue, 7 Jan 2020 16:41:19 +0700 Subject: [PATCH 074/207] Little improvements to filters settings page (#12793) When you have many filters, it may be hard for you to reach the button to create yet another one. This commit moves creation button to the heading, leaving the page just for the list. On the other hand, when there are no filters, page looks kind of strange with the empty table. So text stating obvious fact that user has no filters was added in this commit too. Closes #11020 Closes #12790 --- app/views/filters/index.html.haml | 37 ++++++++++++++++++------------- config/locales/en.yml | 1 + 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml index 18ebee570..530ea6f59 100644 --- a/app/views/filters/index.html.haml +++ b/app/views/filters/index.html.haml @@ -1,20 +1,25 @@ - content_for :page_title do = t('filters.index.title') -.table-wrapper - %table.table - %thead - %tr - %th= t('simple_form.labels.defaults.phrase') - %th= t('simple_form.labels.defaults.context') - %th - %tbody - - @filters.each do |filter| - %tr - %td= filter.phrase - %td= filter.context.map { |context| I18n.t("filters.contexts.#{context}") }.join(', ') - %td - = table_link_to 'pencil', t('filters.edit.title'), edit_filter_path(filter) - = table_link_to 'times', t('filters.index.delete'), filter_path(filter), method: :delete +- content_for :page_heading_actions do + = link_to t('filters.new.title'), new_filter_path, class: 'button' -= link_to t('filters.new.title'), new_filter_path, class: 'button' +- if @filters.count == 0 + %div{ style: 'display: flex; justify-content: center' } + %div.muted-hint= t 'filters.index.empty' +- else + .table-wrapper + %table.table + %thead + %tr + %th= t('simple_form.labels.defaults.phrase') + %th= t('simple_form.labels.defaults.context') + %th + %tbody + - @filters.each do |filter| + %tr + %td= filter.phrase + %td= filter.context.map { |context| I18n.t("filters.contexts.#{context}") }.join(', ') + %td + = table_link_to 'pencil', t('filters.edit.title'), edit_filter_path(filter) + = table_link_to 'times', t('filters.index.delete'), filter_path(filter), method: :delete diff --git a/config/locales/en.yml b/config/locales/en.yml index 42bd81e40..6b52f4cad 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -744,6 +744,7 @@ en: invalid_irreversible: Irreversible filtering only works with home or notifications context index: delete: Delete + empty: You have no filters. title: Filters new: title: Add new filter From 51eb1115035499a47bb03670c03afbd03ce7c5ac Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 8 Jan 2020 22:42:05 +0100 Subject: [PATCH 075/207] Allow blocking TLDs, and fix TLD blocks not being editable (#12805) Fixes #12795 It was already possible to create domain blocks for TLDs, but those weren't enforced, nor editable. This commit changes it so that they are enforced and editable. --- app/models/domain_block.rb | 2 +- spec/models/domain_block_spec.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index 4e865b850..f0a5bd296 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -54,7 +54,7 @@ class DomainBlock < ApplicationRecord segments = uri.normalized_host.split('.') variants = segments.map.with_index { |_, i| segments[i..-1].join('.') } - where(domain: variants[0..-2]).order(Arel.sql('char_length(domain) desc')).first + where(domain: variants).order(Arel.sql('char_length(domain) desc')).first end end diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb index d98c5e118..28647dc89 100644 --- a/spec/models/domain_block_spec.rb +++ b/spec/models/domain_block_spec.rb @@ -52,6 +52,16 @@ RSpec.describe DomainBlock, type: :model do block = Fabricate(:domain_block, domain: 'sub.example.com') expect(DomainBlock.rule_for('sub.example.com')).to eq block end + + it 'returns a rule matching a blocked TLD' do + block = Fabricate(:domain_block, domain: 'google') + expect(DomainBlock.rule_for('google')).to eq block + end + + it 'returns a rule matching a subdomain of a blocked TLD' do + block = Fabricate(:domain_block, domain: 'google') + expect(DomainBlock.rule_for('maps.google')).to eq block + end end describe '#stricter_than?' do From 817d4a93725aca884c638413334a0f08b88cc0ed Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 10 Jan 2020 00:10:17 +0100 Subject: [PATCH 076/207] Add --remote-only option to emoji purge (#12810) Fixes #12804 --- lib/mastodon/emoji_cli.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb index beac1b1fd..dbaf12018 100644 --- a/lib/mastodon/emoji_cli.rb +++ b/lib/mastodon/emoji_cli.rb @@ -72,9 +72,16 @@ module Mastodon say("Imported #{imported}, skipped #{skipped}, failed to import #{failed}", color(imported, skipped, failed)) end + option :remote_only, type: :boolean desc 'purge', 'Remove all custom emoji' + long_desc <<-LONG_DESC + Removes all custom emoji. + + With the --remote-only option, only remote emoji will be deleted. + LONG_DESC def purge - CustomEmoji.in_batches.destroy_all + scope = options[:remote_only] ? CustomEmoji.remote : CustomEmoji + scope.in_batches.destroy_all say('OK', :green) end From c306978190032dd0097d2e48edace33569ddb072 Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 10 Jan 2020 00:10:29 +0100 Subject: [PATCH 077/207] Use quality values in Accept field to explicitly prefer JSON over HTML (#12806) --- app/services/fetch_resource_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index 34382d279..abe7766d4 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -3,7 +3,7 @@ class FetchResourceService < BaseService include JsonLdHelper - ACCEPT_HEADER = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams", text/html' + ACCEPT_HEADER = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams", text/html;q=0.1' def call(url) return if url.blank? From 139f7646a7e3af491d5d6c6a99e82d46f9551400 Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Fri, 10 Jan 2020 07:10:17 +0700 Subject: [PATCH 078/207] Rename page_heading_actions variable (#12799) Current name - page_heading_actions is long and hard to remember, this commit shortens it to just heading_actions, which is way more easier to remember and write, it's logical too. --- app/views/admin/reports/show.html.haml | 2 +- app/views/filters/index.html.haml | 2 +- app/views/layouts/admin.html.haml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 7f3ec35a4..af8fce2a7 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -4,7 +4,7 @@ - content_for :page_title do = t('admin.reports.report', id: @report.id) -- content_for :page_heading_actions do +- content_for :heading_actions do - if @report.unresolved? = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' - else diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml index 530ea6f59..2f7d96f96 100644 --- a/app/views/filters/index.html.haml +++ b/app/views/filters/index.html.haml @@ -1,7 +1,7 @@ - content_for :page_title do = t('filters.index.title') -- content_for :page_heading_actions do +- content_for :heading_actions do = link_to t('filters.new.title'), new_filter_path, class: 'button' - if @filters.count == 0 diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index 059bf8579..d1de2e80f 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -24,9 +24,9 @@ .content-heading %h2= yield :page_title - - if :page_heading_actions + - if :heading_actions .content-heading-actions - = yield :page_heading_actions + = yield :heading_actions = render 'application/flashes' From e326b0dda1cd9b85519c185fbed624ad0eb4d91d Mon Sep 17 00:00:00 2001 From: Shlee Date: Fri, 10 Jan 2020 12:34:25 +0800 Subject: [PATCH 079/207] Upgrade CircleCI testing to Ruby 2.4-2.7 (#12800) * Update config.yml * Update Gemfile --- .circleci/config.yml | 36 +++++++++++++++++++++++++++++++----- Gemfile | 5 ++++- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 83a2088d7..6922d033a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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,17 @@ jobs: - ./mastodon/public/assets - ./mastodon/public/packs-test/ + 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 +202,28 @@ 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-ruby2.7: + requires: + - install-ruby2.7 + - build - test-ruby2.6: requires: - install-ruby2.6 @@ -215,4 +241,4 @@ workflows: - install - check-i18n: requires: - - install-ruby2.6 + - install-ruby2.7 diff --git a/Gemfile b/Gemfile index 263b24ab1..c16ff8e2f 100644 --- a/Gemfile +++ b/Gemfile @@ -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' From 7583679ecfb7aab7de15e1c1df23d793c5447062 Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 10 Jan 2020 21:52:24 +0100 Subject: [PATCH 080/207] Fix old migrations failing because of strong_migrations update (#12787) Fixes #12768 Some migrations were overlooked in #12692 --- db/migrate/20180206000000_change_user_id_nonnullable.rb | 6 ++++-- .../20191031163205_change_list_account_follow_nullable.rb | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/db/migrate/20180206000000_change_user_id_nonnullable.rb b/db/migrate/20180206000000_change_user_id_nonnullable.rb index 4eecb6154..2d2cf20d3 100644 --- a/db/migrate/20180206000000_change_user_id_nonnullable.rb +++ b/db/migrate/20180206000000_change_user_id_nonnullable.rb @@ -1,6 +1,8 @@ class ChangeUserIdNonnullable < ActiveRecord::Migration[5.1] def change - change_column_null :invites, :user_id, false - change_column_null :web_settings, :user_id, false + safety_assured do + change_column_null :invites, :user_id, false + change_column_null :web_settings, :user_id, false + end end end diff --git a/db/migrate/20191031163205_change_list_account_follow_nullable.rb b/db/migrate/20191031163205_change_list_account_follow_nullable.rb index ff8911546..65ff93365 100644 --- a/db/migrate/20191031163205_change_list_account_follow_nullable.rb +++ b/db/migrate/20191031163205_change_list_account_follow_nullable.rb @@ -1,5 +1,7 @@ class ChangeListAccountFollowNullable < ActiveRecord::Migration[5.1] def change - change_column_null :list_accounts, :follow_id, true + safety_assured do + change_column_null :list_accounts, :follow_id, true + end end end From 206dfd7daddb888a8115804f2c88794b4230592a Mon Sep 17 00:00:00 2001 From: Daigo 3 Dango Date: Fri, 10 Jan 2020 10:57:05 -1000 Subject: [PATCH 081/207] Clarify keyword arguments with ** (#12769) This change is to suppress the warning below on on ruby-2.7.0: - warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/ --- app/helpers/accounts_helper.rb | 2 +- app/lib/activitypub/activity.rb | 2 +- app/services/activitypub/process_collection_service.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb index 53939adfc..e02bc2447 100644 --- a/app/helpers/accounts_helper.rb +++ b/app/helpers/accounts_helper.rb @@ -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 diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 49b1dc9cd..ee35e1e8d 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -21,7 +21,7 @@ class ActivityPub::Activity class << self def factory(json, account, **options) @json = json - klass&.new(json, account, options) + klass&.new(json, account, **options) end private diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb index a2a2e7071..e6ccaccc9 100644 --- a/app/services/activitypub/process_collection_service.rb +++ b/app/services/activitypub/process_collection_service.rb @@ -37,7 +37,7 @@ class ActivityPub::ProcessCollectionService < BaseService end def process_item(item) - activity = ActivityPub::Activity.factory(item, @account, @options) + activity = ActivityPub::Activity.factory(item, @account, **@options) activity&.perform end From 05756c9a14864655ae6777505a4ee5cfa9b0ee93 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 10 Jan 2020 22:58:16 +0100 Subject: [PATCH 082/207] improve status title (#8596) * improve shown status title, useful for atom/rss * use single quotes to satisfy codeclimate * fix tests, make message more pretty * fix tests * fix codestyle * fix codestyle * remove atom_serializer_spec Co-authored-by: Yamagishi Kazutoshi --- app/models/status.rb | 6 +++++- spec/models/status_spec.rb | 12 ++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/models/status.rb b/app/models/status.rb index 1cb381400..670109762 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -194,8 +194,12 @@ class Status < ApplicationRecord def title if destroyed? "#{account.acct} deleted status" + elsif reblog? + preview = sensitive ? '' : text.slice(0, 10).split("\n")[0] + "#{account.acct} shared #{reblog.account.acct}'s: #{preview}" else - reblog? ? "#{account.acct} shared a status by #{reblog.account.acct}" : "New status by #{account.acct}" + preview = sensitive ? '' : text.slice(0, 20).split("\n")[0] + "#{account.acct}: #{preview}" end end diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 51a10cd17..b238691a8 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -96,16 +96,20 @@ RSpec.describe Status, type: :model do context 'unless destroyed?' do context 'if reblog?' do - it 'returns "#{account.acct} shared a status by #{reblog.account.acct}"' do + it 'returns "#{account.acct} shared #{reblog.account.acct}\'s: #{preview}"' do reblog = subject.reblog = other - expect(subject.title).to eq "#{account.acct} shared a status by #{reblog.account.acct}" + preview = subject.text.slice(0, 10).split("\n")[0] + expect(subject.title).to( + eq "#{account.acct} shared #{reblog.account.acct}'s: #{preview}" + ) end end context 'unless reblog?' do - it 'returns "New status by #{account.acct}"' do + it 'returns "#{account.acct}: #{preview}"' do subject.reblog = nil - expect(subject.title).to eq "New status by #{account.acct}" + preview = subject.text.slice(0, 20).split("\n")[0] + expect(subject.title).to eq "#{account.acct}: #{preview}" end end end From d1f68fb5898b5720d410cf2e588bea5374129cf2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 07:02:16 +0900 Subject: [PATCH 083/207] Bump rdf-normalize from 0.3.3 to 0.4.0 (#12785) Bumps [rdf-normalize](https://github.com/gkellogg/rdf-normalize) from 0.3.3 to 0.4.0. - [Release notes](https://github.com/gkellogg/rdf-normalize/releases) - [Commits](https://github.com/gkellogg/rdf-normalize/compare/0.3.3...0.4.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index c16ff8e2f..e4946115a 100644 --- a/Gemfile +++ b/Gemfile @@ -102,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' group :development, :test do gem 'fabrication', '~> 2.21' diff --git a/Gemfile.lock b/Gemfile.lock index aed327dba..5a881fe87 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -504,11 +504,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) redis (4.1.3) redis-actionpack (5.0.2) actionpack (>= 4.0, < 6) @@ -771,7 +771,7 @@ DEPENDENCIES rails-controller-testing (~> 1.0) rails-i18n (~> 5.1) rails-settings-cached (~> 0.6) - rdf-normalize (~> 0.3) + rdf-normalize (~> 0.4) redis (~> 4.1) redis-namespace (~> 1.7) redis-rails (~> 5.0) From baa3db3001b576a3d7b1ae5ca8b414416bd4567f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 11 Jan 2020 02:02:21 +0100 Subject: [PATCH 084/207] Change audio/video playback to stop playback when out of view (#12486) Change video player to not loop, since the audio player doesn't Change playback and mute buttons to feel snappier --- .../mastodon/features/audio/index.js | 35 +++++++++---- .../mastodon/features/video/index.js | 50 +++++++++++++------ 2 files changed, 60 insertions(+), 25 deletions(-) diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.js index 1b4cdbb4f..fda5a074f 100644 --- a/app/javascript/mastodon/features/audio/index.js +++ b/app/javascript/mastodon/features/audio/index.js @@ -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; diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.js index f6aeb8c9a..0e2a99416 100644 --- a/app/javascript/mastodon/features/video/index.js +++ b/app/javascript/mastodon/features/video/index.js @@ -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) && } {(!fullscreen && onOpenVideo) && } {onCloseVideo && } - + -
From 630b5136ec0c533154947bb3c410db63cd76426c Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 11 Jan 2020 02:04:57 +0100 Subject: [PATCH 085/207] Add CircleCI task to test migrations (#12815) --- .circleci/config.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6922d033a..6a948d8c1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -135,6 +135,25 @@ 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: @@ -220,6 +239,9 @@ workflows: - build: requires: - install-ruby2.7 + - test-migrations: + requires: + - install-ruby2.7 - test-ruby2.7: requires: - install-ruby2.7 From 36426ed4ad450320f4a4e598c41355a6d8faad66 Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Sat, 11 Jan 2020 08:14:45 +0700 Subject: [PATCH 086/207] Use heading actions and placeholders in settings (#12801) This commit: - Refactors centered text blocks currently used for placeholders for empty tables and puts styles for it in separate class - .centered-text, simply aliasing text-align: center. Which is furtherly used in this commit. - Improves applications settings page to use heading actions, moving "New application" button there, and displaying placeholder "You have no applications" in place of empty table. - Improves custom emoji settings page to use heading action for "Upload" button, making it more easily accessible without need to scroll through all of the emojis. - Improves email domain blocks settings page, moving "Add new" to the heading actions and using placeholder "No e-mail domains currently blacklisted" instead of showing empty table. --- app/javascript/styles/mastodon/admin.scss | 4 +++ app/views/admin/custom_emojis/index.html.haml | 6 ++-- .../admin/email_domain_blocks/index.html.haml | 23 ++++++++----- app/views/filters/index.html.haml | 3 +- .../settings/applications/index.html.haml | 33 +++++++++++-------- config/locales/doorkeeper.en.yml | 1 + config/locales/en.yml | 1 + 7 files changed, 43 insertions(+), 28 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 203365f5e..9bd030964 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -878,3 +878,7 @@ a.name-tag, color: $primary-text-color; } } + +.center-text { + text-align: center; +} diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 7320ce1bb..389e9dd71 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -4,6 +4,9 @@ - content_for :header_tags do = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' +- content_for :heading_actions do + = link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button' + .filters .filter-subset %strong= t('admin.accounts.location.title') @@ -81,6 +84,3 @@ = paginate @custom_emojis -%hr.spacer/ - -= link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button' diff --git a/app/views/admin/email_domain_blocks/index.html.haml b/app/views/admin/email_domain_blocks/index.html.haml index 7bb204e52..c1cc470b6 100644 --- a/app/views/admin/email_domain_blocks/index.html.haml +++ b/app/views/admin/email_domain_blocks/index.html.haml @@ -1,14 +1,19 @@ - content_for :page_title do = t('admin.email_domain_blocks.title') -.table-wrapper - %table.table - %thead - %tr - %th= t('admin.email_domain_blocks.domain') - %th - %tbody - = render @email_domain_blocks +- content_for :heading_actions do + = link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button' + +- if @email_domain_blocks.count == 0 + %div.muted-hint.center-text=t 'admin.email_domain_blocks.empty' +- else + .table-wrapper + %table.table + %thead + %tr + %th= t('admin.email_domain_blocks.domain') + %th + %tbody + = render @email_domain_blocks = paginate @email_domain_blocks -= link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button' diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml index 2f7d96f96..8ace638ca 100644 --- a/app/views/filters/index.html.haml +++ b/app/views/filters/index.html.haml @@ -5,8 +5,7 @@ = link_to t('filters.new.title'), new_filter_path, class: 'button' - if @filters.count == 0 - %div{ style: 'display: flex; justify-content: center' } - %div.muted-hint= t 'filters.index.empty' + %div.muted-hint.center-text= t 'filters.index.empty' - else .table-wrapper %table.table diff --git a/app/views/settings/applications/index.html.haml b/app/views/settings/applications/index.html.haml index 919472c2e..1cb94760f 100644 --- a/app/views/settings/applications/index.html.haml +++ b/app/views/settings/applications/index.html.haml @@ -1,20 +1,25 @@ - content_for :page_title do = t('doorkeeper.applications.index.title') -.table-wrapper - %table.table - %thead - %tr - %th= t('doorkeeper.applications.index.application') - %th= t('doorkeeper.applications.index.scopes') - %th - %tbody - - @applications.each do |application| +- content_for :heading_actions do + = link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button' + +- if @applications.count == 0 + %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty' +- else + .table-wrapper + %table.table + %thead %tr - %td= link_to application.name, settings_application_path(application) - %th= application.scopes - %td - = table_link_to 'times', t('doorkeeper.applications.index.delete'), settings_application_path(application), method: :delete, data: { confirm: t('doorkeeper.applications.confirmations.destroy') } + %th= t('doorkeeper.applications.index.application') + %th= t('doorkeeper.applications.index.scopes') + %th + %tbody + - @applications.each do |application| + %tr + %td= link_to application.name, settings_application_path(application) + %th= application.scopes + %td + = table_link_to 'times', t('doorkeeper.applications.index.delete'), settings_application_path(application), method: :delete, data: { confirm: t('doorkeeper.applications.confirmations.destroy') } = paginate @applications -= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button' diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index 4e9c83a8f..2be2ef036 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -38,6 +38,7 @@ en: application: Application callback_url: Callback URL delete: Delete + empty: You have no applications. name: Name new: New application scopes: Scopes diff --git a/config/locales/en.yml b/config/locales/en.yml index 6b52f4cad..660d0a4e1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -339,6 +339,7 @@ en: delete: Delete destroyed_msg: Successfully deleted e-mail domain from blacklist domain: Domain + empty: No e-mail domains currenly blacklisted. new: create: Add domain title: New e-mail blacklist entry From e9ea09d17398763ead69ca845c7aefebf266d373 Mon Sep 17 00:00:00 2001 From: Daigo 3 Dango Date: Fri, 10 Jan 2020 15:15:03 -1000 Subject: [PATCH 087/207] Suppress backtrace when delivering toots (#12798) This is to suppress irrelevant backtrace from errors raised when delivering toots to remote servers. The errors are usually out of control by the local server and backtraces don't provide much information. This is similar to https://github.com/tootsuite/mastodon/pull/5174 and shortens backtraces like below: ``` WARN: Mastodon::UnexpectedResponseError: https://example.com/inbox returned code 523 WARN: app/workers/activitypub/delivery_worker.rb:48:in `block (3 levels) in perform_request' app/lib/request.rb:75:in `perform' app/workers/activitypub/delivery_worker.rb:47:in `block (2 levels) in perform_request' app/lib/request_pool.rb:53:in `use' app/lib/request_pool.rb:108:in `block (2 levels) in with' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/notifications.rb:170:in `instrument' app/lib/request_pool.rb:107:in `block in with' app/lib/connection_pool/shared_connection_pool.rb:21:in `block (2 levels) in with' app/lib/connection_pool/shared_connection_pool.rb:20:in `handle_interrupt' app/lib/connection_pool/shared_connection_pool.rb:20:in `block in with' app/lib/connection_pool/shared_connection_pool.rb:16:in `handle_interrupt' app/lib/connection_pool/shared_connection_pool.rb:16:in `with' app/lib/request_pool.rb:106:in `with' app/workers/activitypub/delivery_worker.rb:46:in `block in perform_request' vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:51:in `run_code' vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:42:in `run_yellow' vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:24:in `run' app/workers/activitypub/delivery_worker.rb:57:in `perform_request' app/workers/activitypub/delivery_worker.rb:25:in `perform' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:31:in `block in call' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/statsd/publisher.rb:27:in `statsd_time' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:30:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' app/lib/sidekiq_error_handler.rb:5:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/scout_apm-2.3.0.pre3/lib/scout_apm/background_job_integrations/sidekiq.rb:69:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-unique-jobs-6.0.18/lib/sidekiq_unique_jobs/server/middleware.rb:29:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:73:in `block in wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:72:in `wrap' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread' ``` ``` WARN: Stoplight::Error::RedLight: https://example.com/inbox WARN: vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:46:in `run_red' vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:25:in `run' app/workers/activitypub/delivery_worker.rb:57:in `perform_request' app/workers/activitypub/delivery_worker.rb:25:in `perform' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:31:in `block in call' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/statsd/publisher.rb:27:in `statsd_time' vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:30:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' app/lib/sidekiq_error_handler.rb:5:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/scout_apm-2.3.0.pre3/lib/scout_apm/background_job_integrations/sidekiq.rb:69:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-unique-jobs-6.0.18/lib/sidekiq_unique_jobs/server/middleware.rb:29:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:73:in `block in wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap' vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:72:in `wrap' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog' vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread' ``` --- app/lib/request.rb | 4 +++- app/workers/activitypub/delivery_worker.rb | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/lib/request.rb b/app/lib/request.rb index 42ccc6513..d82bbb075 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -59,7 +59,7 @@ class Request begin response = http_client.public_send(@verb, @url.to_s, @options.merge(headers: headers)) rescue => e - raise e.class, "#{e.message} on #{@url}", e.backtrace + raise e.class, "#{e.message} on #{@url}", e.backtrace[0] end begin @@ -73,6 +73,8 @@ class Request response.body_with_limit if http_client.persistent? yield response if block_given? + rescue => e + raise e.class, e.message, e.backtrace[0] ensure http_client.close unless http_client.persistent? end diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb index 5457d9d4b..196af4af1 100644 --- a/app/workers/activitypub/delivery_worker.rb +++ b/app/workers/activitypub/delivery_worker.rb @@ -50,9 +50,13 @@ class ActivityPub::DeliveryWorker end end - light.with_threshold(STOPLIGHT_FAILURE_THRESHOLD) - .with_cool_off_time(STOPLIGHT_COOLDOWN) - .run + begin + light.with_threshold(STOPLIGHT_FAILURE_THRESHOLD) + .with_cool_off_time(STOPLIGHT_COOLDOWN) + .run + rescue Stoplight::Error::RedLight => e + raise e.class, e.message, e.backtrace.first(3) + end end def failure_tracker From ea436b355bd844c86a4f4ddfd204b9bf15a1db6c Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 11 Jan 2020 02:15:25 +0100 Subject: [PATCH 088/207] Add support for linking XMPP URIs in toots (#12709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix wrong grouping in Twitter valid_url regex * Add support for xmpp URIs Fixes #9776 The difficult part is autolinking, because Twitter-text's extractor does some pretty ad-hoc stuff to find things that “look like” URLs, and XMPP URIs do not really match the assumptions of that lib, so it doesn't sound wise to try to shoehorn it into the existing regex. This is why I used a specific regex (very close, although slightly more permissive than the RFC), and a specific scan function (a simplified version of the generalized one from Twitter). * Remove leading “xmpp:” from auto-linked text --- app/lib/formatter.rb | 5 +-- app/lib/sanitize_config.rb | 2 +- config/initializers/twitter_regex.rb | 51 +++++++++++++++++++++++++++- spec/lib/formatter_spec.rb | 16 +++++++++ 4 files changed, 70 insertions(+), 4 deletions(-) diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 6ba327614..c771dcaaa 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -245,8 +245,9 @@ class Formatter end standard = Extractor.extract_entities_with_indices(text, options) + xmpp = Extractor.extract_xmpp_uris_with_indices(text, options) - Extractor.remove_overlapping_entities(special + standard) + Extractor.remove_overlapping_entities(special + standard + xmpp) end def link_to_url(entity, options = {}) @@ -284,7 +285,7 @@ class Formatter def link_html(url) url = Addressable::URI.parse(url).to_s - prefix = url.match(/\Ahttps?:\/\/(www\.)?/).to_s + prefix = url.match(/\A(https?:\/\/(www\.)?|xmpp:)/).to_s text = url[prefix.length, 30] suffix = url[prefix.length + 30..-1] cutoff = url[prefix.length..-1].length > 30 diff --git a/app/lib/sanitize_config.rb b/app/lib/sanitize_config.rb index 77045155e..e2480376e 100644 --- a/app/lib/sanitize_config.rb +++ b/app/lib/sanitize_config.rb @@ -2,7 +2,7 @@ class Sanitize module Config - HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', :relative].freeze + HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', 'xmpp', :relative].freeze CLASS_WHITELIST_TRANSFORMER = lambda do |env| node = env[:node] diff --git a/config/initializers/twitter_regex.rb b/config/initializers/twitter_regex.rb index 0ddbbee98..87815d458 100644 --- a/config/initializers/twitter_regex.rb +++ b/config/initializers/twitter_regex.rb @@ -29,7 +29,7 @@ module Twitter ( # $1 total match (#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character ( # $3 URL - ((https?|dat|dweb|ipfs|ipns|ssb|gopher):\/\/)? # $4 Protocol (optional) + ((?:https?|dat|dweb|ipfs|ipns|ssb|gopher):\/\/)? # $4 Protocol (optional) (#{REGEXEN[:valid_domain]}) # $5 Domain(s) (?::(#{REGEXEN[:valid_port_number]}))? # $6 Port number (optional) (/#{REGEXEN[:valid_url_path]}*)? # $7 URL Path and anchor @@ -37,5 +37,54 @@ module Twitter ) ) }iox + REGEXEN[:validate_nodeid] = /(?: + #{REGEXEN[:validate_url_unreserved]}| + #{REGEXEN[:validate_url_pct_encoded]}| + [!$()*+,;=] + )/iox + REGEXEN[:validate_resid] = /(?: + #{REGEXEN[:validate_url_unreserved]}| + #{REGEXEN[:validate_url_pct_encoded]}| + #{REGEXEN[:validate_url_sub_delims]} + )/iox + REGEXEN[:valid_xmpp_uri] = %r{ + ( # $1 total match + (#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character + ( # $3 URL + ((?:xmpp):) # $4 Protocol + (//#{REGEXEN[:validate_nodeid]}+@#{REGEXEN[:valid_domain]}/)? # $5 Authority (optional) + (#{REGEXEN[:validate_nodeid]}+@)? # $6 Username in path (optional) + (#{REGEXEN[:valid_domain]}) # $7 Domain in path + (/#{REGEXEN[:validate_resid]}+)? # $8 Resource in path (optional) + (\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]})? # $9 Query String + ) + ) + }iox + end + + module Extractor + # Extracts a list of all XMPP URIs included in the Tweet text along + # with the indices. If the text is nil or contains no + # XMPP URIs an empty array will be returned. + # + # If a block is given then it will be called for each XMPP URI. + def extract_xmpp_uris_with_indices(text, options = {}) # :yields: uri, start, end + return [] unless text && text.index(":") + urls = [] + + text.to_s.scan(Twitter::Regex[:valid_xmpp_uri]) do + valid_uri_match_data = $~ + + start_position = valid_uri_match_data.char_begin(3) + end_position = valid_uri_match_data.char_end(3) + + urls << { + :url => valid_uri_match_data[3], + :indices => [start_position, end_position] + } + end + urls.each{|url| yield url[:url], url[:indices].first, url[:indices].last} if block_given? + urls + end end end diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb index b8108a247..83be0a588 100644 --- a/spec/lib/formatter_spec.rb +++ b/spec/lib/formatter_spec.rb @@ -242,6 +242,22 @@ RSpec.describe Formatter do is_expected.to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ' end end + + context 'given a stand-alone xmpp: URI' do + let(:text) { 'xmpp:user@instance.com' } + + it 'matches the full URI' do + is_expected.to include 'href="xmpp:user@instance.com"' + end + end + + context 'given a an xmpp: URI with a query-string' do + let(:text) { 'please join xmpp:muc@instance.com?join right now' } + + it 'matches the full URI' do + is_expected.to include 'href="xmpp:muc@instance.com?join"' + end + end end describe '#format_spoiler' do From 5b9f01aec088ede54d82d8997be69af394c4eda3 Mon Sep 17 00:00:00 2001 From: koyu Date: Sat, 11 Jan 2020 03:32:25 +0100 Subject: [PATCH 089/207] Fix spelling mistake (#12817) --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 660d0a4e1..62f2226e3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -339,7 +339,7 @@ en: delete: Delete destroyed_msg: Successfully deleted e-mail domain from blacklist domain: Domain - empty: No e-mail domains currenly blacklisted. + empty: No e-mail domains currently blacklisted. new: create: Add domain title: New e-mail blacklist entry From 3b08535463029f45e3524ce2ccaea746eda15c57 Mon Sep 17 00:00:00 2001 From: Gomasy Date: Sat, 11 Jan 2020 14:41:37 +0900 Subject: [PATCH 090/207] Keep statuses bookmarked by local users in tootctl statuses remove (#12818) --- lib/mastodon/statuses_cli.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb index 74f15de5f..ecaac17e3 100644 --- a/lib/mastodon/statuses_cli.rb +++ b/lib/mastodon/statuses_cli.rb @@ -48,6 +48,8 @@ module Mastodon scope = scope.where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local OR statuses1.id >= ?))', max_id) # Skip statuses favourited by local users scope = scope.where('id NOT IN (SELECT favourites.status_id FROM favourites WHERE statuses.id = favourites.status_id AND favourites.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') + # Skip statuses bookmarked by local users + scope = scope.where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id AND bookmarks.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') unless options[:clean_followed] # Skip accounts followed by local accounts From 2a5dee0f08e431d90368db08dccdf87ef112163f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 19:51:04 +0900 Subject: [PATCH 091/207] Bump rqrcode from 0.10.1 to 1.1.2 (#12357) Bumps [rqrcode](https://github.com/whomwah/rqrcode) from 0.10.1 to 1.1.2. - [Release notes](https://github.com/whomwah/rqrcode/releases) - [Commits](https://github.com/whomwah/rqrcode/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index e4946115a..2ebea745d 100644 --- a/Gemfile +++ b/Gemfile @@ -81,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' diff --git a/Gemfile.lock b/Gemfile.lock index 5a881fe87..b70c59ad5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -536,8 +536,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) @@ -775,7 +777,7 @@ DEPENDENCIES 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) From c10ff359a2c4e1a24e04c80b1b9d46541efc1705 Mon Sep 17 00:00:00 2001 From: Shlee Date: Sat, 11 Jan 2020 18:53:36 +0800 Subject: [PATCH 092/207] Require nodejs 10.13 as minimum release. (#12791) * Update package.json * Update README.md --- README.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5c5ad17c0..44694b288 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Mastodon acts as an OAuth2 provider so 3rd party apps can use the REST and Strea - **PostgreSQL** 9.5+ - **Redis** - **Ruby** 2.4+ -- **Node.js** 8+ +- **Node.js** 10.13+ The repository includes deployment configurations for **Docker and docker-compose**, but also a few specific platforms like **Heroku**, **Scalingo**, and **Nanobox**. The [**stand-alone** installation guide](https://docs.joinmastodon.org/admin/install/) is available in the documentation. diff --git a/package.json b/package.json index 75972be45..48f375b23 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@tootsuite/mastodon", "license": "AGPL-3.0-or-later", "engines": { - "node": ">=8.12 <13" + "node": ">=10.13 <13" }, "scripts": { "postversion": "git push --tags", From 6f8f018e3ed7811998bf2cc10d1b6f0dad54dcef Mon Sep 17 00:00:00 2001 From: ysksn Date: Sat, 11 Jan 2020 19:55:33 +0900 Subject: [PATCH 093/207] Refactor StatusThreadingConcern (#9626) * Remove #filter_from_context? * Create scope Status.with_accounts Retrieving AR objects should be their model's scope --- app/models/concerns/status_threading_concern.rb | 12 ++---------- app/models/status.rb | 1 + 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/models/concerns/status_threading_concern.rb b/app/models/concerns/status_threading_concern.rb index 15eb695cd..a0ead1995 100644 --- a/app/models/concerns/status_threading_concern.rb +++ b/app/models/concerns/status_threading_concern.rb @@ -81,12 +81,12 @@ module StatusThreadingConcern end def find_statuses_from_tree_path(ids, account, promote: false) - statuses = statuses_with_accounts(ids).to_a + statuses = Status.with_accounts(ids).to_a account_ids = statuses.map(&:account_id).uniq domains = statuses.map(&:account_domain).compact.uniq relations = relations_map_for_account(account, account_ids, domains) - statuses.reject! { |status| filter_from_context?(status, account, relations) } + statuses.reject! { |status| StatusFilter.new(status, account, relations).filtered? } # Order ancestors/descendants by tree path statuses.sort_by! { |status| ids.index(status.id) } @@ -125,12 +125,4 @@ module StatusThreadingConcern domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id), } end - - def statuses_with_accounts(ids) - Status.where(id: ids).includes(:account) - end - - def filter_from_context?(status, account, relations) - StatusFilter.new(status, account, relations).filtered? - end end diff --git a/app/models/status.rb b/app/models/status.rb index 670109762..1e630196b 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -83,6 +83,7 @@ class Status < ApplicationRecord scope :remote, -> { where(local: false).where.not(uri: nil) } scope :local, -> { where(local: true).or(where(uri: nil)) } + scope :with_accounts, ->(ids) { where(id: ids).includes(:account) } scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') } scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') } scope :with_public_visibility, -> { where(visibility: :public) } From 6ecc16de918494d295c080c448e719636352bff9 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 20:39:35 +0900 Subject: [PATCH 094/207] Bump file-loader from 4.2.0 to 5.0.2 (#12521) Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.2.0 to 5.0.2. - [Release notes](https://github.com/webpack-contrib/file-loader/releases) - [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.2.0...v5.0.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 48f375b23..2726fd1c0 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "escape-html": "^1.0.3", "exif-js": "^2.3.0", "express": "^4.17.1", - "file-loader": "^4.2.0", + "file-loader": "^5.0.2", "font-awesome": "^4.7.0", "glob": "^7.1.6", "history": "^4.10.1", diff --git a/yarn.lock b/yarn.lock index ed0e943ba..807f80a4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4315,13 +4315,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" - integrity sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ== +file-loader@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-5.0.2.tgz#7f3d8b4ac85a5e8df61338cfec95d7405f971caa" + integrity sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg== dependencies: loader-utils "^1.2.3" - schema-utils "^2.0.0" + schema-utils "^2.5.0" file-type@^10.5.0: version "10.11.0" @@ -9409,7 +9409,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.0, schema-utils@^2.6.1: +schema-utils@^2.1.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== From 57e2833f6a34c78c933b2941305eac8995c115e8 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 11 Jan 2020 21:36:53 +0100 Subject: [PATCH 095/207] Remove dependency on OStatus2 gem (#12822) --- Gemfile | 1 - Gemfile.lock | 4 ---- app/models/account.rb | 4 ---- spec/models/account_spec.rb | 7 ------- 4 files changed, 16 deletions(-) diff --git a/Gemfile b/Gemfile index 2ebea745d..f0adf610c 100644 --- a/Gemfile +++ b/Gemfile @@ -68,7 +68,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' diff --git a/Gemfile.lock b/Gemfile.lock index b70c59ad5..650d5ef85 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -409,10 +409,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) diff --git a/app/models/account.rb b/app/models/account.rb index feaf273c1..1e8abe6ec 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -314,10 +314,6 @@ class Account < ApplicationRecord self.fields = tmp end - def subscription(webhook_url) - @subscription ||= OStatus2::Subscription.new(remote_url, secret: secret, webhook: webhook_url, hub: hub_url) - end - def save_with_optional_media! save! rescue ActiveRecord::RecordInvalid diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 3cca9b343..4266122b2 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -215,13 +215,6 @@ RSpec.describe Account, type: :model do end end - describe '#subscription' do - it 'returns an OStatus subscription' do - account = Fabricate(:account) - expect(account.subscription('')).to be_instance_of OStatus2::Subscription - end - end - describe '#object_type' do it 'is always a person' do account = Fabricate(:account) From 10f1450bba228502ca897338d7ad883d6ed7ed1f Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 11 Jan 2020 21:38:02 +0100 Subject: [PATCH 096/207] Fix ruby 2.7 warnings about keyword parameters (#12824) --- app/helpers/routing_helper.rb | 4 ++-- lib/paperclip/blurhash_transcoder.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/routing_helper.rb b/app/helpers/routing_helper.rb index 998b7566f..fb24a1b28 100644 --- a/app/helpers/routing_helper.rb +++ b/app/helpers/routing_helper.rb @@ -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 diff --git a/lib/paperclip/blurhash_transcoder.rb b/lib/paperclip/blurhash_transcoder.rb index 08925a6dd..5c33c98b0 100644 --- a/lib/paperclip/blurhash_transcoder.rb +++ b/lib/paperclip/blurhash_transcoder.rb @@ -8,7 +8,7 @@ module Paperclip pixels = convert(':source RGB:-', source: File.expand_path(@file.path)).unpack('C*') geometry = options.fetch(:file_geometry_parser).from_file(@file) - attachment.instance.blurhash = Blurhash.encode(geometry.width, geometry.height, pixels, options[:blurhash] || {}) + attachment.instance.blurhash = Blurhash.encode(geometry.width, geometry.height, pixels, **(options[:blurhash] || {})) @file end From 998ba16f13028ab166b14e15b08c8245f4044d28 Mon Sep 17 00:00:00 2001 From: mayaeh Date: Sun, 12 Jan 2020 05:49:59 +0900 Subject: [PATCH 097/207] Update lockfile for #12800 (#12825) --- Gemfile.lock | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 650d5ef85..656425a91 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -627,6 +628,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) @@ -707,6 +709,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) @@ -794,6 +797,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) From c6287d58552f5036c8d089561966794017ab9ee8 Mon Sep 17 00:00:00 2001 From: mayaeh Date: Sun, 12 Jan 2020 11:13:01 +0900 Subject: [PATCH 098/207] Remove ostatus2 gem from lockfile (#12826) --- Gemfile.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 656425a91..a14b6ec93 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -749,7 +749,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) From 5dcca33c561ebeca9cf12eba8a39efee0dd484d0 Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Sun, 12 Jan 2020 20:16:20 +0700 Subject: [PATCH 099/207] Correct margins for heading actions (#12797) This commit changes margins of the page heading header, actions in order to fix displaying with low screen size and long enough header. It is working by giving heading and action buttons margin from top and then negating it in parent element. Whenever flex item wrap, the "negated" margin will be applied again, providing us nice space between header and action buttons. This commit also adds a margin to header, so it does not clamp with the heading actions and they wrap a little earlier (15px ahead). As well as the left margin is not anymore applied to the first action. --- app/javascript/styles/mastodon/admin.scss | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 9bd030964..89c45cab6 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -186,17 +186,22 @@ $content-width: 840px; padding-bottom: 40px; border-bottom: 1px solid lighten($ui-base-color, 8%); - margin-bottom: 40px; + + margin: -15px -15px 40px 0; flex-wrap: wrap; align-items: center; - justify-content: space-between; + & > * { + margin-top: 15px; + margin-right: 15px; + } + &-actions { display: inline-flex; - & > * { + & > :not(:first-child) { margin-left: 5px; } } From 7da54001fe21d1fd10ede5ac78e5c76f25afc08e Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Sun, 12 Jan 2020 20:16:46 +0700 Subject: [PATCH 100/207] Avoid using uppercase text-transform (#12684) One user suggested that the loading indicator should not be written ALL CAPS, at first it was thought this change is very minor, but then a few other people asked agreed on the same thing - variant without caps looks better. It may be related that it is harder to read or just looks too "catchy". Moreover, I asked @rf@mastodonsocial.ru community what they think of that and 82% of 22 people agreed on this change. This commit removes all usage of text-transform: uppercase, where the font size specified, it changes the value by one pixel larger, so we still keeping the "designed" size of the labels but without using CAPS. --- app/javascript/styles/mastodon/_mixins.scss | 3 +-- app/javascript/styles/mastodon/about.scss | 3 +-- app/javascript/styles/mastodon/accounts.scss | 1 - app/javascript/styles/mastodon/admin.scss | 10 +++---- .../styles/mastodon/components.scss | 27 +++++++------------ app/javascript/styles/mastodon/footer.scss | 1 - app/javascript/styles/mastodon/forms.scss | 2 -- app/javascript/styles/mastodon/widgets.scss | 7 ++--- 8 files changed, 16 insertions(+), 38 deletions(-) diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss index 68cad0fde..4e3e1434a 100644 --- a/app/javascript/styles/mastodon/_mixins.scss +++ b/app/javascript/styles/mastodon/_mixins.scss @@ -34,9 +34,8 @@ box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); h4 { - text-transform: uppercase; color: $light-text-color; - font-size: 13px; + font-size: 14px; font-weight: 500; margin-bottom: 10px; } diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index cf16b54ac..201235187 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -719,9 +719,8 @@ $small-breakpoint: 960px; h4 { padding: 10px; - text-transform: uppercase; font-weight: 700; - font-size: 13px; + font-size: 14px; color: $darker-text-color; } diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index 5dc067f0e..a1681afe6 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -129,7 +129,6 @@ .older, .newer { - text-transform: uppercase; color: $secondary-text-color; } diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 89c45cab6..7f22f58a1 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -232,8 +232,7 @@ $content-width: 840px; } h4 { - text-transform: uppercase; - font-size: 13px; + font-size: 14px; font-weight: 700; color: $darker-text-color; padding-bottom: 8px; @@ -408,8 +407,7 @@ body, strong { font-weight: 500; - text-transform: uppercase; - font-size: 12px; + font-size: 13px; @each $lang in $cjk-langs { &:lang(#{$lang}) { @@ -422,8 +420,7 @@ body, display: inline-block; color: $darker-text-color; text-decoration: none; - text-transform: uppercase; - font-size: 12px; + font-size: 13px; font-weight: 500; border-bottom: 2px solid $ui-base-color; @@ -757,7 +754,6 @@ a.name-tag, flex: 0 0 auto; font-weight: 500; color: $darker-text-color; - text-transform: uppercase; text-align: right; a { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 7121030d2..94671c350 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -33,7 +33,7 @@ cursor: pointer; display: inline-block; font-family: inherit; - font-size: 14px; + font-size: 15px; font-weight: 500; height: 36px; letter-spacing: 0; @@ -42,7 +42,6 @@ padding: 0 16px; position: relative; text-align: center; - text-transform: uppercase; text-decoration: none; text-overflow: ellipsis; transition: all 100ms ease-in; @@ -887,9 +886,8 @@ border: 0; color: $inverted-text-color; font-weight: 700; - font-size: 11px; + font-size: 12px; padding: 0 6px; - text-transform: uppercase; line-height: 20px; cursor: pointer; vertical-align: middle; @@ -1411,8 +1409,7 @@ a .account__avatar { & > span { display: block; - text-transform: uppercase; - font-size: 11px; + font-size: 12px; color: $darker-text-color; } @@ -2760,9 +2757,8 @@ a.account__display-name { background: $ui-base-color; color: $dark-text-color; padding: 8px 20px; - font-size: 12px; + font-size: 13px; font-weight: 500; - text-transform: uppercase; cursor: default; } @@ -2827,8 +2823,7 @@ a.account__display-name { margin-top: 10px; h4 { - font-size: 12px; - text-transform: uppercase; + font-size: 13px; color: $darker-text-color; padding: 10px; font-weight: 500; @@ -3350,9 +3345,8 @@ a.status-card.compact:hover { .loading-indicator { color: $dark-text-color; - font-size: 12px; + font-size: 13px; font-weight: 400; - text-transform: uppercase; overflow: visible; position: absolute; top: 50%; @@ -3716,8 +3710,7 @@ a.status-card.compact:hover { display: block; vertical-align: top; background-color: $base-overlay-background; - text-transform: uppercase; - font-size: 11px; + font-size: 12px; font-weight: 500; padding: 4px; border-radius: 4px; @@ -3969,8 +3962,7 @@ a.status-card.compact:hover { } span { - font-size: 12px; - text-transform: uppercase; + font-size: 13px; font-weight: 500; display: block; } @@ -4569,8 +4561,7 @@ a.status-card.compact:hover { font-weight: 500; color: $inverted-text-color; margin-bottom: 5px; - text-transform: uppercase; - font-size: 12px; + font-size: 13px; } &__case { diff --git a/app/javascript/styles/mastodon/footer.scss b/app/javascript/styles/mastodon/footer.scss index 00d290883..f016248ba 100644 --- a/app/javascript/styles/mastodon/footer.scss +++ b/app/javascript/styles/mastodon/footer.scss @@ -94,7 +94,6 @@ } h4 { - text-transform: uppercase; font-weight: 700; margin-bottom: 8px; color: $darker-text-color; diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index a0478bf7f..8965ce675 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -414,7 +414,6 @@ code { line-height: inherit; height: auto; padding: 10px; - text-transform: uppercase; text-decoration: none; text-align: center; box-sizing: border-box; @@ -657,7 +656,6 @@ code { a { color: $highlight-text-color; - text-transform: uppercase; text-decoration: none; font-weight: 700; diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index ca050a8d9..90e1581bb 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -76,9 +76,8 @@ h4 { padding: 10px; - text-transform: uppercase; font-weight: 700; - font-size: 13px; + font-size: 14px; color: $darker-text-color; } @@ -139,9 +138,8 @@ h4 { padding: 10px; - text-transform: uppercase; font-weight: 700; - font-size: 13px; + font-size: 14px; color: $darker-text-color; } @@ -408,7 +406,6 @@ thead th { text-align: center; - text-transform: uppercase; color: $darker-text-color; font-weight: 700; padding: 10px; From d386d89179ccc2b86894a8639b658f4ede24c5f6 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 12 Jan 2020 14:17:03 +0100 Subject: [PATCH 101/207] Fix invalid votes from the API being accepted (#12601) * Fix invalid votes from the API being accepted Fixes #12556 - Ensure `choice` is an integer instead of silently converting to 0 - Ensure `choice` corresponds to an actual choice of the poll * Please CodeClimate --- app/services/vote_service.rb | 2 +- app/validators/vote_validator.rb | 8 ++++++++ config/locales/en.yml | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb index cb7dce6e8..19e453332 100644 --- a/app/services/vote_service.rb +++ b/app/services/vote_service.rb @@ -20,7 +20,7 @@ class VoteService < BaseService ApplicationRecord.transaction do @choices.each do |choice| - @votes << @poll.votes.create!(account: @account, choice: choice) + @votes << @poll.votes.create!(account: @account, choice: Integer(choice)) end end else diff --git a/app/validators/vote_validator.rb b/app/validators/vote_validator.rb index 2e1818bdb..b1692562d 100644 --- a/app/validators/vote_validator.rb +++ b/app/validators/vote_validator.rb @@ -4,10 +4,18 @@ class VoteValidator < ActiveModel::Validator def validate(vote) vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll.expired? + vote.errors.add(:base, I18n.t('polls.errors.invalid_choice')) if invalid_choice?(vote) + if vote.poll.multiple? && vote.poll.votes.where(account: vote.account, choice: vote.choice).exists? vote.errors.add(:base, I18n.t('polls.errors.already_voted')) elsif !vote.poll.multiple? && vote.poll.votes.where(account: vote.account).exists? vote.errors.add(:base, I18n.t('polls.errors.already_voted')) end end + + private + + def invalid_choice?(vote) + vote.choice.negative? || vote.choice >= vote.poll.options.size + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 62f2226e3..d768cef33 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -922,6 +922,7 @@ en: duration_too_long: is too far into the future duration_too_short: is too soon expired: The poll has already ended + invalid_choice: The chosen vote option does not exist over_character_limit: cannot be longer than %{max} characters each too_few_options: must have more than one item too_many_options: can't contain more than %{max} items From a369d1ca644b7d6f3633b9036533a27969fc6aa6 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 12 Jan 2020 15:18:03 +0100 Subject: [PATCH 102/207] New Crowdin translations (#12378) * New translations simple_form.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (French) [ci skip] * New translations devise.en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations devise.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.json (Basque) [ci skip] * New translations activerecord.en.yml (Basque) [ci skip] * New translations devise.en.yml (Basque) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations activerecord.en.yml (Tamil) [ci skip] * New translations devise.en.yml (Tamil) [ci skip] * New translations devise.en.yml (Tamil) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations activerecord.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations devise.en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations activerecord.en.yml (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations devise.en.yml (Catalan) [ci skip] * New translations en.json (Basque) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations doorkeeper.en.yml (Korean) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (German) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations doorkeeper.en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations doorkeeper.en.yml (Indonesian) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations doorkeeper.en.yml (Kazakh) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations doorkeeper.en.yml (Tamil) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations doorkeeper.en.yml (Arabic) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations activerecord.en.yml (Icelandic) [ci skip] * New translations devise.en.yml (Icelandic) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Icelandic) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations doorkeeper.en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Spanish) [ci skip] * i18n-tasks normalize * New translations en.yml (Thai) [ci skip] * New translations en.yml (Korean) [ci skip] * yarn manage:translations * New translations en.yml (Thai) [ci skip] --- app/javascript/mastodon/locales/ar.json | 27 +- app/javascript/mastodon/locales/ast.json | 167 +-- app/javascript/mastodon/locales/bg.json | 15 + app/javascript/mastodon/locales/bn.json | 69 +- app/javascript/mastodon/locales/br.json | 65 +- app/javascript/mastodon/locales/ca.json | 97 +- app/javascript/mastodon/locales/co.json | 15 + app/javascript/mastodon/locales/cs.json | 229 ++-- app/javascript/mastodon/locales/cy.json | 15 + app/javascript/mastodon/locales/da.json | 15 + app/javascript/mastodon/locales/de.json | 19 +- .../mastodon/locales/defaultMessages.json | 12 + app/javascript/mastodon/locales/el.json | 17 +- app/javascript/mastodon/locales/en.json | 3 + app/javascript/mastodon/locales/eo.json | 17 +- app/javascript/mastodon/locales/es-AR.json | 17 +- app/javascript/mastodon/locales/es.json | 131 +- app/javascript/mastodon/locales/et.json | 15 + app/javascript/mastodon/locales/eu.json | 25 +- app/javascript/mastodon/locales/fa.json | 559 ++++---- app/javascript/mastodon/locales/fi.json | 15 + app/javascript/mastodon/locales/fr.json | 25 +- app/javascript/mastodon/locales/ga.json | 15 + app/javascript/mastodon/locales/gl.json | 577 ++++---- app/javascript/mastodon/locales/he.json | 15 + app/javascript/mastodon/locales/hi.json | 15 + app/javascript/mastodon/locales/hr.json | 15 + app/javascript/mastodon/locales/hu.json | 15 + app/javascript/mastodon/locales/hy.json | 267 ++-- app/javascript/mastodon/locales/id.json | 21 +- app/javascript/mastodon/locales/io.json | 15 + app/javascript/mastodon/locales/is.json | 438 ++++++ app/javascript/mastodon/locales/it.json | 17 +- app/javascript/mastodon/locales/ja.json | 19 +- app/javascript/mastodon/locales/ka.json | 17 +- app/javascript/mastodon/locales/kab.json | 438 ++++++ app/javascript/mastodon/locales/kk.json | 15 + app/javascript/mastodon/locales/kn.json | 15 + app/javascript/mastodon/locales/ko.json | 29 +- app/javascript/mastodon/locales/lt.json | 15 + app/javascript/mastodon/locales/lv.json | 15 + app/javascript/mastodon/locales/mk.json | 15 + app/javascript/mastodon/locales/ml.json | 285 ++-- app/javascript/mastodon/locales/mr.json | 15 + app/javascript/mastodon/locales/ms.json | 15 + app/javascript/mastodon/locales/nl.json | 19 +- app/javascript/mastodon/locales/nn.json | 611 ++++----- app/javascript/mastodon/locales/no.json | 325 ++--- app/javascript/mastodon/locales/oc.json | 17 +- app/javascript/mastodon/locales/pl.json | 15 + app/javascript/mastodon/locales/pt-BR.json | 405 +++--- app/javascript/mastodon/locales/pt-PT.json | 19 +- app/javascript/mastodon/locales/ro.json | 15 + app/javascript/mastodon/locales/ru.json | 197 +-- app/javascript/mastodon/locales/sk.json | 33 +- app/javascript/mastodon/locales/sl.json | 15 + app/javascript/mastodon/locales/sq.json | 15 + app/javascript/mastodon/locales/sr-Latn.json | 15 + app/javascript/mastodon/locales/sr.json | 15 + app/javascript/mastodon/locales/sv.json | 37 +- app/javascript/mastodon/locales/ta.json | 69 +- app/javascript/mastodon/locales/te.json | 15 + app/javascript/mastodon/locales/th.json | 63 +- app/javascript/mastodon/locales/tr.json | 21 +- app/javascript/mastodon/locales/uk.json | 15 + app/javascript/mastodon/locales/ur.json | 273 ++-- app/javascript/mastodon/locales/vi.json | 438 ++++++ .../mastodon/locales/whitelist_is.json | 2 + .../mastodon/locales/whitelist_kab.json | 2 + .../mastodon/locales/whitelist_vi.json | 2 + app/javascript/mastodon/locales/zh-CN.json | 23 +- app/javascript/mastodon/locales/zh-HK.json | 305 +++-- app/javascript/mastodon/locales/zh-TW.json | 31 +- config/locales/activerecord.ast.yml | 3 + config/locales/activerecord.ca.yml | 2 +- config/locales/activerecord.is.yml | 17 + config/locales/activerecord.kab.yml | 12 + config/locales/activerecord.ml.yml | 11 + config/locales/activerecord.nn.yml | 16 + config/locales/activerecord.no.yml | 4 + config/locales/activerecord.pt-BR.yml | 4 +- config/locales/activerecord.pt-PT.yml | 4 + config/locales/activerecord.ta.yml | 6 +- config/locales/activerecord.vi.yml | 17 + config/locales/ar.yml | 48 +- config/locales/ast.yml | 204 ++- config/locales/bg.yml | 1 - config/locales/br.yml | 5 + config/locales/ca.yml | 150 ++- config/locales/co.yml | 32 +- config/locales/cs.yml | 566 ++++---- config/locales/cy.yml | 33 +- config/locales/da.yml | 67 +- config/locales/de.yml | 26 +- config/locales/devise.ar.yml | 3 + config/locales/devise.ast.yml | 31 +- config/locales/devise.ca.yml | 26 +- config/locales/devise.cs.yml | 74 +- config/locales/devise.da.yml | 12 +- config/locales/devise.de.yml | 4 +- config/locales/devise.es.yml | 20 +- config/locales/devise.gl.yml | 144 +- config/locales/devise.is.yml | 98 ++ config/locales/devise.kab.yml | 58 + config/locales/devise.kn.yml | 4 + config/locales/devise.ml.yml | 24 + config/locales/devise.nn.yml | 93 ++ config/locales/devise.no.yml | 4 + config/locales/devise.pt-PT.yml | 15 + config/locales/devise.ru.yml | 44 +- config/locales/devise.sk.yml | 2 + config/locales/devise.sv.yml | 18 +- config/locales/devise.ta.yml | 14 +- config/locales/devise.th.yml | 43 +- config/locales/devise.uk.yml | 1 + config/locales/devise.ur.yml | 4 + config/locales/devise.vi.yml | 97 ++ config/locales/devise.zh-CN.yml | 10 +- config/locales/devise.zh-TW.yml | 20 +- config/locales/doorkeeper.ar.yml | 3 + config/locales/doorkeeper.ast.yml | 32 +- config/locales/doorkeeper.ca.yml | 13 +- config/locales/doorkeeper.co.yml | 3 + config/locales/doorkeeper.cs.yml | 43 +- config/locales/doorkeeper.cy.yml | 2 + config/locales/doorkeeper.da.yml | 4 +- config/locales/doorkeeper.de.yml | 3 + config/locales/doorkeeper.el.yml | 3 + config/locales/doorkeeper.en.yml | 1 - config/locales/doorkeeper.eo.yml | 5 +- config/locales/doorkeeper.es-AR.yml | 3 + config/locales/doorkeeper.es.yml | 5 +- config/locales/doorkeeper.et.yml | 3 + config/locales/doorkeeper.eu.yml | 3 + config/locales/doorkeeper.fa.yml | 49 +- config/locales/doorkeeper.fr.yml | 32 +- config/locales/doorkeeper.gl.yml | 3 + config/locales/doorkeeper.hu.yml | 2 + config/locales/doorkeeper.id.yml | 3 + config/locales/doorkeeper.is.yml | 140 ++ config/locales/doorkeeper.it.yml | 3 + config/locales/doorkeeper.ja.yml | 3 + config/locales/doorkeeper.kab.yml | 104 ++ config/locales/doorkeeper.kk.yml | 3 + config/locales/doorkeeper.ko.yml | 3 + config/locales/doorkeeper.ml.yml | 28 + config/locales/doorkeeper.nl.yml | 30 +- config/locales/doorkeeper.nn.yml | 149 +++ config/locales/doorkeeper.no.yml | 32 + config/locales/doorkeeper.oc.yml | 2 + config/locales/doorkeeper.pt-BR.yml | 81 +- config/locales/doorkeeper.pt-PT.yml | 33 + config/locales/doorkeeper.ru.yml | 29 +- config/locales/doorkeeper.sk.yml | 2 + config/locales/doorkeeper.sv.yml | 11 +- config/locales/doorkeeper.ta.yml | 1 + config/locales/doorkeeper.th.yml | 9 +- config/locales/doorkeeper.tr.yml | 3 + config/locales/doorkeeper.vi.yml | 150 +++ config/locales/doorkeeper.zh-CN.yml | 16 +- config/locales/doorkeeper.zh-HK.yml | 31 + config/locales/doorkeeper.zh-TW.yml | 2 + config/locales/el.yml | 51 +- config/locales/en_GB.yml | 3 + config/locales/eo.yml | 68 +- config/locales/es-AR.yml | 30 +- config/locales/es.yml | 191 +-- config/locales/et.yml | 34 +- config/locales/eu.yml | 26 +- config/locales/fa.yml | 100 +- config/locales/fi.yml | 3 +- config/locales/fr.yml | 36 +- config/locales/gl.yml | 511 +++---- config/locales/he.yml | 1 - config/locales/hr.yml | 1 - config/locales/hu.yml | 25 +- config/locales/hy.yml | 15 + config/locales/id.yml | 83 +- config/locales/io.yml | 1 - config/locales/is.yml | 1151 ++++++++++++++++ config/locales/it.yml | 33 +- config/locales/ja.yml | 22 +- config/locales/ka.yml | 1 - config/locales/kab.yml | 433 ++++++ config/locales/kk.yml | 13 +- config/locales/ko.yml | 57 +- config/locales/lt.yml | 1 - config/locales/ml.yml | 42 + config/locales/nl.yml | 20 +- config/locales/nn.yml | 1169 ++++++++++++++++- config/locales/no.yml | 595 ++++++++- config/locales/oc.yml | 16 +- config/locales/pl.yml | 9 +- config/locales/pt-BR.yml | 878 +++++++------ config/locales/pt-PT.yml | 312 ++++- config/locales/ro.yml | 1 - config/locales/ru.yml | 338 ++--- config/locales/simple_form.ar.yml | 8 + config/locales/simple_form.ast.yml | 66 +- config/locales/simple_form.ca.yml | 20 +- config/locales/simple_form.cs.yml | 74 +- config/locales/simple_form.da.yml | 20 +- config/locales/simple_form.de.yml | 2 +- config/locales/simple_form.el.yml | 28 +- config/locales/simple_form.en.yml | 16 +- config/locales/simple_form.eo.yml | 5 +- config/locales/simple_form.es.yml | 40 +- config/locales/simple_form.fr.yml | 8 +- config/locales/simple_form.gl.yml | 22 +- config/locales/simple_form.id.yml | 3 + config/locales/simple_form.is.yml | 134 ++ config/locales/simple_form.ja.yml | 16 +- config/locales/simple_form.kab.yml | 62 + config/locales/simple_form.ml.yml | 8 + config/locales/simple_form.nl.yml | 16 +- config/locales/simple_form.nn.yml | 144 ++ config/locales/simple_form.no.yml | 82 +- config/locales/simple_form.pt-BR.yml | 154 +-- config/locales/simple_form.pt-PT.yml | 38 + config/locales/simple_form.ru.yml | 100 +- config/locales/simple_form.sk.yml | 3 + config/locales/simple_form.sv.yml | 16 +- config/locales/simple_form.th.yml | 41 +- config/locales/simple_form.vi.yml | 171 +++ config/locales/simple_form.zh-CN.yml | 36 +- config/locales/simple_form.zh-HK.yml | 56 + config/locales/simple_form.zh-TW.yml | 1 + config/locales/sk.yml | 33 +- config/locales/sl.yml | 1 - config/locales/sq.yml | 1 - config/locales/sr-Latn.yml | 1 - config/locales/sr.yml | 1 - config/locales/sv.yml | 139 +- config/locales/ta.yml | 173 +++ config/locales/th.yml | 149 ++- config/locales/tr.yml | 29 +- config/locales/uk.yml | 51 +- config/locales/vi.yml | 1113 ++++++++++++++++ config/locales/zh-CN.yml | 114 +- config/locales/zh-HK.yml | 133 +- config/locales/zh-TW.yml | 32 +- 241 files changed, 15342 insertions(+), 4343 deletions(-) create mode 100644 app/javascript/mastodon/locales/is.json create mode 100644 app/javascript/mastodon/locales/kab.json create mode 100644 app/javascript/mastodon/locales/vi.json create mode 100644 app/javascript/mastodon/locales/whitelist_is.json create mode 100644 app/javascript/mastodon/locales/whitelist_kab.json create mode 100644 app/javascript/mastodon/locales/whitelist_vi.json create mode 100644 config/locales/activerecord.is.yml create mode 100644 config/locales/activerecord.kab.yml create mode 100644 config/locales/activerecord.vi.yml create mode 100644 config/locales/devise.is.yml create mode 100644 config/locales/devise.kab.yml create mode 100644 config/locales/devise.vi.yml create mode 100644 config/locales/doorkeeper.is.yml create mode 100644 config/locales/doorkeeper.kab.yml create mode 100644 config/locales/doorkeeper.vi.yml create mode 100644 config/locales/is.yml create mode 100644 config/locales/kab.yml create mode 100644 config/locales/simple_form.is.yml create mode 100644 config/locales/simple_form.kab.yml create mode 100644 config/locales/simple_form.vi.yml create mode 100644 config/locales/vi.yml diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index e65c81e64..dc4b8ce76 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -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": "ملء الشاشة", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 5145a6579..ba344e7ea 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -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", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 2ec155362..d980df27b 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -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", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 5cf5f7a76..ed1a92dd2 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -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": "পূর্ণ পর্দা করতে", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index db07f1aba..89ea5043e 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -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", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 396e4a325..1557d8460 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -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 @@ "search_popout.search_format": "Format de cerca avançada", "search_popout.tips.full_text": "Text simple recupera publicacions que has escrit, les marcades com a favorites, les impulsades o en les que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.", "search_popout.tips.hashtag": "etiqueta", - "search_popout.tips.status": "estat", + "search_popout.tips.status": "tut", "search_popout.tips.text": "El text simple retorna coincidències amb els noms de visualització, els noms d'usuari i les etiquetes", "search_popout.tips.user": "usuari", "search_results.accounts": "Gent", "search_results.hashtags": "Etiquetes", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "La cerca de toots pel seu contingut no està habilitada en aquest servidor Mastodon.", + "search_results.statuses": "Barritades", + "search_results.statuses_fts_disabled": "La cerca de tuts pel seu contingut no està habilitada en aquest servidor Mastodon.", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "status.admin_account": "Obre l'interfície de moderació per a @{name}", - "status.admin_status": "Obre aquest toot a la interfície de moderació", + "status.admin_status": "Obre aquest tut a la interfície de moderació", "status.block": "Bloqueja @{name}", + "status.bookmark": "Marcador", "status.cancel_reblog_private": "Desfer l'impuls", "status.cannot_reblog": "Aquesta publicació no pot ser impulsada", - "status.copy": "Copia l'enllaç al toot", + "status.copy": "Copia l'enllaç al tut", "status.delete": "Esborrar", "status.detailed_status": "Visualització detallada de la conversa", "status.direct": "Missatge directe @{name}", @@ -361,13 +372,14 @@ "status.mute_conversation": "Silenciar conversació", "status.open": "Ampliar aquest estat", "status.pin": "Fixat en el perfil", - "status.pinned": "Toot fixat", + "status.pinned": "Tut fixat", "status.read_more": "Llegir més", "status.reblog": "Impuls", "status.reblog_private": "Impulsar a l'audiència original", "status.reblogged_by": "{name} ha impulsat", - "status.reblogs.empty": "Encara ningú no ha impulsat aquest toot. Quan algú ho faci, apareixeran aquí.", + "status.reblogs.empty": "Encara ningú no ha impulsat aquest tut. Quan algú ho faci, apareixeran aquí.", "status.redraft": "Esborrar i reescriure", + "status.remove_bookmark": "Suprimeix el marcador", "status.reply": "Respondre", "status.replyAll": "Respondre al tema", "status.report": "Informar sobre @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "S'ha superat el límit de càrrega d'arxius.", "upload_error.poll": "No es permet l'enviament de fitxers en les enquestes.", + "upload_form.audio_description": "Descriviu per a les persones amb pèrdua auditiva", "upload_form.description": "Descriure els problemes visuals", "upload_form.edit": "Edita", "upload_form.undo": "Esborra", + "upload_form.video_description": "Descriu per a les persones amb pèrdua auditiva o deficiència visual", "upload_modal.analyzing_picture": "Analitzant imatge…", "upload_modal.apply": "Aplica", "upload_modal.description_placeholder": "Uns salts ràpids de guineu marró sobre el gos gandul", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Previsualitza ({ratio})", "upload_progress.label": "Pujant...", "video.close": "Tancar el vídeo", + "video.download": "Descarrega l’arxiu", "video.exit_fullscreen": "Sortir de pantalla completa", "video.expand": "Ampliar el vídeo", "video.fullscreen": "Pantalla completa", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 6c680f13f..9ec566d54 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Aghjunghje o toglie da e liste", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Bluccà @{name}", "account.block_domain": "Piattà tuttu da {domain}", "account.blocked": "Bluccatu", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "C'hè statu un prublemu caricandu st'elementu.", "bundle_modal_error.retry": "Pruvà torna", "column.blocks": "Utilizatori bluccati", + "column.bookmarks": "Segnalibri", "column.community": "Linea pubblica lucale", "column.direct": "Missaghji diretti", "column.directory": "Percorre i prufili", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Durata di u scandagliu", "compose_form.poll.option_placeholder": "Scelta {number}", "compose_form.poll.remove_option": "Toglie sta scelta", + "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": "Indicà u media cum'è sensibile", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Nisun statutu quì!", "empty_column.account_unavailable": "Prufile micca dispunibule", "empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.", + "empty_column.bookmarked_statuses": "Ùn avete manc'un segnalibru. Quandu aghjunghjerate unu, sarà mustratu quì.", "empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!", "empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.", "empty_column.domain_blocks": "Ùn c'hè manc'un duminiu bluccatu avà.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "per apre a lista di l'utilizatori piattati", "keyboard_shortcuts.my_profile": "per apre u vostru prufile", "keyboard_shortcuts.notifications": "per apre a culonna di nutificazione", + "keyboard_shortcuts.open_media": "per apre i media", "keyboard_shortcuts.pinned": "per apre a lista di statuti puntarulati", "keyboard_shortcuts.profile": "per apre u prufile di l'autore", "keyboard_shortcuts.reply": "risponde", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?", "navigation_bar.apps": "Applicazione per u telefuninu", "navigation_bar.blocks": "Utilizatori bluccati", + "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Linea pubblica lucale", "navigation_bar.compose": "Scrive un novu statutu", "navigation_bar.direct": "Missaghji diretti", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sicurità", "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti", "notification.follow": "{name} v'hà seguitatu", + "notification.follow_request": "{name} vole abbunassi à u vostru contu", "notification.mention": "{name} v'hà mintuvatu", + "notification.own_poll": "U vostru scandagliu hè compiu", "notification.poll": "Un scandagliu induve avete vutatu hè finitu", "notification.reblog": "{name} hà spartutu u vostru statutu", "notifications.clear": "Purgà e nutificazione", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Barra di ricerca pronta", "notifications.column_settings.filter_bar.show": "Mustrà", "notifications.column_settings.follow": "Abbunati novi:", + "notifications.column_settings.follow_request": "Nove dumande d'abbunamentu:", "notifications.column_settings.mention": "Minzione:", "notifications.column_settings.poll": "Risultati:", "notifications.column_settings.push": "Nutificazione Push", @@ -344,6 +354,7 @@ "status.admin_account": "Apre l'interfaccia di muderazione per @{name}", "status.admin_status": "Apre stu statutu in l'interfaccia di muderazione", "status.block": "Bluccà @{name}", + "status.bookmark": "Segnalibru", "status.cancel_reblog_private": "Ùn sparte più", "status.cannot_reblog": "Stu statutu ùn pò micca esse spartutu", "status.copy": "Cupià ligame indè u statutu", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} hà spartutu", "status.reblogs.empty": "Per avà nisunu hà spartutu u statutu. Quandu qualch'unu u sparterà, u so contu sarà mustratu quì.", "status.redraft": "Sguassà è riscrive", + "status.remove_bookmark": "Toglie segnalibru", "status.reply": "Risponde", "status.replyAll": "Risponde à tutti", "status.report": "Palisà @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Limita di caricamentu di fugliali trapassata.", "upload_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.", + "upload_form.audio_description": "Discrizzione per i ciochi", "upload_form.description": "Discrive per i malvistosi", "upload_form.edit": "Mudificà", "upload_form.undo": "Sguassà", + "upload_form.video_description": "Discrizzione per i ciochi o cechi", "upload_modal.analyzing_picture": "Analisi di u ritrattu…", "upload_modal.apply": "Affettà", "upload_modal.description_placeholder": "Chì tempi brevi ziu, quandu solfeghji", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Vista ({ratio})", "upload_progress.label": "Caricamentu...", "video.close": "Chjudà a video", + "video.download": "Scaricà fugliale", "video.exit_fullscreen": "Caccià u pienu screnu", "video.expand": "Ingrandà a video", "video.fullscreen": "Pienu screnu", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index fc807d45e..82c17efe7 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -1,14 +1,15 @@ { "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Zablokovat uživatele @{name}", - "account.block_domain": "Skrýt vše z {domain}", - "account.blocked": "Blokován/a", - "account.cancel_follow_request": "Zrušit požadavek o sledování", - "account.direct": "Poslat přímou zprávu uživateli @{name}", + "account.block_domain": "Skrýt vše ze serveru {domain}", + "account.blocked": "Blokováno", + "account.cancel_follow_request": "Zrušit žádost o sledování", + "account.direct": "Poslat uživateli @{name} přímou zprávu", "account.domain_blocked": "Doména skryta", "account.edit_profile": "Upravit profil", - "account.endorse": "Představit na profilu", + "account.endorse": "Zvýraznit na profilu", "account.follow": "Sledovat", "account.followers": "Sledující", "account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.", @@ -21,42 +22,43 @@ "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.", "account.media": "Média", "account.mention": "Zmínit uživatele @{name}", - "account.moved_to": "{name} se přesunul/a na:", + "account.moved_to": "Uživatel {name} se přesunul na:", "account.mute": "Skrýt uživatele @{name}", "account.mute_notifications": "Skrýt oznámení od uživatele @{name}", - "account.muted": "Skryt/a", + "account.muted": "Uživatel skryt", "account.never_active": "Nikdy", "account.posts": "Tooty", "account.posts_with_replies": "Tooty a odpovědi", "account.report": "Nahlásit uživatele @{name}", - "account.requested": "Čekám na schválení. Kliknutím zrušíte požadavek o sledování", + "account.requested": "Čeká na schválení. Kliknutím žádost o sledování zrušíte", "account.share": "Sdílet profil uživatele @{name}", "account.show_reblogs": "Zobrazit boosty od uživatele @{name}", "account.unblock": "Odblokovat uživatele @{name}", "account.unblock_domain": "Odkrýt doménu {domain}", - "account.unendorse": "Nepředstavit na profilu", + "account.unendorse": "Nezvýrazňovat na profilu", "account.unfollow": "Přestat sledovat", "account.unmute": "Odkrýt uživatele @{name}", "account.unmute_notifications": "Odkrýt oznámení od uživatele @{name}", - "alert.rate_limited.message": "Prosím zkuste to znovu za {retry_time, time, medium}.", + "alert.rate_limited.message": "Zkuste to prosím znovu za {retry_time, time, medium}.", "alert.rate_limited.title": "Rychlost omezena", "alert.unexpected.message": "Objevila se neočekávaná chyba.", "alert.unexpected.title": "Jejda!", "autosuggest_hashtag.per_week": "{count} za týden", "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}", - "bundle_column_error.body": "Při načítání tohoto komponentu se něco pokazilo.", + "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.", "bundle_column_error.retry": "Zkuste to znovu", "bundle_column_error.title": "Chyba sítě", "bundle_modal_error.close": "Zavřít", - "bundle_modal_error.message": "Při načítání tohoto komponentu se něco pokazilo.", + "bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.", "bundle_modal_error.retry": "Zkusit znovu", "column.blocks": "Blokovaní uživatelé", + "column.bookmarks": "Záložky", "column.community": "Místní časová osa", "column.direct": "Přímé zprávy", "column.directory": "Prozkoumat profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Oblíbené", - "column.follow_requests": "Požadavky o sledování", + "column.follow_requests": "Žádosti o sledování", "column.home": "Domů", "column.lists": "Seznamy", "column.mutes": "Skrytí uživatelé", @@ -75,13 +77,15 @@ "compose_form.direct_message_warning": "Tento toot bude odeslán pouze zmíněným uživatelům.", "compose_form.direct_message_warning_learn_more": "Zjistit více", "compose_form.hashtag_warning": "Tento toot nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné tooty mohou být vyhledány podle hashtagu.", - "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.", + "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky učené pouze pro sledující.", "compose_form.lock_disclaimer.lock": "uzamčen", "compose_form.placeholder": "Co se vám honí hlavou?", "compose_form.poll.add_option": "Přidat volbu", - "compose_form.poll.duration": "Délka ankety", + "compose_form.poll.duration": "Doba trvání ankety", "compose_form.poll.option_placeholder": "Volba {number}", "compose_form.poll.remove_option": "Odstranit tuto volbu", + "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": "Tootnout", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označit média jako citlivá", @@ -93,30 +97,30 @@ "confirmation_modal.cancel": "Zrušit", "confirmations.block.block_and_report": "Blokovat a nahlásit", "confirmations.block.confirm": "Blokovat", - "confirmations.block.message": "Jste si jistý/á, že chcete zablokovat uživatele {name}?", + "confirmations.block.message": "Opravdu chcete zablokovat uživatele {name}?", "confirmations.delete.confirm": "Smazat", - "confirmations.delete.message": "Jste si jistý/á, že chcete smazat tento toot?", + "confirmations.delete.message": "Opravdu chcete smazat tento toot?", "confirmations.delete_list.confirm": "Smazat", - "confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy smazat?", + "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?", "confirmations.domain_block.confirm": "Skrýt celou doménu", - "confirmations.domain_block.message": "Jste si opravdu, opravdu jistý/á, že chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což se doporučuje. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.", + "confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.", "confirmations.logout.confirm": "Odhlásit", - "confirmations.logout.message": "Jste si jistý/á, že se chcete odhlásit?", + "confirmations.logout.message": "Opravdu se chcete odhlásit?", "confirmations.mute.confirm": "Skrýt", - "confirmations.mute.explanation": "Tohle skryje jeho příspěvky a příspěvky, které ho zmiňují, ale uživatel pořád bude moci vidět vaše příspěvky a sledovat vás.", - "confirmations.mute.message": "Jste si jistý/á, že chcete skrýt uživatele {name}?", + "confirmations.mute.explanation": "Tohle skryje uživatelovi příspěvky a příspěvky, které ho zmiňují, ale uživatel stále uvidí vaše příspěvky a může vás sledovat.", + "confirmations.mute.message": "Opravdu chcete uživatele {name} skrýt?", "confirmations.redraft.confirm": "Smazat a přepsat", "confirmations.redraft.message": "Jste si jistý/á, že chcete smazat a přepsat tento toot? Oblíbení a boosty budou ztraceny a odpovědi na původní příspěvek budou opuštěny.", "confirmations.reply.confirm": "Odpovědět", - "confirmations.reply.message": "Odpovězením nyní přepíšete zprávu, kterou aktuálně píšete. Jste si jistý/á, že chcete pokračovat?", + "confirmations.reply.message": "Odpověď přepíše vaši rozepsanou zprávu. Opravdu chcete pokračovat?", "confirmations.unfollow.confirm": "Přestat sledovat", - "confirmations.unfollow.message": "jste si jistý/á, že chcete přestat sledovat uživatele {name}?", + "confirmations.unfollow.message": "Opravdu chcete uživatele {name} přestat sledovat?", "conversation.delete": "Smazat konverzaci", "conversation.mark_as_read": "Označit jako přečtenou", "conversation.open": "Zobrazit konverzaci", "conversation.with": "S {names}", "directory.federated": "Ze známého fedivesmíru", - "directory.local": "Pouze z {domain}", + "directory.local": "Pouze z domény {domain}", "directory.new_arrivals": "Nově příchozí", "directory.recently_active": "Nedávno aktivní", "embed.instructions": "Pro přidání tootu na vaši webovou stránku zkopírujte níže uvedený kód.", @@ -127,33 +131,34 @@ "emoji_button.food": "Jídla a nápoje", "emoji_button.label": "Vložit emoji", "emoji_button.nature": "Příroda", - "emoji_button.not_found": "Žádná emoji!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Žádné emoji! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Předměty", "emoji_button.people": "Lidé", - "emoji_button.recent": "Často používaná", + "emoji_button.recent": "Často používané", "emoji_button.search": "Hledat…", "emoji_button.search_results": "Výsledky hledání", "emoji_button.symbols": "Symboly", "emoji_button.travel": "Cestování a místa", - "empty_column.account_timeline": "Tady nejsou žádné tooty!", + "empty_column.account_timeline": "Nejsou tu žádné tooty!", "empty_column.account_unavailable": "Profil nedostupný", - "empty_column.blocks": "Ještě jste nezablokoval/a žádného uživatele.", + "empty_column.blocks": "Ještě jste nezablokovali žádného uživatele.", + "empty_column.bookmarked_statuses": "Ještě nemáte v záložkách žádné tooty. Pokud si do nich nějaký přidáte, zobrazí se zde.", "empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!", "empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.", - "empty_column.domain_blocks": "Ještě nejsou žádné skryté domény.", + "empty_column.domain_blocks": "Ještě nemáte žádné skryté domény.", "empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené tooty. Pokud si nějaký oblíbíte, zobrazí se zde.", "empty_column.favourites": "Tento toot si ještě nikdo neoblíbil. Pokud to někdo udělá, zobrazí se zde.", - "empty_column.follow_requests": "Ještě nemáte žádné požadavky o sledování. Pokud nějaký obdržíte, zobrazí se zde.", + "empty_column.follow_requests": "Ještě nemáte žádné žádosti o sledování. Pokud nějakou obdržíte, zobrazí se zde.", "empty_column.hashtag": "Pod tímto hashtagem ještě nic není.", - "empty_column.home": "Vaše domovská časová osa je prázdná! Začněte navštívením {public} nebo použijte hledání a seznamte se s dalšími uživateli.", + "empty_column.home": "Vaše domovská časová osa je prázdná! Začněte návštěvou {public} nebo použijte hledání a seznamte se s dalšími uživateli.", "empty_column.home.public_timeline": "veřejné časové osy", - "empty_column.list": "V tomto seznamu ještě nic není. Pokud budou členové tohoto seznamu psát nové tooty, objeví se zde.", + "empty_column.list": "V tomto seznamu ještě nic není. Pokud nějaký člen z tohoto seznamu napíše nový toot, objeví se zde.", "empty_column.lists": "Ještě nemáte žádný seznam. Pokud nějaký vytvoříte, zobrazí se zde.", - "empty_column.mutes": "Ještě jste neskryl/a žádné uživatele.", - "empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.", + "empty_column.mutes": "Ještě jste neskryli žádného uživatele.", + "empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte s někým konverzaci.", "empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo", "error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka načtena správně.", - "error.unexpected_crash.next_steps": "Zkuste obnovit stránku. Pokud to nepomůže, budete možná moci dále používat Mastodon pomocí jiného prohlížeče nebo nativní aplikace.", + "error.unexpected_crash.next_steps": "Zkuste stránku načíst znovu. Pokud to nepomůže, zkuste Mastodon používat pomocí jiného prohlížeče nebo nativní aplikace.", "errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky", "errors.unexpected_crash.report_issue": "Nahlásit problém", "follow_request.authorize": "Autorizovat", @@ -163,13 +168,13 @@ "getting_started.documentation": "Dokumentace", "getting_started.heading": "Začínáme", "getting_started.invite": "Pozvat lidi", - "getting_started.open_source_notice": "Mastodon je otevřený software. Na GitHubu k němu můžete přispět nebo nahlásit chyby: {github}.", + "getting_started.open_source_notice": "Mastodon je otevřený software. Přispět do jeho vývoje nebo hlásit chyby můžete na GitHubu {github}.", "getting_started.security": "Nastavení účtu", "getting_started.terms": "Podmínky používání", "hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.any": "nebo {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", - "hashtag.column_settings.select.no_options_message": "Žádné návrhy nenalezeny", + "hashtag.column_settings.select.no_options_message": "Nenalezeny žádné návrhy", "hashtag.column_settings.select.placeholder": "Zadejte hashtagy…", "hashtag.column_settings.tag_mode.all": "Všechny z těchto", "hashtag.column_settings.tag_mode.any": "Jakékoliv z těchto", @@ -178,14 +183,14 @@ "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", - "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}", - "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}", - "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}", + "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}", + "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}", + "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}", "introduction.federation.action": "Další", "introduction.federation.federated.headline": "Federovaná", "introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů ve fedivesmíru se zobrazí na federované časové ose.", "introduction.federation.home.headline": "Domů", - "introduction.federation.home.text": "Příspěvky od lidí, které sledujete, se objeví ve vašem domovském proudu. Můžete sledovat kohokoliv na jakémkoliv serveru!", + "introduction.federation.home.text": "Příspěvky od lidí, které sledujete, se objeví ve vašem domovském kanálu. Můžete sledovat kohokoliv na jakémkoliv serveru!", "introduction.federation.local.headline": "Místní", "introduction.federation.local.text": "Veřejné příspěvky od lidí ze stejného serveru jako vy se zobrazí na místní časové ose.", "introduction.interactions.action": "Dokončit tutoriál!", @@ -197,39 +202,40 @@ "introduction.interactions.reply.text": "Můžete odpovídat na tooty jiných lidí i vaše vlastní, což je propojí do konverzace.", "introduction.welcome.action": "Jdeme na to!", "introduction.welcome.headline": "První kroky", - "introduction.welcome.text": "Vítejte ve fedivesmíru! Za malou chvíli budete moci posílat zprávy a povídat si se svými přátely přes širokou škálu serverů. Tento server, {domain}, je však speciální—je na něm váš profil, proto si zapamatujte jeho jméno.", - "keyboard_shortcuts.back": "k návratu zpět", - "keyboard_shortcuts.blocked": "k otevření seznamu blokovaných uživatelů", - "keyboard_shortcuts.boost": "k boostnutí", - "keyboard_shortcuts.column": "k zaměření na toot v jednom ze sloupců", - "keyboard_shortcuts.compose": "k zaměření na psací prostor", + "introduction.welcome.text": "Vítejte ve fedivesmíru! Za malou chvíli budete moci posílat zprávy a povídat si se svými přáteli z mnoha serverů. Tento server {domain}, je však speciální — je na něm váš profil a proto si zapamatujte jeho jméno.", + "keyboard_shortcuts.back": "návrat zpět", + "keyboard_shortcuts.blocked": "otevřít seznam blokovaných uživatelů", + "keyboard_shortcuts.boost": "boost", + "keyboard_shortcuts.column": "zaměření na toot v jednom ze sloupců", + "keyboard_shortcuts.compose": "zaměření na oblast pro psaní", "keyboard_shortcuts.description": "Popis", - "keyboard_shortcuts.direct": "k otevření sloupce s přímými zprávami", - "keyboard_shortcuts.down": "k posunutí dolů v seznamu", - "keyboard_shortcuts.enter": "k otevření tootu", - "keyboard_shortcuts.favourite": "k oblíbení", - "keyboard_shortcuts.favourites": "k otevření seznamu oblíbených", - "keyboard_shortcuts.federated": "k otevření federované časové osy", + "keyboard_shortcuts.direct": "otevření sloupce s přímými zprávami", + "keyboard_shortcuts.down": "posunutí dolů v seznamu", + "keyboard_shortcuts.enter": "otevření tootu", + "keyboard_shortcuts.favourite": "oblíbení", + "keyboard_shortcuts.favourites": "otevření seznamu oblíbených", + "keyboard_shortcuts.federated": "otevření federované časové osy", "keyboard_shortcuts.heading": "Klávesové zkratky", - "keyboard_shortcuts.home": "k otevření domovské časové osy", + "keyboard_shortcuts.home": "otevření domovské časové osy", "keyboard_shortcuts.hotkey": "Klávesová zkratka", - "keyboard_shortcuts.legend": "k zobrazení této legendy", - "keyboard_shortcuts.local": "k otevření místní časové osy", - "keyboard_shortcuts.mention": "ke zmínění autora", - "keyboard_shortcuts.muted": "k otevření seznamu skrytých uživatelů", - "keyboard_shortcuts.my_profile": "k otevření vašeho profilu", - "keyboard_shortcuts.notifications": "k otevření sloupce s oznámeními", - "keyboard_shortcuts.pinned": "k otevření seznamu připnutých tootů", - "keyboard_shortcuts.profile": "k otevření autorova profilu", - "keyboard_shortcuts.reply": "k odpovězení", - "keyboard_shortcuts.requests": "k otevření seznamu požadavků o sledování", - "keyboard_shortcuts.search": "k zaměření na hledání", - "keyboard_shortcuts.start": "k otevření sloupce „začínáme“", - "keyboard_shortcuts.toggle_hidden": "k zobrazení/skrytí textu za varováním o obsahu", - "keyboard_shortcuts.toggle_sensitivity": "k zobrazení/skrytí médií", - "keyboard_shortcuts.toot": "k napsání úplně nového tootu", - "keyboard_shortcuts.unfocus": "ke zrušení zaměření na psací prostor/hledání", - "keyboard_shortcuts.up": "k posunutí nahoru v seznamu", + "keyboard_shortcuts.legend": "zobrazení této legendy", + "keyboard_shortcuts.local": "otevření místní časové osy", + "keyboard_shortcuts.mention": "zmínění autora", + "keyboard_shortcuts.muted": "otevření seznamu skrytých uživatelů", + "keyboard_shortcuts.my_profile": "otevření vašeho profilu", + "keyboard_shortcuts.notifications": "otevření sloupce s oznámeními", + "keyboard_shortcuts.open_media": "otevření médií", + "keyboard_shortcuts.pinned": "otevření seznamu připnutých tootů", + "keyboard_shortcuts.profile": "otevření autorova profilu", + "keyboard_shortcuts.reply": "odpovědět", + "keyboard_shortcuts.requests": "otevření seznamu požadavků o sledování", + "keyboard_shortcuts.search": "zaměření na hledání", + "keyboard_shortcuts.start": "otevření sloupce „začínáme“", + "keyboard_shortcuts.toggle_hidden": "zobrazení/skrytí textu za varováním o obsahu", + "keyboard_shortcuts.toggle_sensitivity": "zobrazení/skrytí médií", + "keyboard_shortcuts.toot": "napsání úplně nového tootu", + "keyboard_shortcuts.unfocus": "zrušení zaměření na psací prostor/hledání", + "keyboard_shortcuts.up": "posunutí nahoru v seznamu", "lightbox.close": "Zavřít", "lightbox.next": "Další", "lightbox.previous": "Předchozí", @@ -244,13 +250,14 @@ "lists.search": "Hledejte mezi lidmi, které sledujete", "lists.subheading": "Vaše seznamy", "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}", - "loading_indicator.label": "Načítám…", - "media_gallery.toggle_visible": "Přepínat viditelnost", + "loading_indicator.label": "Načítání…", + "media_gallery.toggle_visible": "Přepnout viditelnost", "missing_indicator.label": "Nenalezeno", "missing_indicator.sublabel": "Tento zdroj se nepodařilo najít", "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "navigation_bar.apps": "Mobilní aplikace", "navigation_bar.blocks": "Blokovaní uživatelé", + "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Místní časová osa", "navigation_bar.compose": "Vytvořit nový toot", "navigation_bar.direct": "Přímé zprávy", @@ -259,7 +266,7 @@ "navigation_bar.edit_profile": "Upravit profil", "navigation_bar.favourites": "Oblíbené", "navigation_bar.filters": "Skrytá slova", - "navigation_bar.follow_requests": "Požadavky o sledování", + "navigation_bar.follow_requests": "Žádosti o sledování", "navigation_bar.follows_and_followers": "Sledovaní a sledující", "navigation_bar.info": "O tomto serveru", "navigation_bar.keyboard_shortcuts": "Klávesové zkratky", @@ -271,19 +278,22 @@ "navigation_bar.preferences": "Předvolby", "navigation_bar.public_timeline": "Federovaná časová osa", "navigation_bar.security": "Zabezpečení", - "notification.favourite": "{name} si oblíbil/a váš toot", - "notification.follow": "{name} vás začal/a sledovat", - "notification.mention": "{name} vás zmínil/a", - "notification.poll": "Anketa, ve které jste hlasoval/a, skončila", - "notification.reblog": "{name} boostnul/a váš toot", - "notifications.clear": "Vymazat oznámení", - "notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?", - "notifications.column_settings.alert": "Desktopová oznámení", + "notification.favourite": "Uživatel {name} si oblíbil váš toot", + "notification.follow": "Uživatel {name} vás začal sledovat", + "notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat", + "notification.mention": "Uživatel {name} vás zmínil", + "notification.own_poll": "Vaše anketa skončila", + "notification.poll": "Anketa, ve které jste hlasovali, skončila", + "notification.reblog": "Uživatel {name} boostnul váš toot", + "notifications.clear": "Smazat oznámení", + "notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?", + "notifications.column_settings.alert": "Oznámení na počítači", "notifications.column_settings.favourite": "Oblíbení:", "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie", "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování", "notifications.column_settings.filter_bar.show": "Zobrazit", "notifications.column_settings.follow": "Noví sledující:", + "notifications.column_settings.follow_request": "Nové žádosti o sledování:", "notifications.column_settings.mention": "Zmínky:", "notifications.column_settings.poll": "Výsledky anket:", "notifications.column_settings.push": "Push oznámení", @@ -297,12 +307,12 @@ "notifications.filter.mentions": "Zmínky", "notifications.filter.polls": "Výsledky anket", "notifications.group": "{count} oznámení", - "poll.closed": "Uzavřena", + "poll.closed": "Uzavřeno", "poll.refresh": "Obnovit", "poll.total_people": "{count, plural, one {# člověk} few {# lidé} many {# lidí} other {# lidí}}", - "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasu} other {# hlasů}}", + "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}", "poll.vote": "Hlasovat", - "poll.voted": "Pro tuto odpověď jste hlasoval/a", + "poll.voted": "Pro tuto odpověď jste hlasovali", "poll_button.add_poll": "Přidat anketu", "poll_button.remove_poll": "Odstranit anketu", "privacy.change": "Změnit soukromí tootu", @@ -312,11 +322,11 @@ "privacy.private.short": "Pouze pro sledující", "privacy.public.long": "Odeslat na veřejné časové osy", "privacy.public.short": "Veřejný", - "privacy.unlisted.long": "Neodeslat na veřejné časové osy", + "privacy.unlisted.long": "Neodesílat na veřejné časové osy", "privacy.unlisted.short": "Neuvedený", "refresh": "Obnovit", - "regeneration_indicator.label": "Načítám…", - "regeneration_indicator.sublabel": "Váš domovský proud se připravuje!", + "regeneration_indicator.label": "Načítání…", + "regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!", "relative_time.days": "{number} d", "relative_time.hours": "{number} h", "relative_time.just_now": "teď", @@ -325,13 +335,13 @@ "reply_indicator.cancel": "Zrušit", "report.forward": "Přeposlat na {target}", "report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?", - "report.hint": "Nahlášení bude zasláno moderátorům vašeho serveru. Níže můžete uvést, proč tento účet nahlašujete:", + "report.hint": "Hlášení bude zasláno moderátorům vašeho serveru. Níže můžete uvést, proč tento účet nahlašujete:", "report.placeholder": "Dodatečné komentáře", "report.submit": "Odeslat", "report.target": "Nahlášení uživatele {target}", "search.placeholder": "Hledat", "search_popout.search_format": "Pokročilé hledání", - "search_popout.tips.full_text": "Jednoduchý text navrátí tooty, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.", + "search_popout.tips.full_text": "Jednoduchý text navrátí tooty, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "toot", "search_popout.tips.text": "Jednoduchý text navrátí odpovídající zobrazovaná jména, přezdívky a hashtagy", @@ -340,16 +350,17 @@ "search_results.hashtags": "Hashtagy", "search_results.statuses": "Tooty", "search_results.statuses_fts_disabled": "Vyhledávání tootů podle jejich obsahu není na tomto serveru Mastodon povoleno.", - "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledku} other {výsledků}}", + "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledků} other {výsledků}}", "status.admin_account": "Otevřít moderátorské rozhraní pro uživatele @{name}", "status.admin_status": "Otevřít tento toot v moderátorském rozhraní", "status.block": "Zablokovat uživatele @{name}", + "status.bookmark": "Přidat do záložek", "status.cancel_reblog_private": "Zrušit boost", "status.cannot_reblog": "Tento příspěvek nemůže být boostnutý", "status.copy": "Kopírovat odkaz k tootu", "status.delete": "Smazat", - "status.detailed_status": "Detailní zobrazení konverzace", - "status.direct": "Poslat přímou zprávu uživateli @{name}", + "status.detailed_status": "Podrobné zobrazení konverzace", + "status.direct": "Poslat uživateli @{name} přímou zprávu", "status.embed": "Vložit na web", "status.favourite": "Oblíbit", "status.filtered": "Filtrováno", @@ -365,9 +376,10 @@ "status.read_more": "Číst více", "status.reblog": "Boostnout", "status.reblog_private": "Boostnout původnímu publiku", - "status.reblogged_by": "{name} boostnul/a", + "status.reblogged_by": "Uživatel {name} boostnul", "status.reblogs.empty": "Tento toot ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.", "status.redraft": "Smazat a přepsat", + "status.remove_bookmark": "Odstranit ze záložek", "status.reply": "Odpovědět", "status.replyAll": "Odpovědět na vlákno", "status.report": "Nahlásit uživatele @{name}", @@ -382,37 +394,40 @@ "status.unmute_conversation": "Odkrýt konverzaci", "status.unpin": "Odepnout z profilu", "suggestions.dismiss": "Odmítnout návrh", - "suggestions.header": "Mohli by vás zajímat…", + "suggestions.header": "Mohlo by vás zajímat…", "tabs_bar.federated_timeline": "Federovaná", "tabs_bar.home": "Domů", "tabs_bar.local_timeline": "Místní", "tabs_bar.notifications": "Oznámení", "tabs_bar.search": "Hledat", - "time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dne} other {Zbývá # dní}}", - "time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodiny} other {Zbývá # hodin}}", - "time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minuty} other {Zbývá # minut}}", + "time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dní} other {Zbývá # dní}}", + "time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodin} other {Zbývá # hodin}}", + "time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minut} other {Zbývá # minut}}", "time_remaining.moments": "Zbývá několik sekund", - "time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekundy} other {Zbývá # sekund}}", + "time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekund} other {Zbývá # sekund}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} few {lidé} many {lidí} other {lidí}} hovoří", "trends.trending_now": "Aktuální trendy", - "ui.beforeunload": "Váš koncept se ztratí, pokud Mastodon opustíte.", - "upload_area.title": "Přetažením nahrajete", - "upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)", + "ui.beforeunload": "Pokud Mastodon opustíte, váš koncept se ztratí.", + "upload_area.title": "Nahrajte přetažením", + "upload_button.label": "Přidat média ({formats})", "upload_error.limit": "Byl překročen limit nahraných souborů.", - "upload_error.poll": "Nahrávání souborů není povoleno u anket.", + "upload_error.poll": "U anket není nahrávání souborů povoleno.", + "upload_form.audio_description": "Popis pro sluchově postižené", "upload_form.description": "Popis pro zrakově postižené", "upload_form.edit": "Upravit", "upload_form.undo": "Smazat", + "upload_form.video_description": "Popis pro sluchově či zrakově postižené", "upload_modal.analyzing_picture": "Analyzuji obrázek…", "upload_modal.apply": "Použít", "upload_modal.description_placeholder": "Příliš žluťoučký kůň úpěl ďábelské ódy", "upload_modal.detect_text": "Detekovat text z obrázku", "upload_modal.edit_media": "Upravit média", - "upload_modal.hint": "Kliknutím na nebo přetáhnutím kruhu na náhledu vyberte bod soustředění, který bude vždy zobrazen na všech náhledech.", + "upload_modal.hint": "Kliknutím na nebo přetáhnutím kruhu na náhledu vyberte oblast, která bude na všech náhledech vždy zobrazen.", "upload_modal.preview_label": "Náhled ({ratio})", - "upload_progress.label": "Nahrávám…", + "upload_progress.label": "Nahrávání…", "video.close": "Zavřít video", - "video.exit_fullscreen": "Ukončit celou obrazovku", + "video.download": "Stáhnout soubor", + "video.exit_fullscreen": "Ukončit režim celé obrazovky", "video.expand": "Otevřít video", "video.fullscreen": "Celá obrazovka", "video.hide": "Skrýt video", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index a8a952798..923d1947b 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blocio @{name}", "account.block_domain": "Cuddio popeth rhag {domain}", "account.blocked": "Blociwyd", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", "bundle_modal_error.retry": "Ceiswich eto", "column.blocks": "Defnyddwyr a flociwyd", + "column.bookmarks": "Tudalnodau", "column.community": "Ffrwd lleol", "column.direct": "Negeseuon preifat", "column.directory": "Pori proffiliau", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Cyfnod pleidlais", "compose_form.poll.option_placeholder": "Dewisiad {number}", "compose_form.poll.remove_option": "Tynnu'r dewisiad", + "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": "Tŵt", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Dim tŵtiau fama!", "empty_column.account_unavailable": "Proffil ddim ar gael", "empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.", + "empty_column.bookmarked_statuses": "Nid oes gennych unrhyw dwtiau tudalnodiedig eto. Pan y byddwch yn tudalnodi un, mi fydd yn ymddangos yma.", "empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!", "empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.", "empty_column.domain_blocks": "Nid oes yna unrhyw barthau cuddiedig eto.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "i agor rhestr defnyddwyr a dawelwyd", "keyboard_shortcuts.my_profile": "i agor eich proffil", "keyboard_shortcuts.notifications": "i agor colofn hysbysiadau", + "keyboard_shortcuts.open_media": "i agor cyfryngau", "keyboard_shortcuts.pinned": "i agor rhestr tŵtiau wedi'i pinio", "keyboard_shortcuts.profile": "i agor proffil yr awdur", "keyboard_shortcuts.reply": "i ateb", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?", "navigation_bar.apps": "Apiau symudol", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", + "navigation_bar.bookmarks": "Tudalnodau", "navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.compose": "Cyfansoddi tŵt newydd", "navigation_bar.direct": "Negeseuon preifat", @@ -273,7 +280,9 @@ "navigation_bar.security": "Diogelwch", "notification.favourite": "hoffodd {name} eich tŵt", "notification.follow": "dilynodd {name} chi", + "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn", "notification.mention": "Soniodd {name} amdanoch chi", + "notification.own_poll": "Mae eich pôl wedi diweddu", "notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben", "notification.reblog": "Hysbysebodd {name} eich tŵt", "notifications.clear": "Clirio hysbysiadau", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Bar hidlo", "notifications.column_settings.filter_bar.show": "Dangos", "notifications.column_settings.follow": "Dilynwyr newydd:", + "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:", "notifications.column_settings.mention": "Crybwylliadau:", "notifications.column_settings.poll": "Canlyniadau pleidlais:", "notifications.column_settings.push": "Hysbysiadau gwthiadwy", @@ -344,6 +354,7 @@ "status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}", "status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio", "status.block": "Blocio @{name}", + "status.bookmark": "Tudalnodi", "status.cancel_reblog_private": "Dadfŵstio", "status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn", "status.copy": "Copïo cysylltiad i'r tŵt", @@ -368,6 +379,7 @@ "status.reblogged_by": "Bŵstio {name}", "status.reblogs.empty": "Does neb wedi bŵstio'r tŵt yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu & ailddrafftio", + "status.remove_bookmark": "Tynnu'r tudalnod", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", "status.report": "Adrodd @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.", "upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.", + "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw", "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg", "upload_form.edit": "Golygu", "upload_form.undo": "Dileu", + "upload_form.video_description": "Disgrifio ar gyfer pobl sydd â cholled clyw neu amhariad golwg", "upload_modal.analyzing_picture": "Dadansoddi llun…", "upload_modal.apply": "Gweithredu", "upload_modal.description_placeholder": "Mae ei phen bach llawn jocs, 'run peth a fy nghot golff, rhai dyddiau", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Rhagolwg ({ratio})", "upload_progress.label": "Uwchlwytho...", "video.close": "Cau fideo", + "video.download": "Lawrlwytho ffeil", "video.exit_fullscreen": "Gadael sgrîn llawn", "video.expand": "Ymestyn fideo", "video.fullscreen": "Sgrîn llawn", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 4719d5ca5..bd68381d9 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Tilføj eller fjern fra lister", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Bloker @{name}", "account.block_domain": "Skjul alt fra {domain}", "account.blocked": "Blokeret", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Noget gik galt under indlæsningen af dette komponent.", "bundle_modal_error.retry": "Prøv igen", "column.blocks": "Blokerede brugere", + "column.bookmarks": "Bogmærker", "column.community": "Lokal tidslinje", "column.direct": "Direkte beskeder", "column.directory": "Gennemse profiler", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Afstemningens varighed", "compose_form.poll.option_placeholder": "Valgmulighed {number}", "compose_form.poll.remove_option": "Fjern denne valgmulighed", + "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": "Trut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Markér medie som følsomt", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Ingen bidrag her!", "empty_column.account_unavailable": "Profil utilgængelig", "empty_column.blocks": "Du har ikke blokeret nogen endnu.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!", "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.", "empty_column.domain_blocks": "Der er endnu ikke nogle skjulte domæner.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "for at åbne listen over dæmpede brugere", "keyboard_shortcuts.my_profile": "for at åbne din profil", "keyboard_shortcuts.notifications": "for at åbne notifikations kolonnen", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "for at åbne listen over fastgjorte trut", "keyboard_shortcuts.profile": "til profil af åben forfatter", "keyboard_shortcuts.reply": "for at svare", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", "navigation_bar.apps": "Mobil apps", "navigation_bar.blocks": "Blokerede brugere", + "navigation_bar.bookmarks": "Bogmærker", "navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.compose": "Skriv nyt trut", "navigation_bar.direct": "Direkte beskeder", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sikkerhed", "notification.favourite": "{name} favoriserede din status", "notification.follow": "{name} fulgte dig", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} nævnte dig", + "notification.own_poll": "Din afstemning er afsluttet", "notification.poll": "En afstemning, du stemte i, er slut", "notification.reblog": "{name} boostede din status", "notifications.clear": "Ryd notifikationer", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Hurtigfilter", "notifications.column_settings.filter_bar.show": "Vis", "notifications.column_settings.follow": "Nye følgere:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Statusser der nævner dig:", "notifications.column_settings.poll": "Afstemningsresultat:", "notifications.column_settings.push": "Pushnotifikationer", @@ -344,6 +354,7 @@ "status.admin_account": "Åben modereringsvisning for @{name}", "status.admin_status": "Åben denne status i modereringsvisningen", "status.block": "Bloker @{name}", + "status.bookmark": "Bogmærke", "status.cancel_reblog_private": "Fjern boost", "status.cannot_reblog": "Denne post kan ikke boostes", "status.copy": "Kopiér link til status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} boostede", "status.reblogs.empty": "Der er endnu ingen der har boostet dette trut. Når der er nogen der gør, vil det blive vist her.", "status.redraft": "Slet og omskriv", + "status.remove_bookmark": "Fjern bogmærke", "status.reply": "Besvar", "status.replyAll": "Besvar samtale", "status.report": "Anmeld @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Tilføj medie (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Uploadgrænse overskredet.", "upload_error.poll": "Filupload ikke tilladt sammen med afstemninger.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Beskriv for svagtseende", "upload_form.edit": "Redigér", "upload_form.undo": "Slet", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analyserer billede…", "upload_modal.apply": "Anvend", "upload_modal.description_placeholder": "En hurtig brun ræv hopper over den dovne hund", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_progress.label": "Uploader...", "video.close": "Luk video", + "video.download": "Hent fil", "video.exit_fullscreen": "Forlad fuldskærm", "video.expand": "Udvid video", "video.fullscreen": "Fuldskærm", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index c916028be..0804d8033 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "@{name} blockieren", "account.block_domain": "Alles von {domain} verstecken", "account.blocked": "Blockiert", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.", "bundle_modal_error.retry": "Erneut versuchen", "column.blocks": "Blockierte Profile", + "column.bookmarks": "Lesezeichen", "column.community": "Lokale Zeitleiste", "column.direct": "Direktnachrichten", "column.directory": "Profile durchsuchen", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Umfragedauer", "compose_form.poll.option_placeholder": "Wahl {number}", "compose_form.poll.remove_option": "Wahl entfernen", + "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": "Tröt", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Medien als heikel markieren", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Keine Beiträge!", "empty_column.account_unavailable": "Konto nicht verfügbar", "empty_column.blocks": "Du hast keine Profile blockiert.", + "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.", "empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!", "empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.", "empty_column.domain_blocks": "Es ist noch keine versteckten Domains.", @@ -164,7 +169,7 @@ "getting_started.heading": "Erste Schritte", "getting_started.invite": "Leute einladen", "getting_started.open_source_notice": "Mastodon ist quelloffene Software. Du kannst auf GitHub unter {github} dazu beitragen oder Probleme melden.", - "getting_started.security": "Sicherheit", + "getting_started.security": "Konto & Sicherheit", "getting_started.terms": "Nutzungsbedingungen", "hashtag.column_header.tag_mode.all": "und {additional}", "hashtag.column_header.tag_mode.any": "oder {additional}", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen", "keyboard_shortcuts.my_profile": "Dein Profil öffnen", "keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen", + "keyboard_shortcuts.open_media": "um Medien zu öffnen", "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen", "keyboard_shortcuts.profile": "Profil des Autors öffnen", "keyboard_shortcuts.reply": "antworten", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?", "navigation_bar.apps": "Mobile Apps", "navigation_bar.blocks": "Blockierte Profile", + "navigation_bar.bookmarks": "Lesezeichen", "navigation_bar.community_timeline": "Lokale Zeitleiste", "navigation_bar.compose": "Neuen Beitrag verfassen", "navigation_bar.direct": "Direktnachrichten", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sicherheit", "notification.favourite": "{name} hat deinen Beitrag favorisiert", "notification.follow": "{name} folgt dir", + "notification.follow_request": "{name} möchte dir folgen", "notification.mention": "{name} hat dich erwähnt", + "notification.own_poll": "Deine Umfrage ist beendet", "notification.poll": "Eine Umfrage in der du abgestimmt hast ist vorbei", "notification.reblog": "{name} hat deinen Beitrag geteilt", "notifications.clear": "Mitteilungen löschen", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Schnellfilterleiste", "notifications.column_settings.filter_bar.show": "Anzeigen", "notifications.column_settings.follow": "Neue Folgende:", + "notifications.column_settings.follow_request": "Neue Folge-Anfragen:", "notifications.column_settings.mention": "Erwähnungen:", "notifications.column_settings.poll": "Ergebnisse von Umfragen:", "notifications.column_settings.push": "Push-Benachrichtigungen", @@ -344,6 +354,7 @@ "status.admin_account": "Öffne Moderationsoberfläche für @{name}", "status.admin_status": "Öffne Beitrag in der Moderationsoberfläche", "status.block": "Blockiere @{name}", + "status.bookmark": "Lesezeichen", "status.cancel_reblog_private": "Nicht mehr teilen", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", "status.copy": "Kopiere Link zum Beitrag", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} teilte", "status.reblogs.empty": "Diesen Beitrag hat noch niemand geteilt. Sobald es jemand tut, wird diese Person hier angezeigt.", "status.redraft": "Löschen und neu erstellen", + "status.remove_bookmark": "Lesezeichen entfernen", "status.reply": "Antworten", "status.replyAll": "Allen antworten", "status.report": "@{name} melden", @@ -400,18 +412,21 @@ "upload_button.label": "Mediendatei hinzufügen ({formats})", "upload_error.limit": "Dateiupload-Limit erreicht.", "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.", + "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen", "upload_form.description": "Für Menschen mit Sehbehinderung beschreiben", "upload_form.edit": "Bearbeiten", "upload_form.undo": "Löschen", + "upload_form.video_description": "Beschreibe das Video für Menschen mit einer Hör- oder Sehbehinderung", "upload_modal.analyzing_picture": "Analysiere Bild…", "upload_modal.apply": "Übernehmen", - "upload_modal.description_placeholder": "Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg bis zur Küste.", + "upload_modal.description_placeholder": "Die heiße Zypernsonne quälte Max und Victoria ja böse auf dem Weg bis zur Küste", "upload_modal.detect_text": "Text aus Bild erkennen", "upload_modal.edit_media": "Medien bearbeiten", "upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.", "upload_modal.preview_label": "Vorschau ({ratio})", "upload_progress.label": "Wird hochgeladen …", "video.close": "Video schließen", + "video.download": "Datei herunterladen", "video.exit_fullscreen": "Vollbild verlassen", "video.expand": "Video vergrößern", "video.fullscreen": "Vollbild", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 7889a76e0..49afec45c 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -776,6 +776,10 @@ "defaultMessage": "Bot", "id": "account.badges.bot" }, + { + "defaultMessage": "Group", + "id": "account.badges.group" + }, { "defaultMessage": "Toots", "id": "account.posts" @@ -1035,6 +1039,14 @@ "defaultMessage": "Poll duration", "id": "compose_form.poll.duration" }, + { + "defaultMessage": "Change poll to allow multiple choices", + "id": "compose_form.poll.switch_to_multiple" + }, + { + "defaultMessage": "Change poll to allow for a single choice", + "id": "compose_form.poll.switch_to_single" + }, { "defaultMessage": "{number, plural, one {# minute} other {# minutes}}", "id": "intervals.full.minutes" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index ab000fa8d..9ae9e9a84 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες", "account.badges.bot": "Μποτ", + "account.badges.group": "Group", "account.block": "Αποκλεισμός @{name}", "account.block_domain": "Απόκρυψε τα πάντα από το {domain}", "account.blocked": "Αποκλεισμένος/η", @@ -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": "Δεν έχεις κανένα αποθηκευμένο τουτ ακόμα. Μόλις αποθηκεύσεις κάποιο, θα εμφανιστεί εδώ.", "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": "εμφάνιση πολυμέσου", "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": "Ο/H {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}", @@ -393,16 +405,18 @@ "time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}", "time_remaining.moments": "Απομένουν στιγμές", "time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} μιλάνε", + "trends.count_by_accounts": "{count} {rawCount, plural, one {άτομο μιλάει} other {άτομα μιλάνε}}", "trends.trending_now": "Δημοφιλή τώρα", "ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.", "upload_area.title": "Drag & drop για να ανεβάσεις", "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": "Λύκος μαύρος και ισχνός του πατέρα του καημός", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Προεπισκόπηση ({ratio})", "upload_progress.label": "Ανεβαίνει...", "video.close": "Κλείσε το βίντεο", + "video.download": "Λήψη αρχείου", "video.exit_fullscreen": "Έξοδος από πλήρη οθόνη", "video.expand": "Επέκταση βίντεο", "video.fullscreen": "Πλήρης οθόνη", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 58f1188fd..0494a9cf5 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Block @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", @@ -83,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": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Mark media as sensitive", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 0070cdb5c..20d4e7935 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj", "account.badges.bot": "Roboto", + "account.badges.group": "Group", "account.block": "Bloki @{name}", "account.block_domain": "Kaŝi ĉion de {domain}", "account.blocked": "Blokita", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", "bundle_modal_error.retry": "Bonvolu reprovi", "column.blocks": "Blokitaj uzantoj", + "column.bookmarks": "Legosignoj", "column.community": "Loka tempolinio", "column.direct": "Rektaj mesaĝoj", "column.directory": "Trarigardi profilojn", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Balotenketa daŭro", "compose_form.poll.option_placeholder": "Elekteblo {number}", "compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon", + "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": "Hup", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marki la aŭdovidaĵojn kiel tiklaj", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!", "empty_column.account_unavailable": "Profilo ne disponebla", "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.", + "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", "empty_column.community": "La loka tempolinio estas malplena. Skribu ion por plenigi ĝin!", "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.", "empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.", @@ -154,7 +159,7 @@ "empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion", "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", + "errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo", "errors.unexpected_crash.report_issue": "Raporti problemon", "follow_request.authorize": "Rajtigi", "follow_request.reject": "Rifuzi", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "por malfermi la liston de silentigitaj uzantoj", "keyboard_shortcuts.my_profile": "por malfermi vian profilon", "keyboard_shortcuts.notifications": "por malfermi la kolumnon de sciigoj", + "keyboard_shortcuts.open_media": "por malfermi aŭdovidaĵon", "keyboard_shortcuts.pinned": "por malfermi la liston de alpinglitaj mesaĝoj", "keyboard_shortcuts.profile": "por malfermi la profilon de la aŭtoro", "keyboard_shortcuts.reply": "por respondi", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn de ĉi tiu uzanto?", "navigation_bar.apps": "Telefonaj aplikaĵoj", "navigation_bar.blocks": "Blokitaj uzantoj", + "navigation_bar.bookmarks": "Legosignoj", "navigation_bar.community_timeline": "Loka tempolinio", "navigation_bar.compose": "Skribi novan mesaĝon", "navigation_bar.direct": "Rektaj mesaĝoj", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sekureco", "notification.favourite": "{name} stelumis vian mesaĝon", "notification.follow": "{name} eksekvis vin", + "notification.follow_request": "{name} petis sekvi vin", "notification.mention": "{name} menciis vin", + "notification.own_poll": "Via balotenketo finiĝitis", "notification.poll": "Partoprenita balotenketo finiĝis", "notification.reblog": "{name} diskonigis vian mesaĝon", "notifications.clear": "Forviŝi sciigojn", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Rapida filtra breto", "notifications.column_settings.filter_bar.show": "Montri", "notifications.column_settings.follow": "Novaj sekvantoj:", + "notifications.column_settings.follow_request": "Novaj petoj de sekvado:", "notifications.column_settings.mention": "Mencioj:", "notifications.column_settings.poll": "Balotenketaj rezultoj:", "notifications.column_settings.push": "Puŝsciigoj", @@ -344,6 +354,7 @@ "status.admin_account": "Malfermi la kontrolan interfacon por @{name}", "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco", "status.block": "Bloki @{name}", + "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", "status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas", "status.copy": "Kopii la ligilon al la mesaĝo", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} diskonigis", "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.", "status.redraft": "Forigi kaj reskribi", + "status.remove_bookmark": "Forigi legosignon", "status.reply": "Respondi", "status.replyAll": "Respondi al la fadeno", "status.report": "Signali @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Aldoni aŭdovidaĵon (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Limo de dosiera alŝutado transpasita.", "upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.", + "upload_form.audio_description": "Priskribi por homoj kiuj malfacile aŭdi", "upload_form.description": "Priskribi por misvidantaj homoj", "upload_form.edit": "Redakti", "upload_form.undo": "Forigi", + "upload_form.video_description": "Priskribi por homoj kiuj malfacile aŭdi aŭ vidi", "upload_modal.analyzing_picture": "Bilda analizado…", "upload_modal.apply": "Apliki", "upload_modal.description_placeholder": "Laŭ Ludoviko Zamenhof bongustas freŝa ĉeĥa manĝaĵo kun spicoj", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Antaŭvido ({ratio})", "upload_progress.label": "Alŝutado…", "video.close": "Fermi la videon", + "video.download": "Elŝuti dosieron", "video.exit_fullscreen": "Eksigi plenekrana", "video.expand": "Grandigi la videon", "video.fullscreen": "Igi plenekrana", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 56f8781a1..1de5ec8ce 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Agregar o quitar de las listas", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Bloquear a @{name}", "account.block_domain": "Ocultar todo de {domain}", "account.blocked": "Bloqueado", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Intentá de nuevo", "column.blocks": "Usuarios bloqueados", + "column.bookmarks": "Marcadores", "column.community": "Línea temporal local", "column.direct": "Mensajes directos", "column.directory": "Explorar perfiles", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.option_placeholder": "Opción {number}", "compose_form.poll.remove_option": "Quitá esta opción", + "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": "Tootear", "compose_form.publish_loud": "¡{publish}!", "compose_form.sensitive.hide": "Marcar medio como sensible", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "¡No hay toots aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Todavía no bloqueaste a ningún usuario.", + "empty_column.bookmarked_statuses": "Todavía no tenés toots guardados en marcadores. Cuando guardés uno en marcadores, se mostrará acá.", "empty_column.community": "La línea temporal local está vacía. ¡Escribí algo en modo público para que se empiece a correr la bola!", "empty_column.direct": "Todavía no tenés ningún mensaje directo. Cuando enviés o recibás uno, se mostrará acá.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", @@ -185,7 +190,7 @@ "introduction.federation.federated.headline": "Federado", "introduction.federation.federated.text": "Los toots públicos de otros servidores del fediverso aparecerán en la línea temporal federada.", "introduction.federation.home.headline": "Principal", - "introduction.federation.home.text": "Los toots de las personas que seguíss aparecerán en tu línea temporal principal. ¡Podés seguir a cualquiera en cualquier servidor!", + "introduction.federation.home.text": "Los toots de las personas que seguís aparecerán en tu línea temporal principal. ¡Podés seguir a cualquiera en cualquier servidor!", "introduction.federation.local.headline": "Local", "introduction.federation.local.text": "Los toots públicos de las personas en el mismo servidor aparecerán en la línea temporal local.", "introduction.interactions.action": "¡Terminar tutorial!", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados", "keyboard_shortcuts.my_profile": "para abrir tu perfil", "keyboard_shortcuts.notifications": "para abrir la columna de notificaciones", + "keyboard_shortcuts.open_media": "para abrir archivos de medios", "keyboard_shortcuts.pinned": "para abrir lista de toots fijados", "keyboard_shortcuts.profile": "para abrir el perfil del autor", "keyboard_shortcuts.reply": "para responder", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?", "navigation_bar.apps": "Aplicaciones móviles", "navigation_bar.blocks": "Usuarios bloqueados", + "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea temporal local", "navigation_bar.compose": "Redactar un nuevo toot", "navigation_bar.direct": "Mensajes directos", @@ -273,7 +280,9 @@ "navigation_bar.security": "Seguridad", "notification.favourite": "{name} marcó tu estado como favorito", "notification.follow": "{name} te empezó a seguir", + "notification.follow_request": "{name} solicitó seguirte", "notification.mention": "{name} te mencionó", + "notification.own_poll": "Tu encuesta finalizó", "notification.poll": "Finalizó una encuesta en la que votaste", "notification.reblog": "{name} retooteó tu estado", "notifications.clear": "Limpiar notificaciones", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show": "Mostrar", "notifications.column_settings.follow": "Nuevos seguidores:", + "notifications.column_settings.follow_request": "Nuevas solicitudes de seguimiento:", "notifications.column_settings.mention": "Menciones:", "notifications.column_settings.poll": "Resultados de la encuesta:", "notifications.column_settings.push": "Notificaciones push", @@ -344,6 +354,7 @@ "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_status": "Abrir este estado en la interface de moderación", "status.block": "Bloquear a @{name}", + "status.bookmark": "Marcador", "status.cancel_reblog_private": "Quitar retoot", "status.cannot_reblog": "No se puede retootear este toot", "status.copy": "Copiar enlace al estado", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} retooteó", "status.reblogs.empty": "Todavía nadie retooteó este toot. Cuando alguien lo haga, se mostrará acá.", "status.redraft": "Eliminar toot original y editarlo", + "status.remove_bookmark": "Quitar marcador", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Denunciar a @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Agregar medios ({formats})", "upload_error.limit": "Se excedió el límite de subida de archivos.", "upload_error.poll": "No se permite la subida de archivos en encuestas.", + "upload_form.audio_description": "Describir para personas con problemas auditivos", "upload_form.description": "Agregar descripción para los usuarios con dificultades visuales", "upload_form.edit": "Editar", "upload_form.undo": "Eliminar", + "upload_form.video_description": "Describir para personas con problemas auditivos o visuales", "upload_modal.analyzing_picture": "Analizando imagen…", "upload_modal.apply": "Aplicar", "upload_modal.description_placeholder": "El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja.", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Previsualización ({ratio})", "upload_progress.label": "Subiendo…", "video.close": "Cerrar video", + "video.download": "Descargar archivo", "video.exit_fullscreen": "Salir de pantalla completa", "video.expand": "Expandir vídeo", "video.fullscreen": "Pantalla completa", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index c213a03e1..825956d25 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Agregar o eliminar de listas", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Bloquear a @{name}", "account.block_domain": "Ocultar todo de {domain}", "account.blocked": "Bloqueado", @@ -15,7 +16,7 @@ "account.follows": "Sigue", "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", - "account.hide_reblogs": "Ocultar retoots de @{name}", + "account.hide_reblogs": "Ocultar rebarritadas de @{name}", "account.last_status": "Última actividad", "account.link_verified_on": "El proprietario de este link fue comprobado el {date}", "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.", @@ -26,12 +27,12 @@ "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", "account.never_active": "Nunca", - "account.posts": "Toots", - "account.posts_with_replies": "Toots con respuestas", + "account.posts": "Bramidos", + "account.posts_with_replies": "Bramidos con respuestas", "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación", "account.share": "Compartir el perfil de @{name}", - "account.show_reblogs": "Mostrar retoots de @{name}", + "account.show_reblogs": "Mostrar rebramidos de @{name}", "account.unblock": "Desbloquear a @{name}", "account.unblock_domain": "Mostrar a {domain}", "account.unendorse": "No mostrar en el perfil", @@ -39,7 +40,7 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}", "alert.rate_limited.message": "Por favor reintente después de {retry_time, time, medium}.", - "alert.rate_limited.title": "Tarifa limitada", + "alert.rate_limited.title": "Tasa limitada", "alert.unexpected.message": "Hubo un error inesperado.", "alert.unexpected.title": "¡Ups!", "autosuggest_hashtag.per_week": "{count} por semana", @@ -51,7 +52,8 @@ "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Inténtalo de nuevo", "column.blocks": "Usuarios bloqueados", - "column.community": "Línea de tiempo local", + "column.bookmarks": "Marcadores", + "column.community": "Cronología local", "column.direct": "Mensajes directos", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", @@ -61,8 +63,8 @@ "column.lists": "Listas", "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", - "column.pins": "Toots fijados", - "column.public": "Línea de tiempo federada", + "column.pins": "Bramidos fijados", + "column.public": "Cronología federada", "column_back_button.label": "Atrás", "column_header.hide_settings": "Ocultar configuración", "column_header.moveLeft_settings": "Mover columna a la izquierda", @@ -72,17 +74,19 @@ "column_header.unpin": "Dejar de fijar", "column_subheading.settings": "Ajustes", "community.column_settings.media_only": "Solo media", - "compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.", + "compose_form.direct_message_warning": "Este bramido solo será enviado a las usuarias mencionadas.", "compose_form.direct_message_warning_learn_more": "Aprender mas", - "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.", - "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.", + "compose_form.hashtag_warning": "Este bramido no se mostrará bajo etiquetas porque no es público. Sólo los bramidos públicos se pueden buscar por etiqueta.", + "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todas pueden seguirte para ver tus barritadas para solo seguidoras.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "¿En qué estás pensando?", "compose_form.poll.add_option": "Añadir una opción", "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.option_placeholder": "Elección {number}", "compose_form.poll.remove_option": "Eliminar esta opción", - "compose_form.publish": "Tootear", + "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": "Barritar", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar multimedia como sensible", "compose_form.sensitive.marked": "Material marcado como sensible", @@ -95,11 +99,11 @@ "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", "confirmations.delete.confirm": "Eliminar", - "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?", + "confirmations.delete.message": "¿Estás seguro de que quieres borrar este estado?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.domain_block.confirm": "Ocultar dominio entero", - "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", + "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.\nNo podrás ver contenido de ese dominio en ninguna de las cronologías públicas o tus notificaciones. Tus seguidoras de ese dominio serán borradas.", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", @@ -119,7 +123,7 @@ "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", - "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", + "embed.instructions": "Añade este estado a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", "emoji_button.custom": "Personalizado", @@ -135,25 +139,26 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", - "empty_column.account_timeline": "¡No hay toots aquí!", + "empty_column.account_timeline": "¡No hay barritadas aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Aún no has bloqueado a ningún usuario.", - "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!", + "empty_column.bookmarked_statuses": "Aún no tienes ninguna barritada guardada como marcador. Cuando guardes una, se mostrará aquí.", + "empty_column.community": "La cronología local está vacía. ¡Escribe algo para empezar la fiesta!", "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", - "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.", - "empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.", + "empty_column.favourited_statuses": "Aún no tienes barritadas preferidas. Cuando marques una como favorita, aparecerá aquí.", + "empty_column.favourites": "Nadie ha marcado esta barritada como preferida. Cuando alguien lo haga, aparecerá aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", - "empty_column.hashtag": "No hay nada en este hashtag aún.", + "empty_column.hashtag": "No hay nada en esta etiqueta aún.", "empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.", - "empty_column.home.public_timeline": "la línea de tiempo pública", + "empty_column.home.public_timeline": "la cronología pública", "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.", - "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.", + "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodonte a través de otro navegador o aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.report_issue": "Informar de un problema/error", "follow_request.authorize": "Autorizar", @@ -163,20 +168,20 @@ "getting_started.documentation": "Documentación", "getting_started.heading": "Primeros pasos", "getting_started.invite": "Invitar usuarios", - "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.", + "getting_started.open_source_notice": "Mastodonte es un Programa Libre y de Código Abierto - Plica/Foss -. Puedes contribuir o reportar errores en {github}.", "getting_started.security": "Seguridad", "getting_started.terms": "Términos de servicio", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", "hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias", - "hashtag.column_settings.select.placeholder": "Introduzca hashtags…", - "hashtag.column_settings.tag_mode.all": "Cualquiera de estos", + "hashtag.column_settings.select.placeholder": "Introduzca etiquetas…", + "hashtag.column_settings.tag_mode.all": "Todos estos", "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", - "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.column_settings.tag_toggle": "Incluya etiquetas adicionales para esta columna", "home.column_settings.basic": "Básico", - "home.column_settings.show_reblogs": "Mostrar retoots", + "home.column_settings.show_reblogs": "Mostrar rebarritadas", "home.column_settings.show_replies": "Mostrar respuestas", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", @@ -187,20 +192,20 @@ "introduction.federation.home.headline": "Inicio", "introduction.federation.home.text": "Los posts de personas que sigues aparecerán en tu cronología. ¡Puedes seguir a cualquiera en cualquier servidor!", "introduction.federation.local.headline": "Local", - "introduction.federation.local.text": "Los posts públicos de personas en el mismo servidor que aparecerán en la cronología local.", + "introduction.federation.local.text": "Los mensajes públicos de personas en el mismo servidor que aparecerán en la cronología local.", "introduction.interactions.action": "¡Terminar tutorial!", "introduction.interactions.favourite.headline": "Favorito", - "introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.", - "introduction.interactions.reblog.headline": "Retootear", - "introduction.interactions.reblog.text": "Puedes compartir los toots de otras personas con tus seguidores retooteando los mismos.", + "introduction.interactions.favourite.text": "Puedes guardar una barritada para más tarde, y hacer saber a la persona autora que te gustó, dándole a favorita.", + "introduction.interactions.reblog.headline": "Rebarritar", + "introduction.interactions.reblog.text": "Puedes compartir las barritadas de otras personas con tus seguidoras rebarritando las mismas.", "introduction.interactions.reply.headline": "Responder", - "introduction.interactions.reply.text": "Puedes responder a tus propios toots y los de otras personas, que se encadenarán juntos en una conversación.", + "introduction.interactions.reply.text": "Puedes responder a tus propias barritadas y los de otras personas, que se encadenarán juntos en una conversación.", "introduction.welcome.action": "¡Vamos!", "introduction.welcome.headline": "Primeros pasos", "introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.", "keyboard_shortcuts.back": "volver atrás", "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados", - "keyboard_shortcuts.boost": "retootear", + "keyboard_shortcuts.boost": "rebarritar", "keyboard_shortcuts.column": "enfocar un estado en una de las columnas", "keyboard_shortcuts.compose": "enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", @@ -209,17 +214,18 @@ "keyboard_shortcuts.enter": "abrir estado", "keyboard_shortcuts.favourite": "añadir a favoritos", "keyboard_shortcuts.favourites": "abrir la lista de favoritos", - "keyboard_shortcuts.federated": "abrir el timeline federado", + "keyboard_shortcuts.federated": "abrir la cronología federada", "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "abrir el timeline propio", + "keyboard_shortcuts.home": "abrir la cronología propia", "keyboard_shortcuts.hotkey": "Tecla caliente", "keyboard_shortcuts.legend": "para mostrar esta leyenda", - "keyboard_shortcuts.local": "abrir el timeline local", + "keyboard_shortcuts.local": "abrir la cronología local", "keyboard_shortcuts.mention": "para mencionar al autor", "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados", "keyboard_shortcuts.my_profile": "abrir tu perfil", "keyboard_shortcuts.notifications": "abrir la columna de notificaciones", - "keyboard_shortcuts.pinned": "abrir la lista de toots destacados", + "keyboard_shortcuts.open_media": "para abrir archivos multimedia", + "keyboard_shortcuts.pinned": "abrir la lista de barritadas destacadas", "keyboard_shortcuts.profile": "abrir el perfil del autor", "keyboard_shortcuts.reply": "para responder", "keyboard_shortcuts.requests": "abrir la lista de peticiones de seguidores", @@ -227,7 +233,7 @@ "keyboard_shortcuts.start": "abrir la columna \"comenzar\"", "keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)", "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios", - "keyboard_shortcuts.toot": "para comenzar un nuevo toot", + "keyboard_shortcuts.toot": "para comenzar un nuevo bramido", "keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda", "keyboard_shortcuts.up": "para ir hacia arriba en la lista", "lightbox.close": "Cerrar", @@ -251,8 +257,9 @@ "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "navigation_bar.apps": "Aplicaciones móviles", "navigation_bar.blocks": "Usuarios bloqueados", - "navigation_bar.community_timeline": "Historia local", - "navigation_bar.compose": "Escribir un nuevo toot", + "navigation_bar.bookmarks": "Marcadores", + "navigation_bar.community_timeline": "Cronología local", + "navigation_bar.compose": "Barrita", "navigation_bar.direct": "Mensajes directos", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios ocultos", @@ -267,15 +274,17 @@ "navigation_bar.logout": "Cerrar sesión", "navigation_bar.mutes": "Usuarios silenciados", "navigation_bar.personal": "Personal", - "navigation_bar.pins": "Toots fijados", + "navigation_bar.pins": "Barritadas fijadas", "navigation_bar.preferences": "Preferencias", - "navigation_bar.public_timeline": "Historia federada", + "navigation_bar.public_timeline": "Cronología federada", "navigation_bar.security": "Seguridad", "notification.favourite": "{name} marcó tu estado como favorito", "notification.follow": "{name} te empezó a seguir", + "notification.follow_request": "{name} ha solicitado seguirte", "notification.mention": "{name} te ha mencionado", + "notification.own_poll": "Tu encuesta ha terminado", "notification.poll": "Una encuesta en la que has votado ha terminado", - "notification.reblog": "{name} ha retooteado tu estado", + "notification.reblog": "{name} ha rebarritado tu estado", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", "notifications.column_settings.alert": "Notificaciones de escritorio", @@ -284,14 +293,15 @@ "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show": "Mostrar", "notifications.column_settings.follow": "Nuevos seguidores:", + "notifications.column_settings.follow_request": "Nuevas solicitudes de seguimiento:", "notifications.column_settings.mention": "Menciones:", "notifications.column_settings.poll": "Resultados de la votación:", "notifications.column_settings.push": "Notificaciones push", - "notifications.column_settings.reblog": "Retoots:", + "notifications.column_settings.reblog": "Rebarritadas:", "notifications.column_settings.show": "Mostrar en columna", "notifications.column_settings.sound": "Reproducir sonido", "notifications.filter.all": "Todos", - "notifications.filter.boosts": "Retoots", + "notifications.filter.boosts": "Rebarritadas", "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", @@ -310,9 +320,9 @@ "privacy.direct.short": "Directo", "privacy.private.long": "Sólo mostrar a seguidores", "privacy.private.short": "Privado", - "privacy.public.long": "Mostrar en la historia federada", + "privacy.public.long": "Mostrar en la cronología federada", "privacy.public.short": "Público", - "privacy.unlisted.long": "No mostrar en la historia federada", + "privacy.unlisted.long": "No mostrar en la cronología federada", "privacy.unlisted.short": "No listado", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", @@ -331,21 +341,22 @@ "report.target": "Reportando", "search.placeholder": "Buscar", "search_popout.search_format": "Formato de búsqueda avanzada", - "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", + "search_popout.tips.full_text": "Búsquedas de texto recuperan entradas que has escrito, marcado como favoritas, rebarritado o en los que has sido mencionada, así como usuarias, nombres y etiquetas.", "search_popout.tips.hashtag": "etiqueta", "search_popout.tips.status": "estado", - "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag", + "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, persona usuaria y etiqueta", "search_popout.tips.user": "usuario", "search_results.accounts": "Gente", "search_results.hashtags": "Etiquetas", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.", + "search_results.statuses": "Barritadas", + "search_results.statuses_fts_disabled": "Buscar bramidos por su contenido no está disponible en este servidor de Mastodonte.", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_status": "Abrir este estado en la interfaz de moderación", "status.block": "Bloquear a @{name}", + "status.bookmark": "Marcador", "status.cancel_reblog_private": "Des-impulsar", - "status.cannot_reblog": "Este toot no puede retootearse", + "status.cannot_reblog": "Este bramido no puede rebarritarse", "status.copy": "Copiar enlace al estado", "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", @@ -361,13 +372,14 @@ "status.mute_conversation": "Silenciar conversación", "status.open": "Expandir estado", "status.pin": "Fijar", - "status.pinned": "Toot fijado", + "status.pinned": "Barritada fijada", "status.read_more": "Leer más", - "status.reblog": "Retootear", + "status.reblog": "Rebarritar", "status.reblog_private": "Implusar a la audiencia original", - "status.reblogged_by": "Retooteado por {name}", - "status.reblogs.empty": "Nadie impulsó este toot todavía. Cuando alguien lo haga, aparecerá aqui.", + "status.reblogged_by": "Rebarritado por {name}", + "status.reblogs.empty": "Nadie impulsó esta barritada todavía. Cuando alguien lo haga, aparecerá aqui.", "status.redraft": "Borrar y volver a borrador", + "status.remove_bookmark": "Eliminar marcador", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Reportar", @@ -383,7 +395,7 @@ "status.unpin": "Dejar de fijar", "suggestions.dismiss": "Descartar sugerencia", "suggestions.header": "Es posible que te interese…", - "tabs_bar.federated_timeline": "Federado", + "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificaciones", @@ -395,14 +407,16 @@ "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando", "trends.trending_now": "Tendencia ahora", - "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.", + "ui.beforeunload": "Tu borrador se perderá si sales de Mastodonte.", "upload_area.title": "Arrastra y suelta para subir", "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Límite de subida de archivos excedido.", "upload_error.poll": "Subida de archivos no permitida con encuestas.", + "upload_form.audio_description": "Describir para personas con problemas auditivos", "upload_form.description": "Describir para los usuarios con dificultad visual", "upload_form.edit": "Editar", "upload_form.undo": "Borrar", + "upload_form.video_description": "Describir para personas con problemas auditivos o visuales", "upload_modal.analyzing_picture": "Analizando imagen…", "upload_modal.apply": "Aplicar", "upload_modal.description_placeholder": "Un rápido zorro marrón salta sobre el perro perezoso", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Vista previa ({ratio})", "upload_progress.label": "Subiendo…", "video.close": "Cerrar video", + "video.download": "Descargar archivo", "video.exit_fullscreen": "Salir de pantalla completa", "video.expand": "Expandir vídeo", "video.fullscreen": "Pantalla completa", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 6b97393d2..c5bc1f214 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Blokeeri @{name}", "account.block_domain": "Peida kõik domeenist {domain}", "account.blocked": "Blokeeritud", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Selle komponendi laadimisel läks midagi viltu.", "bundle_modal_error.retry": "Proovi uuesti", "column.blocks": "Blokeeritud kasutajad", + "column.bookmarks": "Järjehoidjad", "column.community": "Kohalik ajajoon", "column.direct": "Otsesõnumid", "column.directory": "Sirvi profiile", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Küsitluse kestus", "compose_form.poll.option_placeholder": "Valik {number}", "compose_form.poll.remove_option": "Eemalda see valik", + "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": "Tuut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Märgista meedia tundlikuks", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Siin tuute ei ole!", "empty_column.account_unavailable": "Profiil pole saadaval", "empty_column.blocks": "Sa ei ole veel ühtegi kasutajat blokeerinud.", + "empty_column.bookmarked_statuses": "Sul pole veel järjehoidjatesse lisatud tuututusi. Kui lisad mõne, näed neid siin.", "empty_column.community": "Kohalik ajajoon on tühi. Kirjuta midagi avalikult, et pall veerema saada!", "empty_column.direct": "Sul ei veel otsesõnumeid. Kui saadad või võtad mõne vastu, ilmuvad nad siia.", "empty_column.domain_blocks": "Siin ei ole veel peidetud domeene.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "avamaks vaigistatud kasutajate nimistut", "keyboard_shortcuts.my_profile": "avamaks profiili", "keyboard_shortcuts.notifications": "avamaks teadete tulpa", + "keyboard_shortcuts.open_media": "et avada meedia", "keyboard_shortcuts.pinned": "avamaks kinnitatud tuutide nimistut", "keyboard_shortcuts.profile": "avamaks autori profiili", "keyboard_shortcuts.reply": "vastamiseks", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "navigation_bar.apps": "Mobiilrakendused", "navigation_bar.blocks": "Blokeeritud kasutajad", + "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", "navigation_bar.compose": "Koosta uus tuut", "navigation_bar.direct": "Otsesõnumid", @@ -273,7 +280,9 @@ "navigation_bar.security": "Turvalisus", "notification.favourite": "{name} märkis su staatuse lemmikuks", "notification.follow": "{name} jälgib sind", + "notification.follow_request": "{name} soovib Teid jälgida", "notification.mention": "{name} mainis sind", + "notification.own_poll": "Teie küsitlus on lõppenud", "notification.poll": "Küsitlus, milles osalesid, on lõppenud", "notification.reblog": "{name} upitas su staatust", "notifications.clear": "Puhasta teated", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Kiirfiltri riba", "notifications.column_settings.filter_bar.show": "Kuva", "notifications.column_settings.follow": "Uued jälgijad:", + "notifications.column_settings.follow_request": "Uued jälgimistaotlused:", "notifications.column_settings.mention": "Mainimised:", "notifications.column_settings.poll": "Küsitluse tulemused:", "notifications.column_settings.push": "Push teated", @@ -344,6 +354,7 @@ "status.admin_account": "Ava moderaatoriliides kasutajale @{name}", "status.admin_status": "Ava see staatus moderaatoriliites", "status.block": "Blokeeri @{name}", + "status.bookmark": "Järjehoidja", "status.cancel_reblog_private": "Äraupita", "status.cannot_reblog": "Seda postitust ei saa upitada", "status.copy": "Kopeeri link staatusesse", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} upitatud", "status.reblogs.empty": "Keegi pole seda tuuti veel upitanud. Kui keegi upitab, näed seda siin.", "status.redraft": "Kustuta & alga uuesti", + "status.remove_bookmark": "Eemalda järjehoidja", "status.reply": "Vasta", "status.replyAll": "Vasta lõimele", "status.report": "Raport @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Lisa meedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Faili üleslaadimise limiit ületatud.", "upload_error.poll": "Küsitlustes pole faili üleslaadimine lubatud.", + "upload_form.audio_description": "Kirjelda kuulmispuudega inimeste jaoks", "upload_form.description": "Kirjelda vaegnägijatele", "upload_form.edit": "Redigeeri", "upload_form.undo": "Kustuta", + "upload_form.video_description": "Kirjelda kuulmis- või nägemispuudega inimeste jaoks", "upload_modal.analyzing_picture": "Analüüsime pilti…", "upload_modal.apply": "Rakenda", "upload_modal.description_placeholder": "Kiire pruun rebane hüppab üle laisa koera", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Eelvaade ({ratio})", "upload_progress.label": "Laeb üles....", "video.close": "Sulge video", + "video.download": "Faili allalaadimine", "video.exit_fullscreen": "Välju täisekraanist", "video.expand": "Suurenda video", "video.fullscreen": "Täisekraan", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 9e383e85a..3ae39ffba 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -1,6 +1,7 @@ { - "account.add_or_remove_from_list": "Gehitu edo Kendu zerrendetatik", + "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik", "account.badges.bot": "Bot-a", + "account.badges.group": "Group", "account.block": "Blokeatu @{name}", "account.block_domain": "Ezkutatu {domain} domeinuko guztia", "account.blocked": "Blokeatuta", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Zerbait okerra gertatu da osagai hau kargatzean.", "bundle_modal_error.retry": "Saiatu berriro", "column.blocks": "Blokeatutako erabiltzaileak", + "column.bookmarks": "Laster-markak", "column.community": "Denbora-lerro lokala", "column.direct": "Mezu zuzenak", "column.directory": "Arakatu profilak", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Inkestaren iraupena", "compose_form.poll.option_placeholder": "{number}. aukera", "compose_form.poll.remove_option": "Kendu aukera hau", + "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": "Markatu multimedia hunkigarri gisa", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Ez dago toot-ik hemen!", "empty_column.account_unavailable": "Profila ez dago eskuragarri", "empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.", + "empty_column.bookmarked_statuses": "Oraindik ez dituzu toot laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.", "empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!", "empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.", "empty_column.domain_blocks": "Ez dago ezkutatutako domeinurik oraindik.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "mutututako erabiltzaileen zerrenda irekitzeko", "keyboard_shortcuts.my_profile": "zure profila irekitzeko", "keyboard_shortcuts.notifications": "jakinarazpenen zutabea irekitzeko", + "keyboard_shortcuts.open_media": "media zabaltzeko", "keyboard_shortcuts.pinned": "finkatutako toot-en zerrenda irekitzeko", "keyboard_shortcuts.profile": "egilearen profila irekitzeko", "keyboard_shortcuts.reply": "erantzutea", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?", "navigation_bar.apps": "Mugikorrerako aplikazioak", "navigation_bar.blocks": "Blokeatutako erabiltzaileak", + "navigation_bar.bookmarks": "Laster-markak", "navigation_bar.community_timeline": "Denbora-lerro lokala", "navigation_bar.compose": "Idatzi toot berria", "navigation_bar.direct": "Mezu zuzenak", @@ -273,7 +280,9 @@ "navigation_bar.security": "Segurtasuna", "notification.favourite": "{name}(e)k zure mezua gogoko du", "notification.follow": "{name}(e)k jarraitzen zaitu", + "notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du", "notification.mention": "{name}(e)k aipatu zaitu", + "notification.own_poll": "Zure inkesta amaitu da", "notification.poll": "Zuk erantzun duzun inkesta bat bukatu da", "notification.reblog": "{name}(e)k bultzada eman dio zure mezuari", "notifications.clear": "Garbitu jakinarazpenak", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Iragazki azkarraren barra", "notifications.column_settings.filter_bar.show": "Erakutsi", "notifications.column_settings.follow": "Jarraitzaile berriak:", + "notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:", "notifications.column_settings.mention": "Aipamenak:", "notifications.column_settings.poll": "Inkestaren emaitzak:", "notifications.column_settings.push": "Push jakinarazpenak", @@ -318,7 +328,7 @@ "regeneration_indicator.label": "Kargatzen…", "regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!", "relative_time.days": "{number}e", - "relative_time.hours": "{number}o", + "relative_time.hours": "{number}h", "relative_time.just_now": "orain", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", @@ -340,10 +350,11 @@ "search_results.hashtags": "Traolak", "search_results.statuses": "Toot-ak", "search_results.statuses_fts_disabled": "Mastodon zerbitzari honek ez du Toot-en edukiaren bilaketa gaitu.", - "search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitzak}}", + "search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitza}}", "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea", "status.admin_status": "Ireki mezu hau moderazio interfazean", "status.block": "Blokeatu @{name}", + "status.bookmark": "Laster-marka", "status.cancel_reblog_private": "Kendu bultzada", "status.cannot_reblog": "Mezu honi ezin zaio bultzada eman", "status.copy": "Kopiatu mezuaren esteka", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name}(r)en bultzada", "status.reblogs.empty": "Ez dio inork bultzada eman toot honi oraindik. Inork egiten duenean, hemen agertuko dira.", "status.redraft": "Ezabatu eta berridatzi", + "status.remove_bookmark": "Kendu laster-marka", "status.reply": "Erantzun", "status.replyAll": "Erantzun harian", "status.report": "Salatu @{name}", @@ -393,25 +405,28 @@ "time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko", "time_remaining.moments": "Amaitzekotan", "time_remaining.seconds": "{number, plural, one {segundo #} other {# segundo}} amaitzeko", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} hitz egiten", + "trends.count_by_accounts": "{count} {rawCount, plural, one {pertsona} other {pertsona}} hitz egiten", "trends.trending_now": "Joera orain", "ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.", "upload_area.title": "Arrastatu eta jaregin igotzeko", "upload_button.label": "Gehitu multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Fitxategi igoera muga gaindituta.", "upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.", + "upload_form.audio_description": "Deskribatu entzumen galera duten pertsonentzat", "upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat", "upload_form.edit": "Editatu", "upload_form.undo": "Ezabatu", + "upload_form.video_description": "Deskribatu entzumen galera edo ikusmen urritasuna duten pertsonentzat", "upload_modal.analyzing_picture": "Irudia aztertzen…", "upload_modal.apply": "Aplikatu", - "upload_modal.description_placeholder": "Azeri marroi azkar batek txakur alferraren gainetik salto egiten du", + "upload_modal.description_placeholder": "Vaudeville itxurako filmean yogi ñaño bat jipoitzen dute Quebec-en whiski truk", "upload_modal.detect_text": "Antzeman testua iruditik", "upload_modal.edit_media": "Editatu media", "upload_modal.hint": "Sakatu eta jaregin aurrebistako zirkulua iruditxoetan beti ikusgai egongo den puntu fokala hautatzeko.", "upload_modal.preview_label": "Aurreikusi ({ratio})", "upload_progress.label": "Igotzen...", "video.close": "Itxi bideoa", + "video.download": "Deskargatu fitxategia", "video.exit_fullscreen": "Irten pantaila osotik", "video.expand": "Hedatu bideoa", "video.fullscreen": "Pantaila osoa", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index b651edd32..38a53e9b1 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -1,171 +1,176 @@ { "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست", "account.badges.bot": "ربات", + "account.badges.group": "Group", "account.block": "مسدودسازی @{name}", "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}", - "account.blocked": "مسدود شده", + "account.blocked": "مسدود", "account.cancel_follow_request": "لغو درخواست پیگیری", - "account.direct": "پیغام خصوصی به @{name}", - "account.domain_blocked": "دامین پنهان‌شده", + "account.direct": "پیام خصوصی به @{name}", + "account.domain_blocked": "دامنه نهفته", "account.edit_profile": "ویرایش نمایه", - "account.endorse": "نمایش در نمایه", - "account.follow": "پی بگیرید", - "account.followers": "پیگیران", - "account.followers.empty": "هنوز هیچ کسی پیگیر این کاربر نیست.", + "account.endorse": "معرّفی در نمایه", + "account.follow": "پیگیری", + "account.followers": "پی‌گیران", + "account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.", "account.follows": "پی می‌گیرد", - "account.follows.empty": "این کاربر هنوز هیچ کسی را پی نمی‌گیرد.", - "account.follows_you": "پیگیر شماست", - "account.hide_reblogs": "پنهان کردن بازبوق‌های @{name}", + "account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.", + "account.follows_you": "پیگیرتان", + "account.hide_reblogs": "نهفتن تقویت‌های @{name}", "account.last_status": "آخرین فعالیت", - "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.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.never_active": "هرگز", - "account.posts": "نوشته‌ها", - "account.posts_with_replies": "نوشته‌ها و پاسخ‌ها", + "account.posts": "بوق‌ها", + "account.posts_with_replies": "بوق‌ها و پاسخ‌ها", "account.report": "گزارش @{name}", - "account.requested": "در انتظار پذیرش", + "account.requested": "منتظر پذیرش. کلیک برای لغو درخواست پی‌گیری", "account.share": "هم‌رسانی نمایهٔ @{name}", - "account.show_reblogs": "نشان‌دادن بازبوق‌های @{name}", + "account.show_reblogs": "نمایش تقویت‌های @{name}", "account.unblock": "رفع انسداد @{name}", - "account.unblock_domain": "رفع پنهان‌سازی از {domain}", - "account.unendorse": "نهفتن از نمایه", - "account.unfollow": "پایان پیگیری", - "account.unmute": "باصدا کردن @{name}", - "account.unmute_notifications": "باصداکردن اعلان‌ها از طرف @{name}", - "alert.rate_limited.message": "لطفاً پس از {retry_time, time, medium} دوباره تلاش کنید.", - "alert.rate_limited.title": "محدودیت تعداد", - "alert.unexpected.message": "خطای پیش‌بینی‌نشده‌ای رخ داد.", - "alert.unexpected.title": "ای وای!", + "account.unblock_domain": "رفع نهفتن {domain}", + "account.unendorse": "معرّفی نکردن در نمایه", + "account.unfollow": "ناپی‌گیری", + "account.unmute": "رفع خموشی @{name}", + "account.unmute_notifications": "رفع خموشی آگاهی‌ها از @{name}", + "alert.rate_limited.message": "لطفاً پس از {retry_time, time, medium} دوباره بیازمایید.", + "alert.rate_limited.title": "محدود شده", + "alert.unexpected.message": "خطایی غیرمنتظره رخ داد.", + "alert.unexpected.title": "وای!", "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.", "bundle_column_error.retry": "تلاش دوباره", "bundle_column_error.title": "خطای شبکه", "bundle_modal_error.close": "بستن", - "bundle_modal_error.message": "هنگام بازکردن این بخش خطایی رخ داد.", + "bundle_modal_error.message": "هنگام بار کردن این بخش خطایی رخ داد.", "bundle_modal_error.retry": "تلاش دوباره", - "column.blocks": "کاربران مسدودشده", - "column.community": "نوشته‌های محلی", - "column.direct": "پیغام‌های خصوصی", + "column.blocks": "کاربران مسدود", + "column.bookmarks": "نشانک‌ها", + "column.community": "خط زمانی محلّی", + "column.direct": "پیام‌های خصوصی", "column.directory": "مرور نمایه‌ها", - "column.domain_blocks": "دامین‌های پنهان‌شده", - "column.favourites": "پسندیده‌ها", + "column.domain_blocks": "دامنه‌های نهفته", + "column.favourites": "برگزیده‌ها", "column.follow_requests": "درخواست‌های پیگیری", "column.home": "خانه", "column.lists": "فهرست‌ها", - "column.mutes": "کاربران بی‌صداشده", - "column.notifications": "اعلان‌ها", - "column.pins": "نوشته‌های ثابت", - "column.public": "نوشته‌های همه‌جا", + "column.mutes": "کاربران خموش", + "column.notifications": "آگاهی‌ها", + "column.pins": "بوق‌های سنجاق‌شده", + "column.public": "خط‌زمانی عمومی", "column_back_button.label": "بازگشت", "column_header.hide_settings": "نهفتن تنظیمات", "column_header.moveLeft_settings": "انتقال ستون به راست", "column_header.moveRight_settings": "انتقال ستون به چپ", - "column_header.pin": "ثابت‌کردن", + "column_header.pin": "سنجاق", "column_header.show_settings": "نمایش تنظیمات", - "column_header.unpin": "رهاکردن", + "column_header.unpin": "برداشتن سنجاق", "column_subheading.settings": "تنظیمات", - "community.column_settings.media_only": "فقط عکس و ویدیو", - "compose_form.direct_message_warning": "این بوق تنها به کاربرانی که از آن‌ها نام برده شده فرستاده خواهد شد.", - "compose_form.direct_message_warning_learn_more": "بیشتر بدانید", - "compose_form.hashtag_warning": "از آن‌جا که این بوق فهرست‌نشده است، در نتایج جستجوی هشتگ‌ها پیدا نخواهد شد. تنها بوق‌های عمومی را می‌توان با جستجوی هشتگ پیدا کرد.", - "compose_form.lock_disclaimer": "حساب شما {locked} نیست. هر کسی می‌تواند پیگیر شما شود و نوشته‌های ویژهٔ پیگیران شما را ببیند.", + "community.column_settings.media_only": "فقط رسانه", + "compose_form.direct_message_warning": "این بوق تنها به کاربران اشاره‌شده فرستاده خواهد شد.", + "compose_form.direct_message_warning_learn_more": "بیش‌تر بدانید", + "compose_form.hashtag_warning": "از آن‌جا که این بوق فهرست‌نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها بوق‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.", + "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پیگیرتان شده و فرسته‌های ویژهٔ پیگیرانتان را ببیند.", "compose_form.lock_disclaimer.lock": "قفل", - "compose_form.placeholder": "تازه چه خبر؟", + "compose_form.placeholder": "چی تو سرته؟", "compose_form.poll.add_option": "افزودن گزینه", "compose_form.poll.duration": "مدت نظرسنجی", "compose_form.poll.option_placeholder": "گزینهٔ {number}", - "compose_form.poll.remove_option": "حذف این گزینه", + "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": "علامت‌گذاری به عنوان حساس", - "compose_form.sensitive.marked": "این تصویر به عنوان حساس علامت‌گذاری شده", - "compose_form.sensitive.unmarked": "این تصویر به عنوان حساس علامت‌گذاری نشده", - "compose_form.spoiler.marked": "نوشته پشت هشدار محتوا پنهان است", + "compose_form.sensitive.hide": "علامت‌گذاری رسانه به عنوان حساس", + "compose_form.sensitive.marked": "رسانه به عنوان حساس علامت‌گذاری شده", + "compose_form.sensitive.unmarked": "رسانه به عنوان حساس علامت‌گذاری نشده", + "compose_form.spoiler.marked": "نوشته پشت هشدار پنهان است", "compose_form.spoiler.unmarked": "نوشته پنهان نیست", - "compose_form.spoiler_placeholder": "هشدار محتوا", - "confirmation_modal.cancel": "بی‌خیال", - "confirmations.block.block_and_report": "مسدودسازی و گزارش", - "confirmations.block.confirm": "مسدود کن", - "confirmations.block.message": "آیا واقعاً می‌خواهید {name} را مسدود کنید؟", - "confirmations.delete.confirm": "پاک کن", - "confirmations.delete.message": "آیا واقعاً می‌خواهید این نوشته را پاک کنید؟", - "confirmations.delete_list.confirm": "پاک کن", - "confirmations.delete_list.message": "آیا واقعاً می‌خواهید این فهرست را برای همیشه پاک کنید؟", - "confirmations.domain_block.confirm": "پنهان‌سازی کل دامین", - "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید کل دامین {domain} را مسدود کنید؟ بیشتر وقت‌ها مسدودکردن یا بی‌صداکردن چند حساب کاربری خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامین در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیران شما از این دامین هم حذف خواهد شد.", + "compose_form.spoiler_placeholder": "هشدارتان را این‌جا بنویسید", + "confirmation_modal.cancel": "لغو", + "confirmations.block.block_and_report": "انسداد و گزارش", + "confirmations.block.confirm": "انسداد", + "confirmations.block.message": "مطمئنید که می‌خواهید {name} را مسدود کنید؟", + "confirmations.delete.confirm": "حذف", + "confirmations.delete.message": "مطمئنید می‌خواهید این وضعیت را حذف کنید؟", + "confirmations.delete_list.confirm": "حذف", + "confirmations.delete_list.message": "مطمئنید می‌خواهید این فهرست را برای همیشه پاک کنید؟", + "confirmations.domain_block.confirm": "نهفتن تمام دامنه", + "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیش‌تر موارد انسداد یا خموش کردن چند حساب خاص کافی بوده و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در خط‌زمانی‌های عمومی یا آگاهی‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.", "confirmations.logout.confirm": "خروج", - "confirmations.logout.message": "آیا مطمئنید که می‌خواهید خارج شوید؟", - "confirmations.mute.confirm": "بی‌صدا کن", - "confirmations.mute.explanation": "این کار نوشته‌های آن‌ها و نوشته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند نوشته‌های شما را ببینند و شما را پی بگیرند.", - "confirmations.mute.message": "آیا واقعاً می‌خواهید {name} را بی‌صدا کنید؟", - "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی", - "confirmations.redraft.message": "آیا واقعاً می‌خواهید این نوشته را پاک کنید و آن را از نو بنویسید؟ با این کار بازبوق‌ها و پسندیده‌شدن‌های آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.", + "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟", + "confirmations.mute.confirm": "خموشی", + "confirmations.mute.explanation": "این کار فرسته‌هایشان و فرسته‌هایی که به آنان اشاره می‌کند را پنهان می‌کند، ولی همچنان اجازه دارند فرسته‌هایتان را دیده و دنبالتان کنند.", + "confirmations.mute.message": "مطمئنید می‌خواهید {name} را خموش کنید؟", + "confirmations.redraft.confirm": "حذف و بازنویسی", + "confirmations.redraft.message": "مطمئنید می‌خواهید این وضعیت را حذف کرده و از نو بنویسید؟ با این کار تقویت‌ها و برگزیدن‌هایش از دست رفته و پاسخ‌ها به فرستهٔ اصلی یتیم می‌شوند.", "confirmations.reply.confirm": "پاسخ", - "confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. آیا همین را می‌خواهید؟", - "confirmations.unfollow.confirm": "لغو پیگیری", - "confirmations.unfollow.message": "آیا واقعاً می‌خواهید به پیگیری از {name} پایان دهید؟", - "conversation.delete": "حذف گفتگو", + "confirmations.reply.message": "اگر الان پاسخ دهید، پیامی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟", + "confirmations.unfollow.confirm": "ناپی‌گیری", + "confirmations.unfollow.message": "مطمئنید می‌خواهید پیگیری {name} را پایان دهید؟", + "conversation.delete": "حذف گفت‌وگو", "conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده", - "conversation.open": "دیدن گفتگو", + "conversation.open": "دیدن گفت‌وگو", "conversation.with": "با {names}", - "directory.federated": "از سرورهای همسایه", - "directory.local": "تنها از {domain}", + "directory.federated": "از کارسازهای شناخته‌شده", + "directory.local": "فقط از {domain}", "directory.new_arrivals": "تازه‌واردان", "directory.recently_active": "کاربران فعال اخیر", - "embed.instructions": "برای جاگذاری این نوشته در سایت خودتان، کد زیر را کپی کنید.", - "embed.preview": "نوشتهٔ جاگذاری‌شده این گونه به نظر خواهد رسید:", + "embed.instructions": "با رونوشت از کد زیر، این وضعیت را روی پایگاهتان جاگذاری کنید.", + "embed.preview": "این گونه دیده خواهد شد:", "emoji_button.activity": "فعالیت", "emoji_button.custom": "سفارشی", "emoji_button.flags": "پرچم‌ها", "emoji_button.food": "غذا و نوشیدنی", - "emoji_button.label": "افزودن شکلک", + "emoji_button.label": "درج اموجی", "emoji_button.nature": "طبیعت", - "emoji_button.not_found": "این‌جا شکلکی نیست!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "اموجی‌ای وجود ندارد!! ‪ (╯°□°)╯︵ ┻━┻‬", "emoji_button.objects": "اشیا", "emoji_button.people": "مردم", - "emoji_button.recent": "زیاد به‌کاررفته", - "emoji_button.search": "جستجو...", - "emoji_button.search_results": "نتایج جستجو", + "emoji_button.recent": "پراستفاده", + "emoji_button.search": "جست‌وجو…", + "emoji_button.search_results": "نتایج جست‌وجو", "emoji_button.symbols": "نمادها", "emoji_button.travel": "سفر و مکان", "empty_column.account_timeline": "هیچ بوقی این‌جا نیست!", "empty_column.account_unavailable": "نمایهٔ ناموجود", - "empty_column.blocks": "شما هنوز هیچ کسی را مسدود نکرده‌اید.", - "empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!", - "empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.", - "empty_column.domain_blocks": "هنوز هیچ دامینی پنهان نشده است.", - "empty_column.favourited_statuses": "شما هنوز هیچ بوقی را نپسندیده‌اید. وقتی بوقی را بپسندید، این‌جا نمایش خواهد یافت.", - "empty_column.favourites": "هنوز هیچ کسی این بوق را نپسندیده است. وقتی کسی آن را بپسندد، نامش این‌جا نمایش خواهد یافت.", - "empty_column.follow_requests": "شما هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا نمایش خواهد یافت.", - "empty_column.hashtag": "هنوز هیچ چیزی با این برچسب (هشتگ) نیست.", - "empty_column.home": "شما هنوز پیگیر کسی نیستید. {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.", - "empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا", - "empty_column.list": "در این فهرست هنوز چیزی نیست. وقتی اعضای این فهرست چیزی بنویسند، این‌جا ظاهر خواهد شد.", - "empty_column.lists": "شما هنوز هیچ فهرستی ندارید. اگر فهرستی بسازید، این‌جا نمایش خواهد یافت.", - "empty_column.mutes": "شما هنوز هیچ کاربری را بی‌صدا نکرده‌اید.", - "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا گفتگو آغاز شود.", - "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا این‌جا پر شود", - "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.", - "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر آن هم کمکی نکرد، همچنان شاید بتوانید با ماستدون از راه یکی از اپ‌های آن کار کنید.", - "errors.unexpected_crash.copy_stacktrace": "کپی جزئیات اشکال", - "errors.unexpected_crash.report_issue": "گزارش اشکال", - "follow_request.authorize": "اجازه دهید", - "follow_request.reject": "اجازه ندهید", - "getting_started.developers": "برای برنامه‌نویسان", + "empty_column.blocks": "هنوز کسی را مسدود نکرده‌اید.", + "empty_column.bookmarked_statuses": "هنوز هیچ بوق نشان‌شده‌ای ندارید. وقتی بوقی را نشان‌کنید، این‌جا دیده خواهد شد.", + "empty_column.community": "خط‌زمانی محلّی خالی است. چیزی به صورت عمومی نوشته تا چرخش بچرخد!", + "empty_column.direct": "هنوز هیچ پیغام مستقیمی ندارید. هروقت چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.", + "empty_column.domain_blocks": "هنوز هیچ دامنه‌ای پنهان نشده است.", + "empty_column.favourited_statuses": "هنوز هیچ بوق برگزیده‌ای ندارید. وقتی بوقی را برگزینید، این‌جا دیده خواهد شد.", + "empty_column.favourites": "هنوز کسی این بوق را برنگزیده. وقتی کسی این کار را بکند، این‌جا دیده خواهد شد.", + "empty_column.follow_requests": "هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا دیده خواهد شد.", + "empty_column.hashtag": "هنوز هیچ چیزی در این برچسب نیست.", + "empty_column.home": "خط‌زمانی خانگیتان خالیست! برای شروع و دیدن دیگر کاربران، از جست‌وجو استفاده کرده یا {public} را ببینید.", + "empty_column.home.public_timeline": "خط‌زمانی عمومی", + "empty_column.list": "هنوز چیزی در این فهرست وجود ندارد. هنگامی که اعضای این فهرست وضعیت جدیدی بفرستند، این‌جا ظاهر خواهد شد.", + "empty_column.lists": "هنوز هیچ فهرستی ندارید. هنگامی که فهرستی بسازید، این‌جا دیده خواهد شد.", + "empty_column.mutes": "هنوز هیچ کاربری را خموش نکرده‌اید.", + "empty_column.notifications": "هنوز هیچ آگاهی‌ای ندارید. به دیگران واکنش نشان داده تا گفت‌وگو آغاز شود.", + "empty_column.public": "هیچ‌چیز این‌جا نیست! پرای پر کردنش چیزی به صورت عمومی نوشته یا کاربران دیگر کارسازها را پی بگیرید", + "error.unexpected_crash.explanation": "به خاطر مشکلی در کدمان یا یک ناسازگاری مرورگر، این صفحه نتوانست به درستی نمایش یابد.", + "error.unexpected_crash.next_steps": "تازه‌سازی صفحه را بیازمایید. اگر کمکی نکرد، شاید بتوانید از طریق مرورگری دیگر یا کارهٔ بومی از ماستودون استفاده کنید.", + "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال", + "errors.unexpected_crash.report_issue": "گزارش مشکل", + "follow_request.authorize": "اجازه دادن", + "follow_request.reject": "رد کردن", + "getting_started.developers": "توسعه‌دهندگان", "getting_started.directory": "فهرست گزیدهٔ کاربران", - "getting_started.documentation": "راهنما", + "getting_started.documentation": "مستندات", "getting_started.heading": "آغاز کنید", - "getting_started.invite": "دعوت از دوستان", - "getting_started.open_source_notice": "ماستدون یک نرم‌افزار آزاد است. می‌توانید در ساخت آن مشارکت کنید یا مشکلاتش را در {github} گزارش دهید.", - "getting_started.security": "امنیت", - "getting_started.terms": "شرایط استفاده", + "getting_started.invite": "دعوت از دیگران", + "getting_started.open_source_notice": "ماستودون نرم‌افزاری آزاد است. می‌توانید روی {github} در آن مشارکت کرده یا مشکلاتش را گزارش دهید.", + "getting_started.security": "تنظیمات حساب", + "getting_started.terms": "شرایط خدمات", "hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", "hashtag.column_header.tag_mode.none": "بدون {additional}", @@ -174,250 +179,260 @@ "hashtag.column_settings.tag_mode.all": "همهٔ این‌ها", "hashtag.column_settings.tag_mode.any": "هرکدام از این‌ها", "hashtag.column_settings.tag_mode.none": "هیچ‌کدام از این‌ها", - "hashtag.column_settings.tag_toggle": "برچسب‌های بیشتری به این ستون بیفزایید", - "home.column_settings.basic": "اصلی", - "home.column_settings.show_reblogs": "نمایش بازبوق‌ها", + "hashtag.column_settings.tag_toggle": "افزودن برچسب‌هایی بیشتر به این ستون", + "home.column_settings.basic": "پایه‌ای", + "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", "introduction.federation.action": "بعدی", - "introduction.federation.federated.headline": "فهرست همهٔ سرورها", - "introduction.federation.federated.text": "نوشته‌های عمومی سرورهای دیگر در این فهرست نمایش می‌یابند.", + "introduction.federation.federated.headline": "همگانی", + "introduction.federation.federated.text": "نوشته‌های عمومی دیگر کارسازها در خط‌زمانی همگانی طاهر خواهند شد.", "introduction.federation.home.headline": "خانه", - "introduction.federation.home.text": "نوشته‌های کسانی که شما آن‌ها را پی می‌گیرید این‌جا نمایش می‌یابند. شما می‌توانید هر کسی را از هر سروری پی بگیرید!", - "introduction.federation.local.headline": "محلی", - "introduction.federation.local.text": "نوشته‌های عمومی کسانی که روی سرور شما هستند در فهرست نوشته‌های محلی نمایش می‌یابند.", + "introduction.federation.home.text": "فرسته‌ها از افرادی که دنبالشان می‌کنید در خوراک خانه‌تان ظاهر خواهند شد. می‌توانید هر کسی را روی هر کارسازی پی‌بگیرید!", + "introduction.federation.local.headline": "محلّی", + "introduction.federation.local.text": "نوشته‌های عمومی افرادی که روی همان کارساز خودتان هستند در خط زمانی محلّی ظاهر خواهند شد.", "introduction.interactions.action": "پایان خودآموز!", - "introduction.interactions.favourite.headline": "پسندیدن", - "introduction.interactions.favourite.text": "با پسندیدن یک بوق، شما آن را برای آینده ذخیره می‌کنید و به نویسنده می‌گویید که از بوقش خوشتان آمده.", - "introduction.interactions.reblog.headline": "بازبوقیدن", - "introduction.interactions.reblog.text": "اگر بخواهید نوشته‌ای را با پیگیران خودتان به اشتراک بگذارید، آن را بازمی‌بوقید.", + "introduction.interactions.favourite.headline": "برگزیدن", + "introduction.interactions.favourite.text": "می‌توانید بوقی را برای بعد ذخیره کنید و با برگزیدنش، بگذارید نویسنده بداند که پسندیدیش.", + "introduction.interactions.reblog.headline": "تقویت", + "introduction.interactions.reblog.text": "با تقویت بوق‌های دیگران، می‌توانید آن‌ها را با پی‌گیرانتان هم‌رسانی کنید.", "introduction.interactions.reply.headline": "پاسخ", - "introduction.interactions.reply.text": "شما می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا همهٔ این بوق‌ها به شکل رشتهٔ به‌هم‌پیوسته‌ای در یک گفتگو درآیند.", + "introduction.interactions.reply.text": "می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا در یک گفت‌وگو به هم زنجیر شوند.", "introduction.welcome.action": "بزن بریم!", "introduction.welcome.headline": "نخستین گام‌ها", - "introduction.welcome.text": "به دنیای شبکه‌های اجتماعی غیرمتمرکز خوش آمدید! به زودی می‌توانید نوشته‌های خودتان را منتشر کنید و با دوستانتان که روی سرورهای مختلفی هستند حرف بزنید. ولی این سرور، {domain}، با بقیه فرق دارد زیرا حساب شما روی آن ساخته شده است، پس نامش را یادتان نگه دارید.", + "introduction.welcome.text": "به دنیای شبکه‌های اجتماعی غیرمتمرکز خوش آمدید! به زودی می‌توانید نوشته‌هایتان را منتشر کرده و با دوستانتان روی دامنهٔ وسیعی از کارسازها حرف بزنید. ولی این کارساز، {domain}، با بقیه فرق دارد، چرا که میزبان نمایهٔ شماست، پس نامش را به خاطر بسپارید.", "keyboard_shortcuts.back": "برای بازگشت", - "keyboard_shortcuts.blocked": "برای گشودن کاربران بی‌صداشده", - "keyboard_shortcuts.boost": "برای بازبوقیدن", - "keyboard_shortcuts.column": "برای برجسته‌کردن یک نوشته در یکی از ستون‌ها", - "keyboard_shortcuts.compose": "برای فعال‌کردن کادر نوشتهٔ تازه", + "keyboard_shortcuts.blocked": "برای گشودن فهرست کاربران خموش", + "keyboard_shortcuts.boost": "برای تقویت", + "keyboard_shortcuts.column": "برای تمرکز روی وضعیتی در یکی از ستون‌ها", + "keyboard_shortcuts.compose": "برای تمرکز روی محیط نوشتن", "keyboard_shortcuts.description": "توضیح", - "keyboard_shortcuts.direct": "برای گشودن ستون پیغام‌های مستقیم", - "keyboard_shortcuts.down": "برای پایین‌رفتن در فهرست", - "keyboard_shortcuts.enter": "برای گشودن نوشته", - "keyboard_shortcuts.favourite": "برای پسندیدن", - "keyboard_shortcuts.favourites": "برای گشودن پیغام‌های پسندیده‌شده", - "keyboard_shortcuts.federated": "برای گشودن فهرست نوشته‌های همه‌جا", + "keyboard_shortcuts.direct": "برای گشودن ستون پیام‌های خصوصی", + "keyboard_shortcuts.down": "برای پایین رفتن در فهرست", + "keyboard_shortcuts.enter": "برای گشودن وضعیت", + "keyboard_shortcuts.favourite": "برای برگزیدن", + "keyboard_shortcuts.favourites": "برای گشودن فهرست برگزیده‌ها", + "keyboard_shortcuts.federated": "برای گشودن خط‌زمانی همگانی", "keyboard_shortcuts.heading": "میان‌برهای صفحه‌کلید", - "keyboard_shortcuts.home": "برای گشودن ستون اصلی پیگیری‌ها", + "keyboard_shortcuts.home": "برای گشودن خط‌زمانی خانه", "keyboard_shortcuts.hotkey": "میان‌بر", "keyboard_shortcuts.legend": "برای نمایش این راهنما", - "keyboard_shortcuts.local": "برای گشودن فهرست نوشته‌های محلی", - "keyboard_shortcuts.mention": "برای نام‌بردن از نویسنده", - "keyboard_shortcuts.muted": "برای گشودن فهرست کاربران بی‌صداشده", - "keyboard_shortcuts.my_profile": "برای گشودن صفحهٔ نمایهٔ شما", - "keyboard_shortcuts.notifications": "برای گشودن ستون اعلان‌ها", - "keyboard_shortcuts.pinned": "برای گشودن فهرست نوشته‌‌های ثابت", - "keyboard_shortcuts.profile": "گشودن نمایهٔ نویسنده", - "keyboard_shortcuts.reply": "برای پاسخ‌دادن", + "keyboard_shortcuts.local": "برای گشودن خط‌زمانی محلّی", + "keyboard_shortcuts.mention": "برای اشاره به نویسنده", + "keyboard_shortcuts.muted": "برای گشودن فهرست کاربران خموش", + "keyboard_shortcuts.my_profile": "برای گشودن نمایه‌تان", + "keyboard_shortcuts.notifications": "برای گشودن ستون آگاهی‌ها", + "keyboard_shortcuts.open_media": "برای باز کردن رسانه", + "keyboard_shortcuts.pinned": "برای گشودن فهرست بوق‌های سنجاق‌شده", + "keyboard_shortcuts.profile": "برای گشودن نمایهٔ نویسنده", + "keyboard_shortcuts.reply": "برای پاسخ", "keyboard_shortcuts.requests": "برای گشودن فهرست درخواست‌های پیگیری", - "keyboard_shortcuts.search": "برای فعال‌کردن جستجو", + "keyboard_shortcuts.search": "برای تمرکز روی جست‌وجو", "keyboard_shortcuts.start": "برای گشودن ستون «آغاز کنید»", "keyboard_shortcuts.toggle_hidden": "برای نمایش/نهفتن نوشتهٔ پشت هشدار محتوا", - "keyboard_shortcuts.toggle_sensitivity": "برای نمایش/نهفتن عکس و ویدیو", + "keyboard_shortcuts.toggle_sensitivity": "برای نمایش/نهفتن رسانه", "keyboard_shortcuts.toot": "برای آغاز یک بوق تازه", - "keyboard_shortcuts.unfocus": "برای برداشتن توجه از نوشتن/جستجو", + "keyboard_shortcuts.unfocus": "برای برداشتن تمرکز از نوشتن/جست‌وجو", "keyboard_shortcuts.up": "برای بالا رفتن در فهرست", "lightbox.close": "بستن", "lightbox.next": "بعدی", - "lightbox.previous": "قبلی", - "lightbox.view_context": "نمایش گفتگو", + "lightbox.previous": "پیشین", + "lightbox.view_context": "نمایش متن", "lists.account.add": "افزودن به فهرست", - "lists.account.remove": "پاک‌کردن از فهرست", + "lists.account.remove": "برداشتن از فهرست", "lists.delete": "حذف فهرست", "lists.edit": "ویرایش فهرست", "lists.edit.submit": "تغییر عنوان", "lists.new.create": "افزودن فهرست", - "lists.new.title_placeholder": "نام فهرست تازه", - "lists.search": "بین کسانی که پی می‌گیرید بگردید", - "lists.subheading": "فهرست‌های شما", + "lists.new.title_placeholder": "عنوان فهرست تازه", + "lists.search": "جست‌وجو بین افرادی که پی می‌گیرید", + "lists.subheading": "فهرست‌هایتان", "load_pending": "{count, plural, one {# مورد تازه} other {# مورد تازه}}", - "loading_indicator.label": "بارگیری...", - "media_gallery.toggle_visible": "تغییر پیدایی", + "loading_indicator.label": "در حال بار کردن…", + "media_gallery.toggle_visible": "تغییر وضعیت نمایانی", "missing_indicator.label": "پیدا نشد", "missing_indicator.sublabel": "این منبع پیدا نشد", - "mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟", - "navigation_bar.apps": "اپ‌های موبایل", - "navigation_bar.blocks": "کاربران مسدودشده", - "navigation_bar.community_timeline": "نوشته‌های محلی", + "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", + "navigation_bar.apps": "کاره‌های همراه", + "navigation_bar.blocks": "کاربران مسدود", + "navigation_bar.bookmarks": "نشانک‌ها", + "navigation_bar.community_timeline": "خط‌زمانی محلّی", "navigation_bar.compose": "نوشتن بوق تازه", - "navigation_bar.direct": "پیغام‌های مستقیم", - "navigation_bar.discover": "گشت و گذار", - "navigation_bar.domain_blocks": "دامین‌های پنهان‌شده", + "navigation_bar.direct": "پیام‌های خصوصی", + "navigation_bar.discover": "کشف", + "navigation_bar.domain_blocks": "دامنه‌های نهفته", "navigation_bar.edit_profile": "ویرایش نمایه", - "navigation_bar.favourites": "پسندیده‌ها", - "navigation_bar.filters": "واژگان بی‌صداشده", + "navigation_bar.favourites": "برگزیده‌ها", + "navigation_bar.filters": "واژگان خموش", "navigation_bar.follow_requests": "درخواست‌های پیگیری", - "navigation_bar.follows_and_followers": "پیگیری‌ها و پیگیران", - "navigation_bar.info": "دربارهٔ این سرور", - "navigation_bar.keyboard_shortcuts": "میان‌برهای صفحه‌کلید", + "navigation_bar.follows_and_followers": "پی‌گیری‌ها و پی‌گیران", + "navigation_bar.info": "دربارهٔ این کارساز", + "navigation_bar.keyboard_shortcuts": "میان‌برها", "navigation_bar.lists": "فهرست‌ها", "navigation_bar.logout": "خروج", - "navigation_bar.mutes": "کاربران بی‌صداشده", + "navigation_bar.mutes": "کاربران خموش", "navigation_bar.personal": "شخصی", - "navigation_bar.pins": "نوشته‌های ثابت", + "navigation_bar.pins": "بوق‌های سنجاق‌شده", "navigation_bar.preferences": "ترجیحات", - "navigation_bar.public_timeline": "نوشته‌های همه‌جا", + "navigation_bar.public_timeline": "خط‌زمانی همگانی", "navigation_bar.security": "امنیت", - "notification.favourite": "‫{name}‬ نوشتهٔ شما را پسندید", - "notification.follow": "‫{name}‬ پیگیر شما شد", - "notification.mention": "‫{name}‬ از شما نام برد", - "notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسیده است", - "notification.reblog": "‫{name}‬ نوشتهٔ شما را بازبوقید", - "notifications.clear": "پاک‌کردن اعلان‌ها", - "notifications.clear_confirmation": "واقعاً می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟", - "notifications.column_settings.alert": "اعلان در کامپیوتر", - "notifications.column_settings.favourite": "پسندیده‌ها:", - "notifications.column_settings.filter_bar.advanced": "نمایش همهٔ گروه‌ها", - "notifications.column_settings.filter_bar.category": "فیلتر سریع", + "notification.favourite": "‫{name}‬ وضعیتتان را برگزید", + "notification.follow": "‫{name}‬ پی‌گیرتان شد", + "notification.follow_request": "{name} درخواست پی‌گیریتان را داده است", + "notification.mention": "‫{name}‬ به شما اشاره کرد", + "notification.own_poll": "نظرسنجیتان پایان یافت", + "notification.poll": "نظرسنجی‌ای که در آن رأی دادید پایان یافته است", + "notification.reblog": "‫{name}‬ وضعیتتان را تقویت کرد", + "notifications.clear": "پاک‌سازی آگاهی‌ها", + "notifications.clear_confirmation": "مطمئنید می‌خواهید تمام آگاهی‌هایتان را برای همیشه پاک کنید؟", + "notifications.column_settings.alert": "آگاهی‌های میزکار", + "notifications.column_settings.favourite": "برگزیده‌ها:", + "notifications.column_settings.filter_bar.advanced": "نمایش تمام دسته‌ها", + "notifications.column_settings.filter_bar.category": "نوار پالایش سریع", "notifications.column_settings.filter_bar.show": "نمایش", - "notifications.column_settings.follow": "پیگیران تازه:", - "notifications.column_settings.mention": "نام‌بردن‌ها:", + "notifications.column_settings.follow": "پی‌گیران تازه:", + "notifications.column_settings.follow_request": "درخواست‌های جدید پی‌گیری:", + "notifications.column_settings.mention": "اشاره‌ها:", "notifications.column_settings.poll": "نتایج نظرسنجی:", - "notifications.column_settings.push": "اعلان‌ها از سمت سرور", - "notifications.column_settings.reblog": "بازبوق‌ها:", + "notifications.column_settings.push": "ارسال آگاهی‌ها", + "notifications.column_settings.reblog": "تقویت‌ها:", "notifications.column_settings.show": "نمایش در ستون", "notifications.column_settings.sound": "پخش صدا", "notifications.filter.all": "همه", - "notifications.filter.boosts": "بازبوق‌ها", - "notifications.filter.favourites": "پسندیده‌ها", - "notifications.filter.follows": "پیگیری‌ها", - "notifications.filter.mentions": "گفتگوها", + "notifications.filter.boosts": "تقویت‌ها", + "notifications.filter.favourites": "برگزیده‌ها", + "notifications.filter.follows": "پی‌گیری‌ها", + "notifications.filter.mentions": "اشاره‌ها", "notifications.filter.polls": "نتایج نظرسنجی", - "notifications.group": "{count} اعلان", - "poll.closed": "پایان‌یافته", - "poll.refresh": "به‌روزرسانی", + "notifications.group": "{count} آگاهی", + "poll.closed": "بسته‌شده", + "poll.refresh": "نوسازی", "poll.total_people": "{count, plural, one {# نفر} other {# نفر}}", "poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}", "poll.vote": "رأی", - "poll.voted": "شما به این گزینه رأی دادید", + "poll.voted": "به این پاسخ رأی دادید", "poll_button.add_poll": "افزودن نظرسنجی", - "poll_button.remove_poll": "حذف نظرسنجی", - "privacy.change": "تنظیم حریم خصوصی نوشته‌ها", - "privacy.direct.long": "تنها به کاربران نام‌برده‌شده نشان بده", - "privacy.direct.short": "مستقیم", - "privacy.private.long": "تنها به پیگیران نشان بده", - "privacy.private.short": "خصوصی", - "privacy.public.long": "نمایش در فهرست عمومی", + "poll_button.remove_poll": "برداشتن نظرسنجی", + "privacy.change": "تنظیم محرمانگی وضعیت‌ها", + "privacy.direct.long": "ارسال فقط به کاربران اشاره‌شده", + "privacy.direct.short": "خصوصی", + "privacy.private.long": "ارسال فقط به پی‌گیران", + "privacy.private.short": "فقط پی‌گیران", + "privacy.public.long": "ارسال به خط‌زمانی عمومی", "privacy.public.short": "عمومی", - "privacy.unlisted.long": "عمومی، ولی فهرست نکن", + "privacy.unlisted.long": "ارسال نکردن به خط‌زمانی عمومی", "privacy.unlisted.short": "فهرست‌نشده", - "refresh": "به‌روزرسانی", - "regeneration_indicator.label": "در حال باز شدن…", - "regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!", + "refresh": "نوسازی", + "regeneration_indicator.label": "در حال بار کردن…", + "regeneration_indicator.sublabel": "خوراک خانه‌تان در حال آماده شدن است!", "relative_time.days": "{number} روز", "relative_time.hours": "{number} ساعت", - "relative_time.just_now": "الان", + "relative_time.just_now": "اکنون", "relative_time.minutes": "{number} دقیقه", "relative_time.seconds": "{number} ثانیه", "reply_indicator.cancel": "لغو", - "report.forward": "فرستادن به {target}", - "report.forward_hint": "این حساب در سرور دیگری ثبت شده. آیا می‌خواهید رونوشتی از این گزارش به طور ناشناس به آن‌جا هم فرستاده شود؟", - "report.hint": "این گزارش به مدیران سرور شما فرستاده خواهد شد. می‌توانید دلیل گزارش‌دادن این حساب را در این‌جا بنویسید:", + "report.forward": "هدایت به {target}", + "report.forward_hint": "این حساب از کارسازی دیگر است. رونوشتی ناشناس از گزارش به آن‌جا نیز فرستاده شود؟", + "report.hint": "این گزارش به مدیران کارسازتان فرستاده خواهد شد. می‌توانید دلیلی بر چرایی گزارش این حساب را در ادامه بنویسید:", "report.placeholder": "توضیح اضافه", - "report.submit": "بفرست", - "report.target": "گزارش‌دادن", - "search.placeholder": "جستجو", - "search_popout.search_format": "راهنمای جستجوی پیشرفته", - "search_popout.tips.full_text": "جستجوی متنی ساده می‌تواند بوق‌هایی که شما نوشته‌اید، پسندیده‌اید، بازبوقیده‌اید، یا در آن‌ها از شما نام برده شده است را پیدا کند. همچنین نام‌های کاربری، نام نمایش‌یافته، و هشتگ‌ها را هم شامل می‌شود.", + "report.submit": "ثبت", + "report.target": "در حال گزارش {target}", + "search.placeholder": "جست‌وجو", + "search_popout.search_format": "قالب جست‌وجوی پیشرفته", + "search_popout.tips.full_text": "جست‌وجوی متنی ساده وضعیت‌هایی که که نوشته، برگزیده، تقویت‌کرده یا در آن‌ها اشاره‌شده‌اید را به اضافهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌های مطابق برمی‌گرداند.", "search_popout.tips.hashtag": "برچسب", - "search_popout.tips.status": "نوشته", - "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و برچسب‌ها", + "search_popout.tips.status": "وضعیت", + "search_popout.tips.text": "جست‌وجوی متنی ساده، نام‌های نمایشی، نام‌های کاربری، و برچسب‌ها را برمی‌گرداند", "search_popout.tips.user": "کاربر", "search_results.accounts": "افراد", "search_results.hashtags": "برچسب‌ها", "search_results.statuses": "بوق‌ها", - "search_results.statuses_fts_disabled": "جستجوی محتوای بوق‌ها در این سرور ماستدون ممکن نیست.", + "search_results.statuses_fts_disabled": "جست‌وجوی بوق‌ها بر اساس محتوایشان روی این کارساز ماستودون به کار نیفتاده است.", "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", - "status.admin_account": "محیط مدیریت مربوط به @{name} را باز کن", - "status.admin_status": "این نوشته را در محیط مدیریت باز کن", - "status.block": "مسدودسازی @{name}", - "status.cancel_reblog_private": "حذف بازبوق", - "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید", - "status.copy": "رونوشت‌برداری از نشانی این نوشته", - "status.delete": "پاک‌کردن", - "status.detailed_status": "نمایش کامل گفتگو", - "status.direct": "پیغام مستقیم به @{name}", + "status.admin_account": "گشودن واسط مدیریت برای @{name}", + "status.admin_status": "گشودن این وضعیت در واسط مدیریت", + "status.block": "انسداد @{name}", + "status.bookmark": "نشانک", + "status.cancel_reblog_private": "ناتقویت", + "status.cannot_reblog": "این نوشته نمی‌تواند تقویت شود", + "status.copy": "رونوشت از پیوند به وضعیت", + "status.delete": "حذف", + "status.detailed_status": "نمای گفت‌وگوی باجزییات", + "status.direct": "پیام خصوصی به @{name}", "status.embed": "جاگذاری", - "status.favourite": "پسندیدن", - "status.filtered": "فیلترشده", - "status.load_more": "بیشتر نشان بده", - "status.media_hidden": "تصویر پنهان شده", - "status.mention": "نام‌بردن از @{name}", + "status.favourite": "برگزیدن", + "status.filtered": "پالوده", + "status.load_more": "بار کردن بیشتر", + "status.media_hidden": "رسانهٔ نهفته", + "status.mention": "اشاره به @{name}", "status.more": "بیشتر", - "status.mute": "بی‌صدا کردن @{name}", - "status.mute_conversation": "بی‌صداکردن گفتگو", - "status.open": "این نوشته را باز کن", - "status.pin": "نوشتهٔ ثابت نمایه", - "status.pinned": "بوق ثابت", + "status.mute": "خموشی @{name}", + "status.mute_conversation": "خموشی گفت‌وگو", + "status.open": "گسترش این وضعیت", + "status.pin": "سنجاق به نمایه", + "status.pinned": "بوق سنجاق‌شده", "status.read_more": "بیشتر بخوانید", - "status.reblog": "بازبوقیدن", - "status.reblog_private": "بازبوق به مخاطبان اولیه", - "status.reblogged_by": "‫{name}‬ بازبوقید", - "status.reblogs.empty": "هنوز هیچ کسی این بوق را بازنبوقیده است. وقتی کسی چنین کاری کند، این‌جا نمایش خواهد یافت.", - "status.redraft": "پاک‌کردن و بازنویسی", + "status.reblog": "تقویت", + "status.reblog_private": "تقویت برای مخاطبان نخستین", + "status.reblogged_by": "‫{name}‬ تقویت کرد", + "status.reblogs.empty": "هنوز کسی این بوق را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا دیده خواهد شد.", + "status.redraft": "حذف و بازنویسی", + "status.remove_bookmark": "برداشتن نشانک", "status.reply": "پاسخ", - "status.replyAll": "به نوشته پاسخ دهید", - "status.report": "گزارش دادن @{name}", + "status.replyAll": "پاسخ به رشته", + "status.report": "گزارش @{name}", "status.sensitive_warning": "محتوای حساس", "status.share": "هم‌رسانی", - "status.show_less": "نهفتن", - "status.show_less_all": "نمایش کمتر همه", - "status.show_more": "نمایش", - "status.show_more_all": "نمایش بیشتر همه", - "status.show_thread": "نمایش گفتگو", + "status.show_less": "نمایش کمتر", + "status.show_less_all": "نمایش کمتر برای همه", + "status.show_more": "نمایش بیشتر", + "status.show_more_all": "نمایش بیشتر برای همه", + "status.show_thread": "نمایش رشته", "status.uncached_media_warning": "ناموجود", - "status.unmute_conversation": "باصداکردن گفتگو", - "status.unpin": "برداشتن نوشتهٔ ثابت نمایه", - "suggestions.dismiss": "پیشنهاد را نادیده بگیر", + "status.unmute_conversation": "رفع خموشی گفت‌وگو", + "status.unpin": "برداشتن سنجاق از نمایه", + "suggestions.dismiss": "نادیده گرفتن پیشنهاد", "suggestions.header": "شاید این هم برایتان جالب باشد…", "tabs_bar.federated_timeline": "همگانی", "tabs_bar.home": "خانه", - "tabs_bar.local_timeline": "محلی", - "tabs_bar.notifications": "اعلان‌ها", - "tabs_bar.search": "جستجو", + "tabs_bar.local_timeline": "محلّی", + "tabs_bar.notifications": "آگاهی‌ها", + "tabs_bar.search": "جست‌وجو", "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده", "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده", "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده", - "time_remaining.moments": "زمان باقی‌مانده", + "time_remaining.moments": "لحظاتی باقی‌مانده", "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده", "trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشته‌اند}}", "trends.trending_now": "پرطرفدار", - "ui.beforeunload": "اگر از ماستدون خارج شوید پیش‌نویس شما پاک خواهد شد.", + "ui.beforeunload": "در صورت خروج از از ماستودون، پیش‌نویستان از دست خواهد رفت.", "upload_area.title": "برای بارگذاری به این‌جا بکشید", - "upload_button.label": "افزودن عکس و ویدیو (JPEG, PNG, GIF, WebM, MP4, MOV)", - "upload_error.limit": "از حد مجاز باگذاری فراتر رفتید.", - "upload_error.poll": "باگذاری پرونده در نظرسنجی‌ها ممکن نیست.", - "upload_form.description": "نوشتهٔ توضیحی برای کم‌بینایان و نابینایان", + "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": "مردی با بیل مادرزنش را کشت", - "upload_modal.detect_text": "پیدا کردن نوشته از درون تصویر", - "upload_modal.edit_media": "ویرایش تصویر", - "upload_modal.hint": "حتی اگر تصویر بریده یا کوچک شود، نقطهٔ کانونی آن همیشه دیده خواهد شد. نقطهٔ کانونی را با کلیک یا جابه‌جا کردن آن تنظیم کنید.", + "upload_modal.apply": "اعمال", + "upload_modal.description_placeholder": "الا یا ایّها الساقی، ادر کأساً و ناولها", + "upload_modal.detect_text": "تشخیص متن درون عکس", + "upload_modal.edit_media": "ویرایش رسانه", + "upload_modal.hint": "دایره را روی پیش‌نمایش کشیده یا کلیک کنید تا نقطهٔ کانونی‌ای که همواره باید در تمام بندانگشتی‌ها داخل نما باشد را برگزینید.", "upload_modal.preview_label": "پیش‌نمایش ({ratio})", - "upload_progress.label": "بارگذاری...", + "upload_progress.label": "در حال بارگذاری…", "video.close": "بستن ویدیو", - "video.exit_fullscreen": "خروج از حالت تمام صفحه", - "video.expand": "بزرگ‌کردن ویدیو", - "video.fullscreen": "تمام صفحه", + "video.download": "بارگیری پرونده", + "video.exit_fullscreen": "خروج از حالت تمام‌صفحه", + "video.expand": "گسترش ویدیو", + "video.fullscreen": "تمام‌صفحه", "video.hide": "نهفتن ویدیو", - "video.mute": "قطع صدا", - "video.pause": "توقف", + "video.mute": "خموشی صدا", + "video.pause": "مکث", "video.play": "پخش", - "video.unmute": "پخش صدا" + "video.unmute": "رفع خموشی صدا" } diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 60fa0c296..b43f18d23 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Lisää tai poista listoilta", "account.badges.bot": "Botti", + "account.badges.group": "Group", "account.block": "Estä @{name}", "account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}", "account.blocked": "Estetty", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Jokin meni vikaan komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudestaan", "column.blocks": "Estetyt käyttäjät", + "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", "column.direct": "Viestit", "column.directory": "Selaa profiileja", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Äänestyksen kesto", "compose_form.poll.option_placeholder": "Valinta numero", "compose_form.poll.remove_option": "Poista tämä valinta", + "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": "Tuuttaa", "compose_form.publish_loud": "Julkista!", "compose_form.sensitive.hide": "Valitse tämä arkaluontoisena", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Ei ole 'toots' täällä!", "empty_column.account_unavailable": "Profiilia ei löydy", "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Paikallinen aikajana on tyhjä. Homma lähtee käyntiin, kun kirjoitat jotain julkista!", "empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.", "empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä piilotettu.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "avaa lista mykistetyistä käyttäjistä", "keyboard_shortcuts.my_profile": "avaa profiilisi", "keyboard_shortcuts.notifications": "avaa ilmoitukset-sarake", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "avaa lista kiinnitetyistä tuuttauksista", "keyboard_shortcuts.profile": "avaa kirjoittajan profiili", "keyboard_shortcuts.reply": "vastaa", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "navigation_bar.apps": "Mobiilisovellukset", "navigation_bar.blocks": "Estetyt käyttäjät", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.compose": "Kirjoita uusi tuuttaus", "navigation_bar.direct": "Viestit", @@ -273,7 +280,9 @@ "navigation_bar.security": "Tunnukset", "notification.favourite": "{name} tykkäsi tilastasi", "notification.follow": "{name} seurasi sinua", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} mainitsi sinut", + "notification.own_poll": "Your poll has ended", "notification.poll": "Kysely, johon osallistuit, on päättynyt", "notification.reblog": "{name} buustasi tilaasi", "notifications.clear": "Tyhjennä ilmoitukset", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki", "notifications.column_settings.filter_bar.show": "Näytä", "notifications.column_settings.follow": "Uudet seuraajat:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Maininnat:", "notifications.column_settings.poll": "Kyselyn tulokset:", "notifications.column_settings.push": "Push-ilmoitukset", @@ -344,6 +354,7 @@ "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_status": "Avaa tilapäivitys moderaattorinäkymässä", "status.block": "Estä @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Peru buustaus", "status.cannot_reblog": "Tätä julkaisua ei voi buustata", "status.copy": "Kopioi linkki tilapäivitykseen", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} buustasi", "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä tuuttausta. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", "status.redraft": "Poista & palauta muokattavaksi", + "status.remove_bookmark": "Remove bookmark", "status.reply": "Vastaa", "status.replyAll": "Vastaa ketjuun", "status.report": "Raportoi @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Lisää mediaa", "upload_error.limit": "Tiedostolatauksien raja ylitetty.", "upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Anna kuvaus näkörajoitteisia varten", "upload_form.edit": "Muokkaa", "upload_form.undo": "Peru", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analysoidaan kuvaa…", "upload_modal.apply": "Käytä", "upload_modal.description_placeholder": "Eräänä jäätävänä ja pimeänä yönä gorilla ratkaisi sudokun kahdessa minuutissa", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Esikatselu ({ratio})", "upload_progress.label": "Ladataan...", "video.close": "Sulje video", + "video.download": "Lataa tiedosto", "video.exit_fullscreen": "Poistu koko näytön tilasta", "video.expand": "Laajenna video", "video.fullscreen": "Koko näyttö", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index a92f23415..6d2da8569 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Ajouter ou retirer des listes", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Bloquer @{name}", "account.block_domain": "Tout masquer venant de {domain}", "account.blocked": "Bloqué·e", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Une erreur s’est produite lors du chargement de ce composant.", "bundle_modal_error.retry": "Réessayer", "column.blocks": "Comptes bloqués", + "column.bookmarks": "Marque-pages", "column.community": "Fil public local", "column.direct": "Messages privés", "column.directory": "Parcourir les profils", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Durée du sondage", "compose_form.poll.option_placeholder": "Choix {number}", "compose_form.poll.remove_option": "Supprimer ce choix", + "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": "Pouet", "compose_form.publish_loud": "{publish} !", "compose_form.sensitive.hide": "Marquer le média comme sensible", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Aucun pouet ici !", "empty_column.account_unavailable": "Profil non disponible", "empty_column.blocks": "Vous n’avez bloqué aucun·e utilisateur·rice pour le moment.", + "empty_column.bookmarked_statuses": "Vous n'avez pas de pouets enregistrés comme marque-pages pour le moment. Lorsque vous en ajouterez un, il apparaîtra ici.", "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !", "empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.", "empty_column.domain_blocks": "Il n’y a aucun domaine caché pour le moment.", @@ -197,7 +202,7 @@ "introduction.interactions.reply.text": "Vous pouvez répondre aux pouets d'autres personnes et à vos propres pouets, ce qui les enchaînera dans une conversation.", "introduction.welcome.action": "Allons-y !", "introduction.welcome.headline": "Premiers pas", - "introduction.welcome.text": "Bienvenue dans le fediverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos amis sur une grande variété de serveurs. Mais ce serveur, {domain}, est spécial - il héberge votre profil, alors souvenez-vous de son nom.", + "introduction.welcome.text": "Bienvenue dans le fédiverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos ami·e·s sur une grande variété de serveurs. Mais ce serveur, {domain}, est spécial - il héberge votre profil, alors souvenez-vous de son nom.", "keyboard_shortcuts.back": "pour revenir en arrière", "keyboard_shortcuts.blocked": "pour ouvrir la liste des comptes bloqués", "keyboard_shortcuts.boost": "pour partager", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "pour ouvrir la liste des utilisateur·rice·s muté·e·s", "keyboard_shortcuts.my_profile": "pour ouvrir votre profil", "keyboard_shortcuts.notifications": "pour ouvrir votre colonne de notifications", + "keyboard_shortcuts.open_media": "pour ouvrir le média", "keyboard_shortcuts.pinned": "pour ouvrir une liste des pouets épinglés", "keyboard_shortcuts.profile": "pour ouvrir le profil de l’auteur·rice", "keyboard_shortcuts.reply": "pour répondre", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?", "navigation_bar.apps": "Applications mobiles", "navigation_bar.blocks": "Comptes bloqués", + "navigation_bar.bookmarks": "Marque-pages", "navigation_bar.community_timeline": "Fil public local", "navigation_bar.compose": "Rédiger un nouveau pouet", "navigation_bar.direct": "Messages directs", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sécurité", "notification.favourite": "{name} a ajouté à ses favoris :", "notification.follow": "{name} vous suit", + "notification.follow_request": "{name} a demandé à vous suivre", "notification.mention": "{name} vous a mentionné·e :", + "notification.own_poll": "Votre sondage est terminé", "notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.reblog": "{name} a partagé votre statut :", "notifications.clear": "Nettoyer les notifications", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Barre de filtrage rapide", "notifications.column_settings.filter_bar.show": "Afficher", "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :", + "notifications.column_settings.follow_request": "Nouvelles demandes d’abonnement :", "notifications.column_settings.mention": "Mentions :", "notifications.column_settings.poll": "Résultats des sondage :", "notifications.column_settings.push": "Notifications push", @@ -291,7 +301,7 @@ "notifications.column_settings.show": "Afficher dans la colonne", "notifications.column_settings.sound": "Émettre un son", "notifications.filter.all": "Tout", - "notifications.filter.boosts": "Repartages", + "notifications.filter.boosts": "Partages", "notifications.filter.favourites": "Favoris", "notifications.filter.follows": "Abonné·e·s", "notifications.filter.mentions": "Mentions", @@ -331,7 +341,7 @@ "report.target": "Signalement de {target}", "search.placeholder": "Rechercher", "search_popout.search_format": "Recherche avancée", - "search_popout.tips.full_text": "Les textes simples retournent les pouets que vous avez écris, mis en favori, épinglés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondant.", + "search_popout.tips.full_text": "Un texte normal retourne les pouets que vous avez écris, mis en favori, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondant.", "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "statuts", "search_popout.tips.text": "Un texte simple renvoie les noms affichés, les identifiants et les hashtags correspondants", @@ -344,7 +354,8 @@ "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_status": "Ouvrir ce statut dans l’interface de modération", "status.block": "Bloquer @{name}", - "status.cancel_reblog_private": "Dé-booster", + "status.bookmark": "Ajouter aux marque-pages", + "status.cancel_reblog_private": "Annuler le partage", "status.cannot_reblog": "Ce pouet ne peut pas être partagé", "status.copy": "Copier le lien vers le pouet", "status.delete": "Effacer", @@ -364,10 +375,11 @@ "status.pinned": "Pouet épinglé", "status.read_more": "En savoir plus", "status.reblog": "Partager", - "status.reblog_private": "Booster vers l’audience originale", + "status.reblog_private": "Partager à l’audience originale", "status.reblogged_by": "{name} a partagé :", "status.reblogs.empty": "Personne n’a encore partagé ce pouet. Lorsque quelqu’un le fera, il apparaîtra ici.", "status.redraft": "Effacer et ré-écrire", + "status.remove_bookmark": "Retirer des marque-pages", "status.reply": "Répondre", "status.replyAll": "Répondre au fil", "status.report": "Signaler @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Joindre un média ({formats})", "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", + "upload_form.audio_description": "Décrire pour les personnes ayant des difficultés d’audition", "upload_form.description": "Décrire pour les malvoyant·e·s", "upload_form.edit": "Modifier", "upload_form.undo": "Supprimer", + "upload_form.video_description": "Décrire pour les personnes ayant des problèmes d’audition ou de vision", "upload_modal.analyzing_picture": "Analyse de l’image en cours…", "upload_modal.apply": "Appliquer", "upload_modal.description_placeholder": "Buvez de ce whisky que le patron juge fameux", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Aperçu ({ratio})", "upload_progress.label": "Envoi en cours…", "video.close": "Fermer la vidéo", + "video.download": "Télécharger le fichier", "video.exit_fullscreen": "Quitter le plein écran", "video.expand": "Agrandir la vidéo", "video.fullscreen": "Plein écran", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 2dd0dbbad..4966946cc 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Block @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "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": "Toot", "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} 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", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 0125754b1..4bfb6b5c8 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -1,423 +1,438 @@ { - "account.add_or_remove_from_list": "Engadir ou Eliminar das listas", + "account.add_or_remove_from_list": "Engadir ou eliminar das listaxes", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Bloquear @{name}", - "account.block_domain": "Ocultar calquer contido de {domain}", - "account.blocked": "Bloqueada", - "account.cancel_follow_request": "Cancelar petición de seguemento", + "account.block_domain": "Agochar todo de {domain}", + "account.blocked": "Bloqueado", + "account.cancel_follow_request": "Desbotar solicitude de seguimento", "account.direct": "Mensaxe directa @{name}", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", - "account.endorse": "Mostrado no perfil", + "account.endorse": "Amosar no perfil", "account.follow": "Seguir", - "account.followers": "Seguidoras", - "account.followers.empty": "Ninguén está a seguir esta usuaria por agora.", + "account.followers": "Seguidores", + "account.followers.empty": "Aínda ninguén segue este usuario.", "account.follows": "Seguindo", - "account.follows.empty": "Esta usuaria aínda non segue a ninguén.", + "account.follows.empty": "Este usuario aínda non segue a ninguén.", "account.follows_you": "Séguete", - "account.hide_reblogs": "Ocultar repeticións de @{name}", - "account.last_status": "Último activo", - "account.link_verified_on": "A propiedade de esta ligazón foi comprobada en {date}", - "account.locked_info": "O estado da intimidade de esta conta estableceuse en pechado. A persoa dona da conta revisa quen pode seguila.", - "account.media": "Medios", + "account.hide_reblogs": "Agochar compartidos de @{name}", + "account.last_status": "Última actividade", + "account.link_verified_on": "A propiedade desta ligazón foi verificada o {date}", + "account.locked_info": "Esta é unha conta privada. O dono revisa de xeito manual quen pode seguilo.", + "account.media": "Multimedia", "account.mention": "Mencionar @{name}", - "account.moved_to": "{name} marchou a:", - "account.mute": "Acalar @{name}", - "account.mute_notifications": "Acalar as notificacións de @{name}", - "account.muted": "Acalada", + "account.moved_to": "{name} mudouse a:", + "account.mute": "Silenciar @{name}", + "account.mute_notifications": "Silenciar notificacións de @{name}", + "account.muted": "Silenciado", "account.never_active": "Nunca", "account.posts": "Toots", "account.posts_with_replies": "Toots e respostas", - "account.report": "Informar sobre @{name}", - "account.requested": "Agardando aceptación. Pulse para cancelar a solicitude de seguimento", + "account.report": "Denunciar @{name}", + "account.requested": "Agardando aprovación. Preme para desbotar a solicitude de seguimento", "account.share": "Compartir o perfil de @{name}", - "account.show_reblogs": "Mostrar repeticións de @{name}", + "account.show_reblogs": "Amosar compartidos de @{name}", "account.unblock": "Desbloquear @{name}", - "account.unblock_domain": "Non ocultar {domain}", - "account.unendorse": "Non mostrar no perfil", - "account.unfollow": "Non seguir", - "account.unmute": "Non acalar @{name}", - "account.unmute_notifications": "Desbloquear as notificacións de @{name}", - "alert.rate_limited.message": "Por favor inténteo tras {retry_time, time, medium}.", - "alert.rate_limited.title": "Taxa limitada", - "alert.unexpected.message": "Aconteceu un fallo non agardado.", - "alert.unexpected.title": "Vaia!", + "account.unblock_domain": "Amosar {domain}", + "account.unendorse": "Non amosar no perfil", + "account.unfollow": "Deixar de seguir", + "account.unmute": "Deixar de silenciar a @{name}", + "account.unmute_notifications": "Deixar de silenciar as notificacións de @{name}", + "alert.rate_limited.message": "Téntao novamente após {retry_time, time, medium}.", + "alert.rate_limited.title": "Límite de intentos", + "alert.unexpected.message": "Ocorreu un erro non agardado.", + "alert.unexpected.title": "Vaites!", "autosuggest_hashtag.per_week": "{count} por semana", - "boost_modal.combo": "Pulse {combo} para saltar esto a próxima vez", - "bundle_column_error.body": "Houbo un fallo mentras se cargaba este compoñente.", - "bundle_column_error.retry": "Inténteo de novo", - "bundle_column_error.title": "Fallo na rede", + "boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez", + "bundle_column_error.body": "Ocorreu un erro ó cargar este compoñente.", + "bundle_column_error.retry": "Téntao de novo", + "bundle_column_error.title": "Erro na rede", "bundle_modal_error.close": "Pechar", - "bundle_modal_error.message": "Algo fallou mentras se cargaba este compoñente.", - "bundle_modal_error.retry": "Inténteo de novo", - "column.blocks": "Usuarias bloqueadas", - "column.community": "Liña temporal local", + "bundle_modal_error.message": "Ocorreu un erro ó cargar este compoñente.", + "bundle_modal_error.retry": "Téntao de novo", + "column.blocks": "Usuarios bloqueados", + "column.bookmarks": "Marcadores", + "column.community": "Cronoloxía local", "column.direct": "Mensaxes directas", - "column.directory": "Ver perfiles", + "column.directory": "Procurar perfís", "column.domain_blocks": "Dominios agochados", - "column.favourites": "Favoritas", + "column.favourites": "Favoritos", "column.follow_requests": "Peticións de seguimento", - "column.home": "Inicio", - "column.lists": "Listas", - "column.mutes": "Usuarias acaladas", + "column.home": "Páxina inicial", + "column.lists": "Listaxes", + "column.mutes": "Usuarios silenciados", "column.notifications": "Notificacións", - "column.pins": "Mensaxes fixadas", - "column.public": "Liña temporal federada", - "column_back_button.label": "Atrás", + "column.pins": "Toots fixados", + "column.public": "Cronoloxía federada", + "column_back_button.label": "Voltar", "column_header.hide_settings": "Agochar axustes", - "column_header.moveLeft_settings": "Mover a columna hacia a esquerda", - "column_header.moveRight_settings": "Mover a columna hacia a dereita", + "column_header.moveLeft_settings": "Mover columna cara a esquerda", + "column_header.moveRight_settings": "Mover columna cara a dereita", "column_header.pin": "Fixar", - "column_header.show_settings": "Mostras axustes", - "column_header.unpin": "Soltar", + "column_header.show_settings": "Amosar axustes", + "column_header.unpin": "Desafixar", "column_subheading.settings": "Axustes", - "community.column_settings.media_only": "Só medios", - "compose_form.direct_message_warning": "Este toot enviarase só as usuarias mencionadas. Porén, a súa proveedora de internet e calquera das instancias receptoras poderían examinar esta mensaxe.", + "community.column_settings.media_only": "Só multimedia", + "compose_form.direct_message_warning": "Este toot só será enviado ós usuarios mencionados.", "compose_form.direct_message_warning_learn_more": "Coñecer máis", - "compose_form.hashtag_warning": "Esta mensaxe non será listada baixo ningunha etiqueta xa que está marcada como non listada. Só os toots públicos poden buscarse por etiquetas.", - "compose_form.lock_disclaimer": "A súa conta non está {locked}. Calquera pode seguila para ver as súas mensaxes só-para-seguidoras.", + "compose_form.hashtag_warning": "Este toot non se amosará baixo cancelos (hashtags) porque non é público. Só os toots públicos poden ser procurados por cancelos.", + "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todos poden seguirche para ollar os teus toots só para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", - "compose_form.placeholder": "Qué contas?", + "compose_form.placeholder": "En que estás a pensar?", "compose_form.poll.add_option": "Engadir unha opción", - "compose_form.poll.duration": "Duración da sondaxe", + "compose_form.poll.duration": "Duración da enquisa", "compose_form.poll.option_placeholder": "Opción {number}", "compose_form.poll.remove_option": "Eliminar esta opción", + "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": "Marcar medios como sensibles", - "compose_form.sensitive.marked": "Medios marcados como sensibles", - "compose_form.sensitive.unmarked": "Os medios non están marcados como sensibles", + "compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel", + "compose_form.sensitive.marked": "Contido multimedia marcado coma sensíbel", + "compose_form.sensitive.unmarked": "Contido multimedia non marcado coma sensíbel", "compose_form.spoiler.marked": "O texto está agochado tras un aviso", "compose_form.spoiler.unmarked": "O texto non está agochado", - "compose_form.spoiler_placeholder": "Escriba o aviso aquí", - "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear e Informar", + "compose_form.spoiler_placeholder": "Escribe o teu aviso aquí", + "confirmation_modal.cancel": "Desbotar", + "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "Está segura de querer bloquear a {name}?", - "confirmations.delete.confirm": "Borrar", - "confirmations.delete.message": "Está segura de que quere eliminar este estado?", + "confirmations.block.message": "Tes a certeza de querer bloquear a {name}?", + "confirmations.delete.confirm": "Eliminar", + "confirmations.delete.message": "Tes a certeza de querer eliminar este estado?", "confirmations.delete_list.confirm": "Eliminar", - "confirmations.delete_list.message": "Estás seguro de que queres eliminar permanentemente esta lista?", - "confirmations.domain_block.confirm": "Agochar un dominio completo", - "confirmations.domain_block.message": "Realmente está segura de que quere bloquear por completo o dominio {domain}? Normalmente é suficiente, e preferible, bloquear de xeito selectivo varios elementos. Non verá contidos de ese dominio en ningunha liña temporal ou nas notificacións. As súas seguidoras en ese dominio serán eliminadas.", - "confirmations.logout.confirm": "Desconectar", - "confirmations.logout.message": "Seguro que desexa desconectar?", - "confirmations.mute.confirm": "Acalar", - "confirmations.mute.explanation": "Esto ocultará as publicacións delas e as que as mencionen, pero poderán seguir lendo as túas publicacións e seguirte.", - "confirmations.mute.message": "Está segura de que quere acalar a {name}?", + "confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?", + "confirmations.domain_block.confirm": "Agochar dominio enteiro", + "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. Os teus seguidores deste dominio serán eliminados.", + "confirmations.logout.confirm": "Pechar sesión", + "confirmations.logout.message": "Desexas pechar a sesión?", + "confirmations.mute.confirm": "Silenciar", + "confirmations.mute.explanation": "Isto agochará as publicacións deles ou nas que os mencionen, mais permitirá que vexan as túas publicacións e sexan os teus seguidores.", + "confirmations.mute.message": "Tes a certeza de querer silenciar a {name}?", "confirmations.redraft.confirm": "Eliminar e reescribir", - "confirmations.redraft.message": "Está segura de querer eliminar este estado e voltalo a escribir? Perderá réplicas e favoritas, e as respostas ao orixinal quedarán orfas.", + "confirmations.redraft.message": "Tes a certeza de querer eliminar este estado e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.", "confirmations.reply.confirm": "Respostar", - "confirmations.reply.message": "Respostando agora sobreescribirá a mensaxe que está a compoñer. Segura de querer proceder?", + "confirmations.reply.message": "Respostar agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", - "confirmations.unfollow.message": "Quere deixar de seguir a {name}?", + "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?", "conversation.delete": "Eliminar conversa", "conversation.mark_as_read": "Marcar como lido", - "conversation.open": "Ver conversa", + "conversation.open": "Ollar conversa", "conversation.with": "Con {names}", - "directory.federated": "Desde o fediverso coñecido", - "directory.local": "Só desde {domain}", - "directory.new_arrivals": "Novas achegas", - "directory.recently_active": "Activo recentemente", - "embed.instructions": "Copie o código inferior para incrustar no seu sitio web este estado.", - "embed.preview": "Así será mostrado:", + "directory.federated": "Do fediverso coñecido", + "directory.local": "Só de {domain}", + "directory.new_arrivals": "Recén chegados", + "directory.recently_active": "Activos recentemente", + "embed.instructions": "Engade este estado ó teu sitio web copiando o seguinte código.", + "embed.preview": "Así será amosado:", "emoji_button.activity": "Actividade", - "emoji_button.custom": "Persoalizado", - "emoji_button.flags": "Marcas", - "emoji_button.food": "Comida e Bebida", - "emoji_button.label": "Insertar emoji", + "emoji_button.custom": "Personalizado", + "emoji_button.flags": "Bandeiras", + "emoji_button.food": "Comida e bebida", + "emoji_button.label": "Inserir emoticona", "emoji_button.nature": "Natureza", - "emoji_button.not_found": "Sen emojos!! (╯°□°)╯︵ ┻━┻", - "emoji_button.objects": "Obxetos", - "emoji_button.people": "Xente", - "emoji_button.recent": "Utilizadas con frecuencia", - "emoji_button.search": "Buscar...", - "emoji_button.search_results": "Resultados da busca", + "emoji_button.not_found": "Non hai emoticonas!! (╯°□°)╯︵ ┻━┻", + "emoji_button.objects": "Obxectos", + "emoji_button.people": "Persoas", + "emoji_button.recent": "Empregadas acotío", + "emoji_button.search": "Procurar...", + "emoji_button.search_results": "Resultados da procura", "emoji_button.symbols": "Símbolos", - "emoji_button.travel": "Viaxes e Lugares", - "empty_column.account_timeline": "Sen toots por aquí!", - "empty_column.account_unavailable": "Perfil non dispoñible", - "empty_column.blocks": "Non bloqueou ningunha usuaria polo de agora.", - "empty_column.community": "A liña temporal local está baldeira. Escriba algo de xeito público para que rule!", - "empty_column.direct": "Aínda non ten mensaxes directas. Cando envíe ou reciba unha, aparecerá aquí.", - "empty_column.domain_blocks": "Aínda non ocultou ningún dominio.", - "empty_column.favourited_statuses": "Aínda non ten toots favoritos. Cando favoreza algún, aparecerá aquí.", - "empty_column.favourites": "Ninguén favoreceu este toot polo momento. Cando o faga alguén, aparecerán aquí.", - "empty_column.follow_requests": "Non ten peticións de seguimento. Cando reciba unha, mostrarase aquí.", - "empty_column.hashtag": "Aínda non hai nada con esta etiqueta.", - "empty_column.home": "A súa liña temporal de inicio está baldeira! Visite {public} ou utilice a busca para atopar outras usuarias.", - "empty_column.home.public_timeline": "a liña temporal pública", - "empty_column.list": "Aínda non hai nada en esta lista. Cando as usuarias incluídas na lista publiquen mensaxes, aparecerán aquí.", - "empty_column.lists": "Aínda non ten listas. Cando cree unha, mostrarase aquí.", - "empty_column.mutes": "Non acalou ningunha usuaria polo de agora.", - "empty_column.notifications": "Aínda non ten notificacións. Interactúe con outras para iniciar unha conversa.", - "empty_column.public": "Nada por aquí! Escriba algo de xeito público, ou siga manualmente usuarias de outros servidores para ir enchéndoa", - "error.unexpected_crash.explanation": "Non se mostra correctamente a páxina debido a un fallo no código ou problema de compatibilidade do navegador.", - "error.unexpected_crash.next_steps": "Intenta actualizar a páxina. Se esto non axuda podes tamén utilizar Mastodon en outro navegador ou app nativa.", - "errors.unexpected_crash.copy_stacktrace": "Copiar trazas ao portaretallos", - "errors.unexpected_crash.report_issue": "Informar de problema", + "emoji_button.travel": "Viaxes e lugares", + "empty_column.account_timeline": "Non hai toots aquí!", + "empty_column.account_unavailable": "Perfil non dispoñíbel", + "empty_column.blocks": "Aínda non bloqueaches a ningún usuario.", + "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, amosaranse aquí.", + "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!", + "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.", + "empty_column.domain_blocks": "Aínda non hai dominios agochados.", + "empty_column.favourited_statuses": "Aínda non tes toots favoritos. Cando che goste algún, aparecerá aquí.", + "empty_column.favourites": "A ninguén lle gostou este toot polo momento. Cando a alguén lle goste, aparecerá aquí.", + "empty_column.follow_requests": "Non tes peticións de seguimento. Cando recibas unha, amosarase aquí.", + "empty_column.hashtag": "Aínda non hai nada con este cancelo.", + "empty_column.home": "A túa cronoloxía inicial está baleira! Visita {public} ou emprega a procura para atopar outros usuarios.", + "empty_column.home.public_timeline": "a cronoloxía pública", + "empty_column.list": "Aínda non hai nada nesta listaxe. Cando os usuarios incluídas na listaxe publiquen mensaxes, amosaranse aquí.", + "empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.", + "empty_column.mutes": "Aínda non silenciaches a ningún usuario.", + "empty_column.notifications": "Aínda non tes notificacións. Interactúa con outros para comezar unha conversa.", + "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou sigue de xeito manual usuarios doutros servidores para ir enchéndoo", + "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.", + "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar o Mastodon noutro navegador ou aplicación nativa.", + "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", + "errors.unexpected_crash.report_issue": "Denunciar un problema", "follow_request.authorize": "Autorizar", "follow_request.reject": "Rexeitar", - "getting_started.developers": "Desenvolvedoras", + "getting_started.developers": "Desenvolvedores", "getting_started.directory": "Directorio do perfil", "getting_started.documentation": "Documentación", - "getting_started.heading": "Comezando", - "getting_started.invite": "Convide a xente", - "getting_started.open_source_notice": "Mastodon é software de código aberto. Pode contribuír ou informar de fallos en GitHub en {github}.", - "getting_started.security": "Seguridade", + "getting_started.heading": "Primeiros pasos", + "getting_started.invite": "Convidar persoas", + "getting_started.open_source_notice": "O Mastodon é software de código aberto. Podes contribuír ou informar de fallos no GitHub en {github}.", + "getting_started.security": "Seguranza", "getting_started.terms": "Termos do servizo", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", - "hashtag.column_settings.select.no_options_message": "Non se atopan suxestións", - "hashtag.column_settings.select.placeholder": "Introducir etiquetas…", - "hashtag.column_settings.tag_mode.all": "Todos estos", - "hashtag.column_settings.tag_mode.any": "Calquera de estos", - "hashtag.column_settings.tag_mode.none": "Ningún de estos", + "hashtag.column_settings.select.no_options_message": "Non se atoparon suxestións", + "hashtag.column_settings.select.placeholder": "Inserir cancelos…", + "hashtag.column_settings.tag_mode.all": "Todos estes", + "hashtag.column_settings.tag_mode.any": "Calquera destes", + "hashtag.column_settings.tag_mode.none": "Ningún destes", "hashtag.column_settings.tag_toggle": "Incluír etiquetas adicionais para esta columna", "home.column_settings.basic": "Básico", - "home.column_settings.show_reblogs": "Mostrar repeticións", - "home.column_settings.show_replies": "Mostrar respostas", + "home.column_settings.show_reblogs": "Amosar compartidos", + "home.column_settings.show_replies": "Amosar respostas", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "introduction.federation.action": "Seguinte", "introduction.federation.federated.headline": "Federado", - "introduction.federation.federated.text": "Publicacións públicas desde outros servidores do fediverso aparecerán na liña temporal federada.", - "introduction.federation.home.headline": "Inicio", - "introduction.federation.home.text": "Publicacións de xente que vostede segue aparecerán no TL de Inicio. Pode seguir a calquera en calquer servidor!", + "introduction.federation.federated.text": "Publicacións públicas doutros servidores do fediverso aparecerán na cronoloxía federada.", + "introduction.federation.home.headline": "Páxina inicial", + "introduction.federation.home.text": "Publicacións de persoas que ti segues aparecerán na cronoloxía do inicio. Podes seguir calquera persoa en calquera servidor!", "introduction.federation.local.headline": "Local", - "introduction.federation.local.text": "Publicacións públicas de xente no seu mesmo servidor aparecerán na liña temporal local.", + "introduction.federation.local.text": "Publicacións públicas de persoas no teu mesmo servidor aparecerán na cronoloxía local.", "introduction.interactions.action": "Rematar titorial!", "introduction.interactions.favourite.headline": "Favorito", - "introduction.interactions.favourite.text": "Pode gardar un toot para máis tarde, e facerlle saber a autora que lle gustou, dándolle a Favorito.", - "introduction.interactions.reblog.headline": "Promocionar", - "introduction.interactions.reblog.text": "Pode compartir os toots de outra xente coas súas seguidoras promocionándoos.", + "introduction.interactions.favourite.text": "Podes gardar un toot para depois e facer saber ó autor que che gostou marcandoo coma favorito.", + "introduction.interactions.reblog.headline": "Compartir na cronoloxía", + "introduction.interactions.reblog.text": "Podes compartir os toots doutras persoas cos teus seguidores.", "introduction.interactions.reply.headline": "Respostar", - "introduction.interactions.reply.text": "Pode respostar aos toots de outras persoas e aos seus propios, así quedarán encadeados nunha conversa.", + "introduction.interactions.reply.text": "Podes respostar ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.", "introduction.welcome.action": "Imos!", "introduction.welcome.headline": "Primeiros pasos", - "introduction.welcome.text": "Benvida ao fediverso! Nun intre poderá difundir mensaxes e falar cos seus amigos nun gran número de servidores. Pero este servidor (dominio) é especial—hospeda o seu perfil, así que lémbreo.", - "keyboard_shortcuts.back": "voltar atrás", - "keyboard_shortcuts.blocked": "abrir lista de usuarias bloqueadas", - "keyboard_shortcuts.boost": "promover", - "keyboard_shortcuts.column": "destacar un estado en unha das columnas", - "keyboard_shortcuts.compose": "Foco no área de escritura", + "introduction.welcome.text": "Benvido ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbrate do seu nome.", + "keyboard_shortcuts.back": "para voltar atrás", + "keyboard_shortcuts.blocked": "para abrir a listaxe de usuarios bloqueados", + "keyboard_shortcuts.boost": "para compartir na cronoloxía", + "keyboard_shortcuts.column": "para destacar un estado nunha das columnas", + "keyboard_shortcuts.compose": "para destacar a área de escritura", "keyboard_shortcuts.description": "Descrición", - "keyboard_shortcuts.direct": "abrir columna de mensaxes directas", - "keyboard_shortcuts.down": "ir hacia abaixo na lista", - "keyboard_shortcuts.enter": "abrir estado", - "keyboard_shortcuts.favourite": "marcar como favorito", - "keyboard_shortcuts.favourites": "abrir lista de favoritos", - "keyboard_shortcuts.federated": "abrir liña temporal federada", + "keyboard_shortcuts.direct": "para abrir a columna de mensaxes directas", + "keyboard_shortcuts.down": "para mover cara abaixo na listaxe", + "keyboard_shortcuts.enter": "para abrir estado", + "keyboard_shortcuts.favourite": "para engadir a favoritos", + "keyboard_shortcuts.favourites": "para abrir a listaxe dos favoritos", + "keyboard_shortcuts.federated": "para abrir a cronoloxía federada", "keyboard_shortcuts.heading": "Atallos do teclado", - "keyboard_shortcuts.home": "abrir liña temporal de inicio", - "keyboard_shortcuts.hotkey": "Tecla de acceso directo", - "keyboard_shortcuts.legend": "para mostrar esta lenda", - "keyboard_shortcuts.local": "abrir liña temporal local", - "keyboard_shortcuts.mention": "para mencionar o autor", - "keyboard_shortcuts.muted": "abrir lista de usuarias acaladas", - "keyboard_shortcuts.my_profile": "abrir o seu perfil", - "keyboard_shortcuts.notifications": "abrir columna de notificacións", - "keyboard_shortcuts.pinned": "abrir lista de toots fixados", - "keyboard_shortcuts.profile": "abrir perfil da autora", - "keyboard_shortcuts.reply": "para responder", - "keyboard_shortcuts.requests": "abrir lista de peticións de seguimento", - "keyboard_shortcuts.search": "para centrar a busca", - "keyboard_shortcuts.start": "abrir columna \"comezando\"", - "keyboard_shortcuts.toggle_hidden": "mostrar/agochar un texto detrás do AC", - "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios", - "keyboard_shortcuts.toot": "escribir un toot novo", - "keyboard_shortcuts.unfocus": "quitar o foco do área de escritura/busca", - "keyboard_shortcuts.up": "ir hacia arriba na lista", + "keyboard_shortcuts.home": "para abrir a cronoloxía inicial", + "keyboard_shortcuts.hotkey": "Tecla de atallo", + "keyboard_shortcuts.legend": "para amosar esta lenda", + "keyboard_shortcuts.local": "para abrir a cronoloxía local", + "keyboard_shortcuts.mention": "para mencionar ó autor", + "keyboard_shortcuts.muted": "para abrir a listaxe dos usuarios silenciados", + "keyboard_shortcuts.my_profile": "para abrir o teu perfil", + "keyboard_shortcuts.notifications": "para abrir a columna das notificacións", + "keyboard_shortcuts.open_media": "para abrir o contido multimedia", + "keyboard_shortcuts.pinned": "para abrir a listaxe dos toots fixados", + "keyboard_shortcuts.profile": "para abrir o perfil do autor", + "keyboard_shortcuts.reply": "para respostar", + "keyboard_shortcuts.requests": "para abrir a listaxe das peticións de seguimento", + "keyboard_shortcuts.search": "para destacar a procura", + "keyboard_shortcuts.start": "para abrir a columna dos \"primeiros pasos\"", + "keyboard_shortcuts.toggle_hidden": "para amosar/agochar texto detrás do aviso de contido (AC)", + "keyboard_shortcuts.toggle_sensitivity": "para amosar/agochar contido multimedia", + "keyboard_shortcuts.toot": "para escribir un novo toot", + "keyboard_shortcuts.unfocus": "para deixar de destacar a área de escritura/procura", + "keyboard_shortcuts.up": "para mover cara arriba na listaxe", "lightbox.close": "Fechar", "lightbox.next": "Seguinte", "lightbox.previous": "Anterior", - "lightbox.view_context": "Ver contexto", - "lists.account.add": "Engadir á lista", - "lists.account.remove": "Eliminar da lista", - "lists.delete": "Eliminar lista", - "lists.edit": "Editar lista", - "lists.edit.submit": "Cambiar título", - "lists.new.create": "Engadir lista", - "lists.new.title_placeholder": "Novo título da lista", - "lists.search": "Procurar entre a xente que segues", - "lists.subheading": "As túas listas", + "lightbox.view_context": "Ollar contexto", + "lists.account.add": "Engadir á listaxe", + "lists.account.remove": "Eliminar da listaxe", + "lists.delete": "Eliminar listaxe", + "lists.edit": "Editar listaxe", + "lists.edit.submit": "Mudar o título", + "lists.new.create": "Engadir listaxe", + "lists.new.title_placeholder": "Título da nova listaxe", + "lists.search": "Procurar entre as persoas que segues", + "lists.subheading": "As túas listaxes", "load_pending": "{count, plural, one {# novo elemento} other {# novos elementos}}", - "loading_indicator.label": "Cargando...", - "media_gallery.toggle_visible": "Ocultar", + "loading_indicator.label": "Estase a cargar...", + "media_gallery.toggle_visible": "Trocar visibilidade", "missing_indicator.label": "Non atopado", - "missing_indicator.sublabel": "Non se puido atopar o recurso", - "mute_modal.hide_notifications": "Esconder notificacións deste usuario?", - "navigation_bar.apps": "Apps móbiles", - "navigation_bar.blocks": "Usuarias bloqueadas", - "navigation_bar.community_timeline": "Liña temporal local", - "navigation_bar.compose": "Escribir novo toot", + "missing_indicator.sublabel": "Este recurso non foi atopado", + "mute_modal.hide_notifications": "Agochar notificacións deste usuario?", + "navigation_bar.apps": "Aplicacións móbiles", + "navigation_bar.blocks": "Usuarios bloqueados", + "navigation_bar.bookmarks": "Marcadores", + "navigation_bar.community_timeline": "Cronoloxía local", + "navigation_bar.compose": "Escribir un novo toot", "navigation_bar.direct": "Mensaxes directas", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios agochados", "navigation_bar.edit_profile": "Editar perfil", - "navigation_bar.favourites": "Favoritas", - "navigation_bar.filters": "Palabras acaladas", + "navigation_bar.favourites": "Favoritos", + "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Peticións de seguimento", - "navigation_bar.follows_and_followers": "Seguindo e seguidoras", + "navigation_bar.follows_and_followers": "Seguindo e seguidores", "navigation_bar.info": "Sobre este servidor", - "navigation_bar.keyboard_shortcuts": "Atallos", - "navigation_bar.lists": "Listas", - "navigation_bar.logout": "Sair", - "navigation_bar.mutes": "Usuarias acaladas", + "navigation_bar.keyboard_shortcuts": "Atallos do teclado", + "navigation_bar.lists": "Listaxes", + "navigation_bar.logout": "Pechar sesión", + "navigation_bar.mutes": "Usuarios silenciados", "navigation_bar.personal": "Persoal", - "navigation_bar.pins": "Mensaxes fixadas", + "navigation_bar.pins": "Toots fixados", "navigation_bar.preferences": "Preferencias", - "navigation_bar.public_timeline": "Liña temporal federada", - "navigation_bar.security": "Seguridade", - "notification.favourite": "{name} marcou como favorito o seu estado", - "notification.follow": "{name} está a seguila", + "navigation_bar.public_timeline": "Cronoloxía federada", + "navigation_bar.security": "Seguranza", + "notification.favourite": "{name} marcou o teu estado coma favorito", + "notification.follow": "{name} comezou a seguirte", + "notification.follow_request": "{name} solicitou seguirte", "notification.mention": "{name} mencionoute", - "notification.poll": "Unha sondaxe na que votou xa rematou", - "notification.reblog": "{name} promoveu o seu estado", + "notification.own_poll": "A túa enquisa rematou", + "notification.poll": "Unha enquisa na que votaches rematou", + "notification.reblog": "{name} compartiu o teu estado", "notifications.clear": "Limpar notificacións", - "notifications.clear_confirmation": "Estás seguro de que queres limpar permanentemente todas as túas notificacións?", + "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?", "notifications.column_settings.alert": "Notificacións de escritorio", - "notifications.column_settings.favourite": "Favoritas:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorías", + "notifications.column_settings.favourite": "Favoritos:", + "notifications.column_settings.filter_bar.advanced": "Amosar todas as categorías", "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", - "notifications.column_settings.filter_bar.show": "Mostrar", + "notifications.column_settings.filter_bar.show": "Amosar", "notifications.column_settings.follow": "Novos seguidores:", + "notifications.column_settings.follow_request": "Novas peticións de seguimento:", "notifications.column_settings.mention": "Mencións:", - "notifications.column_settings.poll": "Resultados da sondaxe:", - "notifications.column_settings.push": "Enviar notificacións", - "notifications.column_settings.reblog": "Promocións:", - "notifications.column_settings.show": "Mostrar en columna", + "notifications.column_settings.poll": "Resultados da enquisa:", + "notifications.column_settings.push": "Notificacións emerxentes", + "notifications.column_settings.reblog": "Compartidos:", + "notifications.column_settings.show": "Amosar en columna", "notifications.column_settings.sound": "Reproducir son", "notifications.filter.all": "Todo", - "notifications.filter.boosts": "Promocións", + "notifications.filter.boosts": "Compartidos", "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguimentos", "notifications.filter.mentions": "Mencións", - "notifications.filter.polls": "Resultados da sondaxe", + "notifications.filter.polls": "Resultados da enquisa", "notifications.group": "{count} notificacións", "poll.closed": "Pechado", "poll.refresh": "Actualizar", "poll.total_people": "{count, plural,one {# persoa}other {# persoas}}", "poll.total_votes": "{count, plural, one {# voto} outros {# votos}}", "poll.vote": "Votar", - "poll.voted": "Votou por esta opción", - "poll_button.add_poll": "Engadir sondaxe", - "poll_button.remove_poll": "Eliminar sondaxe", - "privacy.change": "Axustar a intimidade do estado", - "privacy.direct.long": "Enviar exclusivamente as usuarias mencionadas", - "privacy.direct.short": "Directa", - "privacy.private.long": "Enviar só as seguidoras", - "privacy.private.short": "Só-seguidoras", - "privacy.public.long": "Publicar na liña temporal pública", - "privacy.public.short": "Pública", - "privacy.unlisted.long": "Non publicar en liñas temporais públicas", - "privacy.unlisted.short": "Non listada", + "poll.voted": "Votaches por esta opción", + "poll_button.add_poll": "Engadir unha enquisa", + "poll_button.remove_poll": "Eliminar enquisa", + "privacy.change": "Axustar privacidade", + "privacy.direct.long": "Só para os usuarios mencionados", + "privacy.direct.short": "Directo", + "privacy.private.long": "Só para os seguidores", + "privacy.private.short": "Só seguidores", + "privacy.public.long": "Publicar nas cronoloxías públicas", + "privacy.public.short": "Público", + "privacy.unlisted.long": "Non publicar nas cronoloxías públicas", + "privacy.unlisted.short": "Non listado", "refresh": "Actualizar", - "regeneration_indicator.label": "Cargando…", - "regeneration_indicator.sublabel": "Estase a preparar a súa liña temporal de inicio!", + "regeneration_indicator.label": "Estase a cargar…", + "regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "agora", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", - "reply_indicator.cancel": "Cancelar", + "reply_indicator.cancel": "Desbotar", "report.forward": "Reenviar a {target}", - "report.forward_hint": "A conta pertence a outro servidor. Enviar unha copia anónima do informe alí tamén?", - "report.hint": "O informe enviarase a moderación do seu servidor. Abaixo pode explicar a razón pola que está a informar:", + "report.forward_hint": "A conta é doutro servidor. Enviar unha copia anónima da denuncia aló tamén?", + "report.hint": "A denuncia enviarase á moderación do teu servidor. Abaixo podes explicar a razón pola que estás a denunciar:", "report.placeholder": "Comentarios adicionais", "report.submit": "Enviar", - "report.target": "Informar {target}", - "search.placeholder": "Buscar", - "search_popout.search_format": "Formato de busca avanzada", - "search_popout.tips.full_text": "Texto simple devolve estados que vostede escribeu, promoveu, marcou favoritos, ou foi mencionada, así como nomes de usuaria coincidentes, nomes públicos e etiquetas.", - "search_popout.tips.hashtag": "etiqueta", + "report.target": "Denunciar a {target}", + "search.placeholder": "Procurar", + "search_popout.search_format": "Formato de procura avanzada", + "search_popout.tips.full_text": "Texto sinxelo que devolve estados que ti escribiches, compartiches, marcaches favorito, ou foches mencionado, así como nomes de usuario coincidentes, nomes públicos e cancelos.", + "search_popout.tips.hashtag": "cancelo", "search_popout.tips.status": "estado", - "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e etiquetas", - "search_popout.tips.user": "usuaria", - "search_results.accounts": "Xente", - "search_results.hashtags": "Etiquetas", + "search_popout.tips.text": "Texto sinxelo que devolve coincidencias con nomes públicos, nomes de usuario e cancelos", + "search_popout.tips.user": "usuario", + "search_results.accounts": "Persoas", + "search_results.hashtags": "Cancelos", "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Non está activada neste servidor Mastodon a busca de toots polo seu contido.", - "search_results.total": "{count, number} {count,plural,one {result} outros {results}}", + "search_results.statuses_fts_disabled": "Procurar toots polo seu contido non está activado neste servidor do Mastodon.", + "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_status": "Abrir este estado na interface de moderación", "status.block": "Bloquear @{name}", - "status.cancel_reblog_private": "Non promover", - "status.cannot_reblog": "Esta mensaxe non pode ser promovida", - "status.copy": "Copiar ligazón ao estado", + "status.bookmark": "Marcar", + "status.cancel_reblog_private": "Desfacer compartido", + "status.cannot_reblog": "Esta publicación non pode ser compartida", + "status.copy": "Copiar ligazón ó estado", "status.delete": "Eliminar", "status.detailed_status": "Vista detallada da conversa", "status.direct": "Mensaxe directa @{name}", - "status.embed": "Incrustar", - "status.favourite": "Favorita", + "status.embed": "Embeber nunha web", + "status.favourite": "Favorito", "status.filtered": "Filtrado", "status.load_more": "Cargar máis", - "status.media_hidden": "Medios ocultos", + "status.media_hidden": "Contido multimedia agochado", "status.mention": "Mencionar @{name}", "status.more": "Máis", - "status.mute": "Acalar @{name}", - "status.mute_conversation": "Acalar conversa", + "status.mute": "Silenciar @{name}", + "status.mute_conversation": "Silenciar conversa", "status.open": "Expandir este estado", "status.pin": "Fixar no perfil", "status.pinned": "Toot fixado", - "status.read_more": "Lea máis", - "status.reblog": "Promover", - "status.reblog_private": "Promover a audiencia orixinal", - "status.reblogged_by": "{name} promoveu", - "status.reblogs.empty": "Ninguén promoveu este toot polo de agora. Cando alguén o faga, mostraránse aquí.", - "status.redraft": "Eliminar & reescribir", - "status.reply": "Resposta", - "status.replyAll": "Resposta a conversa", - "status.report": "Informar @{name}", - "status.sensitive_warning": "Contido sensible", + "status.read_more": "Ler máis", + "status.reblog": "Compartir", + "status.reblog_private": "Compartir á audiencia orixinal", + "status.reblogged_by": "{name} compartiu", + "status.reblogs.empty": "Aínda ninguén compartiu este toot. Cando alguén o faga, amosarase aquí.", + "status.redraft": "Eliminar e reescribir", + "status.remove_bookmark": "Eliminar marcador", + "status.reply": "Respostar", + "status.replyAll": "Respostar ó fío", + "status.report": "Denunciar @{name}", + "status.sensitive_warning": "Contido sensíbel", "status.share": "Compartir", - "status.show_less": "Mostrar menos", - "status.show_less_all": "Mostrar menos para todas", - "status.show_more": "Mostrar máis", - "status.show_more_all": "Mostrar máis para todas", - "status.show_thread": "Mostrar fío", - "status.uncached_media_warning": "Non dispoñible", - "status.unmute_conversation": "Non acalar a conversa", - "status.unpin": "Despegar do perfil", + "status.show_less": "Amosar menos", + "status.show_less_all": "Amosar menos para todos", + "status.show_more": "Amosar máis", + "status.show_more_all": "Amosar máis para todos", + "status.show_thread": "Amosar fío", + "status.uncached_media_warning": "Non dispoñíbel", + "status.unmute_conversation": "Deixar de silenciar conversa", + "status.unpin": "Desafixar do perfil", "suggestions.dismiss": "Rexeitar suxestión", - "suggestions.header": "Podería estar interesada en…", - "tabs_bar.federated_timeline": "Federado", + "suggestions.header": "Poderíache interesar…", + "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificacións", - "tabs_bar.search": "Buscar", - "time_remaining.days": "{number, plural, one {# dia} other {# días}} restantes", + "tabs_bar.search": "Procurar", + "time_remaining.days": "{number, plural, one {# día} other {# días}} restantes", "time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restantes", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutos}} restantes", - "time_remaining.moments": "Está rematando", + "time_remaining.moments": "Momentos restantes", "time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} outras {people}} conversando", + "trends.count_by_accounts": "{count} {rawCount, plural, one {persoa} other {persoas}} falando", "trends.trending_now": "Tendencias actuais", - "ui.beforeunload": "O borrador perderase se sae de Mastodon.", - "upload_area.title": "Arrastre e solte para subir", - "upload_button.label": "Engadir medios ({formats})", - "upload_error.limit": "Excedeu o límite de subida de ficheiros.", - "upload_error.poll": "Non se poden subir ficheiros nas sondaxes.", - "upload_form.description": "Describa para deficientes visuais", + "ui.beforeunload": "O borrador perderase se saes do Mastodon.", + "upload_area.title": "Arrastra e solta para subir", + "upload_button.label": "Engadir multimedia ({formats})", + "upload_error.limit": "Límite máximo do ficheiro a subir excedido.", + "upload_error.poll": "Non se poden subir ficheiros nas enquisas.", + "upload_form.audio_description": "Describir para persoas con problemas auditivos", + "upload_form.description": "Describir para persoas con problemas visuais", "upload_form.edit": "Editar", "upload_form.undo": "Eliminar", - "upload_modal.analyzing_picture": "Analizando imaxe…", + "upload_form.video_description": "Describir para persoas con problemas visuais ou auditivos", + "upload_modal.analyzing_picture": "Estase a analizar a imaxe…", "upload_modal.apply": "Aplicar", - "upload_modal.description_placeholder": "Un raposo moi feitiño salta sobre o can preguiceiro", + "upload_modal.description_placeholder": "Un raposo veloz brinca sobre o can preguiceiro", "upload_modal.detect_text": "Detectar texto na imaxe", - "upload_modal.edit_media": "Editar medios", - "upload_modal.hint": "Prema ou arrastre o círculo na vista previa para escolle o punto focal que se verá na vista de todas as miniaturas.", + "upload_modal.edit_media": "Editar multimedia", + "upload_modal.hint": "Preme ou arrastra o círculo na vista previa para escoller o punto focal que sempre estará á vista en todas as miniaturas.", "upload_modal.preview_label": "Vista previa ({ratio})", - "upload_progress.label": "Subindo...", - "video.close": "Pechar video", + "upload_progress.label": "Estase a subir...", + "video.close": "Pechar vídeo", + "video.download": "Baixar ficheiro", "video.exit_fullscreen": "Saír da pantalla completa", "video.expand": "Expandir vídeo", "video.fullscreen": "Pantalla completa", "video.hide": "Agochar vídeo", - "video.mute": "Acalar son", - "video.pause": "Pausar", + "video.mute": "Silenciar son", + "video.pause": "Deter", "video.play": "Reproducir", "video.unmute": "Permitir son" } diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 70aec3279..e69fa5d8f 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "הוסף או הסר מהרשימות", "account.badges.bot": "בוט", + "account.badges.group": "Group", "account.block": "חסימת @{name}", "account.block_domain": "להסתיר הכל מהקהילה {domain}", "account.blocked": "חסום", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "משהו השתבש בעת טעינת הרכיב הזה.", "bundle_modal_error.retry": "לנסות שוב", "column.blocks": "חסימות", + "column.bookmarks": "Bookmarks", "column.community": "ציר זמן מקומי", "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": "לחצרץ!", "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": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!", "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": "לענות", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "להסתיר הודעות מחשבון זה?", "navigation_bar.apps": "Mobile apps", "navigation_bar.blocks": "חסימות", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_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": "הסרת התראות", @@ -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": "הודעות בדחיפה", @@ -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": "לא ניתן להדהד הודעה זו", "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": "תגובה לכולם", "status.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": "תיאור לכבדי ראיה", "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": "עולה...", "video.close": "סגירת וידאו", + "video.download": "Download file", "video.exit_fullscreen": "יציאה ממסך מלא", "video.expand": "להרחיב וידאו", "video.fullscreen": "Full screen", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index c50567aac..0e8830174 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "सूची में जोड़ें या हटाए", "account.badges.bot": "बॉट", + "account.badges.group": "Group", "account.block": "@{name} को ब्लॉक करें", "account.block_domain": "{domain} के सारी चीज़े छुपाएं", "account.blocked": "ब्लॉक", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया", "bundle_modal_error.retry": "दुबारा कोशिश करें", "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": "Hide notifications from this user?", "navigation_bar.apps": "मोबाइल एप्लिकेशंस", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "लोकल टाइम्लाइन", "navigation_bar.compose": "नया टूट् लिखें", "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": "फ़िल्टर बार", "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": "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": "जवाब", "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": "संशोधन करें", "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": "लागू करें", "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": "अपलोडिंग...", "video.close": "Close video", + "video.download": "फाइल डाउनलोड करें", "video.exit_fullscreen": "Exit full screen", "video.expand": "Expand video", "video.fullscreen": "Full screen", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 09298a7ad..da01b92ae 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokiraj @{name}", "account.block_domain": "Sakrij sve sa {domain}", "account.blocked": "Blocked", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", "column.blocks": "Blokirani korisnici", + "column.bookmarks": "Bookmarks", "column.community": "Lokalni 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": "Toot", "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": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!", "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": "Blokirani korisnici", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalni timeline", "navigation_bar.compose": "Compose new toot", "navigation_bar.direct": "Direct messages", @@ -273,7 +280,9 @@ "navigation_bar.security": "Security", "notification.favourite": "{name} je lajkao tvoj status", "notification.follow": "{name} te sada slijedi", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} te je spomenuo", + "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} je podigao tvoj status", "notifications.clear": "Očisti notifikacije", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.follow": "Novi sljedbenici:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Spominjanja:", "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": "Ovaj post ne može biti boostan", "status.copy": "Copy link to status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} je podigao", "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": "Odgovori", "status.replyAll": "Odgovori na temu", "status.report": "Prijavi @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Dodaj media", "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": "Poništi", + "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": "Uploadam...", "video.close": "Close video", + "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", "video.expand": "Expand video", "video.fullscreen": "Full screen", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 72dd6b986..57511307a 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listáról", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "@{name} letiltása", "account.block_domain": "Minden elrejtése innen: {domain}", "account.blocked": "Letiltva", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Hiba történt a komponens betöltésekor.", "bundle_modal_error.retry": "Próbáld újra", "column.blocks": "Letiltott felhasználók", + "column.bookmarks": "Könyvjelzők", "column.community": "Helyi idővonal", "column.direct": "Közvetlen üzenetek", "column.directory": "Profilok böngészése", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Szavazás időtartama", "compose_form.poll.option_placeholder": "{number}. lehetőség", "compose_form.poll.remove_option": "Lehetőség törlése", + "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": "Tülk", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Média megjelölése szenzitívként", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Itt nincs tülkölés!", "empty_column.account_unavailable": "A profil nem érhető el", "empty_column.blocks": "Még senkit sem tiltottál le.", + "empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött tülköd sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.", "empty_column.community": "A helyi idővonal üres. Tülkölj egyet nyilvánosan, hogy elindítsd az eseményeket!", "empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.", "empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása", "keyboard_shortcuts.my_profile": "profilod megnyitása", "keyboard_shortcuts.notifications": "értesítések megnyitása", + "keyboard_shortcuts.open_media": "média megnyitása", "keyboard_shortcuts.pinned": "kitűzött tülkök listájának megnyitása", "keyboard_shortcuts.profile": "szerző profiljának megnyitása", "keyboard_shortcuts.reply": "válasz", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?", "navigation_bar.apps": "Mobil appok", "navigation_bar.blocks": "Letiltott felhasználók", + "navigation_bar.bookmarks": "Könyvjelzők", "navigation_bar.community_timeline": "Helyi idővonal", "navigation_bar.compose": "Új tülk írása", "navigation_bar.direct": "Közvetlen üzenetek", @@ -273,7 +280,9 @@ "navigation_bar.security": "Biztonság", "notification.favourite": "{name} kedvencnek jelölte egy tülködet", "notification.follow": "{name} követ téged", + "notification.follow_request": "{name} követni szeretne téged", "notification.mention": "{name} megemlített", + "notification.own_poll": "A szavazásod véget ért", "notification.poll": "Egy szavazás, melyben részt vettél, véget ért", "notification.reblog": "{name} megtolta a tülködet", "notifications.clear": "Értesítések törlése", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Gyorskereső mező", "notifications.column_settings.filter_bar.show": "Mutat", "notifications.column_settings.follow": "Új követők:", + "notifications.column_settings.follow_request": "Új követési kérelmek:", "notifications.column_settings.mention": "Megemlítések:", "notifications.column_settings.poll": "Szavazás eredménye:", "notifications.column_settings.push": "Push értesítések", @@ -344,6 +354,7 @@ "status.admin_account": "Moderáció megnyitása @{name} felhasználóhoz", "status.admin_status": "Tülk megnyitása moderációra", "status.block": "@{name} letiltása", + "status.bookmark": "Könyvjelzőzés", "status.cancel_reblog_private": "Megtolás törlése", "status.cannot_reblog": "Ez a tülk nem tolható meg", "status.copy": "Link másolása tülkbe", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} megtolta", "status.reblogs.empty": "Senki sem tolta még meg ezt a tülköt. Ha valaki megteszi, itt fog megjelenni.", "status.redraft": "Törlés és újraírás", + "status.remove_bookmark": "Könyvjelző eltávolítása", "status.reply": "Válasz", "status.replyAll": "Válasz a beszélgetésre", "status.report": "@{name} jelentése", @@ -400,9 +412,11 @@ "upload_button.label": "Média hozzáadása ({formats})", "upload_error.limit": "Túllépted a fájlfeltöltési korlátot.", "upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.", + "upload_form.audio_description": "Írja le a hallássérültek számára", "upload_form.description": "Leírás látáskorlátozottak számára", "upload_form.edit": "Szerkesztés", "upload_form.undo": "Mégsem", + "upload_form.video_description": "Írja le a hallás- vagy látássérültek számára", "upload_modal.analyzing_picture": "Kép elemzése…", "upload_modal.apply": "Alkalmaz", "upload_modal.description_placeholder": "A gyors, barna róka átugrik a lusta kutya fölött", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Előnézet ({ratio})", "upload_progress.label": "Feltöltés...", "video.close": "Videó bezárása", + "video.download": "Fájl letöltése", "video.exit_fullscreen": "Kilépés teljes képernyőből", "video.expand": "Videó nagyítása", "video.fullscreen": "Teljes képernyő", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index a4c155dfe..b20b744d5 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -1,31 +1,32 @@ { - "account.add_or_remove_from_list": "Add or Remove from lists", + "account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից", "account.badges.bot": "Բոտ", + "account.badges.group": "Group", "account.block": "Արգելափակել @{name}֊ին", "account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}", - "account.blocked": "Blocked", - "account.cancel_follow_request": "Cancel follow request", + "account.blocked": "Արգելափակուած է", + "account.cancel_follow_request": "չեղարկել հետեւելու հայցը", "account.direct": "Direct Message @{name}", - "account.domain_blocked": "Domain hidden", + "account.domain_blocked": "Թաքցրած տիրոյթ", "account.edit_profile": "Խմբագրել անձնական էջը", - "account.endorse": "Feature on profile", + "account.endorse": "Ցուցադրել անձնական էջում", "account.follow": "Հետեւել", "account.followers": "Հետեւողներ", - "account.followers.empty": "No one follows this user yet.", + "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։", "account.follows": "Հետեւում է", - "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows.empty": "Այս օգտատէրն դեռ ոչ մէկի չի հետեւում։", "account.follows_you": "Հետեւում է քեզ", "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները", - "account.last_status": "Last active", - "account.link_verified_on": "Ownership of this link was checked on {date}", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.last_status": "Վերջին անգամ ակտիւ էր", + "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": "Muted", - "account.never_active": "Never", + "account.muted": "Լռեցուած", + "account.never_active": "Երբեք", "account.posts": "Գրառումներ", "account.posts_with_replies": "Toots with replies", "account.report": "Բողոքել @{name}֊ից", @@ -34,15 +35,15 @@ "account.show_reblogs": "Ցուցադրել @{name}֊ի տարածածները", "account.unblock": "Ապաարգելափակել @{name}֊ին", "account.unblock_domain": "Ցուցադրել {domain} թաքցված տիրույթի գրառումները", - "account.unendorse": "Don't feature on profile", + "account.unendorse": "Չցուցադրել անձնական էջում", "account.unfollow": "Չհետեւել", "account.unmute": "Ապալռեցնել @{name}֊ին", "account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.message": "Փորձէք որոշ ժամանակ անց՝ {retry_time, time, medium}։", "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", + "alert.unexpected.message": "Անսպասելի սխալ տեղի ունեցաւ։", "alert.unexpected.title": "Վա՜յ", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "շաբաթը՝ {count}", "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա հաջորդ անգամ բաց թողնելու համար", "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանվեց։", "bundle_column_error.retry": "Կրկին փորձել", @@ -51,10 +52,11 @@ "bundle_modal_error.message": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանվեց։", "bundle_modal_error.retry": "Կրկին փորձել", "column.blocks": "Արգելափակված օգտատերեր", + "column.bookmarks": "Էջանիշեր", "column.community": "Տեղական հոսք", - "column.direct": "Direct messages", - "column.directory": "Browse profiles", - "column.domain_blocks": "Hidden domains", + "column.direct": "Հասցէագրուած հաղորդագրութիւններ", + "column.directory": "Զննել անձնական էջերը", + "column.domain_blocks": "Թաքցուած տիրոյթները", "column.favourites": "Հավանածներ", "column.follow_requests": "Հետեւելու հայցեր", "column.home": "Հիմնական", @@ -78,20 +80,22 @@ "compose_form.lock_disclaimer": "Քո հաշիվը {locked} չէ։ Յուրաքանչյուր ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսված գրառումները։", "compose_form.lock_disclaimer.lock": "փակ", "compose_form.placeholder": "Ի՞նչ կա մտքիդ", - "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.add_option": "Աւելացնել տարբերակ", + "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": "Թթե՜լ", - "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": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց", + "compose_form.sensitive.marked": "Մեդիան նշուած է որպէս դիւրազգաց", + "compose_form.sensitive.unmarked": "Մեդիան նշուած չէ որպէս դիւրազգաց", + "compose_form.spoiler.marked": "Տեքստը թաքցուած է զգուշացման ետեւում", + "compose_form.spoiler.unmarked": "Տեքստը թաքցուած չէ", "compose_form.spoiler_placeholder": "Գրիր նախազգուշացումդ այստեղ", "confirmation_modal.cancel": "Չեղարկել", - "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.block_and_report": "Արգելափակել եւ բողոքել", "confirmations.block.confirm": "Արգելափակել", "confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {name}֊ին։", "confirmations.delete.confirm": "Ջնջել", @@ -101,24 +105,24 @@ "confirmations.domain_block.confirm": "Թաքցնել ամբողջ տիրույթը", "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրույթը։ Սովորաբար մի երկու թիրախավորված արգելափակում կամ լռեցում բավական է ու նախընտրելի։", "confirmations.logout.confirm": "Ելք", - "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ", "confirmations.mute.confirm": "Լռեցնել", - "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.explanation": "Սա թաքցնելու ա իրենց գրառումներն, ինչպէս նաեւ իրենց նշող գրառումներն, բայց իրենք միեւնոյն է կը կարողանան հետեւել ձեզ եւ տեսնել ձեր գրառումները։", "confirmations.mute.message": "Վստա՞հ ես, որ ուզում ես {name}֊ին լռեցնել։", - "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.confirm": "Ջնջել եւ խմբագրել նորից", "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.reply.confirm": "Reply", - "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.reply.confirm": "Պատասխանել", + "confirmations.reply.message": "Այս պահին պատասխանելը կը չեղարկի ձեր՝ այս պահին անաւարտ հաղորդագրութիւնը։ Համոզուա՞ծ էք։", "confirmations.unfollow.confirm": "Ապահետեւել", "confirmations.unfollow.message": "Վստա՞հ ես, որ ուզում ես այլեւս չհետեւել {name}֊ին։", - "conversation.delete": "Delete conversation", - "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.recently_active": "Recently active", + "conversation.delete": "Ջնջել խօսակցութիւնը", + "conversation.mark_as_read": "Նշել որպէս ընթերցուած", + "conversation.open": "Դիտել խօսակցութիւնը", + "conversation.with": "{names}֊երի հետ", + "directory.federated": "Յայտնի դաշնեզերքից", + "directory.local": "{domain} տիրոյթից միայն", + "directory.new_arrivals": "Նորութիւններ", + "directory.recently_active": "Վերջերս ակտիւ", "embed.instructions": "Այս թութը քո կայքում ներդնելու համար կարող ես պատճենել ներքոհիշյալ կոդը։", "embed.preview": "Ահա, թե ինչ տեսք կունենա այն՝", "emoji_button.activity": "Զբաղմունքներ", @@ -135,45 +139,46 @@ "emoji_button.search_results": "Որոնման արդյունքներ", "emoji_button.symbols": "Նշաններ", "emoji_button.travel": "Ուղեւորություն եւ տեղանքներ", - "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.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": "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.", - "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.direct": "Դու դեռ չունես ոչ մի հասցէագրուած հաղորդագրութիւն։ Երբ ուղարկես կամ ստանաս որեւէ անձնական նամակ, այն այստեղ կերեւայ։", + "empty_column.domain_blocks": "Թաքցուած տիրոյթներ դեռ չկան։", + "empty_column.favourited_statuses": "Դու դեռ չունես որեւէ հաւանած թութ։ Երբ հաւանես, դրանք կերեւան այստեղ։", + "empty_column.favourites": "Այս թութը ոչ մէկ դեռ չի հաւանել։ Հաւանողները կերեւան այստեղ, երբ նշեն թութը հաւանած։", "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.hashtag": "Այս պիտակով դեռ ոչինչ չկա։", "empty_column.home": "Քո հիմնական հոսքը դատա՛րկ է։ Այցելի՛ր {public}ը կամ օգտվիր որոնումից՝ այլ մարդկանց հանդիպելու համար։", "empty_column.home.public_timeline": "հրապարակային հոսք", "empty_column.list": "Այս ցանկում դեռ ոչինչ չկա։ Երբ ցանկի անդամներից որեւէ մեկը նոր թութ գրի, այն կհայտնվի այստեղ։", "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.mutes": "Առայժմ ոչ ոքի չեք արգելափակել։", "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", - "errors.unexpected_crash.report_issue": "Report issue", + "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին", "follow_request.authorize": "Վավերացնել", "follow_request.reject": "Մերժել", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", + "getting_started.developers": "Մշակողներ", + "getting_started.directory": "Պրոֆիլի տեղադրավայրը", + "getting_started.documentation": "Փաստաթղթեր", "getting_started.heading": "Ինչպես սկսել", - "getting_started.invite": "Invite people", + "getting_started.invite": "Հրավիրել մարդկանց", "getting_started.open_source_notice": "Մաստոդոնը բաց ելատեքստով ծրագրակազմ է։ Կարող ես ներդրում անել կամ վրեպներ զեկուցել ԳիթՀաբում՝ {github}։", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", - "hashtag.column_header.tag_mode.all": "and {additional}", - "hashtag.column_header.tag_mode.any": "or {additional}", - "hashtag.column_header.tag_mode.none": "without {additional}", + "getting_started.security": "Հաշվի կարգավորումներ", + "getting_started.terms": "Ծառայության պայմանները", + "hashtag.column_header.tag_mode.all": "և {additional}", + "hashtag.column_header.tag_mode.any": "կամ {additional}", + "hashtag.column_header.tag_mode.none": "առանց {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_mode.all": "Բոլորը", + "hashtag.column_settings.tag_mode.any": "Ցանկացածը", + "hashtag.column_settings.tag_mode.none": "Ոչ մեկը", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "home.column_settings.basic": "Հիմնական", "home.column_settings.show_reblogs": "Ցուցադրել տարածածները", @@ -181,25 +186,25 @@ "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}}", - "introduction.federation.action": "Next", + "introduction.federation.action": "Հաջորդ", "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.home.headline": "Home", + "introduction.federation.home.headline": "Հիմնական", "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", - "introduction.federation.local.headline": "Local", + "introduction.federation.local.headline": "Տեղային", "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", "introduction.interactions.action": "Finish toot-orial!", - "introduction.interactions.favourite.headline": "Favourite", + "introduction.interactions.favourite.headline": "Նախընտրելի", "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", - "introduction.interactions.reblog.headline": "Boost", + "introduction.interactions.reblog.headline": "Տարածել", "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", - "introduction.interactions.reply.headline": "Reply", + "introduction.interactions.reply.headline": "Պատասխանել", "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.", - "introduction.welcome.action": "Let's go!", - "introduction.welcome.headline": "First steps", + "introduction.welcome.action": "Գնացի՜նք։", + "introduction.welcome.headline": "Առաջին քայլեր", "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.", "keyboard_shortcuts.back": "ետ նավարկելու համար", - "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.blocked": "արգելափակված օգտատերերի ցանկը բացելու համար", "keyboard_shortcuts.boost": "տարածելու համար", "keyboard_shortcuts.column": "սյուներից մեկի վրա սեւեռվելու համար", "keyboard_shortcuts.compose": "շարադրման տիրույթին սեւեռվելու համար", @@ -219,26 +224,27 @@ "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.pinned": "to open pinned toots list", - "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "ամրացուած թթերի ցանկը բացելու համար", + "keyboard_shortcuts.profile": "հեղինակի անձնական էջը բացելու համար", "keyboard_shortcuts.reply": "պատասխանելու համար", - "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.requests": "հետեւելու հայցերի ցանկը դիտելու համար", "keyboard_shortcuts.search": "որոնման դաշտին սեւեռվելու համար", - "keyboard_shortcuts.start": "to open \"get started\" column", - "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.start": "«սկսել» սիւնակը բացելու համար", + "keyboard_shortcuts.toggle_hidden": "CW֊ի ետեւի տեքստը ցուցադրել֊թաքցնելու համար", + "keyboard_shortcuts.toggle_sensitivity": "մեդիան ցուցադրել֊թաքցնելու համար", "keyboard_shortcuts.toot": "թարմ թութ սկսելու համար", "keyboard_shortcuts.unfocus": "տեքստի/որոնման տիրույթից ապասեւեռվելու համար", "keyboard_shortcuts.up": "ցանկով վերեւ շարժվելու համար", "lightbox.close": "Փակել", "lightbox.next": "Հաջորդ", "lightbox.previous": "Նախորդ", - "lightbox.view_context": "View context", + "lightbox.view_context": "Տեսնել ենթատեքստը", "lists.account.add": "Ավելացնել ցանկին", "lists.account.remove": "Հանել ցանկից", "lists.delete": "Ջնջել ցանկը", "lists.edit": "Փոփոխել ցանկը", - "lists.edit.submit": "Change title", + "lists.edit.submit": "Փոխել վերնագիրը", "lists.new.create": "Ավելացնել ցանկ", "lists.new.title_placeholder": "Նոր ցանկի վերնագիր", "lists.search": "Փնտրել քո հետեւած մարդկանց մեջ", @@ -247,20 +253,21 @@ "loading_indicator.label": "Բեռնվում է…", "media_gallery.toggle_visible": "Ցուցադրել/թաքցնել", "missing_indicator.label": "Չգտնվեց", - "missing_indicator.sublabel": "This resource could not be found", + "missing_indicator.sublabel": "Պաշարը չի գտնւում", "mute_modal.hide_notifications": "Թաքցնե՞լ ցանուցումներն այս օգտատիրոջից։", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.apps": "Դիւրակիր յաւելուածներ", "navigation_bar.blocks": "Արգելափակված օգտատերեր", + "navigation_bar.bookmarks": "Էջանիշեր", "navigation_bar.community_timeline": "Տեղական հոսք", - "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", - "navigation_bar.discover": "Discover", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.compose": "Գրել նոր թութ", + "navigation_bar.direct": "Հասցէագրուած", + "navigation_bar.discover": "Բացայայտել", + "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ", "navigation_bar.edit_profile": "Խմբագրել անձնական էջը", "navigation_bar.favourites": "Հավանածներ", - "navigation_bar.filters": "Muted words", + "navigation_bar.filters": "Լռեցուած բառեր", "navigation_bar.follow_requests": "Հետեւելու հայցեր", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "Հետեւածներ եւ հետեւողներ", "navigation_bar.info": "Այս հանգույցի մասին", "navigation_bar.keyboard_shortcuts": "Ստեղնաշարի կարճատներ", "navigation_bar.lists": "Ցանկեր", @@ -273,38 +280,41 @@ "navigation_bar.security": "Անվտանգություն", "notification.favourite": "{name} հավանեց թութդ", "notification.follow": "{name} սկսեց հետեւել քեզ", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} նշեց քեզ", - "notification.poll": "A poll you have voted in has ended", + "notification.own_poll": "Հարցումդ աւարտուեց", + "notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։", "notification.reblog": "{name} տարածեց թութդ", "notifications.clear": "Մաքրել ծանուցումները", "notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապես մաքրել քո բոլոր ծանուցումները։", "notifications.column_settings.alert": "Աշխատատիրույթի ծանուցումներ", "notifications.column_settings.favourite": "Հավանածներից՝", - "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.advanced": "Ցուցադրել բոլոր կատեգորիաները", + "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": "Poll results:", + "notifications.column_settings.poll": "Հարցման արդիւնքները՝", "notifications.column_settings.push": "Հրելու ծանուցումներ", "notifications.column_settings.reblog": "Տարածածներից՝", "notifications.column_settings.show": "Ցուցադրել սյունում", "notifications.column_settings.sound": "Ձայն հանել", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", - "notifications.group": "{count} notifications", - "poll.closed": "Closed", - "poll.refresh": "Refresh", + "notifications.filter.all": "Բոլորը", + "notifications.filter.boosts": "Տարածածները", + "notifications.filter.favourites": "Հաւանածները", + "notifications.filter.follows": "Հետեւածները", + "notifications.filter.mentions": "Նշումները", + "notifications.filter.polls": "Հարցման արդիւնքները", + "notifications.group": "{count} ծանուցում", + "poll.closed": "Փակ", + "poll.refresh": "Թարմացնել", "poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll.vote": "Քուէարկել", + "poll.voted": "Դու քուէարկել ես այս տարբերակի համար", + "poll_button.add_poll": "Աւելացնել հարցում", + "poll_button.remove_poll": "Հեռացնել հարցումը", "privacy.change": "Կարգավորել թթի գաղտնիությունը", "privacy.direct.long": "Թթել միայն նշված օգտատերերի համար", "privacy.direct.short": "Հասցեագրված", @@ -314,37 +324,38 @@ "privacy.public.short": "Հրապարակային", "privacy.unlisted.long": "Չթթել հրապարակային հոսքերում", "privacy.unlisted.short": "Ծածուկ", - "refresh": "Refresh", - "regeneration_indicator.label": "Loading…", - "regeneration_indicator.sublabel": "Your home feed is being prepared!", + "refresh": "Թարմացնել", + "regeneration_indicator.label": "Բեռնւում է…", + "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ", "relative_time.days": "{number}օր", "relative_time.hours": "{number}ժ", "relative_time.just_now": "նոր", "relative_time.minutes": "{number}ր", "relative_time.seconds": "{number}վ", "reply_indicator.cancel": "Չեղարկել", - "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.forward": "Փոխանցել {target}֊ին", + "report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։", "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.placeholder": "Լրացուցիչ մեկնաբանություններ", "report.submit": "Ուղարկել", "report.target": "Բողոքել {target}֊ի մասին", "search.placeholder": "Փնտրել", "search_popout.search_format": "Փնտրելու առաջադեմ ձեւ", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.full_text": "Պարզ տեքստը վերադարձնում է գրառումներդ, հաւանածներդ, տարածածներդ, որտեղ ես նշուած եղել, ինչպէս նաեւ նման օգտանուններ, անուններ եւ պիտակներ։", "search_popout.tips.hashtag": "պիտակ", "search_popout.tips.status": "թութ", "search_popout.tips.text": "Հասարակ տեքստը կվերադարձնի համընկնող անուններ, օգտանուններ ու պիտակներ", "search_popout.tips.user": "օգտատեր", "search_results.accounts": "Մարդիկ", - "search_results.hashtags": "Hashtags", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.hashtags": "Պիտակներ", + "search_results.statuses": "Թթեր", + "search_results.statuses_fts_disabled": "Այս հանգոյցում միացուած չէ ըստ բովանդակութեան թթեր փնտրելու հնարաւորութիւնը։", "search_results.total": "{count, number} {count, plural, one {արդյունք} other {արդյունք}}", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_status": "Open this status in the moderation interface", + "status.admin_account": "Բացել @{name} օգտատիրոջ մոդերացիայի դիմերէսը։", + "status.admin_status": "Բացել այս գրառումը մոդերատորի դիմերէսի մէջ", "status.block": "Արգելափակել @{name}֊ին", - "status.cancel_reblog_private": "Unboost", + "status.bookmark": "Էջանիշ", + "status.cancel_reblog_private": "Ապատարածել", "status.cannot_reblog": "Այս թութը չի կարող տարածվել", "status.copy": "Copy link to status", "status.delete": "Ջնջել", @@ -352,7 +363,7 @@ "status.direct": "Direct message @{name}", "status.embed": "Ներդնել", "status.favourite": "Հավանել", - "status.filtered": "Filtered", + "status.filtered": "Զտված", "status.load_more": "Բեռնել ավելին", "status.media_hidden": "մեդիաբովանդակությունը թաքցված է", "status.mention": "Նշել @{name}֊ին", @@ -362,12 +373,13 @@ "status.open": "Ընդարձակել այս թութը", "status.pin": "Ամրացնել անձնական էջում", "status.pinned": "Pinned toot", - "status.read_more": "Read more", + "status.read_more": "Կարդալ ավելին", "status.reblog": "Տարածել", "status.reblog_private": "Boost to original audience", "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": "Պատասխանել թելին", "status.report": "Բողոքել @{name}֊ից", @@ -378,7 +390,7 @@ "status.show_more": "Ավելին", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", - "status.uncached_media_warning": "Not available", + "status.uncached_media_warning": "Անհասանելի", "status.unmute_conversation": "Ապալռեցնել խոսակցությունը", "status.unpin": "Հանել անձնական էջից", "suggestions.dismiss": "Dismiss suggestion", @@ -400,18 +412,21 @@ "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": "Նկարագրություն ավելացրու տեսողական խնդիրներ ունեցողների համար", - "upload_form.edit": "Edit", + "upload_form.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.apply": "Կիրառել", "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.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.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Նախադիտում ({ratio})", "upload_progress.label": "Վերբեռնվում է…", "video.close": "Փակել տեսագրությունը", + "video.download": "Ներբեռնել ֆայլը", "video.exit_fullscreen": "Անջատել լիաէկրան դիտումը", "video.expand": "Ընդարձակել տեսագրությունը", "video.fullscreen": "Լիաէկրան", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 167c2a766..aa4c9bc84 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokir @{name}", "account.block_domain": "Sembunyikan segalanya dari {domain}", "account.blocked": "Terblokir", @@ -39,7 +40,7 @@ "account.unmute": "Berhenti membisukan @{name}", "account.unmute_notifications": "Munculkan notifikasi dari @{name}", "alert.rate_limited.message": "Tolong ulangi setelah {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "alert.rate_limited.title": "Batasan tingkat", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per minggu", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Kesalahan terjadi saat memuat komponen ini.", "bundle_modal_error.retry": "Coba lagi", "column.blocks": "Pengguna diblokir", + "column.bookmarks": "Markah", "column.community": "Linimasa Lokal", "column.direct": "Pesan langsung", "column.directory": "Jelajahi profil", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Durasi jajak pendapat", "compose_form.poll.option_placeholder": "Pilihan {number}", "compose_form.poll.remove_option": "Hapus opsi ini", + "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": "Tandai sebagai media sensitif", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Tidak ada toot di sini!", "empty_column.account_unavailable": "Profil tidak tersedia", "empty_column.blocks": "Anda belum memblokir siapapun.", + "empty_column.bookmarked_statuses": "Anda belum memiliki toot termarkah. Saat Anda menandainya sebagai markah, ia akan muncul di sini.", "empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!", "empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.", "empty_column.domain_blocks": "Tidak ada topik tersembunyi.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "buka daftar pengguna terbisukan", "keyboard_shortcuts.my_profile": "buka profil Anda", "keyboard_shortcuts.notifications": "buka kolom notifikasi", + "keyboard_shortcuts.open_media": "membuka media", "keyboard_shortcuts.pinned": "buka daftar toot tersemat", "keyboard_shortcuts.profile": "buka profil pencipta", "keyboard_shortcuts.reply": "balas", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?", "navigation_bar.apps": "Aplikasi mobile", "navigation_bar.blocks": "Pengguna diblokir", + "navigation_bar.bookmarks": "Markah", "navigation_bar.community_timeline": "Linimasa lokal", "navigation_bar.compose": "Tulis toot baru", "navigation_bar.direct": "Pesan langsung", @@ -273,7 +280,9 @@ "navigation_bar.security": "Keamanan", "notification.favourite": "{name} menyukai status anda", "notification.follow": "{name} mengikuti anda", + "notification.follow_request": "{name} ingin mengikuti Anda", "notification.mention": "{name} menyebut Anda", + "notification.own_poll": "Japat Anda telah berakhir", "notification.poll": "Japat yang Anda ikuti telah berakhir", "notification.reblog": "{name} mem-boost status anda", "notifications.clear": "Hapus notifikasi", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Bilah penyaring cepat", "notifications.column_settings.filter_bar.show": "Tampilkan", "notifications.column_settings.follow": "Pengikut baru:", + "notifications.column_settings.follow_request": "Permintaan mengikuti baru:", "notifications.column_settings.mention": "Balasan:", "notifications.column_settings.poll": "Hasil japat:", "notifications.column_settings.push": "Notifikasi dorong", @@ -344,6 +354,7 @@ "status.admin_account": "Buka antar muka moderasi untuk @{name}", "status.admin_status": "Buka status ini dalam antar muka moderasi", "status.block": "Blokir @{name}", + "status.bookmark": "Markah", "status.cancel_reblog_private": "Batalkan boost", "status.cannot_reblog": "Pos ini tak dapat di-boost", "status.copy": "Salin tautan ke status", @@ -368,15 +379,16 @@ "status.reblogged_by": "di-boost {name}", "status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, maka akan muncul di sini.", "status.redraft": "Hapus & redraf", + "status.remove_bookmark": "Hapus markah", "status.reply": "Balas", "status.replyAll": "Balas ke semua", "status.report": "Laporkan @{name}", "status.sensitive_warning": "Konten sensitif", "status.share": "Bagikan", "status.show_less": "Tampilkan lebih sedikit", - "status.show_less_all": "Show less for all", + "status.show_less_all": "Tampilkan lebih sedikit", "status.show_more": "Tampilkan semua", - "status.show_more_all": "Show more for all", + "status.show_more_all": "Tampilkan lebih banyak", "status.show_thread": "Tampilkan utas", "status.uncached_media_warning": "Tak tersedia", "status.unmute_conversation": "Bunyikan percakapan", @@ -400,9 +412,11 @@ "upload_button.label": "Tambahkan media", "upload_error.limit": "Batas unggah berkas terlampaui.", "upload_error.poll": "Unggah berkas tak diizinkan di japat ini.", + "upload_form.audio_description": "Penjelasan untuk orang dengan gangguan pendengaran", "upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas", "upload_form.edit": "Sunting", "upload_form.undo": "Undo", + "upload_form.video_description": "Penjelasan untuk orang dengan gangguan pendengaran atau penglihatan", "upload_modal.analyzing_picture": "Analisis gambar…", "upload_modal.apply": "Terapkan", "upload_modal.description_placeholder": "Muharjo seorang xenofobia universal yang takut pada warga jazirah, contohnya Qatar", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Pratinjau ({ratio})", "upload_progress.label": "Mengunggah...", "video.close": "Tutup video", + "video.download": "Unduh berkas", "video.exit_fullscreen": "Keluar dari layar penuh", "video.expand": "Perbesar video", "video.fullscreen": "Layar penuh", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 076835218..673a0deb2 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokusar @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Try again", "column.blocks": "Blokusita uzeri", + "column.bookmarks": "Bookmarks", "column.community": "Lokala tempolineo", "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": "Siflar", "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": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!", "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": "Blokusita uzeri", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokala tempolineo", "navigation_bar.compose": "Compose new toot", "navigation_bar.direct": "Direct messages", @@ -273,7 +280,9 @@ "navigation_bar.security": "Security", "notification.favourite": "{name} favorizis tua mesajo", "notification.follow": "{name} sequeskis tu", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} mencionis tu", + "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} repetis tua mesajo", "notifications.clear": "Efacar savigi", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.follow": "Nova sequanti:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mencioni:", "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} repetita", "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": "Respondar", "status.replyAll": "Respondar a filo", "status.report": "Denuncar @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Adjuntar kontenajo", "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": "Desfacar", + "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": "Kargante...", "video.close": "Close video", + "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", "video.expand": "Expand video", "video.fullscreen": "Full screen", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json new file mode 100644 index 000000000..0fd5be2ac --- /dev/null +++ b/app/javascript/mastodon/locales/is.json @@ -0,0 +1,438 @@ +{ + "account.add_or_remove_from_list": "Bæta á eða fjarlægja af listum", + "account.badges.bot": "Róbót", + "account.badges.group": "Group", + "account.block": "Útiloka @{name}", + "account.block_domain": "Fela allt frá {domain}", + "account.blocked": "Útilokaður", + "account.cancel_follow_request": "Hætta við beiðni um að fylgjast með", + "account.direct": "Bein skilaboð til @{name}", + "account.domain_blocked": "Lén falið", + "account.edit_profile": "Breyta notandasniði", + "account.endorse": "Birta á notandasniði", + "account.follow": "Fylgja", + "account.followers": "Fylgjendur", + "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.", + "account.follows": "Fylgir", + "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.", + "account.follows_you": "Fylgir þér", + "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}", + "account.last_status": "Síðasta virkni", + "account.link_verified_on": "Eignarhald á þessum tengli var athugað þann {date}", + "account.locked_info": "Staða gagnaleyndar á þessum aðgangi er stillt á læsingu. Eigandinn yfirfer handvirkt hverjir geti fylgst með honum.", + "account.media": "Myndskrár", + "account.mention": "Minnast á @{name}", + "account.moved_to": "{name} hefur verið færður til:", + "account.mute": "Þagga niður í @{name}", + "account.mute_notifications": "Þagga tilkynningar frá @{name}", + "account.muted": "Þaggað", + "account.never_active": "Aldrei", + "account.posts": "Tíst", + "account.posts_with_replies": "Tíst og svör", + "account.report": "Kæra @{name}", + "account.requested": "Bíður eftir samþykki. Smelltu til að hætta við beiðni um að fylgjast með", + "account.share": "Deila notandasniði fyrir @{name}", + "account.show_reblogs": "Sýna endurbirtingar frá @{name}", + "account.unblock": "Aflétta útilokun af @{name}", + "account.unblock_domain": "Hætta að fela {domain}", + "account.unendorse": "Ekki birta á notandasniði", + "account.unfollow": "Hætta að fylgja", + "account.unmute": "Hætta að þagga niður í @{name}", + "account.unmute_notifications": "Hætta að þagga tilkynningar frá @{name}", + "alert.rate_limited.message": "Prófaðu aftur eftir {retry_time, time, medium}.", + "alert.rate_limited.title": "Með takmörkum", + "alert.unexpected.message": "Upp kom óvænt villa.", + "alert.unexpected.title": "Úbbs!", + "autosuggest_hashtag.per_week": "{count} á viku", + "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst", + "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", + "bundle_column_error.retry": "Reyndu aftur", + "bundle_column_error.title": "Villa í netkerfi", + "bundle_modal_error.close": "Loka", + "bundle_modal_error.message": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", + "bundle_modal_error.retry": "Reyndu aftur", + "column.blocks": "Útilokaðir notendur", + "column.bookmarks": "Bókamerki", + "column.community": "Staðvær tímalína", + "column.direct": "Bein skilaboð", + "column.directory": "Skoða notandasnið", + "column.domain_blocks": "Falin lén", + "column.favourites": "Eftirlæti", + "column.follow_requests": "Fylgja beiðnum", + "column.home": "Heim", + "column.lists": "Listar", + "column.mutes": "Þaggaðir notendur", + "column.notifications": "Tilkynningar", + "column.pins": "Föst tíst", + "column.public": "Sameiginleg tímalína", + "column_back_button.label": "Til baka", + "column_header.hide_settings": "Fela stillingar", + "column_header.moveLeft_settings": "Færa dálk til vinstri", + "column_header.moveRight_settings": "Færa dálk til hægri", + "column_header.pin": "Festa", + "column_header.show_settings": "Birta stillingar", + "column_header.unpin": "Losa", + "column_subheading.settings": "Stillingar", + "community.column_settings.media_only": "Einungis myndskrár", + "compose_form.direct_message_warning": "Þetta tíst verður aðeins sent á notendur sem minnst er á.", + "compose_form.direct_message_warning_learn_more": "Kanna nánar", + "compose_form.hashtag_warning": "Þetta tíst verður ekki talið með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum tístum eftir myllumerkjum.", + "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þeim færslum þínum sem einungis eru til fylgjenda þinna.", + "compose_form.lock_disclaimer.lock": "læst", + "compose_form.placeholder": "Hvað varstu að hugsa?", + "compose_form.poll.add_option": "Bæta við valkosti", + "compose_form.poll.duration": "Tímalengd könnunar", + "compose_form.poll.option_placeholder": "Valkostur {number}", + "compose_form.poll.remove_option": "Fjarlægja þennan valkost", + "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": "Tíst", + "compose_form.publish_loud": "{publish}!", + "compose_form.sensitive.hide": "Merkja myndir sem viðkvæmar", + "compose_form.sensitive.marked": "Mynd er merkt sem viðkvæm", + "compose_form.sensitive.unmarked": "Mynd er ekki merkt sem viðkvæm", + "compose_form.spoiler.marked": "Texti er falinn á bak við aðvörun", + "compose_form.spoiler.unmarked": "Texti er ekki falinn", + "compose_form.spoiler_placeholder": "Skrifaðu aðvörunina þína hér", + "confirmation_modal.cancel": "Hætta við", + "confirmations.block.block_and_report": "Útiloka og kæra", + "confirmations.block.confirm": "Útiloka", + "confirmations.block.message": "Ertu viss um að þú viljir loka á {name}?", + "confirmations.delete.confirm": "Eyða", + "confirmations.delete.message": "Ertu viss um að þú viljir eyða þessari stöðufærslu?", + "confirmations.delete_list.confirm": "Eyða", + "confirmations.delete_list.message": "Ertu viss um að þú viljir eyða þessum lista endanlega?", + "confirmations.domain_block.confirm": "Fela allt lénið", + "confirmations.domain_block.message": "Ertu alveg algjörlega viss um að þú viljir loka á allt {domain}? Í flestum tilfellum er vænlegra að nota færri en markvissari útilokanir eða að þagga niður tiltekna aðila. Þú munt ekki sjá efni frá þessu léni í neinum opinberum tímalínum eða í tilkynningunum þínum. Fylgjendur þínir frá þessu léni verða fjarlægðir.", + "confirmations.logout.confirm": "Skrá út", + "confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?", + "confirmations.mute.confirm": "Þagga", + "confirmations.mute.explanation": "Þetta mun fela færslur frá þeim og þær færslur þar sem minnst er á þau, en það mun samt sem áður gera þeim kleift að sjá færslurnar þínar og að fylgjast með þér.", + "confirmations.mute.message": "Ertu viss um að þú viljir þagga niður í {name}?", + "confirmations.redraft.confirm": "Eyða og enduvinna drög", + "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari stöðufærslu og enduvinna drögin? Eftirlæti og endurbirtingar munu tapast og svör við upprunalegu fæerslunni munu verða munaðarlaus.", + "confirmations.reply.confirm": "Svara", + "confirmations.reply.message": "Ef þú svarar núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?", + "confirmations.unfollow.confirm": "Hætta að fylgja", + "confirmations.unfollow.message": "Ertu viss um að þú viljir hætta að fylgjast með {name}?", + "conversation.delete": "Eyða samtali", + "conversation.mark_as_read": "Merkja sem lesið", + "conversation.open": "Skoða samtal", + "conversation.with": "Með {names}", + "directory.federated": "Frá samtengdum vefþjónum", + "directory.local": "Einungis frá {domain}", + "directory.new_arrivals": "Nýkomnir", + "directory.recently_active": "Nýleg virkni", + "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.", + "embed.preview": "Svona mun þetta líta út:", + "emoji_button.activity": "Virkni", + "emoji_button.custom": "Sérsniðið", + "emoji_button.flags": "Flögg", + "emoji_button.food": "Matur og drykkur", + "emoji_button.label": "Setja inn tjáningartákn", + "emoji_button.nature": "Náttúra", + "emoji_button.not_found": "Engin tjáningartákn!! (╯°□°)╯︵ ┻━┻", + "emoji_button.objects": "Hlutir", + "emoji_button.people": "Fólk", + "emoji_button.recent": "Oft notað", + "emoji_button.search": "Leita...", + "emoji_button.search_results": "Leitarniðurstöður", + "emoji_button.symbols": "Tákn", + "emoji_button.travel": "Ferðalög og staðir", + "empty_column.account_timeline": "Engin tíst hér!", + "empty_column.account_unavailable": "Notandasnið ekki tiltækt", + "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.", + "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með nein bókamerkt tíst. Þegar þú gefur tísti bókamerki, munu það birtast hér.", + "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!", + "empty_column.direct": "Þú átt ennþá engin bein skilaboð. Þegar þú sendir eða tekur á móti slíkum skilaboðum, munu þau birtast hér.", + "empty_column.domain_blocks": "Það eru engin falin lén ennþá.", + "empty_column.favourited_statuses": "Þú átt ennþá engin eftirlætistíst. Þegar þú setur tíst í eftirlæti, munu þau birtast hér.", + "empty_column.favourites": "Enginn hefur ennþá set þetta tíst í eftirlæti. Þegar einhverjir gera það, munu þeir birtast hér.", + "empty_column.follow_requests": "Þú átt ennþá engar beiðnir um að fylgja þér. Þegar þú færð slíkar beiðnir, munu þær birtast hér.", + "empty_column.hashtag": "Það er ekkert ennþá undir þessu myllumerki.", + "empty_column.home": "Heimatímalínan þín er tóm! Skoðaðu {public} eða notaðu leitina til að komast í ganf og finna annað fólk.", + "empty_column.home.public_timeline": "opinbera tímalínan", + "empty_column.list": "Það er ennþá ekki neitt á þessum lista. Þegar meðlimir á listanum senda inn nýjar stöðufærslur, munu þær birtast hér.", + "empty_column.lists": "Þú ert ennþá ekki með neina lista. Þegar þú byrð til einhvern lista, munu hann birtast hér.", + "empty_column.mutes": "Þú hefur ekki þaggað niður í neinum notendum ennþá.", + "empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.", + "empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta", + "error.unexpected_crash.explanation": "Vegna villu í kóðanum okkar eða samhæfnivandamála í vafra er ekki hægt að birta þessa síðu svo vel sé.", + "error.unexpected_crash.next_steps": "Prófaðu að endurlesa síðuna. Ef það hjálpar ekki til, má samt vera að þú getir notað Mastodon í gegnum annan vafra eða forrit.", + "errors.unexpected_crash.copy_stacktrace": "Afrita rakningarupplýsingar (stacktrace) á klippispjald", + "errors.unexpected_crash.report_issue": "Tilkynna vandamál", + "follow_request.authorize": "Heimila", + "follow_request.reject": "Hafna", + "getting_started.developers": "Forritarar", + "getting_started.directory": "Notandasniðamappa", + "getting_started.documentation": "Hjálparskjöl", + "getting_started.heading": "Komast í gang", + "getting_started.invite": "Bjóða fólki", + "getting_started.open_source_notice": "Mastodon er opinn og frjáls hugbúnaður. Þú getur lagt þitt af mörkum eða tilkynnt um vandamál á GitHub á slóðinni {github}.", + "getting_started.security": "Stillingar notandaaðgangs", + "getting_started.terms": "Þjónustuskilmálar", + "hashtag.column_header.tag_mode.all": "og {additional}", + "hashtag.column_header.tag_mode.any": "eða {additional}", + "hashtag.column_header.tag_mode.none": "án {additional}", + "hashtag.column_settings.select.no_options_message": "Engar tillögur fundust", + "hashtag.column_settings.select.placeholder": "Settu inn myllumerki…", + "hashtag.column_settings.tag_mode.all": "Allt þetta", + "hashtag.column_settings.tag_mode.any": "Hvað sem er af þessu", + "hashtag.column_settings.tag_mode.none": "Ekkert af þessu", + "hashtag.column_settings.tag_toggle": "Taka með viðbótarmerki fyrir þennan dálk", + "home.column_settings.basic": "Einfalt", + "home.column_settings.show_reblogs": "Sýna endurbirtingar", + "home.column_settings.show_replies": "Birta svör", + "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}", + "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}", + "intervals.full.minutes": "{number, plural, one {# mínúta} other {# mínútur}}", + "introduction.federation.action": "Næsta", + "introduction.federation.federated.headline": "Sameiginlegt", + "introduction.federation.federated.text": "Opinberar færslur frá öðrum vefþjónum í skýjasambandinu birtast á sameiginlegu tímalínunni.", + "introduction.federation.home.headline": "Heim", + "introduction.federation.home.text": "Færslur frá fólki sem þú fylgist með birtast í heimastreyminu þínu. Þú getur fylgst með hverjum sem er á hvaða vefþjóni sem er!", + "introduction.federation.local.headline": "Staðvært", + "introduction.federation.local.text": "Opinberar færslur frá fólki á sama vefþjóni og þú birtast á staðværu tímalínunni.", + "introduction.interactions.action": "Ljúka leiðarvísinum!", + "introduction.interactions.favourite.headline": "Eftirlæti", + "introduction.interactions.favourite.text": "Þú getur vistað tíst til að eiga í handraðanum og látið höfundinn vita að þér hafi líkað það með því að setja það í eftirlætin þín.", + "introduction.interactions.reblog.headline": "Endurbirting", + "introduction.interactions.reblog.text": "Þú getur deilt tístum frá öðru fólki til þeirra sem fylgjast með þér með því að endurbirta færslurnar.", + "introduction.interactions.reply.headline": "Svara", + "introduction.interactions.reply.text": "Þú getur svarað tístum frá öðru fólki og eins sjálfum þér, sem mun binda tístin saman í samtal.", + "introduction.welcome.action": "Drífum okkur!", + "introduction.welcome.headline": "Fyrstu skrefin", + "introduction.welcome.text": "Velkomin í skýjasambandið (fediverse)! Eftir augnablik geturðu farið að útvarpa skilaboðum og spjalla við vini þína úti um víða veröld, allt í gegnum ýmsar gerðir vefþjóna sem samt geta talað saman. En þessi vefþjónn, {domain}, er sérstakur — hann hýsir notandasniðið þitt, þannig að þú skalt muna hvað hann heitir.", + "keyboard_shortcuts.back": "að fara til baka", + "keyboard_shortcuts.blocked": "að opna lista yfir útilokaða notendur", + "keyboard_shortcuts.boost": "að endurbirta", + "keyboard_shortcuts.column": "að setja virkni á stöðufærslu í einum af dálkunum", + "keyboard_shortcuts.compose": "að setja virkni á textainnsetningarreit", + "keyboard_shortcuts.description": "Lýsing", + "keyboard_shortcuts.direct": "að opna dálk með beinum skilaboðum", + "keyboard_shortcuts.down": "að fara neðar í listanum", + "keyboard_shortcuts.enter": "að opna stöðufærslu", + "keyboard_shortcuts.favourite": "að setja í eftirlæti", + "keyboard_shortcuts.favourites": "að opna eftirlætislista", + "keyboard_shortcuts.federated": "að opna sameiginlega tímalínu", + "keyboard_shortcuts.heading": "Flýtileiðir á lyklaborði", + "keyboard_shortcuts.home": "að opna heimatímalínu", + "keyboard_shortcuts.hotkey": "Flýtilykill", + "keyboard_shortcuts.legend": "að birta þessa skýringu", + "keyboard_shortcuts.local": "að opna staðværa tímalínu", + "keyboard_shortcuts.mention": "að minnast á höfund", + "keyboard_shortcuts.muted": "að opna lista yfir þaggaða notendur", + "keyboard_shortcuts.my_profile": "að opna notandasniðið þitt", + "keyboard_shortcuts.notifications": "að opna tilkynningadálk", + "keyboard_shortcuts.open_media": "til að opna margmiðlunargögn", + "keyboard_shortcuts.pinned": "að opna lista yfir föst tíst", + "keyboard_shortcuts.profile": "að opna notandasnið höfundar", + "keyboard_shortcuts.reply": "að svara", + "keyboard_shortcuts.requests": "að opna lista yfir fylgjendabeiðnir", + "keyboard_shortcuts.search": "að setja virkni í leit", + "keyboard_shortcuts.start": "að opna \"komast í gang\" dálk", + "keyboard_shortcuts.toggle_hidden": "að birta/fela texta á bak við aðvörun vegna efnis", + "keyboard_shortcuts.toggle_sensitivity": "að birta/fela myndir", + "keyboard_shortcuts.toot": "að byrja glænýtt tíst", + "keyboard_shortcuts.unfocus": "að taka virkni úr textainnsetningarreit eða leit", + "keyboard_shortcuts.up": "að fara ofar í listanum", + "lightbox.close": "Loka", + "lightbox.next": "Næsta", + "lightbox.previous": "Fyrra", + "lightbox.view_context": "Skoða samhengi", + "lists.account.add": "Bæta á lista", + "lists.account.remove": "Fjarlægja af lista", + "lists.delete": "Eyða lista", + "lists.edit": "Breyta lista", + "lists.edit.submit": "Breyta titli", + "lists.new.create": "Bæta við lista", + "lists.new.title_placeholder": "Titill á nýjum lista", + "lists.search": "Leita meðal þeirra sem þú fylgist með", + "lists.subheading": "Listarnir þínir", + "load_pending": "{count, plural, one {# nýtt atriði} other {# ný atriði}}", + "loading_indicator.label": "Hleð inn...", + "media_gallery.toggle_visible": "Víxla sýnileika", + "missing_indicator.label": "Fannst ekki", + "missing_indicator.sublabel": "Tilfangið fannst ekki", + "mute_modal.hide_notifications": "Fela tilkynningar frá þessum notanda?", + "navigation_bar.apps": "Farsímaforrit", + "navigation_bar.blocks": "Útilokaðir notendur", + "navigation_bar.bookmarks": "Bókamerki", + "navigation_bar.community_timeline": "Staðvær tímalína", + "navigation_bar.compose": "Semja nýtt tíst", + "navigation_bar.direct": "Bein skilaboð", + "navigation_bar.discover": "Uppgötva", + "navigation_bar.domain_blocks": "Falin lén", + "navigation_bar.edit_profile": "Breyta notandasniði", + "navigation_bar.favourites": "Eftirlæti", + "navigation_bar.filters": "Þögguð orð", + "navigation_bar.follow_requests": "Fylgja beiðnum", + "navigation_bar.follows_and_followers": "Fylgist með og fylgjendur", + "navigation_bar.info": "Um þennan vefþjón", + "navigation_bar.keyboard_shortcuts": "Flýtilyklar", + "navigation_bar.lists": "Listar", + "navigation_bar.logout": "Útskráning", + "navigation_bar.mutes": "Þaggaðir notendur", + "navigation_bar.personal": "Einka", + "navigation_bar.pins": "Föst tíst", + "navigation_bar.preferences": "Kjörstillingar", + "navigation_bar.public_timeline": "Sameiginleg tímalína", + "navigation_bar.security": "Öryggi", + "notification.favourite": "{name} setti stöðufærslu þína í eftirlæti", + "notification.follow": "{name} fylgdist með þér", + "notification.follow_request": "{name} hefur beðið um að fylgjast með þér", + "notification.mention": "{name} minntist á þig", + "notification.own_poll": "Könnuninni þinni er lokið", + "notification.poll": "Könnun sem þú tókst þátt í er lokið", + "notification.reblog": "{name} endurbirti stöðufærsluna þína", + "notifications.clear": "Hreinsa tilkynningar", + "notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?", + "notifications.column_settings.alert": "Tilkynningar á skjáborði", + "notifications.column_settings.favourite": "Eftirlæti:", + "notifications.column_settings.filter_bar.advanced": "Birta alla flokka", + "notifications.column_settings.filter_bar.category": "Skyndisíustika", + "notifications.column_settings.filter_bar.show": "Sýna", + "notifications.column_settings.follow": "Nýir fylgjendur:", + "notifications.column_settings.follow_request": "Nýjar beiðnir um að fylgjast með:", + "notifications.column_settings.mention": "Tilvísanir:", + "notifications.column_settings.poll": "Niðurstöður könnunar:", + "notifications.column_settings.push": "Ýti-tilkynningar", + "notifications.column_settings.reblog": "Endurbirtingar:", + "notifications.column_settings.show": "Sýna í dálki", + "notifications.column_settings.sound": "Spila hljóð", + "notifications.filter.all": "Allt", + "notifications.filter.boosts": "Endurbirtingar", + "notifications.filter.favourites": "Eftirlæti", + "notifications.filter.follows": "Fylgist með", + "notifications.filter.mentions": "Tilvísanir", + "notifications.filter.polls": "Niðurstöður könnunar", + "notifications.group": "{count} tilkynningar", + "poll.closed": "Lokað", + "poll.refresh": "Endurlesa", + "poll.total_people": "{count, plural, one {# aðili} other {# aðilar}}", + "poll.total_votes": "{count, plural, one {# atkvæði} other {# atkvæði}}", + "poll.vote": "Greiða atkvæði", + "poll.voted": "Þú kaust þetta svar", + "poll_button.add_poll": "Bæta við könnun", + "poll_button.remove_poll": "Fjarlægja könnun", + "privacy.change": "Aðlaga gagnaleynd stöðufærslu", + "privacy.direct.long": "Senda einungis á notendur sem minnst er á", + "privacy.direct.short": "Beint", + "privacy.private.long": "Senda einungis á fylgjendur", + "privacy.private.short": "Einungis fylgjendur", + "privacy.public.long": "Senda á opinberar tímalínur", + "privacy.public.short": "Opinbert", + "privacy.unlisted.long": "Ekki senda á opinberar tímalínur", + "privacy.unlisted.short": "Óskráð", + "refresh": "Endurlesa", + "regeneration_indicator.label": "Hleð inn…", + "regeneration_indicator.sublabel": "Verið er að útbúa heimastreymið þitt!", + "relative_time.days": "{number}d", + "relative_time.hours": "{number}kl.", + "relative_time.just_now": "núna", + "relative_time.minutes": "{number}mín", + "relative_time.seconds": "{number}sek", + "reply_indicator.cancel": "Hætta við", + "report.forward": "Áframsenda til {target}", + "report.forward_hint": "Notandaaðgangurinn er af öðrum vefþjóni. Á einnig að senda nafnlaust afrit af kærunni þangað?", + "report.hint": "Kæran verður send á umsjónarmenn vefþjónsins þíns. Þú getur gefið skýringu hér fyrir neðan á því af hverju þú ert að kæra þennan notandaaðgang:", + "report.placeholder": "Viðbótarathugasemdir", + "report.submit": "Senda inn", + "report.target": "Kæri {target}", + "search.placeholder": "Leita", + "search_popout.search_format": "Snið ítarlegrar leitar", + "search_popout.tips.full_text": "Einfaldur texti skilar stöðufærslum sem þú hefur skrifað, sett í eftirlæti, endurbirt eða verið minnst á þig í, ásamt samsvarandi birtingarnöfnum, notendanöfnum og myllumerkjum.", + "search_popout.tips.hashtag": "myllumerki", + "search_popout.tips.status": "stöðufærsla", + "search_popout.tips.text": "Einfaldur texti skilar samsvarandi birtingarnöfnum, notendanöfnum og myllumerkjum", + "search_popout.tips.user": "notandi", + "search_results.accounts": "Fólk", + "search_results.hashtags": "Myllumerki", + "search_results.statuses": "Tíst", + "search_results.statuses_fts_disabled": "Að leita í efni tísta er ekki virk á þessum Mastodon-þjóni.", + "search_results.total": "{count, number} {count, plural, one {niðurstaða} other {niðurstöður}}", + "status.admin_account": "Opna umsjónarviðmót fyrir @{name}", + "status.admin_status": "Opna þessa stöðufærslu í umsjónarviðmótinu", + "status.block": "Útiloka @{name}", + "status.bookmark": "Bókamerki", + "status.cancel_reblog_private": "Taka úr endurbirtingu", + "status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta", + "status.copy": "Afrita tengil í stöðufærslu", + "status.delete": "Eyða", + "status.detailed_status": "Nákvæm spjallþráðasýn", + "status.direct": "Bein skilaboð @{name}", + "status.embed": "Ívefja", + "status.favourite": "Eftirlæti", + "status.filtered": "Síað", + "status.load_more": "Hlaða inn meiru", + "status.media_hidden": "Mynd er falin", + "status.mention": "Minnast á @{name}", + "status.more": "Meira", + "status.mute": "Þagga niður í @{name}", + "status.mute_conversation": "Þagga niður í samtali", + "status.open": "Útliða þessa stöðu", + "status.pin": "Festa á notandasnið", + "status.pinned": "Fast tíst", + "status.read_more": "Lesa meira", + "status.reblog": "Endurbirting", + "status.reblog_private": "Endurbirta til upphaflegra lesenda", + "status.reblogged_by": "{name} endurbirti", + "status.reblogs.empty": "Enginn hefur ennþá endurbirt þetta tíst. Þegar einhverjir gera það, munu þeir birtast hér.", + "status.redraft": "Eyða og enduvinna drög", + "status.remove_bookmark": "Fjarlægja bókamerki", + "status.reply": "Svara", + "status.replyAll": "Svara þræði", + "status.report": "Kæra @{name}", + "status.sensitive_warning": "Viðkvæmt efni", + "status.share": "Deila", + "status.show_less": "Sýna minna", + "status.show_less_all": "Sýna minna fyrir allt", + "status.show_more": "Sýna meira", + "status.show_more_all": "Sýna meira fyrir allt", + "status.show_thread": "Birta þráð", + "status.uncached_media_warning": "Ekki tiltækt", + "status.unmute_conversation": "Hætta að þagga niður í samtali", + "status.unpin": "Losa af notandasniði", + "suggestions.dismiss": "Hafna tillögu", + "suggestions.header": "Þú gætir haft áhuga á…", + "tabs_bar.federated_timeline": "Sameiginlegt", + "tabs_bar.home": "Heim", + "tabs_bar.local_timeline": "Staðvært", + "tabs_bar.notifications": "Tilkynningar", + "tabs_bar.search": "Leita", + "time_remaining.days": "{number, plural, one {# dagur} other {# dagar}} eftir", + "time_remaining.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}} eftir", + "time_remaining.minutes": "{number, plural, one {# mínúta} other {# mínútur}} eftir", + "time_remaining.moments": "Tími eftir", + "time_remaining.seconds": "{number, plural, one {# sekúnda} other {# sekúndur}} eftir", + "trends.count_by_accounts": "{count} {rawCount, plural, one {aðili} other {aðilar}} að tala", + "trends.trending_now": "Í umræðunni núna", + "ui.beforeunload": "Drögin tapast ef þú ferð út úr Mastodon.", + "upload_area.title": "Dragðu-og-slepptu hér til að senda inn", + "upload_button.label": "Bæta við ({formats}) myndskrá", + "upload_error.limit": "Fór yfir takmörk á innsendingum skráa.", + "upload_error.poll": "Innsending skráa er ekki leyfð í könnunum.", + "upload_form.audio_description": "Lýstu þessu fyrir heyrnarskerta", + "upload_form.description": "Lýstu þessu fyrir sjónskerta", + "upload_form.edit": "Breyta", + "upload_form.undo": "Eyða", + "upload_form.video_description": "Lýstu þessu fyrir fólk sem heyrir illa eða er með skerta sjón", + "upload_modal.analyzing_picture": "Greini mynd…", + "upload_modal.apply": "Virkja", + "upload_modal.description_placeholder": "Öllum dýrunum í skóginum þætti bezt að vera vinir", + "upload_modal.detect_text": "Skynja texta úr mynd", + "upload_modal.edit_media": "Breyta myndskrá", + "upload_modal.hint": "Smelltu eða dragðu til hringinn á forskoðuninni til að velja miðpunktinn sem verður alltaf sýnilegastur á öllum smámyndum.", + "upload_modal.preview_label": "Forskoðun ({ratio})", + "upload_progress.label": "Er að senda inn...", + "video.close": "Loka myndskeiði", + "video.download": "Sækja skrá", + "video.exit_fullscreen": "Hætta í skjáfylli", + "video.expand": "Stækka myndskeið", + "video.fullscreen": "Skjáfylli", + "video.hide": "Fela myndskeið", + "video.mute": "Þagga hljóð", + "video.pause": "Gera hlé", + "video.play": "Spila", + "video.unmute": "Kveikja á hljóði" +} diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 757882523..d4980d51c 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Aggiungi o togli dalle liste", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blocca @{name}", "account.block_domain": "Nascondi tutto da {domain}", "account.blocked": "Bloccato", @@ -39,7 +40,7 @@ "account.unmute": "Non silenziare @{name}", "account.unmute_notifications": "Non silenziare più le notifiche da @{name}", "alert.rate_limited.message": "Riprova dopo {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "alert.rate_limited.title": "Numero massimo di richieste superato", "alert.unexpected.message": "Si è verificato un errore inatteso.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per settimana", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "C'è stato un errore mentre questo componente veniva caricato.", "bundle_modal_error.retry": "Riprova", "column.blocks": "Utenti bloccati", + "column.bookmarks": "Segnalibri", "column.community": "Timeline locale", "column.direct": "Messaggi diretti", "column.directory": "Sfoglia profili", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Durata del sondaggio", "compose_form.poll.option_placeholder": "Scelta {number}", "compose_form.poll.remove_option": "Rimuovi questa scelta", + "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": "Segna media come sensibile", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Non ci sono toot qui!", "empty_column.account_unavailable": "Profilo non disponibile", "empty_column.blocks": "Non hai ancora bloccato nessun utente.", + "empty_column.bookmarked_statuses": "Non hai ancora nessun toot tra i segnalibri. Quando ne aggiungerai qualcuno, comparirà qui.", "empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!", "empty_column.direct": "Non hai ancora nessun messaggio privato. Quando ne manderai o riceverai qualcuno, apparirà qui.", "empty_column.domain_blocks": "Non vi sono domini nascosti.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "per aprire l'elenco degli utenti silenziati", "keyboard_shortcuts.my_profile": "per aprire il tuo profilo", "keyboard_shortcuts.notifications": "per aprire la colonna delle notifiche", + "keyboard_shortcuts.open_media": "per aprire media", "keyboard_shortcuts.pinned": "per aprire l'elenco dei toot fissati in cima", "keyboard_shortcuts.profile": "per aprire il profilo dell'autore", "keyboard_shortcuts.reply": "per rispondere", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Nascondere le notifiche da quest'utente?", "navigation_bar.apps": "App per dispositivi mobili", "navigation_bar.blocks": "Utenti bloccati", + "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Timeline locale", "navigation_bar.compose": "Componi nuovo toot", "navigation_bar.direct": "Messaggi diretti", @@ -273,7 +280,9 @@ "navigation_bar.security": "Sicurezza", "notification.favourite": "{name} ha apprezzato il tuo post", "notification.follow": "{name} ha iniziato a seguirti", + "notification.follow_request": "{name} ha chiesto di seguirti", "notification.mention": "{name} ti ha menzionato", + "notification.own_poll": "Il tuo sondaggio è terminato", "notification.poll": "Un sondaggio in cui hai votato è terminato", "notification.reblog": "{name} ha condiviso il tuo post", "notifications.clear": "Cancella notifiche", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Filtro rapido", "notifications.column_settings.filter_bar.show": "Mostra", "notifications.column_settings.follow": "Nuovi seguaci:", + "notifications.column_settings.follow_request": "Nuove richieste di essere seguito:", "notifications.column_settings.mention": "Menzioni:", "notifications.column_settings.poll": "Risultati del sondaggio:", "notifications.column_settings.push": "Notifiche push", @@ -344,6 +354,7 @@ "status.admin_account": "Apri interfaccia di moderazione per @{name}", "status.admin_status": "Apri questo status nell'interfaccia di moderazione", "status.block": "Blocca @{name}", + "status.bookmark": "Aggiungi segnalibro", "status.cancel_reblog_private": "Annulla condivisione", "status.cannot_reblog": "Questo post non può essere condiviso", "status.copy": "Copia link allo status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} ha condiviso", "status.reblogs.empty": "Nessuno ha ancora condiviso questo toot. Quando qualcuno lo farà, comparirà qui.", "status.redraft": "Cancella e riscrivi", + "status.remove_bookmark": "Elimina segnalibro", "status.reply": "Rispondi", "status.replyAll": "Rispondi alla conversazione", "status.report": "Segnala @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Aggiungi file multimediale", "upload_error.limit": "Limite al caricamento di file superato.", "upload_error.poll": "Caricamento file non consentito nei sondaggi.", + "upload_form.audio_description": "Descrizione per persone con difetti uditivi", "upload_form.description": "Descrizione per utenti con disabilità visive", "upload_form.edit": "Modifica", "upload_form.undo": "Cancella", + "upload_form.video_description": "Descrizione per persone con difetti uditivi o visivi", "upload_modal.analyzing_picture": "Analisi immagine…", "upload_modal.apply": "Applica", "upload_modal.description_placeholder": "Ma la volpe col suo balzo ha raggiunto il quieto Fido", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Anteprima ({ratio})", "upload_progress.label": "Sto caricando...", "video.close": "Chiudi video", + "video.download": "Scarica file", "video.exit_fullscreen": "Esci da modalità a schermo intero", "video.expand": "Espandi video", "video.fullscreen": "Schermo intero", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 5561e9da1..941917fb1 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "リストから追加または外す", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "@{name}さんをブロック", "account.block_domain": "{domain}全体を非表示", "account.blocked": "ブロック済み", @@ -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": "メディアを閲覧注意にする", @@ -103,7 +107,7 @@ "confirmations.logout.confirm": "ログアウト", "confirmations.logout.message": "本当にログアウトしますか?", "confirmations.mute.confirm": "ミュート", - "confirmations.mute.explanation": "これにより相手のトゥートと返信は見えなくなりますが、引き続きあなたをフォローしトゥートを見ることはできます。", + "confirmations.mute.explanation": "これにより相手のトゥートと返信は見えなくなりますが、相手はあなたをフォローし続けトゥートを見ることができます。", "confirmations.mute.message": "本当に{name}さんをミュートしますか?", "confirmations.redraft.confirm": "削除して下書きに戻す", "confirmations.redraft.message": "本当にこのトゥートを削除して下書きに戻しますか? このトゥートへのお気に入り登録やブーストは失われ、返信は孤立することになります。", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "トゥートがありません!", "empty_column.account_unavailable": "プロフィールは利用できません", "empty_column.blocks": "まだ誰もブロックしていません。", + "empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。", "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": "メディアを開く", "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,9 +412,11 @@ "upload_button.label": "メディアを追加 ({formats})", "upload_error.limit": "アップロードできる上限を超えています。", "upload_error.poll": "アンケートではファイルをアップロードできません。", - "upload_form.description": "視覚障害者のための説明", + "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": "あのイーハトーヴォのすきとおった風", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "プレビュー ({ratio})", "upload_progress.label": "アップロード中...", "video.close": "動画を閉じる", + "video.download": "ダウンロード", "video.exit_fullscreen": "全画面を終了する", "video.expand": "動画を拡大する", "video.fullscreen": "全画面", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 35789374a..1c6203c46 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "ბოტი", + "account.badges.group": "Group", "account.block": "დაბლოკე @{name}", "account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}", "account.blocked": "დაიბლოკა", @@ -42,7 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "წარმოიშვა მოულოდნელი შეცდომა.", "alert.unexpected.title": "უპს!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "კვირაში {count}", "boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს", "bundle_column_error.body": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", "bundle_column_error.retry": "სცადეთ კიდევ ერთხელ", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", "bundle_modal_error.retry": "სცადეთ კიდევ ერთხელ", "column.blocks": "დაბლოკილი მომხმარებლები", + "column.bookmarks": "Bookmarks", "column.community": "ლოკალური თაიმლაინი", "column.direct": "პირდაპირი წერილები", "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": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!", "empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.", "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": "ავტორის პროფილის გასახსნელად", "keyboard_shortcuts.reply": "პასუხისთვის", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "დავმალოთ შეტყობინებები ამ მომხმარებლისგან?", "navigation_bar.apps": "Mobile apps", "navigation_bar.blocks": "დაბლოკილი მომხმარებლები", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", "navigation_bar.compose": "Compose new toot", "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": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი", "notifications.clear": "შეტყობინებების გასუფთავება", @@ -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": "ფუშ შეტყობინებები", @@ -344,6 +354,7 @@ "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "დაბლოკე @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "ბუსტის მოშორება", "status.cannot_reblog": "ეს პოსტი ვერ დაიბუსტება", "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": "გაუქმდეს და გადანაწილდეს", + "status.remove_bookmark": "Remove bookmark", "status.reply": "პასუხი", "status.replyAll": "უპასუხე თემას", "status.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": "აღწერილობა ვიზუალურად უფასურისთვის", "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": "იტვირთება...", "video.close": "ვიდეოს დახურვა", + "video.download": "Download file", "video.exit_fullscreen": "სრულ ეკრანზე ჩვენების გათიშვა", "video.expand": "ვიდეოს გაფართოება", "video.fullscreen": "ჩვენება სრულ ეკრანზე", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json new file mode 100644 index 000000000..edb539f4f --- /dev/null +++ b/app/javascript/mastodon/locales/kab.json @@ -0,0 +1,438 @@ +{ + "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin", + "account.badges.bot": "Aṛubut", + "account.badges.group": "Group", + "account.block": "Seḥbes @{name}", + "account.block_domain": "Ffer kra i d-yekkan seg {domain}", + "account.blocked": "Yettuseḥbes", + "account.cancel_follow_request": "Sefsex asuter n weḍfaṛ", + "account.direct": "Izen usrid i @{name}", + "account.domain_blocked": "Taɣult yeffren", + "account.edit_profile": "Ẓreg amaɣnu", + "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "account.follow": "Ḍfeṛ", + "account.followers": "Imeḍfaṛen", + "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", + "account.follows": "Aḍfaṛen", + "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", + "account.follows_you": "Yeṭṭafaṛ-ik", + "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", + "account.last_status": "Armud aneggaru", + "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed de {date}", + "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.", + "account.media": "Allal n teywalt", + "account.mention": "Bder-d @{name}", + "account.moved_to": "{name} ibeddel ɣer:", + "account.mute": "Sgugem @{name}", + "account.mute_notifications": "Ḥbes ilɣa sɣur @{name}", + "account.muted": "Yettwasgugem", + "account.never_active": "Werǧin", + "account.posts": "Tiberraḥin", + "account.posts_with_replies": "Tibarraḥin d tririyin", + "account.report": "Sewɛed @{name}", + "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar", + "account.share": "Bḍu amaɣnu n @{name}", + "account.show_reblogs": "Sken-d inebḍa n @{name}", + "account.unblock": "Serreḥ i @{name}", + "account.unblock_domain": "Kkes tuffra i {domain}", + "account.unendorse": "Ur ttwellih ara fell-as deg umaɣnu-inek", + "account.unfollow": "Ur ṭṭafaṛ ara", + "account.unmute": "Kkes asgugem ɣef @{name}", + "account.unmute_notifications": "Serreḥ ilɣa sɣur @{name}", + "alert.rate_limited.message": "Ma ulac aɣilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.", + "alert.rate_limited.title": "Aktum s talast", + "alert.unexpected.message": "Tella-d tuccḍa i ɣef ur nedmi ara.", + "alert.unexpected.title": "Ayhuh!", + "autosuggest_hashtag.per_week": "{count} i yimalas", + "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", + "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", + "bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen", + "bundle_column_error.title": "Tuccḍa deg uẓeṭṭa", + "bundle_modal_error.close": "Mdel", + "bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", + "bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen", + "column.blocks": "Imiḍanen yettusḥebsen", + "column.bookmarks": "Ticraḍ", + "column.community": "Tasuddemt tadigant", + "column.direct": "Iznan usriden", + "column.directory": "Qelleb deg yimaɣnuten", + "column.domain_blocks": "Tiɣula yettwaffren", + "column.favourites": "Ismenyifen", + "column.follow_requests": "Isuturen n teḍfeṛt", + "column.home": "Agejdan", + "column.lists": "Tibdarin", + "column.mutes": "Imiḍanen yettwasgugmen", + "column.notifications": "Tilɣa", + "column.pins": "Tiberraḥin yettwasenṭḍen", + "column.public": "Tasuddemt tamatut", + "column_back_button.label": "Tuɣalin", + "column_header.hide_settings": "Ffer iɣewwaṛen", + "column_header.moveLeft_settings": "Err ajgu ɣer tama tazelmaḍt", + "column_header.moveRight_settings": "Err ajgu ɣer tama tayfust", + "column_header.pin": "Senteḍ", + "column_header.show_settings": "Sken iɣewwaṛen", + "column_header.unpin": "Kkes asenteḍ", + "column_subheading.settings": "Iɣewwaṛen", + "community.column_settings.media_only": "Allal n teywalt kan", + "compose_form.direct_message_warning": "Taberraḥt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.", + "compose_form.direct_message_warning_learn_more": "Issin ugar", + "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": "Amiḍan-ik ur yelli ara {locked}. Menwala yezmer ad k-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik.", + "compose_form.lock_disclaimer.lock": "yettwacekkel", + "compose_form.placeholder": "D acu i itezzin deg uqaṛṛu-ik?", + "compose_form.poll.add_option": "Rnu afran", + "compose_form.poll.duration": "Tanzagt n tefrant", + "compose_form.poll.option_placeholder": "Afran {number}", + "compose_form.poll.remove_option": "Sfeḍ afran-agi", + "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": "Taberraḥt", + "compose_form.publish_loud": "{publish}!", + "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri", + "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri", + "compose_form.sensitive.unmarked": "Allal n teywalt ur yettwacreḍ ara d anafri", + "compose_form.spoiler.marked": "Aḍris yeffer deffir n walɣu", + "compose_form.spoiler.unmarked": "Aḍris ur yettwaffer ara", + "compose_form.spoiler_placeholder": "Aru alɣu-inek da", + "confirmation_modal.cancel": "Sefsex", + "confirmations.block.block_and_report": "Sewḥel & sewɛed", + "confirmations.block.confirm": "Sewḥel", + "confirmations.block.message": "Tebɣiḍ s tidet ad tesḥebseḍ {name}?", + "confirmations.delete.confirm": "Kkes", + "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", + "confirmations.delete_list.confirm": "Kkes", + "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ tabdert-agi i lebda?", + "confirmations.domain_block.confirm": "Ffer taɣult meṛṛa", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Ffeɣ", + "confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?", + "confirmations.mute.confirm": "Sgugem", + "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neɣ d-tettwabder, maca xas akka yezmer neɣ tezmer awali n yiznan-inek d uḍfaṛ-ik.", + "confirmations.mute.message": "Tetḥeqqeḍ belli tebɣiḍ asɛuggen n {name}?", + "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira", + "confirmations.redraft.message": "Tetḥeqqeḍ belli tebɣiḍ asfaḍ n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uɣalent d tigujilin.", + "confirmations.reply.confirm": "Err", + "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebɣiḍ ad tkemmleḍ?", + "confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara", + "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teḍḍafaṛeḍ ara {name}?", + "conversation.delete": "Sfeḍ adiwenni", + "conversation.mark_as_read": "Creḍ yettwaɣṛa", + "conversation.open": "Sken adiwenni", + "conversation.with": "Akked {names}", + "directory.federated": "Seg fedivers yettwasnen", + "directory.local": "Seg {domain} kan", + "directory.new_arrivals": "Inebgawen imaynuten", + "directory.recently_active": "Yermed xas melmi kan", + "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenɣal n tangalt yellan sdaw-agi.", + "embed.preview": "Akka ara d-iban:", + "emoji_button.activity": "Aqeddic", + "emoji_button.custom": "Udmawan", + "emoji_button.flags": "Innayen", + "emoji_button.food": "Tegwella & Tissit", + "emoji_button.label": "Sekcem imuji", + "emoji_button.nature": "Agama", + "emoji_button.not_found": "Ulac izamulen n yiḥulfan  !! (╯°□°)╯︵ ┻━┻", + "emoji_button.objects": "Tiɣawsiwin", + "emoji_button.people": "Medden", + "emoji_button.recent": "Wid yettuseqdacen s waṭas", + "emoji_button.search": "Nadi…", + "emoji_button.search_results": "Igmaḍ u unadi", + "emoji_button.symbols": "Izamulen", + "emoji_button.travel": "Imeḍqan d Yinigen", + "empty_column.account_timeline": "Ulac tiberraḥin dagi!", + "empty_column.account_unavailable": "Ur nufi ara amaɣnu-a", + "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.", + "empty_column.bookmarked_statuses": "Ulac tiberraḥin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", + "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", + "empty_column.direct": "Ulac ɣur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neɣ teṭṭfeḍ-d yiwen.", + "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", + "empty_column.favourited_statuses": "Ulac ula yiwet n tberraḥt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.", + "empty_column.favourites": "Ula yiwen ur yerri taberraḥt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.", + "empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", + "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", + "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", + "empty_column.home.public_timeline": "tasuddemt tazayezt n yisallen", + "empty_column.list": "Ar tura ur yelli kra deg tebdert-a. Ad d-yettwasken da ticki iɛeggalen n tebdert-a suffɣen-d kra.", + "empty_column.lists": "Ulac ɣur-k kra n tebdert yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", + "empty_column.mutes": "Ulac ɣur-k imseqdacen i yettwasgugmen.", + "empty_column.notifications": "Ulac ɣur-k tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", + "empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", + "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": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Mastudun deg yiminig-nniḍen neɣ deg usnas anaṣli.", + "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", + "errors.unexpected_crash.report_issue": "Mmel ugur", + "follow_request.authorize": "Ssireg", + "follow_request.reject": "Agi", + "getting_started.developers": "Ineflayen", + "getting_started.directory": "Imaɣnuten", + "getting_started.documentation": "Amnir", + "getting_started.heading": "Bdu", + "getting_started.invite": "Snebgi-d imdanen", + "getting_started.open_source_notice": "Mastudun d aseɣzan s uɣbalu yeldin. Tzemreḍ ad tɛiwneḍ neɣ ad temmleḍ uguren seg GitHub {github}.", + "getting_started.security": "Iγewwaṛen n umiḍan", + "getting_started.terms": "Tiwetlin n useqdec", + "hashtag.column_header.tag_mode.all": "d {additional}", + "hashtag.column_header.tag_mode.any": "neγ {additional}", + "hashtag.column_header.tag_mode.none": "war {additional}", + "hashtag.column_settings.select.no_options_message": "Ulac isumar", + "hashtag.column_settings.select.placeholder": "Rnu-d ihacṭagen…", + "hashtag.column_settings.tag_mode.all": "Kra yellan", + "hashtag.column_settings.tag_mode.any": "Yiwen seg-sen", + "hashtag.column_settings.tag_mode.none": "Yiwen ala seg-sen", + "hashtag.column_settings.tag_toggle": "Glu-d s yihacṭagen imerna i ujgu-agi", + "home.column_settings.basic": "Igejdanen", + "home.column_settings.show_reblogs": "Sken-d beṭṭu", + "home.column_settings.show_replies": "Sken-d tiririyin", + "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", + "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", + "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}", + "introduction.federation.action": "Uḍfiṛ", + "introduction.federation.federated.headline": "Amatu", + "introduction.federation.federated.text": "Iznan izuyaz i d-yekkan seg yiqeddacen-nniḍen n fediverse ad banen deg tsuddemt tazayezt tamatut n yisallen.", + "introduction.federation.home.headline": "Agejdan", + "introduction.federation.home.text": "Iznan n yemdanen i teṭṭafaṛeḍ ad banen deg tsuddemt n umagger. Tzemreḍ ad tḍefṛeḍ win tebɣiḍ deg uqeddac i tebɣiḍ!", + "introduction.federation.local.headline": "Adigan", + "introduction.federation.local.text": "Iznan izuyaz n yemdanen i yellan deg yiwen uqeddac akked kečč ad d-banen deg tsuddemt tazayezt tadigant.", + "introduction.interactions.action": "Fakk tameskant!", + "introduction.interactions.favourite.headline": "Ismenyifen", + "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tberraḥt i ticki, daɣen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines ɣer yismenyifen-ik.", + "introduction.interactions.reblog.headline": "Bḍu tikelt-nniḍen", + "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ akked yimeḍfaṛen-ik tiberraḥin n yemdanen-nniḍen s beṭṭu-nsent tikelt-nniḍen.", + "introduction.interactions.reply.headline": "Err", + "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ ɣef tberraḥin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg udiwenni.", + "introduction.welcome.action": "Bdu!", + "introduction.welcome.headline": "Isurifen imenza", + "introduction.welcome.text": "Anṣuf ɣer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neɣ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaɣnu-ik, ihi cfu ɣef yisem-is.", + "keyboard_shortcuts.back": "uɣal ar deffir", + "keyboard_shortcuts.blocked": "akken ad teldiḍ tabdert n yimseqdacen yettwasḥebsen", + "keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.compose": "to focus the compose textarea", + "keyboard_shortcuts.description": "Aglam", + "keyboard_shortcuts.direct": "akken ad teldiḍ ajgu n yiznan usriden", + "keyboard_shortcuts.down": "i kennu ɣer wadda n tebdert", + "keyboard_shortcuts.enter": "i tildin n tsuffeɣt", + "keyboard_shortcuts.favourite": "akken ad ternuḍ ɣer yismenyifen", + "keyboard_shortcuts.favourites": "i tildin n tebdert n yismenyifen", + "keyboard_shortcuts.federated": "i tildin n tsuddemt tamatut n yisallen", + "keyboard_shortcuts.heading": "Inegzumen n unasiw", + "keyboard_shortcuts.home": "i tildin n tsuddemt tagejdant n yisallen", + "keyboard_shortcuts.hotkey": "Inegzumen", + "keyboard_shortcuts.legend": "to display this legend", + "keyboard_shortcuts.local": "i tildin n tsuddemt tadigant n yisallen", + "keyboard_shortcuts.mention": "akken ad d-bedreḍ ameskar", + "keyboard_shortcuts.muted": "akken ad teldiḍ tabdert n yimseqdacen yettwasgugmen", + "keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaɣnu-ik", + "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilɣa", + "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.pinned": "i tildin n tebdert n tberraḥin yettwasentḍen", + "keyboard_shortcuts.profile": "akken ad d-teldiḍ amaɣnu n umeskar", + "keyboard_shortcuts.reply": "i tririt", + "keyboard_shortcuts.requests": "akken ad d-teldiḍ tabdert n yisuturen n teḍfeṛt", + "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.start": "akken ad d-teldiḍ ajgu n \"bdu\"", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", + "keyboard_shortcuts.toggle_sensitivity": "i teskent/tuffra n yimidyaten", + "keyboard_shortcuts.toot": "i beddu n tberraḥt tamaynut", + "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", + "keyboard_shortcuts.up": "i tulin ɣer ufella n tebdert", + "lightbox.close": "Mdel", + "lightbox.next": "Γer zdat", + "lightbox.previous": "Γer deffir", + "lightbox.view_context": "Ẓer amnaḍ", + "lists.account.add": "Rnu γer tabdart", + "lists.account.remove": "Kkes seg tebdart", + "lists.delete": "Kkes tabdert", + "lists.edit": "Ẓreg tabdert", + "lists.edit.submit": "Beddel azwel", + "lists.new.create": "Rnu tabdart", + "lists.new.title_placeholder": "Azwel n tebdert tamaynut", + "lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ", + "lists.subheading": "Tibdarin-ik·im", + "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}", + "loading_indicator.label": "Asali...", + "media_gallery.toggle_visible": "Sken / Ffer", + "missing_indicator.label": "Ulac-it", + "missing_indicator.sublabel": "Ur nufi ara aɣbalu-a", + "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?", + "navigation_bar.apps": "Isnasen izirazen", + "navigation_bar.blocks": "Imseqdacen yettusḥebsen", + "navigation_bar.bookmarks": "Ticraḍ", + "navigation_bar.community_timeline": "Tasuddemt tadigant", + "navigation_bar.compose": "Aru taberraḥt tamaynut", + "navigation_bar.direct": "Iznan usridden", + "navigation_bar.discover": "Ẓer", + "navigation_bar.domain_blocks": "Tiɣula yeffren", + "navigation_bar.edit_profile": "Ẓreg amaɣnu", + "navigation_bar.favourites": "Ismenyifen", + "navigation_bar.filters": "Awalen i yettwasgugmen", + "navigation_bar.follow_requests": "Isuturen n teḍfeṛt", + "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ", + "navigation_bar.info": "Ɣef uqeddac-agi", + "navigation_bar.keyboard_shortcuts": "Inegzumen n unasiw", + "navigation_bar.lists": "Tibdarin", + "navigation_bar.logout": "Ffeγ", + "navigation_bar.mutes": "Iseqdacen yettwasusmen", + "navigation_bar.personal": "Udmawan", + "navigation_bar.pins": "Tiberraḥin yettwasentḍen", + "navigation_bar.preferences": "Imenyafen", + "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut", + "navigation_bar.security": "Taγellist", + "notification.favourite": "{name} yesmenyef tasuffeɣt-ik", + "notification.follow": "{name} yeṭṭafaṛ-ik", + "notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ", + "notification.mention": "{name} yebder-ik-id", + "notification.own_poll": "Your poll has ended", + "notification.poll": "A poll you have voted in has ended", + "notification.reblog": "{name} yebḍa taberraḥ-ik i tikelt-nniḍen", + "notifications.clear": "Sfeḍ tilɣa", + "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-ik i lebda?", + "notifications.column_settings.alert": "Tilɣa n tnarit", + "notifications.column_settings.favourite": "Ismenyifen:", + "notifications.column_settings.filter_bar.advanced": "Sken-d meṛṛa tiggayin", + "notifications.column_settings.filter_bar.category": "Iri n usizdeg uzrib", + "notifications.column_settings.filter_bar.show": "Sken", + "notifications.column_settings.follow": "Imeḍfaṛen imaynuten:", + "notifications.column_settings.follow_request": "Isuturen imaynuten n teḍfeṛt:", + "notifications.column_settings.mention": "Abdar:", + "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.push": "Tilɣa yettudemmren", + "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.show": "Sken-d tilɣa deg ujgu", + "notifications.column_settings.sound": "Rmed imesli", + "notifications.filter.all": "Akk", + "notifications.filter.boosts": "Boosts", + "notifications.filter.favourites": "Ismenyifen", + "notifications.filter.follows": "Yeṭafaṛ", + "notifications.filter.mentions": "Abdar", + "notifications.filter.polls": "Poll results", + "notifications.group": "{count} n tilɣa", + "poll.closed": "Ifukk", + "poll.refresh": "Smiren", + "poll.total_people": "{count, plural, one {# n wemdan} other {# n yemdanen}}", + "poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}", + "poll.vote": "Dɣeṛ", + "poll.voted": "Tdeɣṛeḍ ɣef tririt-agi", + "poll_button.add_poll": "Add a poll", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Bḍu gar yimseqdacen i tbedreḍ kan", + "privacy.direct.short": "Usrid", + "privacy.private.long": "Bḍu i yimeḍfaṛen-ik kan", + "privacy.private.short": "Imeḍfaṛen kan", + "privacy.public.long": "Bḍu deg tsuddemt tazayezt", + "privacy.public.short": "Azayez", + "privacy.unlisted.long": "Ur beṭṭu ara deg tsuddemt tazayezt", + "privacy.unlisted.short": "War tabdert", + "refresh": "Smiren", + "regeneration_indicator.label": "Asali…", + "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!", + "relative_time.days": "{number}u", + "relative_time.hours": "{number}h", + "relative_time.just_now": "tura", + "relative_time.minutes": "{number}t", + "relative_time.seconds": "{number}s", + "reply_indicator.cancel": "Sefsex", + "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 server moderators. You can provide an explanation of why you are reporting this account below:", + "report.placeholder": "Iwenniten-nniḍen", + "report.submit": "Azen", + "report.target": "Mmel {target}", + "search.placeholder": "Nadi", + "search_popout.search_format": "Anadi yenneflin", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.hashtag": "ahacṭag", + "search_popout.tips.status": "status", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "amseqdac", + "search_results.accounts": "Medden", + "search_results.hashtags": "Ihacṭagen", + "search_results.statuses": "Tibeṛṛaniyin", + "search_results.statuses_fts_disabled": "Anadi n tberraḥin s ugbur-nsent ur yermid ara deg uqeddac-agi n Mastudun.", + "search_results.total": "{count, number} {count, plural, one {n ugemmuḍ} other {n yigemmuḍen}}", + "status.admin_account": "Open moderation interface for @{name}", + "status.admin_status": "Open this status in the moderation interface", + "status.block": "Seḥbes @{name}", + "status.bookmark": "Creḍ", + "status.cancel_reblog_private": "Sefsex beṭṭu", + "status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen", + "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", + "status.delete": "Kkes", + "status.detailed_status": "Detailed conversation view", + "status.direct": "Izen usrid i @{name}", + "status.embed": "Embed", + "status.favourite": "Rnu ɣer yismenyifen", + "status.filtered": "Yettwasizdeg", + "status.load_more": "Sali ugar", + "status.media_hidden": "Media hidden", + "status.mention": "Bder-d @{name}", + "status.more": "Ugar", + "status.mute": "Sussem @{name}", + "status.mute_conversation": "Mute conversation", + "status.open": "Semɣeṛ tasuffeɣt-agi", + "status.pin": "Senteḍ-itt deg umaɣnu", + "status.pinned": "Tiberraḥin yettwasentḍen", + "status.read_more": "Issin ugar", + "status.reblog": "Bḍu", + "status.reblog_private": "Boost to original audience", + "status.reblogged_by": "{name} boosted", + "status.reblogs.empty": "Ula yiwen ur yebḍi taberraḥt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", + "status.redraft": "Sfeḍ tɛiwdeḍ tira", + "status.remove_bookmark": "Kkes tacreḍt", + "status.reply": "Err", + "status.replyAll": "Reply to thread", + "status.report": "Cetki γef @{name}", + "status.sensitive_warning": "Agbur amḥulfu", + "status.share": "Bḍu", + "status.show_less": "Sken-d drus", + "status.show_less_all": "Semẓi akk tisuffɣin", + "status.show_more": "Sken-ed ugar", + "status.show_more_all": "Ẓerr ugar lebda", + "status.show_thread": "Show thread", + "status.uncached_media_warning": "Ulac-it", + "status.unmute_conversation": "Kkes asgugem n udiwenni", + "status.unpin": "Kkes asenteḍ seg umaɣnu", + "suggestions.dismiss": "Dismiss suggestion", + "suggestions.header": "Ahat ad tcelgeḍ deg…", + "tabs_bar.federated_timeline": "Amatu", + "tabs_bar.home": "Agejdan", + "tabs_bar.local_timeline": "Adigan", + "tabs_bar.notifications": "Tilγa", + "tabs_bar.search": "Nadi", + "time_remaining.days": "Mazal {number, plural, one {# n wass} other {# n wussan}}", + "time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}", + "time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}", + "time_remaining.moments": "Moments remaining", + "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}}", + "trends.count_by_accounts": "{count} {rawCount, plural, one {n umdan} other {n yemdanen}} i yettmeslayen", + "trends.trending_now": "Trending now", + "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", + "upload_area.title": "Drag & drop to upload", + "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": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt", + "upload_form.description": "Glem-d i yemdaneni yesɛan ugur deg yiẓri", + "upload_form.edit": "Ẓreg", + "upload_form.undo": "Kkes", + "upload_form.video_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt neɣ deg yiẓri", + "upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…", + "upload_modal.apply": "Snes", + "upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis", + "upload_modal.detect_text": "Detect text from picture", + "upload_modal.edit_media": "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.preview_label": "Preview ({ratio})", + "upload_progress.label": "Asali iteddu...", + "video.close": "Mdel tabidyutt", + "video.download": "Sidered afaylu", + "video.exit_fullscreen": "Ffeɣ seg ugdil aččuran", + "video.expand": "Semɣeṛ tavidyut", + "video.fullscreen": "Agdil aččuran", + "video.hide": "Ffer tabidyutt", + "video.mute": "Gzem imesli", + "video.pause": "Sgunfu", + "video.play": "Seddu", + "video.unmute": "Rmed imesli" +} diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index ba13c7ddf..86f3626f9 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Тізімге қосу немесе жою", "account.badges.bot": "Бот", + "account.badges.group": "Group", "account.block": "Бұғаттау @{name}", "account.block_domain": "Домендегі барлығын бұғатта {domain}", "account.blocked": "Бұғатталды", @@ -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": "Ешқандай жазба Бетбелгілер тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.", "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": "медианы ашу үшін", "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": "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,9 +412,11 @@ "upload_button.label": "Медиа қосу (JPEG, PNG, GIF, WebM, MP4, MOV)", "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": "Щучинск съезіндегі өрт пе? Вагон-үй, аэромобиль һәм ұшақ фюзеляжы цехінен ғой", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Превью ({ratio})", "upload_progress.label": "Жүктеп жатыр...", "video.close": "Видеоны жабу", + "video.download": "Файлды түсіру", "video.exit_fullscreen": "Толық экраннан шық", "video.expand": "Видеоны аш", "video.fullscreen": "Толық экран", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 39ca86a0c..96872bbbd 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Block @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "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": "Toot", "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} 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", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index e7c59d68f..66d899b2f 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -1,19 +1,20 @@ { "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제", "account.badges.bot": "봇", + "account.badges.group": "Group", "account.block": "@{name}을 차단", "account.block_domain": "{domain} 전체를 숨김", - "account.blocked": "차단 됨", + "account.blocked": "차단됨", "account.cancel_follow_request": "팔로우 요청 취소", - "account.direct": "@{name}으로부터의 다이렉트 메시지", + "account.direct": "@{name}의 다이렉트 메시지", "account.domain_blocked": "도메인 숨겨짐", "account.edit_profile": "프로필 편집", - "account.endorse": "프로필에 나타내기", + "account.endorse": "프로필에 보이기", "account.follow": "팔로우", "account.followers": "팔로워", - "account.followers.empty": "아직 아무도 이 유저를 팔로우 하고 있지 않습니다.", + "account.followers.empty": "아직 아무도 이 유저를 팔로우하고 있지 않습니다.", "account.follows": "팔로우", - "account.follows.empty": "이 유저는 아직 아무도 팔로우 하고 있지 않습니다.", + "account.follows.empty": "이 유저는 아직 아무도 팔로우하고 있지 않습니다.", "account.follows_you": "날 팔로우합니다", "account.hide_reblogs": "@{name}의 부스트를 숨기기", "account.last_status": "마지막 활동", @@ -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": "아직 갈무리한 툿이 없습니다. 툿을 갈무리하면 여기에 나타납니다.", "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": "미디어 열기", "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": "푸시 알림", @@ -341,9 +351,10 @@ "search_results.statuses": "툿", "search_results.statuses_fts_disabled": "이 마스토돈 서버에선 툿의 내용을 통한 검색이 활성화 되어 있지 않습니다.", "search_results.total": "{count, number}건의 결과", - "status.admin_account": "@{name}에 대한 모더레이션 인터페이스 열기", - "status.admin_status": "모더레이션 인터페이스에서 이 게시물 열기", + "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": "신고", @@ -400,9 +412,11 @@ "upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)", "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": "다람쥐 헌 쳇바퀴 타고파", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "미리보기 ({ratio})", "upload_progress.label": "업로드 중...", "video.close": "동영상 닫기", + "video.download": "파일 다운로드", "video.exit_fullscreen": "전체화면 나가기", "video.expand": "동영상 확장", "video.fullscreen": "전체화면", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 39ca86a0c..96872bbbd 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Block @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "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": "Toot", "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} 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", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 1c0e35501..efdb23436 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta", "account.badges.bot": "Bots", + "account.badges.group": "Group", "account.block": "Bloķēt @{name}", "account.block_domain": "Slēpt visu no {domain}", "account.blocked": "Bloķēts", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Kaut kas nogāja greizi ielādējot šo komponenti.", "bundle_modal_error.retry": "Mēģini vēlreiz", "column.blocks": "Bloķētie lietotāji", + "column.bookmarks": "Bookmarks", "column.community": "Lokālā laika līnija", "column.direct": "Privātās ziņas", "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": "Publicēt", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Mark media as sensitive", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Šeit ziņojumu nav!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "Tu neesi vēl nevienu bloķējis.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Lokālā laika līnija ir tukša. :/ Ieraksti kaut ko lai sākas rosība!", "empty_column.direct": "Tev nav privāto ziņu. Tiklīdz saņemsi tās šeit parādīsies.", "empty_column.domain_blocks": "Slēpto domēnu vēl nav.", @@ -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", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 5189e8ea8..2a31a5c22 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Додади или одстрани од листа", "account.badges.bot": "Бот", + "account.badges.group": "Group", "account.block": "Блокирај @{name}", "account.block_domain": "Сокријај се од {domain}", "account.blocked": "Блокиран", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Настана грешка при прикажувањето на оваа веб-страница.", "bundle_modal_error.retry": "Обидете се повторно", "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": "No toots here!", "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": "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": "одговори", @@ -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": "Безбедност", "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": "Резултати од анкета:", "notifications.column_settings.push": "Пуш нотификации", @@ -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", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index f331590de..0705f20e3 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -1,16 +1,17 @@ { - "account.add_or_remove_from_list": "Add or Remove from lists", + "account.add_or_remove_from_list": "പട്ടികയിൽ ചേർക്കുകയോ അല്ലെങ്കിൽ മാറ്റുകയോ ചെയ്യുക", "account.badges.bot": "റോബോട്ട്", + "account.badges.group": "Group", "account.block": "@{name} നെ ബ്ലോക്ക് ചെയ്യുക", - "account.block_domain": "{domain} ഇൽ നിന്നുള്ള എല്ലാം മറയ്കുക", + "account.block_domain": "{domain} ൽ നിന്നുള്ള എല്ലാം മറയ്കുക", "account.blocked": "തടഞ്ഞു", - "account.cancel_follow_request": "Cancel follow request", - "account.direct": "നേരിട്ട് മെസേജ് അയക്കുക{name}", - "account.domain_blocked": "Domain hidden", + "account.cancel_follow_request": "പിന്തുടരാനുള്ള അപേക്ഷ നിരസിക്കുക", + "account.direct": "@{name} ന് നേരിട്ട് മെസേജ് അയക്കുക", + "account.domain_blocked": "മേഖല മറയ്ക്കപ്പെട്ടിരിക്കുന്നു", "account.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക", - "account.endorse": "Feature on profile", + "account.endorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കുക", "account.follow": "പിന്തുടരുക", - "account.followers": "നിങ്ങളെ പിന്തുടരുന്നവർ", + "account.followers": "പിന്തുടരുന്നവർ", "account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.", "account.follows": "പിന്തുടരുന്നു", "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.", @@ -18,131 +19,135 @@ "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക", "account.last_status": "അവസാനം കണ്ടത്", "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.", "account.media": "മീഡിയ", - "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", + "account.mention": "@{name} സൂചിപ്പിക്കുക", + "account.moved_to": "{name} ഇതിലേക്ക് മാറിയിരിക്കുന്നു:", "account.mute": "നിശ്ശബ്ദമാക്കുക @{name}", - "account.mute_notifications": "Mute notifications from @{name}", + "account.mute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ നിശബ്ദമാക്കുക", "account.muted": "നിശ്ശബ്ദമാക്കിയിരിക്കുന്നു", - "account.never_active": "ഒരിക്കലും വേണ്ട", + "account.never_active": "ഒരിക്കലും ഇല്ല", "account.posts": "ടൂട്ടുകൾ", "account.posts_with_replies": "ടൂട്ടുകളും മറുപടികളും", "account.report": "റിപ്പോർട്ട് ചെയ്യുക @{name}", - "account.requested": "Awaiting approval", - "account.share": "Share @{name}'s profile", - "account.show_reblogs": "Show boosts from @{name}", + "account.requested": "അനുവാദത്തിനായി കാത്തിരിക്കുന്നു. പിന്തുടരാനുള്ള അപേക്ഷ റദ്ദാക്കുവാൻ ഞെക്കുക", + "account.share": "@{name} ന്റെ പ്രൊഫൈൽ പങ്കുവെക്കുക", + "account.show_reblogs": "@{name} ൽ നിന്നുള്ള ബൂസ്റ്റുകൾ കാണിക്കുക", "account.unblock": "ബ്ലോക്ക് മാറ്റുക @{name}", - "account.unblock_domain": "Unhide {domain}", - "account.unendorse": "Don't feature on profile", + "account.unblock_domain": "{domain} വെളിപ്പെടുത്തുക", + "account.unendorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കാതിരിക്കുക", "account.unfollow": "പിന്തുടരുന്നത് നിര്‍ത്തുക", "account.unmute": "നിശ്ശബ്ദമാക്കുന്നത് നിർത്തുക @{name}", - "account.unmute_notifications": "Unmute notifications from @{name}", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "account.unmute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ പ്രസിദ്ധപ്പെടുത്തുക", + "alert.rate_limited.message": "{retry_time, time, medium} നു ശേഷം വീണ്ടും ശ്രമിക്കുക.", + "alert.rate_limited.title": "തോത് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു", "alert.unexpected.message": "അപ്രതീക്ഷിതമായി എന്തോ സംഭവിച്ചു.", "alert.unexpected.title": "ശ്ശോ!", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}", + "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്", + "bundle_column_error.body": "ഈ ഘടകം പ്രദശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", "bundle_column_error.retry": "വീണ്ടും ശ്രമിക്കുക", - "bundle_column_error.title": "Network error", + "bundle_column_error.title": "ശൃംഖലയിലെ പിഴവ്", "bundle_modal_error.close": "അടയ്ക്കുക", "bundle_modal_error.message": "ഈ വെബ്പേജ് പ്രദർശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", "bundle_modal_error.retry": "വീണ്ടും ശ്രമിക്കുക", - "column.blocks": "Blocked users", - "column.community": "Local timeline", - "column.direct": "Direct messages", - "column.directory": "Browse profiles", - "column.domain_blocks": "Hidden domains", - "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_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", - "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.", + "column.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", + "column.bookmarks": "Bookmarks", + "column.community": "പ്രാദേശികമായ സമയരേഖ", + "column.direct": "നേരിട്ടുള്ള സന്ദേശങ്ങൾ", + "column.directory": "പ്രൊഫൈലുകൾ മറിച്ചുനോക്കുക", + "column.domain_blocks": "മറയ്ക്കപ്പെട്ട മേഖലകൾ", + "column.favourites": "പ്രിയപ്പെട്ടവ", + "column.follow_requests": "പിന്തുടരാനുള്ള അഭ്യർത്ഥനകൾ", + "column.home": "ഭവനം", + "column.lists": "പട്ടികകൾ", + "column.mutes": "നിശബ്ദമാക്കപ്പെട്ട ഉപയോക്താക്കൾ", + "column.notifications": "അറിയിപ്പുകൾ", + "column.pins": "ഉറപ്പിച്ചു നിറുത്തിയിരിക്കുന്ന ടൂട്ടുകൾ", + "column.public": "സംയുക്തമായ സമയരേഖ", + "column_back_button.label": "പുറകിലേക്ക്", + "column_header.hide_settings": "സജ്ജീകരണങ്ങള്‍ മറയ്ക്കുക", + "column_header.moveLeft_settings": "എഴുത്തുപംക്തി ഇടത്തോട്ട് മാറ്റുക", + "column_header.moveRight_settings": "എഴുത്തുപംക്തി വലത്തോട്ട് മാറ്റുക", + "column_header.pin": "ഉറപ്പിച്ചു നിറുത്തുക", + "column_header.show_settings": "ക്രമീകരണങ്ങൾ കാണിക്കുക", + "column_header.unpin": "ഇളക്കി മാറ്റുക", + "column_subheading.settings": "ക്രമീകരണങ്ങള്‍", + "community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം", + "compose_form.direct_message_warning": "പരാമർശിക്കപ്പെട്ടിരിക്കുന്ന ഉപയോഗ്താക്കൾക്കെ ഈ ടൂട്ട് അയക്കപ്പെടുകയുള്ളു.", + "compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക", + "compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", - "compose_form.placeholder": "What is on your mind?", + "compose_form.placeholder": "നിങ്ങളുടെ മനസ്സിൽ എന്താണ്?", "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", + "compose_form.poll.duration": "തിരഞ്ഞെടുപ്പിന്റെ സമയദൈർഖ്യം", "compose_form.poll.option_placeholder": "Choice {number}", "compose_form.poll.remove_option": "Remove this choice", - "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": "ടൂട്ട്", "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": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", - "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", + "compose_form.spoiler.marked": "എഴുത്ത് മുന്നറിയിപ്പിനാൽ മറച്ചിരിക്കുന്നു", + "compose_form.spoiler.unmarked": "എഴുത്ത് മറയ്ക്കപ്പെട്ടിട്ടില്ല", + "compose_form.spoiler_placeholder": "നിങ്ങളുടെ മുന്നറിയിപ്പ് ഇവിടെ എഴുതുക", + "confirmation_modal.cancel": "റദ്ദാക്കുക", "confirmations.block.block_and_report": "Block & Report", - "confirmations.block.confirm": "Block", + "confirmations.block.confirm": "തടയുക", "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.delete.confirm": "Delete", + "confirmations.delete.confirm": "മായ്ക്കുക", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.confirm": "മായ്ക്കുക", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", - "confirmations.logout.confirm": "Log out", + "confirmations.logout.confirm": "പുറത്തുകടക്കുക", "confirmations.logout.message": "Are you sure you want to log out?", - "confirmations.mute.confirm": "Mute", + "confirmations.mute.confirm": "നിശ്ശബ്ദമാക്കുക", "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": "Are you sure you want to mute {name}?", - "confirmations.redraft.confirm": "Delete & redraft", - "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "confirmations.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", - "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", - "conversation.delete": "Delete conversation", - "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.recently_active": "Recently active", + "confirmations.redraft.confirm": "മായിച്ച് മാറ്റങ്ങൾ വരുത്തി വീണ്ടും എഴുതുക", + "confirmations.redraft.message": "നിങ്ങൾ ഉറപ്പായും ഈ കുറിപ്പ് മായ്ച്ച് മാറ്റങ്ങൾ വരുത്തി വീണ്ടും എഴുതുവാൻ താല്പര്യപ്പെടുന്നുവോ? അങ്ങനെ ചെയ്യുന്ന പക്ഷം ഇതിനു ലഭിച്ചിരിക്കുന്ന പ്രിയപ്പെടലുകളും ബൂസ്റ്റുകളും ആദ്യമുണ്ടായിരുന്ന കുറിപ്പിന് ലഭിച്ചിരുന്ന മറുപടികൾ ഒറ്റപ്പെടുകയും ചെയ്യും.", + "confirmations.reply.confirm": "മറുപടി", + "confirmations.reply.message": "ഇപ്പോൾ മറുപടി കൊടുക്കുന്നത് നിങ്ങൾ എഴുതിക്കൊണ്ടിരിക്കുന്ന സന്ദേശത്തിന് മുകളിൽ എഴുതാൻ കാരണമാകും. തീർച്ചയായും മുൻപോട്ട് പോകാൻ തീരുമാനിച്ചുവോ?", + "confirmations.unfollow.confirm": "പിന്തുടരുന്നത് നിര്‍ത്തുക", + "confirmations.unfollow.message": "നിങ്ങൾ {name} യെ പിന്തുടരുന്നത് നിർത്തുവാൻ തീർച്ചയായും തീരുമാനിച്ചുവോ?", + "conversation.delete": "സംഭാഷണം മായിക്കുക", + "conversation.mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക", + "conversation.open": "സംഭാഷണം കാണുക", + "conversation.with": "{names} കൂടെ", + "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്", + "directory.local": "{domain} ൽ നിന്ന് മാത്രം", + "directory.new_arrivals": "പുതിയ വരവുകൾ", + "directory.recently_active": "അടുത്തിടെയായി സജീവമായ", "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Here is what it will look like:", - "emoji_button.activity": "Activity", - "emoji_button.custom": "Custom", - "emoji_button.flags": "Flags", - "emoji_button.food": "Food & Drink", - "emoji_button.label": "Insert emoji", - "emoji_button.nature": "Nature", + "embed.preview": "ഇത് ഇങ്ങനെ കാണപ്പെടും:", + "emoji_button.activity": "പ്രവര്‍ത്തനം", + "emoji_button.custom": "സ്വന്തമായ ഭേദഗതി", + "emoji_button.flags": "കൊടികൾ", + "emoji_button.food": "ഭക്ഷണവും പാനീയവും", + "emoji_button.label": "ഇമോജി ചേർക്കുക", + "emoji_button.nature": "പ്രകൃതി", "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", - "emoji_button.objects": "Objects", - "emoji_button.people": "People", - "emoji_button.recent": "Frequently used", - "emoji_button.search": "Search...", - "emoji_button.search_results": "Search results", - "emoji_button.symbols": "Symbols", - "emoji_button.travel": "Travel & Places", - "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.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.", - "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.", + "emoji_button.objects": "വസ്തുക്കൾ", + "emoji_button.people": "ആളുകൾ", + "emoji_button.recent": "അടിക്കടി ഉപയോഗിക്കുന്നവ", + "emoji_button.search": "തിരയുക...", + "emoji_button.search_results": "തിരച്ചിൽ ഫലങ്ങൾ", + "emoji_button.symbols": "ചിഹ്നങ്ങൾ", + "emoji_button.travel": "യാത്രയും സ്ഥലങ്ങളും", + "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": "മറയ്ക്കപ്പെട്ടിരിക്കുന്ന മേഖലകൾ ഇതുവരെ ഇല്ല.", + "empty_column.favourited_statuses": "നിങ്ങൾക്ക് ഇത് വരെ ഒരു പ്രിയപ്പെട്ട ടൂട്ടും ഇല്ല. നിങ്ങൾ അങ്ങനെ ഒന്ന് പ്രിയപ്പെടുന്ന പക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.", + "empty_column.favourites": "ഇതുവരെ ആരും ഈ ടൂട്ട് പ്രിയപ്പെട്ടതായി അടയാളപ്പെടുത്തിയിട്ടില്ല. ആരെങ്കിലും അങ്ങനെ ചെയ്യുന്നപക്ഷം അതിവിടെ കാണപ്പെടുന്നതാണ്.", "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.hashtag": "There is nothing in this hashtag yet.", "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.", @@ -150,67 +155,67 @@ "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "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", - "errors.unexpected_crash.report_issue": "Report issue", - "follow_request.authorize": "Authorize", - "follow_request.reject": "Reject", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", - "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", - "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_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", - "home.column_settings.basic": "Basic", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", + "errors.unexpected_crash.report_issue": "പ്രശ്നം അറിയിക്കുക", + "follow_request.authorize": "ചുമതലപ്പെടുത്തുക", + "follow_request.reject": "നിരസിക്കുക", + "getting_started.developers": "വികസിപ്പിക്കുന്നവർ", + "getting_started.directory": "രൂപരേഖ നാമഗൃഹസൂചി", + "getting_started.documentation": "രേഖാ സമാഹരണം", + "getting_started.heading": "തുടക്കം കുറിക്കുക", + "getting_started.invite": "ആളുകളെ ക്ഷണിക്കുക", + "getting_started.open_source_notice": "മാസ്റ്റഡോൺ ഒരു സ്വതന്ത്ര സോഫ്ട്‍വെയർ ആണ്. നിങ്ങൾക്ക് {github} GitHub ൽ സംഭാവന ചെയ്യുകയോ പ്രശ്നങ്ങൾ അറിയിക്കുകയോ ചെയ്യാം.", + "getting_started.security": "അംഗത്വ ക്രമീകരണങ്ങൾ", + "getting_started.terms": "സേവന വ്യവസ്ഥകൾ", + "hashtag.column_header.tag_mode.all": "{additional} ഉം കൂടെ", + "hashtag.column_header.tag_mode.any": "അല്ലെങ്കിൽ {additional}", + "hashtag.column_header.tag_mode.none": "{additional} ഇല്ലാതെ", + "hashtag.column_settings.select.no_options_message": "ഒരു സൂചനയും കണ്ടെത്തിയില്ല", + "hashtag.column_settings.select.placeholder": "ചർച്ചാവിഷയങ്ങൾ എഴുതുക…", + "hashtag.column_settings.tag_mode.all": "ഇവയെല്ലാം", + "hashtag.column_settings.tag_mode.any": "ഇവയിലേതെങ്കിലും", + "hashtag.column_settings.tag_mode.none": "ഇതിലൊന്നുമല്ല", + "hashtag.column_settings.tag_toggle": "ഈ എഴുത്തുപംക്തിക്ക് കൂടുതൽ ഉപനാമങ്ങൾ ചേർക്കുക", + "home.column_settings.basic": "അടിസ്ഥാനം", + "home.column_settings.show_reblogs": "ബൂസ്റ്റുകൾ കാണിക്കുക", + "home.column_settings.show_replies": "മറുപടികൾ കാണിക്കുക", "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}}", - "introduction.federation.action": "Next", - "introduction.federation.federated.headline": "Federated", + "introduction.federation.action": "അടുത്തത്", + "introduction.federation.federated.headline": "സംയുക്തമാക്കിയ", "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", - "introduction.federation.home.headline": "Home", + "introduction.federation.home.headline": "ഭവനം", "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", - "introduction.federation.local.headline": "Local", + "introduction.federation.local.headline": "പ്രാദേശികം", "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", - "introduction.interactions.action": "Finish toot-orial!", - "introduction.interactions.favourite.headline": "Favourite", + "introduction.interactions.action": "പഠനസഹായി പൂർത്തീകരിക്കുക!", + "introduction.interactions.favourite.headline": "പ്രിയപ്പെട്ടത്", "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", - "introduction.interactions.reblog.headline": "Boost", + "introduction.interactions.reblog.headline": "ബൂസ്റ്റ് ചെയ്യുക", "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", - "introduction.interactions.reply.headline": "Reply", + "introduction.interactions.reply.headline": "മറുപടി", "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.", - "introduction.welcome.action": "Let's go!", - "introduction.welcome.headline": "First steps", + "introduction.welcome.action": "നമുക്ക് തുടങ്ങാം!", + "introduction.welcome.headline": "ആദ്യ ചുവടുവെപ്പുകൾ", "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.", - "keyboard_shortcuts.back": "to navigate back", + "keyboard_shortcuts.back": "തിരികെ പോകുക", "keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.boost": "to boost", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", - "keyboard_shortcuts.description": "Description", + "keyboard_shortcuts.description": "വിവരണം", "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", "keyboard_shortcuts.favourite": "to favourite", "keyboard_shortcuts.favourites": "to open favourites list", "keyboard_shortcuts.federated": "to open federated timeline", - "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.heading": "കീബോർഡ് എളുപ്പവഴികൾ", "keyboard_shortcuts.home": "to open home timeline", "keyboard_shortcuts.hotkey": "Hotkey", "keyboard_shortcuts.legend": "to display this legend", @@ -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", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 8af8e3493..a4dcbb144 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "यादीत घाला किंवा यादीतून काढून टाका", "account.badges.bot": "स्वयंचलित खाते", + "account.badges.group": "Group", "account.block": "@{name} यांना ब्लॉक करा", "account.block_domain": "{domain} पासून सर्व लपवा", "account.blocked": "ब्लॉक केले आहे", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "हा घटक लोड करतांना काहीतरी चुकले आहे.", "bundle_modal_error.retry": "पुन्हा प्रयत्न करा", "column.blocks": "ब्लॉक केलेले खातेधारक", + "column.bookmarks": "Bookmarks", "column.community": "Local timeline", "column.direct": "थेट संदेश", "column.directory": "Browse profiles", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "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": "Toot", "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} 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", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 6881d3be3..4e858d59e 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Block @{name}", "account.block_domain": "Hide everything from {domain}", "account.blocked": "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": "Toot", "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} 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", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 74aaad970..7fbaf4204 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -1,11 +1,12 @@ { "account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokkeer @{name}", "account.block_domain": "Verberg alles van {domain}", "account.blocked": "Geblokkeerd", "account.cancel_follow_request": "Volgverzoek annuleren", - "account.direct": "Direct Message @{name}", + "account.direct": "Direct bericht @{name}", "account.domain_blocked": "Domein verborgen", "account.edit_profile": "Profiel bewerken", "account.endorse": "Op profiel weergeven", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", "bundle_modal_error.retry": "Opnieuw proberen", "column.blocks": "Geblokkeerde gebruikers", + "column.bookmarks": "Bladwijzers", "column.community": "Lokale tijdlijn", "column.direct": "Directe berichten", "column.directory": "Gebruikersgids", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Duur van de poll", "compose_form.poll.option_placeholder": "Keuze {number}", "compose_form.poll.remove_option": "Deze keuze verwijderen", + "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": "Media als gevoelig markeren", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Hier zijn geen toots!", "empty_column.account_unavailable": "Profiel is niet beschikbaar", "empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.", + "empty_column.bookmarked_statuses": "Jij hebt nog geen toots aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.", "empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!", "empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, zijn deze hier te zien.", "empty_column.domain_blocks": "Er zijn nog geen genegeerde servers.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "om de door jou genegeerde gebruikers te tonen", "keyboard_shortcuts.my_profile": "om jouw profiel te tonen", "keyboard_shortcuts.notifications": "om jouw meldingen te tonen", + "keyboard_shortcuts.open_media": "om media te openen", "keyboard_shortcuts.pinned": "om jouw vastgezette toots te tonen", "keyboard_shortcuts.profile": "om het gebruikersprofiel te openen", "keyboard_shortcuts.reply": "om te reageren", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?", "navigation_bar.apps": "Mobiele apps", "navigation_bar.blocks": "Geblokkeerde gebruikers", + "navigation_bar.bookmarks": "Bladwijzers", "navigation_bar.community_timeline": "Lokale tijdlijn", "navigation_bar.compose": "Nieuw toot schrijven", "navigation_bar.direct": "Directe berichten", @@ -273,7 +280,9 @@ "navigation_bar.security": "Beveiliging", "notification.favourite": "{name} voegde jouw toot als favoriet toe", "notification.follow": "{name} volgt jou nu", + "notification.follow_request": "{name} wil jou graag volgen", "notification.mention": "{name} vermeldde jou", + "notification.own_poll": "Jouw poll is beëindigd", "notification.poll": "Een poll waaraan jij hebt meegedaan is beëindigd", "notification.reblog": "{name} boostte jouw toot", "notifications.clear": "Meldingen verwijderen", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Snelle filterbalk", "notifications.column_settings.filter_bar.show": "Tonen", "notifications.column_settings.follow": "Nieuwe volgers:", + "notifications.column_settings.follow_request": "Nieuw volgverzoek:", "notifications.column_settings.mention": "Vermeldingen:", "notifications.column_settings.poll": "Pollresultaten:", "notifications.column_settings.push": "Pushmeldingen", @@ -344,12 +354,13 @@ "status.admin_account": "Moderatie-omgeving van @{name} openen", "status.admin_status": "Deze toot in de moderatie-omgeving openen", "status.block": "Blokkeer @{name}", + "status.bookmark": "Bladwijzer toevoegen", "status.cancel_reblog_private": "Niet langer boosten", "status.cannot_reblog": "Deze toot kan niet geboost worden", "status.copy": "Link naar toot kopiëren", "status.delete": "Verwijderen", "status.detailed_status": "Uitgebreide gespreksweergave", - "status.direct": "Directe toot @{name}", + "status.direct": "Direct bericht @{name}", "status.embed": "Insluiten", "status.favourite": "Favoriet", "status.filtered": "Gefilterd", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} boostte", "status.reblogs.empty": "Niemand heeft deze toot nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", "status.redraft": "Verwijderen en herschrijven", + "status.remove_bookmark": "Bladwijzer verwijderen", "status.reply": "Reageren", "status.replyAll": "Reageer op iedereen", "status.report": "Rapporteer @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Media toevoegen ({formats})", "upload_error.limit": "Uploadlimiet van bestand overschreden.", "upload_error.poll": "Het uploaden van bestanden is in polls niet toegestaan.", + "upload_form.audio_description": "Omschrijf dit voor mensen met een auditieve beperking", "upload_form.description": "Omschrijf dit voor mensen met een visuele beperking", "upload_form.edit": "Bewerken", "upload_form.undo": "Verwijderen", + "upload_form.video_description": "Omschrijf dit voor mensen met een auditieve of visuele beperking", "upload_modal.analyzing_picture": "Afbeelding analyseren…", "upload_modal.apply": "Toepassen", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Voorvertoning ({ratio})", "upload_progress.label": "Uploaden...", "video.close": "Video sluiten", + "video.download": "Bestand downloaden", "video.exit_fullscreen": "Volledig scherm sluiten", "video.expand": "Video groter maken", "video.fullscreen": "Volledig scherm", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 039381cf0..00e323cc1 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -1,376 +1,388 @@ { - "account.add_or_remove_from_list": "Legg til eller ta vekk fra liste", + "account.add_or_remove_from_list": "Legg til eller tak vekk frå listene", "account.badges.bot": "Robot", - "account.block": "Blokkér @{name}", - "account.block_domain": "Gøyme alt innhald for domenet {domain}", + "account.badges.group": "Group", + "account.block": "Blokker @{name}", + "account.block_domain": "Skjul alt frå {domain}", "account.blocked": "Blokkert", - "account.cancel_follow_request": "Avslutt føljar-førespurnad", - "account.direct": "Direkte meld @{name}", + "account.cancel_follow_request": "Fjern fylgjeførespurnad", + "account.direct": "Send melding til @{name}", "account.domain_blocked": "Domenet er gøymt", "account.edit_profile": "Rediger profil", - "account.endorse": "Framhev på profilen din", - "account.follow": "Følj", - "account.followers": "Føljare", - "account.followers.empty": "Er ikkje nokon som føljar denne brukaren ennå.", - "account.follows": "Føljingar", - "account.follows.empty": "Denne brukaren foljer ikkje nokon ennå.", - "account.follows_you": "Føljar deg", - "account.hide_reblogs": "Gøym fremhevingar for @{name}", + "account.endorse": "Framhev på profil", + "account.follow": "Fylg", + "account.followers": "Fylgjarar", + "account.followers.empty": "Ingen fylgjer denne brukaren enno.", + "account.follows": "Fylgjer", + "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", + "account.follows_you": "Fylgjer deg", + "account.hide_reblogs": "Gøym fremhevingar frå @{name}", "account.last_status": "Sist aktiv", - "account.link_verified_on": "Eigerskap for denne linken er sist sjekket den {date}", - "account.locked_info": "Brukarens privat-status er satt til lukka. Eigaren må manuelt døme kvem som kan følje honom.", + "account.link_verified_on": "Eigarskap for denne lenkja vart sist sjekka {date}", + "account.locked_info": "Denne kontoen er privat. Eigaren kan sjølv velja kven som kan fylgja han.", "account.media": "Media", - "account.mention": "Nemne @{name}", + "account.mention": "Nemn @{name}", "account.moved_to": "{name} har flytta til:", "account.mute": "Målbind @{name}", - "account.mute_notifications": "Målbind varslingar ifrå @{name}", - "account.muted": "Målbindt", + "account.mute_notifications": "Målbind varsel frå @{name}", + "account.muted": "Målbunden", "account.never_active": "Aldri", - "account.posts": "Tutar", - "account.posts_with_replies": "Tutar og svar", + "account.posts": "Tut", + "account.posts_with_replies": "Tut og svar", "account.report": "Rapporter @{name}", - "account.requested": "Venter på samtykke. Klikk for å avbryte føljar-førespurnad", + "account.requested": "Ventar på samtykke. Klikk for å avbryta fylgjeførespurnaden", "account.share": "Del @{name} sin profil", - "account.show_reblogs": "Sjå framhevingar ifrå @{name}", - "account.unblock": "Avblokker @{name}", + "account.show_reblogs": "Vis framhevingar frå @{name}", + "account.unblock": "Slutt å blokera @{name}", "account.unblock_domain": "Vis {domain}", "account.unendorse": "Ikkje framhev på profil", - "account.unfollow": "Avfølja", + "account.unfollow": "Slutt å fylgja", "account.unmute": "Av-demp @{name}", - "account.unmute_notifications": "Av-demp notifikasjoner ifrå @{name}", - "alert.rate_limited.message": "Ver vennlig og prøv igjen {retry_time, time, medium}.", - "alert.rate_limited.title": "Bregrensa rate", - "alert.unexpected.message": "Eit uforventa problem har hendt.", - "alert.unexpected.title": "Oops!", + "account.unmute_notifications": "Vis varsel frå @{name}", + "alert.rate_limited.message": "Ver venleg å prøva igjen etter {retry_time, time, medium}.", + "alert.rate_limited.title": "Begrensa rate", + "alert.unexpected.message": "Eit uventa problem oppstod.", + "alert.unexpected.title": "Oi sann!", "autosuggest_hashtag.per_week": "{count} per veke", - "boost_modal.combo": "Du kan trykke {combo} for å hoppe over dette neste gong", - "bundle_column_error.body": "Noko gikk gale mens komponent ble nedlasta.", + "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", + "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.", "bundle_column_error.retry": "Prøv igjen", - "bundle_column_error.title": "Tenarmaskin feil", + "bundle_column_error.title": "Nettverksfeil", "bundle_modal_error.close": "Lukk", - "bundle_modal_error.message": "Noko gikk gale mens komponent var i ferd med å bli nedlasta.", + "bundle_modal_error.message": "Noko gjekk gale under lastinga av denne komponenten.", "bundle_modal_error.retry": "Prøv igjen", - "column.blocks": "Blokka brukare", - "column.community": "Lokal samtid", - "column.direct": "Direkte meldingar", - "column.directory": "Sjå gjennom profiler", - "column.domain_blocks": "Gøymte domener", + "column.blocks": "Blokkerte brukarar", + "column.bookmarks": "Bokmerke", + "column.community": "Lokal tidsline", + "column.direct": "Meldingar", + "column.directory": "Sjå gjennom profilar", + "column.domain_blocks": "Gøymde domene", "column.favourites": "Favorittar", - "column.follow_requests": "Føljarførespurnad", + "column.follow_requests": "Fylgjeførespurnadar", "column.home": "Heim", "column.lists": "Lister", - "column.mutes": "Målbindte brukare", - "column.notifications": "Varslingar", - "column.pins": "Festa tuter", - "column.public": "Federert samtid", + "column.mutes": "Målbundne brukarar", + "column.notifications": "Varsel", + "column.pins": "Festa tut", + "column.public": "Samla tidsline", "column_back_button.label": "Tilbake", - "column_header.hide_settings": "Skjul innstillingar", - "column_header.moveLeft_settings": "Flytt feltet til venstre", - "column_header.moveRight_settings": "Flytt feltet til høgre", + "column_header.hide_settings": "Gøym innstillingar", + "column_header.moveLeft_settings": "Flytt kolonne til venstre", + "column_header.moveRight_settings": "Flytt kolonne til høgre", "column_header.pin": "Fest", "column_header.show_settings": "Vis innstillingar", "column_header.unpin": "Løys", "column_subheading.settings": "Innstillingar", - "community.column_settings.media_only": "Kun medie", - "compose_form.direct_message_warning": "Denne tuten vil kun verte synleg for nemnde brukarar.", + "community.column_settings.media_only": "Berre media", + "compose_form.direct_message_warning": "Dette tutet vert berre synleg for nemnde brukarar.", "compose_form.direct_message_warning_learn_more": "Lær meir", - "compose_form.hashtag_warning": "Denne tuten vill ikkje bli lista under nokon knagg ettersom den ikkje er opplista. Berre offentlege tutar kan ble søkt på ved emneknagg.", - "compose_form.lock_disclaimer": "Din brukar er ikkje {locked}. Alle kan følje deg for å sjå føljar-modus poster.", + "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan det ikkje er oppført. Berre offentlege tut kan verta søkt etter med emneknagg.", + "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine som berre visast til fylgjarar.", "compose_form.lock_disclaimer.lock": "låst", - "compose_form.placeholder": "Kva har du på hjartet?", - "compose_form.poll.add_option": "Legg til eit punkt", - "compose_form.poll.duration": "Varigheit for spørring", + "compose_form.placeholder": "Kva har du på hjarta?", + "compose_form.poll.add_option": "Legg til eit val", + "compose_form.poll.duration": "Varigskap for røysting", "compose_form.poll.option_placeholder": "Val {number}", - "compose_form.poll.remove_option": "Ta burt dette valet", + "compose_form.poll.remove_option": "Ta vekk dette valet", + "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": "Merk media som sensitivt", - "compose_form.sensitive.marked": "Media er markert som sensitivt", - "compose_form.sensitive.unmarked": "Media er ikkje merka som sensitivt", - "compose_form.spoiler.marked": "Tekst er gøymt bak ein advarsel", - "compose_form.spoiler.unmarked": "Tekst er ikkje gøymt", - "compose_form.spoiler_placeholder": "Skriv varselen din her", - "confirmation_modal.cancel": "Avbrot", - "confirmations.block.block_and_report": "Blokk & rapportér", - "confirmations.block.confirm": "Blokkér", - "confirmations.block.message": "Er du sikker på at du vill blokke {name}?", + "compose_form.sensitive.hide": "Merk medium som sensitivt", + "compose_form.sensitive.marked": "Medium er markert som sensitivt", + "compose_form.sensitive.unmarked": "Medium er ikkje merka som sensitivt", + "compose_form.spoiler.marked": "Tekst er gøymd bak åtvaring", + "compose_form.spoiler.unmarked": "Tekst er ikkje gøymd", + "compose_form.spoiler_placeholder": "Skriv åtvaringa di her", + "confirmation_modal.cancel": "Avbryt", + "confirmations.block.block_and_report": "Blokker & rapporter", + "confirmations.block.confirm": "Blokker", + "confirmations.block.message": "Er du sikker på at du vil blokkera {name}?", "confirmations.delete.confirm": "Slett", - "confirmations.delete.message": "Er du sikker på at du vill slette denne statusen?", + "confirmations.delete.message": "Er du sikker på at du vil sletta denne statusen?", "confirmations.delete_list.confirm": "Slett", - "confirmations.delete_list.message": "Er du sikker på at du vill slette denne listen for alltid?", + "confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?", "confirmations.domain_block.confirm": "Gøym heile domenet", - "confirmations.domain_block.message": "Er du ordentleg, ordentleg sikker på at du vill blokkere heile {domain}? I dei tilfeller er det bedre med ein målretta blokkering eller demping av individuelle brukare.", + "confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil blokkera heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå det domenet i nokon fødererte tidsliner eller i varsla dine. Fylgjarane dine frå det domenet vert fjerna.", "confirmations.logout.confirm": "Logg ut", - "confirmations.logout.message": "Er du sikker på at du vill logge ut?", + "confirmations.logout.message": "Er du sikker på at du vil logga ut?", "confirmations.mute.confirm": "Målbind", - "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": "Er du sikker på at d vill målbinde {name}?", - "confirmations.redraft.confirm": "Slett & gjennopprett", - "confirmations.redraft.message": "Er du sikker på at du vill slette statusen og gjennoprette den? Favoritter og framhevinger vill bli borte, og svar til den originale posten vill bli einstøing.", + "confirmations.mute.explanation": "Dette gøymer innlegg frå dei og innlegg som nemner dei, men tillèt dei framleis å sjå dine innlegg og fylgja deg.", + "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", + "confirmations.redraft.confirm": "Slett & skriv på nytt", + "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opphavlege innlegget vert einstøingar.", "confirmations.reply.confirm": "Svar", - "confirmations.reply.message": "Å svare nå vill overskrive meldingen du er i ferd med å skrive. Er du sikker på at du vill gå fram?", - "confirmations.unfollow.confirm": "Avfølj", - "confirmations.unfollow.message": "Er du sikker på at du vill avfølje {name}?", + "confirmations.reply.message": "Å svara no vil overskriva meldinga du skriv no. Er du sikker på at du vil halda fram?", + "confirmations.unfollow.confirm": "Slutt å fylgja", + "confirmations.unfollow.message": "Er du sikker på at du vil slutta å fylgja {name}?", "conversation.delete": "Slett samtale", - "conversation.mark_as_read": "Merk som lest", + "conversation.mark_as_read": "Merk som lese", "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", - "directory.federated": "Fra kjent fedivers", - "directory.local": "Fra berre {domain} domenet", + "directory.federated": "Frå kjent fedivers", + "directory.local": "Berre frå {domain}", "directory.new_arrivals": "Nyankommne", - "directory.recently_active": "Nylig aktiv", - "embed.instructions": "Embed this status on your website by copying the code below.", - "embed.preview": "Dette er korleis den vil sjå ut:", + "directory.recently_active": "Nyleg aktive", + "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden under.", + "embed.preview": "Slik bid det å sjå ut:", "emoji_button.activity": "Aktivitet", - "emoji_button.custom": "Custom", + "emoji_button.custom": "Eige", "emoji_button.flags": "Flagg", "emoji_button.food": "Mat & drikke", - "emoji_button.label": "Legg til smilefjes", + "emoji_button.label": "Legg til emoji", "emoji_button.nature": "Natur", "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", - "emoji_button.objects": "Objektar", + "emoji_button.objects": "Objekt", "emoji_button.people": "Folk", "emoji_button.recent": "Ofte brukt", "emoji_button.search": "Søk...", - "emoji_button.search_results": "Søke resultater", - "emoji_button.symbols": "Symbolar", - "emoji_button.travel": "Reise & steder", - "empty_column.account_timeline": "Ikkje nokon tutar her!", + "emoji_button.search_results": "Søkeresultat", + "emoji_button.symbols": "Symbol", + "emoji_button.travel": "Reise & stader", + "empty_column.account_timeline": "Ingen tut her!", "empty_column.account_unavailable": "Profil ikkje tilgjengelig", - "empty_column.blocks": "Du har ikkje blokkért nokon brukarar ennå.", + "empty_column.blocks": "Du har ikkje blokkert nokon brukarar enno.", + "empty_column.bookmarked_statuses": "Du har ikkje nokon bokmerkte tut enno. Når du bokmerkjer eit, dukkar det opp her.", "empty_column.community": "Den lokale samtiden er tom. Skriv noko offentleg å få ballen til å rulle!", - "empty_column.direct": "Du har ikkje nokon direkte meldingar ennå. Når du sendar eller får ein, så vill den ende opp her.", - "empty_column.domain_blocks": "Der er ikkje nokon gøymte domener enno.", - "empty_column.favourited_statuses": "Du har ikkje favorisert nokon tutar enno. Når du favoriserer noko, så vill det ende opp her.", - "empty_column.favourites": "Ikkje nokon har favorisert denne tuten enno. Når nokon gjer det, så vill den ende opp her.", - "empty_column.follow_requests": "Du har ikkje nokon føljar førespurnad enno. Når du får ein, så vill den sjåast her.", - "empty_column.hashtag": "Det er ikkje noko i denne emneknaggen her enno.", - "empty_column.home": "Din heime-tidslinja er tom! Dra til {public} eller søk for å starte å møte andre brukare.", - "empty_column.home.public_timeline": "Den offentlege tidslinja", - "empty_column.list": "Det er ikkje noko i denne lista enno. Når medlemmar av denne lista poster statuser, så vill dei sjåast her.", - "empty_column.lists": "Du har ikkje nokon liste enno. Når du lagar ein, så vill den ende up her.", - "empty_column.mutes": "Du har ikkje dempet nokon brukare enno.", - "empty_column.notifications": "Der er ikkje nokon varsler her enno. Kommuniser med andre for å starte samtalen.", - "empty_column.public": "Det er ikkje noko her! Skriv noko offentleg, eller manuelt følje brukare fra andre tenarmaskiner for å fylle det opp", - "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": "Prøv å laste på nytt. Om det ikkje hjelper så kan du fortsatt bruke mastodon gjennom ein anna nettlesar eller ein applikasjon.", - "errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til klippebord", - "errors.unexpected_crash.report_issue": "Rapportér problem", + "empty_column.direct": "Du har ingen direktemeldingar ennå. Når du sender eller får ein vil den dukke opp her.", + "empty_column.domain_blocks": "Det er ingen gøymde domene ennå.", + "empty_column.favourited_statuses": "Du har ingen favoritt-tut ennå. Når du merkjer ein som favoritt, så dukkar det opp her.", + "empty_column.favourites": "Ingen har merkt dette tutet som favoritt enno. Når nokon gjer det, så dukkar det opp her.", + "empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.", + "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", + "empty_column.home": "Heime-tidslinja di er tom! Besøk {public} eller søk for å starte og å møte andre brukarar.", + "empty_column.home.public_timeline": "den offentlege tidslina", + "empty_column.list": "Det er ingenting i denne lista enno. Når medlemer av denne lista legg ut nye statusar, så dukkar dei opp her.", + "empty_column.lists": "Du har ingen lister enno. Når du lagar ei, så dukkar ho opp her.", + "empty_column.mutes": "Du har ikkje målbunde nokon brukarar enno.", + "empty_column.notifications": "Du har ingen varsel ennå. Kommuniser med andre for å starte samtalen.", + "empty_column.public": "Det er ingenting her! Skriv noko offentleg, eller følg brukarar frå andre tenarar manuelt for å fylle det opp", + "error.unexpected_crash.explanation": "På grunn av ein feil i vår kode eller eit nettlesarkompatibilitetsproblem, kunne ikkje denne sida verte vist korrekt.", + "error.unexpected_crash.next_steps": "Prøv å lasta inn sida på nytt. Om det ikkje hjelper så kan du framleis nytta Mastodon i ein annan nettlesar eller app.", + "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace til utklippstavla", + "errors.unexpected_crash.report_issue": "Rapporter problem", "follow_request.authorize": "Autoriser", - "follow_request.reject": "Reject", - "getting_started.developers": "Utviklare", - "getting_started.directory": "Profile directory", + "follow_request.reject": "Avvis", + "getting_started.developers": "Utviklarar", + "getting_started.directory": "Profilkatalog", "getting_started.documentation": "Dokumentasjon", - "getting_started.heading": "Komme i gong", - "getting_started.invite": "Inviter folk", - "getting_started.open_source_notice": "Mastodon har åpen kilde kode. Du kan hjelpe til med problemar på GitHub gjennom {github}.", - "getting_started.security": "Brukar instillingar", + "getting_started.heading": "Kom i gang", + "getting_started.invite": "Byd folk inn", + "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidraga eller rapportera problem med GitHub på {github}.", + "getting_started.security": "Kontoinnstillingar", "getting_started.terms": "Brukarvillkår", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", - "hashtag.column_header.tag_mode.none": "uten {additional}", - "hashtag.column_settings.select.no_options_message": "Ingen forslag funnet", - "hashtag.column_settings.select.placeholder": "Legg til emneknagger…", + "hashtag.column_header.tag_mode.none": "utan {additional}", + "hashtag.column_settings.select.no_options_message": "Fann ingen forslag", + "hashtag.column_settings.select.placeholder": "Legg til emneknaggar…", "hashtag.column_settings.tag_mode.all": "Alle disse", - "hashtag.column_settings.tag_mode.any": "Kvem som helst av disse", + "hashtag.column_settings.tag_mode.any": "Kva som helst av desse", "hashtag.column_settings.tag_mode.none": "Ikkje nokon av disse", - "hashtag.column_settings.tag_toggle": "Inkludér ekstra emneknagger til denne kolonnen", - "home.column_settings.basic": "Enkel", - "home.column_settings.show_reblogs": "Vis fremhevingar", + "hashtag.column_settings.tag_toggle": "Inkluder ekstra emneknaggar for denne kolonna", + "home.column_settings.basic": "Enkelt", + "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", - "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 {# dag} other {# dagar}}", + "intervals.full.hours": "{number, plural, one {# time} other {# timar}}", + "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}", "introduction.federation.action": "Neste", - "introduction.federation.federated.headline": "Federert", - "introduction.federation.federated.text": "Offentlege poster fra tenarmaskiner i fediverset kjem fram i den federerte tidslinja.", + "introduction.federation.federated.headline": "Føderert", + "introduction.federation.federated.text": "Offentlege innlegg frå andre tenarar i fødiverset dukkar opp i den fødererte tidslina.", "introduction.federation.home.headline": "Heim", - "introduction.federation.home.text": "Poster frå folk du kjenner kjem i heime tidslinja. Du kan følje kvem som helst ifrå alle tenarmaskiner!", + "introduction.federation.home.text": "Innlegg frå folk du fylgjer dukkar opp i heimetidslina di. Du kan fylgja kven som helst frå kva tenar som helst!", "introduction.federation.local.headline": "Lokal", - "introduction.federation.local.text": "Offentlege poster frå folk på samme tenarmaskin som deg vill du finne i den lokale tidslinja.", + "introduction.federation.local.text": "Offentlege innlegg frå folk på same tenar som deg, dukkar opp i den lokale tidslina.", "introduction.interactions.action": "Fullfør omvisning!", - "introduction.interactions.favourite.headline": "Lik", - "introduction.interactions.favourite.text": "Du kan lagre ein tut til seinere, og la forfatteren vite at ut likte den ved å trykke likar på tuten.", - "introduction.interactions.reblog.headline": "Fremhev", - "introduction.interactions.reblog.text": "Du kan dela folks tutar ved å \"booste\" døm.", + "introduction.interactions.favourite.headline": "Merk som favoritt", + "introduction.interactions.favourite.text": "Du kan lagra eit tut til seinare og lata forfattaren vita at du likte det med å merkja det som favoritt.", + "introduction.interactions.reblog.headline": "Framhev", + "introduction.interactions.reblog.text": "Du kan dela andre folk sine tut med å framheva dei.", "introduction.interactions.reply.headline": "Svar", - "introduction.interactions.reply.text": "Du kan svare på andre folk sine tuter, om så vill tutane lenkes i hop i ein samtale.", - "introduction.welcome.action": "Ta åt!", - "introduction.welcome.headline": "Første steg", - "introduction.welcome.text": "Velkommen til fediverset! Om ein kort tid vill det være mogleg å skrive til verden og venner gjennom ein stor variasjon av tenarmaskiner. Men denne tenarmaskinen, {domain}, er spesiell - den holder din profil, så ikkje gløym namnet dens.", - "keyboard_shortcuts.back": "for å navigere tilbake", - "keyboard_shortcuts.blocked": "for å åpne lista for blokka brukare", - "keyboard_shortcuts.boost": "for å dele", - "keyboard_shortcuts.column": "for å fokusere på ein status i ein av kollonene", - "keyboard_shortcuts.compose": "for å fokusera på status-skrivaren", - "keyboard_shortcuts.description": "Beskrivelse", - "keyboard_shortcuts.direct": "forå åpne direkte meldingar i ein kollone", - "keyboard_shortcuts.down": "for å bevege seg opp og ned", - "keyboard_shortcuts.enter": "for å åpne status", - "keyboard_shortcuts.favourite": "for å favorisere", - "keyboard_shortcuts.favourites": "for å åpne favoriserings lista", - "keyboard_shortcuts.federated": "for å åpne den fødererte tidslinja", - "keyboard_shortcuts.heading": "Tastatur hurtigtaster", - "keyboard_shortcuts.home": "for åpne heime tidslinja", - "keyboard_shortcuts.hotkey": "Hurtigtast", - "keyboard_shortcuts.legend": "to display this legend", - "keyboard_shortcuts.local": "for å åpne den lokale tidslinja", - "keyboard_shortcuts.mention": "for å nemne forfatteren", - "keyboard_shortcuts.muted": "for å åpne lista over dempa brukare", - "keyboard_shortcuts.my_profile": "for å åpne profilen din", - "keyboard_shortcuts.notifications": "for å åpne notifikasjons kolonnen", - "keyboard_shortcuts.pinned": "forå åpne lista for festa statuser", - "keyboard_shortcuts.profile": "for å åpne forfatteren's profil", - "keyboard_shortcuts.reply": "for å svare", - "keyboard_shortcuts.requests": "for å åpne lista for føljar førespurnader", - "keyboard_shortcuts.search": "for å fokus søkje", - "keyboard_shortcuts.start": "for å åpne \"kjem i gong\" kolonna", - "keyboard_shortcuts.toggle_hidden": "for å vise/gøyme tekst bak innholds varsel", - "keyboard_shortcuts.toggle_sensitivity": "for å vise/gøyme media", - "keyboard_shortcuts.toot": "Start ein heilt ny tut", - "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "for å bevege seg oppover i lista", - "lightbox.close": "Lukk", + "introduction.interactions.reply.text": "Du kan svare på andre folk sine tutar, som gjer at dei vert lenka saman i ein samtale.", + "introduction.welcome.action": "Lat oss koma i gang!", + "introduction.welcome.headline": "Fyrste steg", + "introduction.welcome.text": "Velkommen til fediverset! Om nokre minutt vil du kunne kringkaste meldingar og snakke med dine vener rundt omkring på eit bredt spekter av tenarar. Men denne tenaren, {domain}, er spesiell – den er vert for profilen din, så hugs namnet på den.", + "keyboard_shortcuts.back": "for å gå tilbake", + "keyboard_shortcuts.blocked": "for å opna lista med blokkerte brukarar", + "keyboard_shortcuts.boost": "for å framheva", + "keyboard_shortcuts.column": "for å fokusera på ein status i ei av kolonnane", + "keyboard_shortcuts.compose": "for å fokusera tekstfeltet for skriving", + "keyboard_shortcuts.description": "Skildring", + "keyboard_shortcuts.direct": "for å opna direktemeldingskolonna", + "keyboard_shortcuts.down": "for å flytta seg opp og ned i lista", + "keyboard_shortcuts.enter": "for å opna status", + "keyboard_shortcuts.favourite": "for å merkja som favoritt", + "keyboard_shortcuts.favourites": "for å opna favorittlista", + "keyboard_shortcuts.federated": "for å opna den samla tidslina", + "keyboard_shortcuts.heading": "Snøggtastar", + "keyboard_shortcuts.home": "for opna heimetidslina", + "keyboard_shortcuts.hotkey": "Snøggtast", + "keyboard_shortcuts.legend": "for å visa denne forklåringa", + "keyboard_shortcuts.local": "for å opna den lokale tidslina", + "keyboard_shortcuts.mention": "for å nemna forfattaren", + "keyboard_shortcuts.muted": "for å opna lista over målbundne brukarar", + "keyboard_shortcuts.my_profile": "for å opna profilen din", + "keyboard_shortcuts.notifications": "for å opna varselskolonna", + "keyboard_shortcuts.open_media": "for å opna media", + "keyboard_shortcuts.pinned": "for å opna lista over festa tut", + "keyboard_shortcuts.profile": "for å opna forfattaren sin profil", + "keyboard_shortcuts.reply": "for å svara", + "keyboard_shortcuts.requests": "for å opna lista med fylgjeførespurnader", + "keyboard_shortcuts.search": "for å fokusera søket", + "keyboard_shortcuts.start": "for å opna \"kom i gang\"-feltet", + "keyboard_shortcuts.toggle_hidden": "for å visa/gøyma tekst bak innhaldsvarsel", + "keyboard_shortcuts.toggle_sensitivity": "for å visa/gøyma media", + "keyboard_shortcuts.toot": "for å laga ein heilt ny tut", + "keyboard_shortcuts.unfocus": "å ufokusere komponerings-/søkefeltet", + "keyboard_shortcuts.up": "for å flytta seg opp på lista", + "lightbox.close": "Lukk att", "lightbox.next": "Neste", - "lightbox.previous": "Forrige", + "lightbox.previous": "Førre", "lightbox.view_context": "Sjå kontekst", "lists.account.add": "Legg til i liste", - "lists.account.remove": "Ta burt fra liste", + "lists.account.remove": "Fjern frå liste", "lists.delete": "Slett liste", "lists.edit": "Rediger liste", - "lists.edit.submit": "Bytt tittel", + "lists.edit.submit": "Endre tittel", "lists.new.create": "Legg til liste", - "lists.new.title_placeholder": "Ny liste tittel", - "lists.search": "Søk gjennom folk du føljar", + "lists.new.title_placeholder": "Ny listetittel", + "lists.search": "Søk gjennom folk du følgjer", "lists.subheading": "Dine lister", - "load_pending": "{count, plural, one {# new item} other {# new items}}", - "loading_indicator.label": "Laster...", - "media_gallery.toggle_visible": "Toggle visibility", + "load_pending": "{count, plural, one {# nytt element} other {# nye element}}", + "loading_indicator.label": "Lastar...", + "media_gallery.toggle_visible": "Gjer synleg/usynleg", "missing_indicator.label": "Ikkje funne", - "missing_indicator.sublabel": "Denne ressursen ble ikkje funne", - "mute_modal.hide_notifications": "Gøyme notifikasjoner frå denne brukaren?", - "navigation_bar.apps": "Mobil apper", - "navigation_bar.blocks": "Blokka brukare", - "navigation_bar.community_timeline": "Lokal tidslinje", - "navigation_bar.compose": "Lag ein ny status", - "navigation_bar.direct": "Direkte meldingar", + "missing_indicator.sublabel": "Fann ikkje ressursen", + "mute_modal.hide_notifications": "Gøyme varsel frå denne brukaren?", + "navigation_bar.apps": "Mobilappar", + "navigation_bar.blocks": "Blokkerte brukarar", + "navigation_bar.bookmarks": "Bokmerke", + "navigation_bar.community_timeline": "Lokal tidsline", + "navigation_bar.compose": "Lag eit nytt tut", + "navigation_bar.direct": "Direktemeldingar", "navigation_bar.discover": "Oppdag", - "navigation_bar.domain_blocks": "Gøymte domener", + "navigation_bar.domain_blocks": "Skjulte domene", "navigation_bar.edit_profile": "Rediger profil", - "navigation_bar.favourites": "Favoritter", - "navigation_bar.filters": "Demp ord", - "navigation_bar.follow_requests": "Føljar førespurnader", - "navigation_bar.follows_and_followers": "Føljer og føljare", - "navigation_bar.info": "Om denne tenarmaskinen", - "navigation_bar.keyboard_shortcuts": "Hurtigtaster", + "navigation_bar.favourites": "Favorittar", + "navigation_bar.filters": "Målbundne ord", + "navigation_bar.follow_requests": "Fylgjeførespurnader", + "navigation_bar.follows_and_followers": "Fylgje og fylgjarar", + "navigation_bar.info": "Om denne tenaren", + "navigation_bar.keyboard_shortcuts": "Snøggtastar", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", - "navigation_bar.mutes": "Dempa brukare", - "navigation_bar.personal": "Personlig", - "navigation_bar.pins": "Festa tuter", - "navigation_bar.preferences": "Preferanser", - "navigation_bar.public_timeline": "Federert tidslinje", - "navigation_bar.security": "Sikkerheit", - "notification.favourite": "{name} likte din status", - "notification.follow": "{name} fulgte deg", - "notification.mention": "{name} nevnte deg", - "notification.poll": "Ein avstemming du har votert i har endt", - "notification.reblog": "{name} delte statusen din", - "notifications.clear": "Klarer notifikasjoner", - "notifications.clear_confirmation": "Er du sikker på at du vill permanent klarere alle notifikasjonene dine?", - "notifications.column_settings.alert": "Desktop notifikasjoner", - "notifications.column_settings.favourite": "Favoritter:", - "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", - "notifications.column_settings.filter_bar.category": "Rask filter bar", + "navigation_bar.mutes": "Målbundne brukarar", + "navigation_bar.personal": "Personleg", + "navigation_bar.pins": "Festa tut", + "navigation_bar.preferences": "Innstillingar", + "navigation_bar.public_timeline": "Føderert tidsline", + "navigation_bar.security": "Tryggleik", + "notification.favourite": "{name} merkte statusen din som favoritt", + "notification.follow": "{name} fylgde deg", + "notification.follow_request": "{name} har bedt om å fylgja deg", + "notification.mention": "{name} nemnde deg", + "notification.own_poll": "Rundspørjinga di er ferdig", + "notification.poll": "Ei rundspørjing du har røysta i er ferdig", + "notification.reblog": "{name} framheva statusen din", + "notifications.clear": "Tøm varsel", + "notifications.clear_confirmation": "Er du sikker på at du vil fjerna alle varsla dine for alltid?", + "notifications.column_settings.alert": "Skrivebordsvarsel", + "notifications.column_settings.favourite": "Favorittar:", + "notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar", + "notifications.column_settings.filter_bar.category": "Snarfilterlinje", "notifications.column_settings.filter_bar.show": "Vis", - "notifications.column_settings.follow": "Nye føljare:", + "notifications.column_settings.follow": "Nye fylgjarar:", + "notifications.column_settings.follow_request": "Ny fylgjarførespurnader:", "notifications.column_settings.mention": "Nemningar:", - "notifications.column_settings.poll": "Avstemming resultater:", - "notifications.column_settings.push": "Push varsler", - "notifications.column_settings.reblog": "Framhevinger:", + "notifications.column_settings.poll": "Røysteresultat:", + "notifications.column_settings.push": "Pushvarsel", + "notifications.column_settings.reblog": "Framhevingar:", "notifications.column_settings.show": "Vis i kolonne", - "notifications.column_settings.sound": "Køyr lyd", + "notifications.column_settings.sound": "Spel av lyd", "notifications.filter.all": "Alle", - "notifications.filter.boosts": "Framhevinger", - "notifications.filter.favourites": "Favoritter", - "notifications.filter.follows": "Føljare", + "notifications.filter.boosts": "Framhevingar", + "notifications.filter.favourites": "Favorittar", + "notifications.filter.follows": "Fylgjer", "notifications.filter.mentions": "Nemningar", - "notifications.filter.polls": "Avstemmings resultater", - "notifications.group": "{count} notifikasjoner", + "notifications.filter.polls": "Røysteresultat", + "notifications.group": "{count} varsel", "poll.closed": "Lukka", - "poll.refresh": "Forfriske", - "poll.total_people": "{count, plural, one {# person} other {# people}}", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Voter", - "poll.voted": "Du voterte for dette svaret", - "poll_button.add_poll": "Start ein avstemming", - "poll_button.remove_poll": "Slett avstemming", - "privacy.change": "Juster status synligheit", - "privacy.direct.long": "Post berre direkte til nemnte brukare", + "poll.refresh": "Oppdater", + "poll.total_people": "{count, plural, one {# person} other {# folk}}", + "poll.total_votes": "{count, plural, one {# røyst} other {# røyster}}", + "poll.vote": "Røyst", + "poll.voted": "Du røysta på dette svaret", + "poll_button.add_poll": "Start ei meiningsmåling", + "poll_button.remove_poll": "Fjern røyst", + "privacy.change": "Juster status-synlegheit", + "privacy.direct.long": "Legg berre ut for nemnde brukarar", "privacy.direct.short": "Direkte", - "privacy.private.long": "Post til berre føljare", - "privacy.private.short": "Berre-føljare", - "privacy.public.long": "Post til offentlege tidslinjar", + "privacy.private.long": "Post kun til følgjarar", + "privacy.private.short": "Kun følgjarar", + "privacy.public.long": "Post til offentlege tidslinjer", "privacy.public.short": "Offentleg", - "privacy.unlisted.long": "Do not show in public timelines", + "privacy.unlisted.long": "Ikkje post til offentlege tidslinjer", "privacy.unlisted.short": "Uoppført", - "refresh": "Forfrisk", + "refresh": "Oppdater", "regeneration_indicator.label": "Lastar…", - "regeneration_indicator.sublabel": "Din startside driver å blir forberedt!", - "relative_time.days": "{number}d", - "relative_time.hours": "{number}h", - "relative_time.just_now": "no", - "relative_time.minutes": "{number}m", - "relative_time.seconds": "{number}s", - "reply_indicator.cancel": "Avbrot", - "report.forward": "Send videre til {target}", - "report.forward_hint": "Denne brukaren er frå ein anna tenarmaskin. Send ein anonymisert versjon av rapporten til døm også?", - "report.hint": "Denne rapporten vill bli sendt til din tenarmaskin moderator. Du kan gi ein forklaring til kvifor du rapportérer denne brukaren under:", - "report.placeholder": "Tilleggskommentarer", + "regeneration_indicator.sublabel": "Heimetidslinja di vert førebudd!", + "relative_time.days": "{number}dg", + "relative_time.hours": "{number}t", + "relative_time.just_now": "nå", + "relative_time.minutes": "{number}min", + "relative_time.seconds": "{number}sek", + "reply_indicator.cancel": "Avbryt", + "report.forward": "Vidaresend til {target}", + "report.forward_hint": "Kontoen er frå ein annan tenar. Vil du senda ein anonymisert kopi av rapporten dit òg?", + "report.hint": "Rapporten vil verte sendt til dine tenarmoderatorar. Du kan oppgje ei forklaring på kvifor du rapporterer denne kontoen, under:", + "report.placeholder": "Tilleggskommentarar", "report.submit": "Send inn", - "report.target": "Rapportér {target}", + "report.target": "Rapporterer {target}", "search.placeholder": "Søk", - "search_popout.search_format": "Avansert søke format", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.search_format": "Avansert søkeformat", + "search_popout.tips.full_text": "Enkel tekst returnerer statusar du har skrive, likt, framheva eller vorte nemnd i, i tillegg til samsvarande brukarnamn, visningsnamn og emneknaggar.", "search_popout.tips.hashtag": "emneknagg", "search_popout.tips.status": "status", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.text": "Enkel tekst returnerer samsvarande visningsnamn, brukarnamn og emneknaggar", "search_popout.tips.user": "brukar", "search_results.accounts": "Folk", - "search_results.hashtags": "Emneknagger", - "search_results.statuses": "Tutar", - "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}}", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_status": "Open this status in the moderation interface", - "status.block": "Block @{name}", - "status.cancel_reblog_private": "Unboost", - "status.cannot_reblog": "This post cannot be boosted", - "status.copy": "Copy link to status", + "search_results.hashtags": "Emneknaggar", + "search_results.statuses": "Tut", + "search_results.statuses_fts_disabled": "På denne Matsodon-tenaren kan du ikkje søkja på tut etter innhaldet deira.", + "search_results.total": "{count, number} {count, plural, one {treff} other {treff}}", + "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", + "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", + "status.block": "Blokker @{name}", + "status.bookmark": "Bokmerke", + "status.cancel_reblog_private": "Opphev framheving", + "status.cannot_reblog": "Denne posten kan ikkje framhevast", + "status.copy": "Kopier lenke til status", "status.delete": "Slett", - "status.detailed_status": "Detaljert samtale syn", - "status.direct": "Direkte meld @{name}", - "status.embed": "Bygge inn", - "status.favourite": "Lik", - "status.filtered": "Filter", + "status.detailed_status": "Detaljert samtalevisning", + "status.direct": "Send melding til @{name}", + "status.embed": "Bygg inn", + "status.favourite": "Favoritt", + "status.filtered": "Filtrert", "status.load_more": "Last inn meir", - "status.media_hidden": "Media gøymt", + "status.media_hidden": "Medium gøymd", "status.mention": "Nemn @{name}", "status.more": "Meir", - "status.mute": "Demp @{name}", - "status.mute_conversation": "Demp samtale", - "status.open": "Utvid statusen", + "status.mute": "Målbind @{name}", + "status.mute_conversation": "Målbind samtale", + "status.open": "Utvid denne statusen", "status.pin": "Fest på profil", - "status.pinned": "Fasta tut", + "status.pinned": "Festa tut", "status.read_more": "Les meir", - "status.reblog": "Fremhev", - "status.reblog_private": "Fremhev til orginale sjåare", - "status.reblogged_by": "{name} fremheivd", - "status.reblogs.empty": "Ikkje nokon har fremhevd tuten enno. Om nokon gjør det kjem det opp her.", - "status.redraft": "Slett & gjer om", + "status.reblog": "Framhev", + "status.reblog_private": "Framhev til dei originale mottakarane", + "status.reblogged_by": "{name} framheva", + "status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.", + "status.redraft": "Slett & skriv på nytt", + "status.remove_bookmark": "Fjern bokmerke", "status.reply": "Svar", "status.replyAll": "Svar til tråd", - "status.report": "Rapportér @{name}", + "status.report": "Rapporter @{name}", "status.sensitive_warning": "Sensitivt innhald", "status.share": "Del", "status.show_less": "Vis mindre", @@ -379,45 +391,48 @@ "status.show_more_all": "Vis meir for alle", "status.show_thread": "Vis tråd", "status.uncached_media_warning": "Ikkje tilgjengeleg", - "status.unmute_conversation": "Ikke demp samtale", - "status.unpin": "Angre festing på profil", - "suggestions.dismiss": "Avbrot forslag", - "suggestions.header": "Du e kanskje interessert i…", + "status.unmute_conversation": "Opphev målbinding av samtalen", + "status.unpin": "Løys frå profil", + "suggestions.dismiss": "Avslå framlegg", + "suggestions.header": "Du er kanskje interessert i…", "tabs_bar.federated_timeline": "Føderert", "tabs_bar.home": "Heim", "tabs_bar.local_timeline": "Lokal", - "tabs_bar.notifications": "Notifikasjoner", + "tabs_bar.notifications": "Varsel", "tabs_bar.search": "Søk", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", - "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", - "time_remaining.moments": "Kort tid gjennstår", - "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.trending_now": "Kva som trender no", - "ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.", - "upload_area.title": "Dra & slipp for å laste opp", - "upload_button.label": "Legg til media ({formats})", - "upload_error.limit": "Fil størrelsen er for stor.", - "upload_error.poll": "Fil opplasting ikkje lov i hop med avstemming.", - "upload_form.description": "Beskriv for synshemmede", - "upload_form.edit": "Redigér", + "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} igjen", + "time_remaining.hours": "{number, plural, one {# time} other {# timar}} igjen", + "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutt}} igjen", + "time_remaining.moments": "Kort tid igjen", + "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekund}} igjen", + "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {folk}} snakkar", + "trends.trending_now": "Populært no", + "ui.beforeunload": "Kladden din forsvinn om du forlèt Mastodon no.", + "upload_area.title": "Drag & slepp for å lasta opp", + "upload_button.label": "Legg til medium ({formats})", + "upload_error.limit": "Du har gått over opplastingsgrensa.", + "upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.", + "upload_form.audio_description": "Beskriv det for folk med hørselstap", + "upload_form.description": "Skildr for synshemja", + "upload_form.edit": "Rediger", "upload_form.undo": "Slett", - "upload_modal.analyzing_picture": "Analyserer bilde…", + "upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger", + "upload_modal.analyzing_picture": "Analyserer bilete…", "upload_modal.apply": "Bruk", "upload_modal.description_placeholder": "Ein rask brun rev hoppar over den late hunden", - "upload_modal.detect_text": "Finn tekst i bildet", - "upload_modal.edit_media": "Redigér media", - "upload_modal.hint": "Klikk og dra sirkelen på forsyneren for å fokusere synspunktet slik det ska synes i alle minityrbildene.", - "upload_modal.preview_label": "Framsyn ({ratio})", + "upload_modal.detect_text": "Gjenkjenn tekst i biletet", + "upload_modal.edit_media": "Rediger medium", + "upload_modal.hint": "Klikk og dra sirkelen på førehandsvisninga for å velge fokuspunktet som alltid vil vere synleg på alle miniatyrbileta.", + "upload_modal.preview_label": "Førehandsvis ({ratio})", "upload_progress.label": "Lastar opp...", "video.close": "Lukk video", + "video.download": "Last ned fil", "video.exit_fullscreen": "Lukk fullskjerm", - "video.expand": "Expand video", + "video.expand": "Utvid video", "video.fullscreen": "Fullskjerm", "video.hide": "Gøym video", "video.mute": "Demp lyd", "video.pause": "Pause", - "video.play": "Spel", + "video.play": "Spel av", "video.unmute": "Av-dempe lyd" } diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 5c84c08fe..a6aa5db7c 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Legg til eller fjern fra lister", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokkér @{name}", "account.block_domain": "Skjul alt fra {domain}", "account.blocked": "Blokkert", @@ -8,7 +9,7 @@ "account.direct": "Direct Message @{name}", "account.domain_blocked": "Domenet skjult", "account.edit_profile": "Rediger profil", - "account.endorse": "Feature on profile", + "account.endorse": "Vis frem på profilen", "account.follow": "Følg", "account.followers": "Følgere", "account.followers.empty": "Ingen følger denne brukeren ennå.", @@ -24,7 +25,7 @@ "account.moved_to": "{name} har flyttet til:", "account.mute": "Demp @{name}", "account.mute_notifications": "Ignorer varsler fra @{name}", - "account.muted": "Muted", + "account.muted": "Dempet", "account.never_active": "Aldri", "account.posts": "Innlegg", "account.posts_with_replies": "Toots with replies", @@ -34,12 +35,12 @@ "account.show_reblogs": "Vis boosts fra @{name}", "account.unblock": "Avblokker @{name}", "account.unblock_domain": "Vis {domain}", - "account.unendorse": "Don't feature on profile", + "account.unendorse": "Ikke vis frem på profilen", "account.unfollow": "Avfølg", "account.unmute": "Avdemp @{name}", "account.unmute_notifications": "Vis varsler fra @{name}", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.", + "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per uke", @@ -51,10 +52,11 @@ "bundle_modal_error.message": "Noe gikk galt da denne komponenten lastet.", "bundle_modal_error.retry": "Prøv igjen", "column.blocks": "Blokkerte brukere", + "column.bookmarks": "Bokmerker", "column.community": "Lokal tidslinje", "column.direct": "Direktemeldinger", "column.directory": "Bla gjennom profiler", - "column.domain_blocks": "Hidden domains", + "column.domain_blocks": "Skjulte domener", "column.favourites": "Likt", "column.follow_requests": "Følgeforespørsler", "column.home": "Hjem", @@ -82,16 +84,18 @@ "compose_form.poll.duration": "Avstemningens varighet", "compose_form.poll.option_placeholder": "Valg {number}", "compose_form.poll.remove_option": "Fjern dette valget", + "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": "Merk media som sensitivt", - "compose_form.sensitive.marked": "Media is marked as sensitive", - "compose_form.sensitive.unmarked": "Media is not marked as sensitive", - "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.sensitive.marked": "Mediet er merket som sensitiv", + "compose_form.sensitive.unmarked": "Mediet er ikke merket som sensitiv", + "compose_form.spoiler.marked": "Teksten er skjult bak en advarsel", + "compose_form.spoiler.unmarked": "Teksten er ikke skjult", "compose_form.spoiler_placeholder": "Innholdsadvarsel", "confirmation_modal.cancel": "Avbryt", - "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.block_and_report": "Blokker og rapporter", "confirmations.block.confirm": "Blokkèr", "confirmations.block.message": "Er du sikker på at du vil blokkere {name}?", "confirmations.delete.confirm": "Slett", @@ -103,22 +107,22 @@ "confirmations.logout.confirm": "Logg ut", "confirmations.logout.message": "Er du sikker på at du vil logge ut?", "confirmations.mute.confirm": "Demp", - "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.explanation": "Dette vil skjule innlegg fra dem og innlegg som nevner dem, men det vil fortsatt la dem se dine innlegg og å følge deg.", "confirmations.mute.message": "Er du sikker på at du vil dempe {name}?", - "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.redraft.confirm": "Slett og drøft på nytt", "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.reply.confirm": "Svar", - "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.reply.message": "Å svare nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?", "confirmations.unfollow.confirm": "Slutt å følge", "confirmations.unfollow.message": "Er du sikker på at du vil slutte å følge {name}?", - "conversation.delete": "Delete conversation", - "conversation.mark_as_read": "Mark as read", - "conversation.open": "View conversation", + "conversation.delete": "Slett samtalen", + "conversation.mark_as_read": "Marker som lest", + "conversation.open": "Vis samtale", "conversation.with": "Med {names}", - "directory.federated": "From known fediverse", - "directory.local": "From {domain} only", - "directory.new_arrivals": "New arrivals", - "directory.recently_active": "Recently active", + "directory.federated": "Fra det kjente strømiverset", + "directory.local": "Kun fra {domain}", + "directory.new_arrivals": "Nye ankomster", + "directory.recently_active": "Nylig aktiv", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", "embed.preview": "Slik kommer det til å se ut:", "emoji_button.activity": "Aktivitet", @@ -135,176 +139,182 @@ "emoji_button.search_results": "Søkeresultat", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Reise & steder", - "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.account_timeline": "Ingen tuter er her!", + "empty_column.account_unavailable": "Profilen er utilgjengelig", + "empty_column.blocks": "Du har ikke blokkert noen brukere enda.", + "empty_column.bookmarked_statuses": "Du har ikke bokmerket noen tuter enda. Når du bokmerker en, vil den dukke opp her.", "empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!", - "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.", - "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": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.direct": "Du har ingen direktemeldinger enda. Når du mottar eller sender en, vil den dukke opp her.", + "empty_column.domain_blocks": "Det er ingen skjulte domener enda.", + "empty_column.favourited_statuses": "Du har ikke likt noen tuter enda. Når du liker en, vil den dukke opp her.", + "empty_column.favourites": "Ingen har likt denne tuten enda. Når noen gjør det, vil de dukke opp her.", + "empty_column.follow_requests": "Du har ingen følgeforespørsler enda. Når du mottar en, vil den dukke opp her.", "empty_column.hashtag": "Det er ingenting i denne hashtagen ennå.", "empty_column.home": "Du har ikke fulgt noen ennå. Besøk {publlic} eller bruk søk for å komme i gang og møte andre brukere.", "empty_column.home.public_timeline": "en offentlig tidslinje", "empty_column.list": "Det er ingenting i denne listen ennå. Når medlemmene av denne listen legger ut nye statuser vil de dukke opp her.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.lists": "Du har ingen lister enda. Når du lager en, vil den dukke opp her.", + "empty_column.mutes": "Du har ikke dempet noen brukere enda.", "empty_column.notifications": "Du har ingen varsler ennå. Kommuniser med andre for å begynne samtalen.", "empty_column.public": "Det er ingenting her! Skriv noe offentlig, eller følg brukere manuelt fra andre instanser for å fylle den opp", - "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", - "errors.unexpected_crash.report_issue": "Report issue", + "error.unexpected_crash.explanation": "På grunn av en bug i koden vår eller et nettleserkompatibilitetsproblem, kunne denne siden ikke vises riktig.", + "error.unexpected_crash.next_steps": "Prøv å oppfriske siden. Dersom det ikke hjelper, vil du kanskje fortsatt kunne bruke Mastodon gjennom en annen nettleser eller app.", + "errors.unexpected_crash.copy_stacktrace": "Kopier stacktrace-en til utklippstavlen", + "errors.unexpected_crash.report_issue": "Rapporter en feil", "follow_request.authorize": "Autorisér", "follow_request.reject": "Avvis", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", + "getting_started.developers": "Utviklere", + "getting_started.directory": "Profilmappe", + "getting_started.documentation": "Dokumentasjon", "getting_started.heading": "Kom i gang", - "getting_started.invite": "Invite people", + "getting_started.invite": "Inviter folk", "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidra eller rapportere problemer på GitHub på {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", - "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_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", + "getting_started.security": "Kontoinnstillinger", + "getting_started.terms": "Bruksvilkår", + "hashtag.column_header.tag_mode.all": "og {additional}", + "hashtag.column_header.tag_mode.any": "eller {additional}", + "hashtag.column_header.tag_mode.none": "uten {additional}", + "hashtag.column_settings.select.no_options_message": "Ingen forslag ble funnet", + "hashtag.column_settings.select.placeholder": "Skriv inn emneknagger …", + "hashtag.column_settings.tag_mode.all": "Alle disse", + "hashtag.column_settings.tag_mode.any": "Enhver av disse", + "hashtag.column_settings.tag_mode.none": "Ingen av disse", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "home.column_settings.basic": "Enkel", + "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", - "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}}", - "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.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.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", - "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", + "intervals.full.days": "{number, plural,one {# dag} other {# dager}}", + "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", + "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutter}}", + "introduction.federation.action": "Neste", + "introduction.federation.federated.headline": "Felles", + "introduction.federation.federated.text": "Offentlige innlegg fra andre tjenere i strømiverset vil dukke opp i fellestidslinjen.", + "introduction.federation.home.headline": "Hjem", + "introduction.federation.home.text": "Innlegg fra folk du følger vil dukke opp på hjemmestrømmen din. Du kan følge hvem som helst på enhver tjener!", + "introduction.federation.local.headline": "Lokalt", + "introduction.federation.local.text": "Offentlige innlegg fra folk på samme tjener som deg, vil dukke opp i den lokale tidslinjen.", + "introduction.interactions.action": "Avslutt veiledningen!", + "introduction.interactions.favourite.headline": "Lik", + "introduction.interactions.favourite.text": "Du kan lagre en tut til senere, og la forfatteren vite at du satte pris på det, ved å like det.", + "introduction.interactions.reblog.headline": "Fremhev", + "introduction.interactions.reblog.text": "Du kan dele andre folks tutinger med dine følgere ved å fremheve dem.", "introduction.interactions.reply.headline": "Svar", - "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.interactions.reply.text": "Du kan svare på tuten til andre folk og til deg selv, som vil binde dem sammen til en samtale.", + "introduction.welcome.action": "La oss sette i gang!", + "introduction.welcome.headline": "De første skritt", + "introduction.welcome.text": "Velkommen til strømiverset! Om noen øyeblikk, vil du kunne sende meldinger og snakke med dine venner over et bredt spekter av tjenere. Men denne tjeneren, {domain}, er spesiell, for den inneholder profilen din, så husk på navnet dens.", "keyboard_shortcuts.back": "for å navigere tilbake", - "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.blocked": "åpne listen over blokkerte brukere", "keyboard_shortcuts.boost": "å fremheve", "keyboard_shortcuts.column": "å fokusere en status i en av kolonnene", "keyboard_shortcuts.compose": "å fokusere komponeringsfeltet", "keyboard_shortcuts.description": "Beskrivelse", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "åpne direktemeldingskolonnen", "keyboard_shortcuts.down": "for å flytte ned i listen", - "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.enter": "å åpne status", "keyboard_shortcuts.favourite": "for å favorittmarkere", - "keyboard_shortcuts.favourites": "to open favourites list", - "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.favourites": "åpne listen over likte ting", + "keyboard_shortcuts.federated": "for å åpne fellestidslinjen", "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.home": "åpne hjemmetidslinjen", "keyboard_shortcuts.hotkey": "Lyntast", "keyboard_shortcuts.legend": "å vise denne forklaringen", - "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.local": "åpne den lokale tidslinjen", "keyboard_shortcuts.mention": "å nevne forfatter", - "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.pinned": "to open pinned toots list", - "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.muted": "åpne listen over dempede brukere", + "keyboard_shortcuts.my_profile": "å åpne profilen din", + "keyboard_shortcuts.notifications": "åpne varslingskolonnen", + "keyboard_shortcuts.open_media": "å åpne media", + "keyboard_shortcuts.pinned": "åpne listen over klistrede tuter", + "keyboard_shortcuts.profile": "åpne forfatterens profil", "keyboard_shortcuts.reply": "for å svare", - "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.requests": "åpne følgingsforespørselslisten", "keyboard_shortcuts.search": "å fokusere søk", - "keyboard_shortcuts.start": "to open \"get started\" column", - "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.start": "åpne «Sett i gang»-kolonnen", + "keyboard_shortcuts.toggle_hidden": "å vise/skjule tekst bak en innholdsadvarsel", + "keyboard_shortcuts.toggle_sensitivity": "å vise/skjule media", "keyboard_shortcuts.toot": "å starte en helt ny tut", "keyboard_shortcuts.unfocus": "å ufokusere komponerings-/søkefeltet", "keyboard_shortcuts.up": "å flytte opp i listen", "lightbox.close": "Lukk", "lightbox.next": "Neste", "lightbox.previous": "Forrige", - "lightbox.view_context": "View context", + "lightbox.view_context": "Vis sammenheng", "lists.account.add": "Legg til i listen", "lists.account.remove": "Fjern fra listen", "lists.delete": "Slett listen", "lists.edit": "Rediger listen", - "lists.edit.submit": "Change title", + "lists.edit.submit": "Endre tittel", "lists.new.create": "Ligg til liste", "lists.new.title_placeholder": "Ny listetittel", "lists.search": "Søk blant personer du følger", "lists.subheading": "Dine lister", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count, plural,one {# ny gjenstand} other {# nye gjenstander}}", "loading_indicator.label": "Laster...", "media_gallery.toggle_visible": "Veksle synlighet", "missing_indicator.label": "Ikke funnet", "missing_indicator.sublabel": "Denne ressursen ble ikke funnet", "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.apps": "Mobilapper", "navigation_bar.blocks": "Blokkerte brukere", + "navigation_bar.bookmarks": "Bokmerker", "navigation_bar.community_timeline": "Lokal tidslinje", - "navigation_bar.compose": "Compose new toot", - "navigation_bar.direct": "Direct messages", - "navigation_bar.discover": "Discover", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.compose": "Skriv en ny tut", + "navigation_bar.direct": "Direktemeldinger", + "navigation_bar.discover": "Oppdag", + "navigation_bar.domain_blocks": "Skjulte domener", "navigation_bar.edit_profile": "Rediger profil", "navigation_bar.favourites": "Favoritter", - "navigation_bar.filters": "Muted words", + "navigation_bar.filters": "Stilnede ord", "navigation_bar.follow_requests": "Følgeforespørsler", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "Følginger og følgere", "navigation_bar.info": "Utvidet informasjon", "navigation_bar.keyboard_shortcuts": "Tastatursnarveier", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", "navigation_bar.mutes": "Dempede brukere", - "navigation_bar.personal": "Personal", + "navigation_bar.personal": "Personlig", "navigation_bar.pins": "Festa tuter", "navigation_bar.preferences": "Preferanser", "navigation_bar.public_timeline": "Felles tidslinje", "navigation_bar.security": "Sikkerhet", "notification.favourite": "{name} likte din status", "notification.follow": "{name} fulgte deg", + "notification.follow_request": "{name} har bedt om å få følge deg", "notification.mention": "{name} nevnte deg", - "notification.poll": "A poll you have voted in has ended", + "notification.own_poll": "Avstemningen din er ferdig", + "notification.poll": "En avstemning du har stemt på har avsluttet", "notification.reblog": "{name} fremhevde din status", "notifications.clear": "Fjern varsler", "notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?", "notifications.column_settings.alert": "Skrivebordsvarslinger", "notifications.column_settings.favourite": "Likt:", - "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.advanced": "Vis alle kategorier", + "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje", + "notifications.column_settings.filter_bar.show": "Vis", "notifications.column_settings.follow": "Nye følgere:", + "notifications.column_settings.follow_request": "Nye følgerforespørsler:", "notifications.column_settings.mention": "Nevnt:", - "notifications.column_settings.poll": "Poll results:", + "notifications.column_settings.poll": "Avstemningsresultater:", "notifications.column_settings.push": "Push varsler", "notifications.column_settings.reblog": "Fremhevet:", "notifications.column_settings.show": "Vis i kolonne", "notifications.column_settings.sound": "Spill lyd", "notifications.filter.all": "Alle", - "notifications.filter.boosts": "Boosts", + "notifications.filter.boosts": "Fremhevinger", "notifications.filter.favourites": "Favoritter", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", - "notifications.group": "{count} notifications", - "poll.closed": "Closed", + "notifications.filter.follows": "Følginger", + "notifications.filter.mentions": "Nevnelser", + "notifications.filter.polls": "Avstemningsresultater", + "notifications.group": "{count} varslinger", + "poll.closed": "Lukket", "poll.refresh": "Oppdater", - "poll.total_people": "{count, plural, one {# person} other {# people}}", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll.total_people": "{count, plural, one {# person} other {# personer}}", + "poll.total_votes": "{count, plural, one {# stemme} other {# stemmer}}", + "poll.vote": "Stem", + "poll.voted": "Du stemte på dette svaret", + "poll_button.add_poll": "Legg til en avstemning", + "poll_button.remove_poll": "Fjern avstemningen", "privacy.change": "Justér synlighet", "privacy.direct.long": "Post kun til nevnte brukere", "privacy.direct.short": "Direkte", @@ -314,45 +324,46 @@ "privacy.public.short": "Offentlig", "privacy.unlisted.long": "Ikke vis i offentlige tidslinjer", "privacy.unlisted.short": "Uoppført", - "refresh": "Refresh", + "refresh": "Oppfrisk", "regeneration_indicator.label": "Laster…", "regeneration_indicator.sublabel": "Dine startside forberedes!", "relative_time.days": "{number}d", - "relative_time.hours": "{number}h", + "relative_time.hours": "{number}t", "relative_time.just_now": "nå", "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "reply_indicator.cancel": "Avbryt", - "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.forward": "Videresend til {target}", + "report.forward_hint": "Denne kontoen er fra en annen tjener. Vil du sende en anonymisert kopi av rapporten dit også?", "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.placeholder": "Tilleggskommentarer", "report.submit": "Send inn", "report.target": "Rapporterer", "search.placeholder": "Søk", "search_popout.search_format": "Avansert søkeformat", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.full_text": "Enkel tekst gir resultater for statuser du har skrevet, likt, fremhevet, eller har blitt nevnt i, i tillegg til samsvarende brukernavn, visningsnavn og emneknagger.", "search_popout.tips.hashtag": "emneknagg", "search_popout.tips.status": "status", "search_popout.tips.text": "Enkel tekst returnerer matchende visningsnavn, brukernavn og emneknagger", "search_popout.tips.user": "bruker", - "search_results.accounts": "People", - "search_results.hashtags": "Hashtags", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.accounts": "Folk", + "search_results.hashtags": "Emneknagger", + "search_results.statuses": "Tuter", + "search_results.statuses_fts_disabled": "Å søke i tuter etter innhold er ikke skrudd på i denne Mastodon-tjeneren.", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_status": "Open this status in the moderation interface", - "status.block": "Block @{name}", - "status.cancel_reblog_private": "Unboost", + "status.admin_account": "Åpne moderatorgrensesnittet for @{name}", + "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet", + "status.block": "Blokkér @{name}", + "status.bookmark": "Bokmerke", + "status.cancel_reblog_private": "Fjern fremheving", "status.cannot_reblog": "Denne posten kan ikke fremheves", - "status.copy": "Copy link to status", + "status.copy": "Kopier lenken til statusen", "status.delete": "Slett", - "status.detailed_status": "Detailed conversation view", - "status.direct": "Direct message @{name}", + "status.detailed_status": "Detaljert samtalevisning", + "status.direct": "Send direktemelding til @{name}", "status.embed": "Bygge inn", "status.favourite": "Lik", - "status.filtered": "Filtered", + "status.filtered": "Filtrert", "status.load_more": "Last mer", "status.media_hidden": "Media skjult", "status.mention": "Nevn @{name}", @@ -361,57 +372,61 @@ "status.mute_conversation": "Demp samtale", "status.open": "Utvid denne statusen", "status.pin": "Fest på profilen", - "status.pinned": "Pinned toot", + "status.pinned": "Festet tut", "status.read_more": "Les mer", "status.reblog": "Fremhev", - "status.reblog_private": "Boost to original audience", + "status.reblog_private": "Fremhev til det opprinnelige publikummet", "status.reblogged_by": "Fremhevd av {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.reblogs.empty": "Ingen har fremhevet denne tuten enda. Når noen gjør det, vil de dukke opp her.", + "status.redraft": "Slett og drøft på nytt", + "status.remove_bookmark": "Fjern bokmerke", "status.reply": "Svar", "status.replyAll": "Svar til samtale", "status.report": "Rapporter @{name}", "status.sensitive_warning": "Følsomt innhold", "status.share": "Del", "status.show_less": "Vis mindre", - "status.show_less_all": "Show less for all", + "status.show_less_all": "Vis mindre for alle", "status.show_more": "Vis mer", - "status.show_more_all": "Show more for all", - "status.show_thread": "Show thread", + "status.show_more_all": "Vis mer for alle", + "status.show_thread": "Vis tråden", "status.uncached_media_warning": "Ikke tilgjengelig", "status.unmute_conversation": "Ikke demp samtale", "status.unpin": "Angre festing på profilen", - "suggestions.dismiss": "Dismiss suggestion", - "suggestions.header": "You might be interested in…", + "suggestions.dismiss": "Utelukk forslaget", + "suggestions.header": "Du er kanskje interessert i …", "tabs_bar.federated_timeline": "Felles", "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Varslinger", "tabs_bar.search": "Søk", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "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.trending_now": "Trending now", + "time_remaining.days": "{number, plural,one {# dag} other {# dager}} igjen", + "time_remaining.hours": "{number, plural, one {# time} other {# timer}} igjen", + "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutter}} igjen", + "time_remaining.moments": "Gjenværende øyeblikk", + "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} igjen", + "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {personer}} snakker om det", + "trends.trending_now": "Trender nå", "ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.", "upload_area.title": "Dra og slipp for å laste opp", "upload_button.label": "Legg til media", - "upload_error.limit": "File upload limit exceeded.", - "upload_error.poll": "File upload not allowed with polls.", + "upload_error.limit": "Filopplastingsgrensen er oversteget.", + "upload_error.poll": "Filopplasting inni avstemninger er ikke tillatt.", + "upload_form.audio_description": "Beskriv det for folk med hørselstap", "upload_form.description": "Beskriv for synshemmede", - "upload_form.edit": "Edit", + "upload_form.edit": "Rediger", "upload_form.undo": "Angre", - "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger", + "upload_modal.analyzing_picture": "Analyserer bildet …", "upload_modal.apply": "Bruk", - "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.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_modal.description_placeholder": "Når du en gang kommer, neste sommer, skal vi atter drikke vin", + "upload_modal.detect_text": "Oppdag tekst i bildet", + "upload_modal.edit_media": "Rediger media", + "upload_modal.hint": "Klikk eller dra sirkelen i forhåndsvisningen for å velge hovedpunktet som alltid vil bli vist i alle miniatyrbilder.", + "upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_progress.label": "Laster opp...", "video.close": "Lukk video", + "video.download": "Last ned fil", "video.exit_fullscreen": "Lukk fullskjerm", "video.expand": "Utvid video", "video.fullscreen": "Fullskjerm", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 1ca5f42ed..601ed93c6 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Ajustar o tirar de las listas", "account.badges.bot": "Robòt", + "account.badges.group": "Group", "account.block": "Blocar @{name}", "account.block_domain": "Tot amagar del domeni {domain}", "account.blocked": "Blocat", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", "bundle_modal_error.retry": "Tornar ensajar", "column.blocks": "Personas blocadas", + "column.bookmarks": "Marcadors", "column.community": "Flux public local", "column.direct": "Messatges dirèctes", "column.directory": "Percórrer los perfils", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Durada del sondatge", "compose_form.poll.option_placeholder": "Opcion {number}", "compose_form.poll.remove_option": "Levar aquesta opcion", + "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 coma sensible", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Cap de tuts aquí !", "empty_column.account_unavailable": "Perfil pas disponible", "empty_column.blocks": "Avètz pas blocat degun pel moment.", + "empty_column.bookmarked_statuses": "Avètz pas cap de tuts marcats pel moment. Quand ne marquetz un, serà mostrat aquí.", "empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !", "empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.", "empty_column.domain_blocks": "I a pas encara cap de domeni amagat.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "dobrir la lista dels utilizaires silenciats", "keyboard_shortcuts.my_profile": "dobrir vòstre perfil", "keyboard_shortcuts.notifications": "dobrir la colomna de notificacions", + "keyboard_shortcuts.open_media": "dobrir lo mèdia", "keyboard_shortcuts.pinned": "dobrir la lista dels tuts penjats", "keyboard_shortcuts.profile": "dobrir lo perfil de l’autor", "keyboard_shortcuts.reply": "respondre", @@ -226,7 +232,7 @@ "keyboard_shortcuts.search": "anar a la recèrca", "keyboard_shortcuts.start": "dobrir la colomna « Per començar »", "keyboard_shortcuts.toggle_hidden": "mostrar/amagar lo tèxte dels avertiments", - "keyboard_shortcuts.toggle_sensitivity": "per mostrar/rescondre los mèdias", + "keyboard_shortcuts.toggle_sensitivity": "mostrar/rescondre los mèdias", "keyboard_shortcuts.toot": "començar un estatut tot novèl", "keyboard_shortcuts.unfocus": "quitar lo camp tèxte/de recèrca", "keyboard_shortcuts.up": "far montar dins la lista", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?", "navigation_bar.apps": "Aplicacions mobil", "navigation_bar.blocks": "Personas blocadas", + "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Flux public local", "navigation_bar.compose": "Escriure un nòu tut", "navigation_bar.direct": "Messatges dirèctes", @@ -273,7 +280,9 @@ "navigation_bar.security": "Seguretat", "notification.favourite": "{name} a ajustat a sos favorits", "notification.follow": "{name} vos sèc", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} vos a mencionat", + "notification.own_poll": "Vòstre sondatge es acabat", "notification.poll": "Avètz participat a un sondatge que ven de s’acabar", "notification.reblog": "{name} a partejat vòstre estatut", "notifications.clear": "Escafar", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Barra de recèrca rapida", "notifications.column_settings.filter_bar.show": "Mostrar", "notifications.column_settings.follow": "Nòus seguidors :", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mencions :", "notifications.column_settings.poll": "Resultats del sondatge :", "notifications.column_settings.push": "Notificacions", @@ -344,6 +354,7 @@ "status.admin_account": "Dobrir l’interfàcia de moderacion per @{name}", "status.admin_status": "Dobrir aqueste estatut dins l’interfàcia de moderacion", "status.block": "Blocar @{name}", + "status.bookmark": "Marcador", "status.cancel_reblog_private": "Quitar de partejar", "status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat", "status.copy": "Copiar lo ligam de l’estatut", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} a partejat", "status.reblogs.empty": "Degun a pas encara partejat aqueste tut. Quand qualqu’un o farà, apareisserà aquí.", "status.redraft": "Escafar e tornar formular", + "status.remove_bookmark": "Suprimir lo marcador", "status.reply": "Respondre", "status.replyAll": "Respondre a la conversacion", "status.report": "Senhalar @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Talha maximum pels mandadís subrepassada.", "upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Descripcion pels mal vesents", "upload_form.edit": "Modificar", "upload_form.undo": "Suprimir", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analisi de l’imatge…", "upload_modal.apply": "Aplicar", "upload_modal.description_placeholder": "Lo dròlle bilingüe manja un yaourt de ròcs exagonals e kiwis verds farà un an mai", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Apercebut ({ratio})", "upload_progress.label": "Mandadís…", "video.close": "Tampar la vidèo", + "video.download": "Telecargar lo fichièr", "video.exit_fullscreen": "Sortir plen ecran", "video.expand": "Agrandir la vidèo", "video.fullscreen": "Ecran complèt", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 0bf078eb1..178316773 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Dodaj lub usuń z list", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokuj @{name}", "account.block_domain": "Blokuj wszystko z {domain}", "account.blocked": "Zablokowany(-a)", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Coś poszło nie tak podczas ładowania tego składnika.", "bundle_modal_error.retry": "Spróbuj ponownie", "column.blocks": "Zablokowani użytkownicy", + "column.bookmarks": "Zakładki", "column.community": "Lokalna oś czasu", "column.direct": "Wiadomości bezpośrednie", "column.directory": "Przeglądaj profile", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Czas trwania głosowania", "compose_form.poll.option_placeholder": "Opcja {number}", "compose_form.poll.remove_option": "Usuń tę opcję", + "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": "Wyślij", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Oznacz multimedia jako wrażliwe", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Brak wpisów tutaj!", "empty_column.account_unavailable": "Profil niedostępny", "empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.", + "empty_column.bookmarked_statuses": "Nie dodałeś(-aś) żadnego wpisu do zakładek. Kiedy to zrobisz, pojawi się on tutaj.", "empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!", "empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.", "empty_column.domain_blocks": "Brak ukrytych domen.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "aby przejść do listy wyciszonych użytkowników", "keyboard_shortcuts.my_profile": "aby otworzyć własny profil", "keyboard_shortcuts.notifications": "aby otworzyć kolumnę powiadomień", + "keyboard_shortcuts.open_media": "aby otworzyć zawartość multimedialną", "keyboard_shortcuts.pinned": "aby przejść do listy przypiętych wpisów", "keyboard_shortcuts.profile": "aby przejść do profilu autora wpisu", "keyboard_shortcuts.reply": "aby odpowiedzieć", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", "navigation_bar.apps": "Aplikacje mobilne", "navigation_bar.blocks": "Zablokowani użytkownicy", + "navigation_bar.bookmarks": "Zakładki", "navigation_bar.community_timeline": "Lokalna oś czasu", "navigation_bar.compose": "Utwórz nowy wpis", "navigation_bar.direct": "Wiadomości bezpośrednie", @@ -273,7 +280,9 @@ "navigation_bar.security": "Bezpieczeństwo", "notification.favourite": "{name} dodał(a) Twój wpis do ulubionych", "notification.follow": "{name} zaczął(-ęła) Cię śledzić", + "notification.follow_request": "{name} poprosił(a) o możliwość śledzenia Cię", "notification.mention": "{name} wspomniał(a) o tobie", + "notification.own_poll": "Twoje głosowanie zakończyło się", "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyła się", "notification.reblog": "{name} podbił(a) Twój wpis", "notifications.clear": "Wyczyść powiadomienia", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Szybkie filtrowanie", "notifications.column_settings.filter_bar.show": "Pokaż", "notifications.column_settings.follow": "Nowi śledzący:", + "notifications.column_settings.follow_request": "Nowe prośby o możliwość śledzenia:", "notifications.column_settings.mention": "Wspomnienia:", "notifications.column_settings.poll": "Wyniki głosowania:", "notifications.column_settings.push": "Powiadomienia push", @@ -344,6 +354,7 @@ "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym", "status.block": "Zablokuj @{name}", + "status.bookmark": "Dodaj zakładkę", "status.cancel_reblog_private": "Cofnij podbicie", "status.cannot_reblog": "Ten wpis nie może zostać podbity", "status.copy": "Skopiuj odnośnik do wpisu", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} podbił(a)", "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", "status.redraft": "Usuń i przeredaguj", + "status.remove_bookmark": "Usuń zakładkę", "status.reply": "Odpowiedz", "status.replyAll": "Odpowiedz na wątek", "status.report": "Zgłoś @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Przekroczono limit plików do wysłania.", "upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących", "upload_form.edit": "Edytuj", "upload_form.undo": "Usuń", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analizowanie obrazu…", "upload_modal.apply": "Zastosuj", "upload_modal.description_placeholder": "Pchnąć w tę łódź jeża lub ośm skrzyń fig", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Podgląd ({ratio})", "upload_progress.label": "Wysyłanie…", "video.close": "Zamknij film", + "video.download": "Pobierz plik", "video.exit_fullscreen": "Opuść tryb pełnoekranowy", "video.expand": "Rozszerz film", "video.fullscreen": "Pełny ekran", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 7c6a1fd22..0708c83ab 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -1,29 +1,30 @@ { - "account.add_or_remove_from_list": "Adicionar ou remover de listas", + "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", + "account.badges.group": "Group", "account.block": "Bloquear @{name}", - "account.block_domain": "Esconder tudo de {domain}", + "account.block_domain": "Bloquear {domain}", "account.blocked": "Bloqueado", "account.cancel_follow_request": "Cancelar solicitação para seguir", - "account.direct": "Direct Message @{name}", - "account.domain_blocked": "Domínio escondido", + "account.direct": "Enviar toot direto para @{name}", + "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", "account.endorse": "Destacar no perfil", "account.follow": "Seguir", "account.followers": "Seguidores", - "account.followers.empty": "Ninguém segue esse usuário no momento.", - "account.follows": "Segue", - "account.follows.empty": "Esse usuário não segue ninguém no momento.", + "account.followers.empty": "Nada aqui.", + "account.follows": "Seguindo", + "account.follows.empty": "Nada aqui.", "account.follows_you": "Segue você", - "account.hide_reblogs": "Esconder compartilhamentos de @{name}", + "account.hide_reblogs": "Ocultar boosts de @{name}", "account.last_status": "Última atividade", - "account.link_verified_on": "A posse desse link foi verificada em {date}", - "account.locked_info": "Essa conta está trancada. Se você a seguir sua solicitação será revisada manualmente.", + "account.link_verified_on": "O link foi verificado em {date}", + "account.locked_info": "Esta conta está trancada. Sua solicitação para seguir requer aprovação manual do usuário.", "account.media": "Mídia", "account.mention": "Mencionar @{name}", "account.moved_to": "{name} se mudou para:", "account.mute": "Silenciar @{name}", - "account.mute_notifications": "Silenciar notificações de @{name}", + "account.mute_notifications": "Ocultar notificações de @{name}", "account.muted": "Silenciado", "account.never_active": "Nunca", "account.posts": "Toots", @@ -31,40 +32,41 @@ "account.report": "Denunciar @{name}", "account.requested": "Aguardando aprovação. Clique para cancelar a solicitação", "account.share": "Compartilhar perfil de @{name}", - "account.show_reblogs": "Mostra compartilhamentos de @{name}", + "account.show_reblogs": "Mostrar boosts de @{name}", "account.unblock": "Desbloquear @{name}", "account.unblock_domain": "Desbloquear {domain}", "account.unendorse": "Não destacar no perfil", "account.unfollow": "Deixar de seguir", - "account.unmute": "Não silenciar @{name}", - "account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}", + "account.unmute": "Desfazer silêncio de @{name}", + "account.unmute_notifications": "Mostrar notificações de @{name}", "alert.rate_limited.message": "Por favor tente novamente após {retry_time, time, medium}.", - "alert.rate_limited.title": "Limite de tentativas", - "alert.unexpected.message": "Um erro inesperado ocorreu.", + "alert.rate_limited.title": "Tentativas limitadas", + "alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.title": "Eita!", "autosuggest_hashtag.per_week": "{count} por semana", - "boost_modal.combo": "Você pode pressionar {combo} para ignorar este diálogo na próxima vez", - "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.", + "boost_modal.combo": "Pressione {combo} para ignorar este diálogo na próxima vez", + "bundle_column_error.body": "Ocorreu um problema ao carregar este componente.", "bundle_column_error.retry": "Tente novamente", "bundle_column_error.title": "Erro de rede", "bundle_modal_error.close": "Fechar", - "bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.", + "bundle_modal_error.message": "Ocorreu um problema ao carregar este componente.", "bundle_modal_error.retry": "Tente novamente", "column.blocks": "Usuários bloqueados", + "column.bookmarks": "Salvos", "column.community": "Local", - "column.direct": "Mensagens diretas", + "column.direct": "Mensagens Diretas", "column.directory": "Explorar perfis", - "column.domain_blocks": "Domínios escondidos", + "column.domain_blocks": "Domínios bloqueados", "column.favourites": "Favoritos", "column.follow_requests": "Seguidores pendentes", "column.home": "Página inicial", "column.lists": "Listas", "column.mutes": "Usuários silenciados", "column.notifications": "Notificações", - "column.pins": "Postagens fixadas", - "column.public": "Global", + "column.pins": "Toots fixados", + "column.public": "Linha global", "column_back_button.label": "Voltar", - "column_header.hide_settings": "Esconder configurações", + "column_header.hide_settings": "Ocultar configurações", "column_header.moveLeft_settings": "Mover coluna para a esquerda", "column_header.moveRight_settings": "Mover coluna para a direita", "column_header.pin": "Fixar", @@ -73,192 +75,197 @@ "column_subheading.settings": "Configurações", "community.column_settings.media_only": "Apenas mídia", "compose_form.direct_message_warning": "Este toot só será enviado aos usuários mencionados.", - "compose_form.direct_message_warning_learn_more": "Saber mais", - "compose_form.hashtag_warning": "Esse toot não será listado em nenhuma hashtag por ser não listado. Somente toots públicos podem ser pesquisados por hashtag.", - "compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.", + "compose_form.direct_message_warning_learn_more": "Saiba mais", + "compose_form.hashtag_warning": "O toot não será listado nas hashtags porque não é público. Somente toots públicos podem ser pesquisados por hashtag. Dica: Poste como Não-listado.", + "compose_form.lock_disclaimer": "Sua conta não está {locked}. Qualquer pessoa pode te seguir e ver seus toots privados.", "compose_form.lock_disclaimer.lock": "trancada", "compose_form.placeholder": "No que você está pensando?", - "compose_form.poll.add_option": "Adicionar uma opção", + "compose_form.poll.add_option": "Adicionar opção", "compose_form.poll.duration": "Duração da enquete", "compose_form.poll.option_placeholder": "Opção {number}", - "compose_form.poll.remove_option": "Remover essa opção", - "compose_form.publish": "Publicar", + "compose_form.poll.remove_option": "Remover opção", + "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": "Marcar mídia como sensível", "compose_form.sensitive.marked": "Mídia está marcada como sensível", "compose_form.sensitive.unmarked": "Mídia não está marcada como sensível", - "compose_form.spoiler.marked": "O texto está escondido por um aviso de conteúdo", - "compose_form.spoiler.unmarked": "O texto não está escondido", - "compose_form.spoiler_placeholder": "Aviso de conteúdo", + "compose_form.spoiler.marked": "O texto está oculto por um aviso de conteúdo", + "compose_form.spoiler.unmarked": "Sem Aviso de Conteúdo", + "compose_form.spoiler_placeholder": "Aviso de Conteúdo aqui", "confirmation_modal.cancel": "Cancelar", "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "Você tem certeza de que quer bloquear {name}?", + "confirmations.block.message": "Você tem certeza de que deseja bloquear {name}?", "confirmations.delete.confirm": "Excluir", - "confirmations.delete.message": "Você tem certeza de que quer excluir esta postagem?", + "confirmations.delete.message": "Excluir este toot?", "confirmations.delete_list.confirm": "Excluir", - "confirmations.delete_list.message": "Você tem certeza que quer deletar permanentemente a lista?", - "confirmations.domain_block.confirm": "Esconder o domínio inteiro", - "confirmations.domain_block.message": "Você quer mesmo bloquear {domain} inteiro? Na maioria dos casos, silenciar ou bloquear alguns usuários é o suficiente e o recomendado. Você não vai ver conteúdo desse domínio em nenhuma das timelines públicas ou nas suas notificações. Seus seguidores desse domínio serão removidos.", + "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", + "confirmations.domain_block.confirm": "Bloquear domínio", + "confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.", "confirmations.logout.confirm": "Sair", - "confirmations.logout.message": "Tem certeza que deseja encerrar a sessão?", + "confirmations.logout.message": "Você tem certeza de que deseja sair?", "confirmations.mute.confirm": "Silenciar", - "confirmations.mute.explanation": "Isto irá esconder postagens e postagens que mencionam, mas ainda vai permitir que eles vejam suas publicações e sigam você.", - "confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?", - "confirmations.redraft.confirm": "Apagar & usar como rascunho", - "confirmations.redraft.message": "Você tem certeza que deseja apagar esse status e usá-lo como rascunho? Seus compartilhamentos e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.", + "confirmations.mute.explanation": "Isso ocultará toots deles e toots mencionando-os, mas ainda permitirá que eles vejam seus toots e te sigam.", + "confirmations.mute.message": "Você tem certeza de que deseja silenciar {name}?", + "confirmations.redraft.confirm": "Excluir e rascunhar", + "confirmations.redraft.message": "Você tem certeza de que deseja apagar o toot e usá-lo como rascunho? Boosts e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.", "confirmations.reply.confirm": "Responder", - "confirmations.reply.message": "Responder agora vai sobrescrever a mensagem que você está compondo. Você tem certeza que quer continuar?", + "confirmations.reply.message": "Responder agora vai sobrescrever o toot que você está compondo. Deseja continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", - "confirmations.unfollow.message": "Você tem certeza de que quer deixar de seguir {name}?", + "confirmations.unfollow.message": "Deixar de seguir {name}?", "conversation.delete": "Excluir conversa", "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", "conversation.with": "Com {names}", - "directory.federated": "De fediverso conhecido", - "directory.local": "De {domain} apenas", + "directory.federated": "Do fediverso", + "directory.local": "Apenas do {domain}", "directory.new_arrivals": "Acabaram de chegar", - "directory.recently_active": "Reverta esta propriedade para seu valor padrão", - "embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo.", - "embed.preview": "Aqui está uma previsão de como ficará:", + "directory.recently_active": "Ativos recentemente", + "embed.instructions": "Incorpore este toot no seu site copiando o código abaixo.", + "embed.preview": "Veja como vai ficar:", "emoji_button.activity": "Atividades", - "emoji_button.custom": "Customizados", + "emoji_button.custom": "Personalizados", "emoji_button.flags": "Bandeiras", - "emoji_button.food": "Comidas & Bebidas", - "emoji_button.label": "Inserir Emoji", + "emoji_button.food": "Comidas e Bebidas", + "emoji_button.label": "Inserir emoji", "emoji_button.nature": "Natureza", - "emoji_button.not_found": "Não tem emojos! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Sem emojis! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Objetos", "emoji_button.people": "Pessoas", "emoji_button.recent": "Usados frequentemente", - "emoji_button.search": "Buscar...", - "emoji_button.search_results": "Resultados da busca", + "emoji_button.search": "Pesquisar...", + "emoji_button.search_results": "Resultados da pesquisa", "emoji_button.symbols": "Símbolos", - "emoji_button.travel": "Viagens & Lugares", - "empty_column.account_timeline": "Não há toots aqui!", + "emoji_button.travel": "Viagens e Lugares", + "empty_column.account_timeline": "Nada aqui!", "empty_column.account_unavailable": "Perfil indisponível", - "empty_column.blocks": "Você ainda não bloqueou nenhum usuário.", - "empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!", - "empty_column.direct": "Você não tem nenhuma mensagem direta ainda. Quando você enviar ou receber uma, as mensagens aparecerão por aqui.", - "empty_column.domain_blocks": "Ainda não há nenhum domínio escondido.", - "empty_column.favourited_statuses": "Você ainda não tem nenhum toot favorito. Quando você favoritar um toot, ele aparecerá aqui.", - "empty_column.favourites": "Ninguém favoritou esse toot até agora. Quando alguém favoritar, a pessoa aparecerá aqui.", - "empty_column.follow_requests": "Você não tem nenhum pedido de seguir por agora. Quando você receber um, ele aparecerá aqui.", - "empty_column.hashtag": "Ainda não há qualquer conteúdo com essa hashtag.", - "empty_column.home": "Você ainda não segue usuário algum. Visite a timeline {public} ou use o buscador para procurar e conhecer outros usuários.", - "empty_column.home.public_timeline": "global", - "empty_column.list": "Ainda não há nada nesta lista. Quando membros dessa lista fizerem novas postagens, elas aparecerão aqui.", - "empty_column.lists": "Você ainda não tem nenhuma lista. Quando você criar uma, ela aparecerá aqui.", - "empty_column.mutes": "Você ainda não silenciou nenhum usuário.", - "empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar.", - "empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias", - "error.unexpected_crash.explanation": "Devido a um bug em nosso código ou a um problema de compatibilidade do navegador, esta página não pode ser exibida corretamente.", - "error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, você ainda pode usar Mastodon através de um navegador diferente ou aplicativo nativo.", - "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace para a área de transferência", + "empty_column.blocks": "Nada aqui.", + "empty_column.bookmarked_statuses": "Sem toots salvos. Quando você salvar alguns, eles aparecerão aqui.", + "empty_column.community": "A linha do tempo local está vazia. Poste algo publicamente para começar!", + "empty_column.direct": "Nada aqui. Quando você enviar ou receber toots diretos, eles aparecerão aqui.", + "empty_column.domain_blocks": "Nada aqui.", + "empty_column.favourited_statuses": "Nada aqui. Quando você favoritar um toot, ele aparecerá aqui.", + "empty_column.favourites": "Nada aqui. Quando alguém favoritar, o autor aparecerá aqui.", + "empty_column.follow_requests": "Nada aqui. Quando você receber solicitações de seguidores, elas aparecerão aqui.", + "empty_column.hashtag": "Nada aqui.", + "empty_column.home": "Sua linha do tempo está vazia. Visite a linha {public} ou use a pesquisa para conhecer outros usuários!", + "empty_column.home.public_timeline": "a linha do tempo pública", + "empty_column.list": "Nada aqui. Quando os usuários nesta lista postarem toots, eles aparecerão aqui.", + "empty_column.lists": "Nada aqui. Quando você criar listas, elas aparecerão aqui.", + "empty_column.mutes": "Nada aqui.", + "empty_column.notifications": "Nada aqui. Interaja com outros usuários para começar a conversar.", + "empty_column.public": "Nada aqui! Poste algo publicamente ou siga usuários de outras instâncias", + "error.unexpected_crash.explanation": "Devido a um problema em nosso código ou de compatibilidade com o navegador, esta página não pôde ser exibida corretamente.", + "error.unexpected_crash.next_steps": "Tente atualizar a página. Se não resolver, você ainda pode usar o Mastodon em outro navegador ou aplicativo.", + "errors.unexpected_crash.copy_stacktrace": "Copiar estado da pilha para a área de transferência", "errors.unexpected_crash.report_issue": "Reportar problema", - "follow_request.authorize": "Autorizar", - "follow_request.reject": "Rejeitar", + "follow_request.authorize": "Aprovar", + "follow_request.reject": "Vetar", "getting_started.developers": "Desenvolvedores", "getting_started.directory": "Diretório de perfis", "getting_started.documentation": "Documentação", "getting_started.heading": "Primeiros passos", - "getting_started.invite": "Convide pessoas", - "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do GitHub do projeto: {github}.", - "getting_started.security": "Segurança", + "getting_started.invite": "Convidar pessoas", + "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do projeto no GitHub em {github}.", + "getting_started.security": "Configurações da conta", "getting_started.terms": "Termos de serviço", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", "hashtag.column_settings.select.no_options_message": "Nenhuma sugestão encontrada", - "hashtag.column_settings.select.placeholder": "Adicione as hashtags…", + "hashtag.column_settings.select.placeholder": "Adicione hashtags…", "hashtag.column_settings.tag_mode.all": "Todas essas", "hashtag.column_settings.tag_mode.any": "Qualquer uma dessas", "hashtag.column_settings.tag_mode.none": "Nenhuma dessas", - "hashtag.column_settings.tag_toggle": "Incluir outras hashtags nessa coluna", + "hashtag.column_settings.tag_toggle": "Adicionar mais hashtags", "home.column_settings.basic": "Básico", - "home.column_settings.show_reblogs": "Mostrar compartilhamentos", - "home.column_settings.show_replies": "Mostrar as respostas", + "home.column_settings.show_reblogs": "Mostrar boosts", + "home.column_settings.show_replies": "Mostrar respostas", "intervals.full.days": "{number, plural, one {# dia} other {# dias}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "introduction.federation.action": "Próximo", "introduction.federation.federated.headline": "Global", - "introduction.federation.federated.text": "Posts públicos de outros servidores do fediverso vão aparecer na timeline global.", - "introduction.federation.home.headline": "Início", - "introduction.federation.home.text": "Posts de pessoas que você segue vão aparecer na sua página inicial. Você pode seguir pessoas de qualquer servidor!", + "introduction.federation.federated.text": "Toots públicos de outras instâncias do fediverso aparecerão na linha global.", + "introduction.federation.home.headline": "Página inicial", + "introduction.federation.home.text": "Os toots das pessoas que você segue aparecerão na página inicial. Você pode seguir pessoas de qualquer instância!", "introduction.federation.local.headline": "Local", - "introduction.federation.local.text": "Posts públicos de pessoas no mesmo servidor que você vão aparecer na timeline local.", - "introduction.interactions.action": "Finalizar o tutorial!", + "introduction.federation.local.text": "Toots públicos de pessoas na mesma instância que você aparecerão na linha local.", + "introduction.interactions.action": "Terminar o tutorial!", "introduction.interactions.favourite.headline": "Favoritos", - "introduction.interactions.favourite.text": "Você pode salvar um toot pra mais tarde, e deixar a pessoa que postou saber que você gostou, favoritando-o.", - "introduction.interactions.reblog.headline": "Compartilhamento", - "introduction.interactions.reblog.text": "Você pode mostrar toots de outras pessoas aos seus seguidores compartilhando.", + "introduction.interactions.favourite.text": "Ao favoritar, você salva o toot para mais tarde ou sinaliza ao autor que você gostou do toot.", + "introduction.interactions.reblog.headline": "Boost", + "introduction.interactions.reblog.text": "Ao dar boost, você compartilha toots de outras pessoas para seus seguidores.", "introduction.interactions.reply.headline": "Responder", - "introduction.interactions.reply.text": "Você pode responder a toots de outras pessoas e aos seus, e isso vai uni-los em uma conversa.", - "introduction.welcome.action": "Vamos!", + "introduction.interactions.reply.text": "Você pode responder aos toots de outras pessoas e formar uma conversa ou responder aos seus e formar uma sequência.", + "introduction.welcome.action": "É HORA DO SHOW!", "introduction.welcome.headline": "Primeiros passos", - "introduction.welcome.text": "Boas vindas ao fediverso! Em alguns momentos, você vai poder transmitir mensagens e falar com pessoas amigas através de uma variedade de servidores. Mas esse servidor, {domain}, é especial—é onde o seu perfil está hospedado, então lembre do nome.", - "keyboard_shortcuts.back": "para navegar de volta", - "keyboard_shortcuts.blocked": "para abrir a lista de usuários bloqueados", - "keyboard_shortcuts.boost": "para compartilhar", - "keyboard_shortcuts.column": "Focar um status em uma das colunas", - "keyboard_shortcuts.compose": "para focar a área de redação", + "introduction.welcome.text": "Boas vindas ao fediverso! Logo você vai poder publicar mensagens e falar com pessoas amigas através de uma variedade de instâncias. Mas esta instância, {domain}, é especial — é onde o seu perfil está guardado, então lembre do nome dela com carinho.", + "keyboard_shortcuts.back": "voltar", + "keyboard_shortcuts.blocked": "abrir lista de usuários bloqueados", + "keyboard_shortcuts.boost": "dar boost", + "keyboard_shortcuts.column": "focar no toot de uma das colunas", + "keyboard_shortcuts.compose": "focar na composição", "keyboard_shortcuts.description": "Descrição", - "keyboard_shortcuts.direct": "para abrir a coluna de mensagens diretas", - "keyboard_shortcuts.down": "para mover para baixo na lista", - "keyboard_shortcuts.enter": "para expandir um status", - "keyboard_shortcuts.favourite": "para adicionar aos favoritos", - "keyboard_shortcuts.favourites": "para abrir a lista de favoritos", - "keyboard_shortcuts.federated": "para abrir a timeline global", + "keyboard_shortcuts.direct": "abrir Mensagens Diretas", + "keyboard_shortcuts.down": "mover para baixo na linha", + "keyboard_shortcuts.enter": "expandir um toot", + "keyboard_shortcuts.favourite": "favoritar", + "keyboard_shortcuts.favourites": "abrir os favoritos", + "keyboard_shortcuts.federated": "abrir linha global", "keyboard_shortcuts.heading": "Atalhos de teclado", - "keyboard_shortcuts.home": "para abrir a página inicial", + "keyboard_shortcuts.home": "abrir página inicial", "keyboard_shortcuts.hotkey": "Atalho", - "keyboard_shortcuts.legend": "para mostrar essa legenda", - "keyboard_shortcuts.local": "para abrir a timeline local", - "keyboard_shortcuts.mention": "para mencionar o autor", - "keyboard_shortcuts.muted": "para abrir a lista de usuários silenciados", - "keyboard_shortcuts.my_profile": "para abrir o seu perfil", - "keyboard_shortcuts.notifications": "para abrir a coluna de notificações", - "keyboard_shortcuts.pinned": "para abrir a lista de toots fixados", - "keyboard_shortcuts.profile": "para abrir o perfil do autor", - "keyboard_shortcuts.reply": "para responder", - "keyboard_shortcuts.requests": "para abrir a lista de seguidores pendentes", - "keyboard_shortcuts.search": "para focar a pesquisa", - "keyboard_shortcuts.start": "para abrir a coluna \"primeiros passos\"", - "keyboard_shortcuts.toggle_hidden": "mostrar/esconder o texto com aviso de conteúdo", - "keyboard_shortcuts.toggle_sensitivity": "mostrar/esconder mídia", - "keyboard_shortcuts.toot": "para compor um novo toot", - "keyboard_shortcuts.unfocus": "para remover o foco da área de composição/pesquisa", - "keyboard_shortcuts.up": "para mover para cima na lista", + "keyboard_shortcuts.legend": "mostrar estes atalhos", + "keyboard_shortcuts.local": "abrir linha local", + "keyboard_shortcuts.mention": "mencionar autor", + "keyboard_shortcuts.muted": "abrir lista de usuários silenciados", + "keyboard_shortcuts.my_profile": "abrir seu perfil", + "keyboard_shortcuts.notifications": "abrir notificações", + "keyboard_shortcuts.open_media": "abrir mídia", + "keyboard_shortcuts.pinned": "abrir toots fixados", + "keyboard_shortcuts.profile": "abrir o perfil do autor", + "keyboard_shortcuts.reply": "responder", + "keyboard_shortcuts.requests": "abrir lista de seguidores pendentes", + "keyboard_shortcuts.search": "focar na pesquisa", + "keyboard_shortcuts.start": "abrir o \"Primeiros passos\"", + "keyboard_shortcuts.toggle_hidden": "mostrar/ocultar o toot com Aviso de Conteúdo", + "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar mídia", + "keyboard_shortcuts.toot": "compor novo toot", + "keyboard_shortcuts.unfocus": "sair da composição ou da pesquisa", + "keyboard_shortcuts.up": "mover para cima na linha", "lightbox.close": "Fechar", "lightbox.next": "Próximo", "lightbox.previous": "Anterior", "lightbox.view_context": "Ver contexto", - "lists.account.add": "Adicionar a listas", + "lists.account.add": "Adicionar à lista", "lists.account.remove": "Remover da lista", "lists.delete": "Excluir lista", "lists.edit": "Editar lista", - "lists.edit.submit": "Mudar o título", - "lists.new.create": "Adicionar lista", - "lists.new.title_placeholder": "Novo título da lista", + "lists.edit.submit": "Renomear", + "lists.new.create": "Criar lista", + "lists.new.title_placeholder": "Nome da lista", "lists.search": "Procurar entre as pessoas que você segue", "lists.subheading": "Suas listas", "load_pending": "{count, plural, one {# novo item} other {# novos items}}", "loading_indicator.label": "Carregando...", - "media_gallery.toggle_visible": "Esconder/Mostrar", + "media_gallery.toggle_visible": "Mostrar/Ocultar", "missing_indicator.label": "Não encontrado", "missing_indicator.sublabel": "Esse recurso não pôde ser encontrado", - "mute_modal.hide_notifications": "Esconder notificações deste usuário?", - "navigation_bar.apps": "Apps", + "mute_modal.hide_notifications": "Ocultar notificações deste usuário?", + "navigation_bar.apps": "Aplicativos", "navigation_bar.blocks": "Usuários bloqueados", + "navigation_bar.bookmarks": "Salvos", "navigation_bar.community_timeline": "Local", - "navigation_bar.compose": "Compor um novo toot", - "navigation_bar.direct": "Mensagens diretas", + "navigation_bar.compose": "Compor novo toot", + "navigation_bar.direct": "Mensagens Diretas", "navigation_bar.discover": "Descobrir", - "navigation_bar.domain_blocks": "Domínios escondidos", + "navigation_bar.domain_blocks": "Domínios bloqueados", "navigation_bar.edit_profile": "Editar perfil", "navigation_bar.favourites": "Favoritos", - "navigation_bar.filters": "Palavras silenciadas", + "navigation_bar.filters": "Palavras filtradas", "navigation_bar.follow_requests": "Seguidores pendentes", "navigation_bar.follows_and_followers": "Seguindo e seguidores", "navigation_bar.info": "Mais informações", @@ -267,53 +274,56 @@ "navigation_bar.logout": "Sair", "navigation_bar.mutes": "Usuários silenciados", "navigation_bar.personal": "Pessoal", - "navigation_bar.pins": "Postagens fixadas", + "navigation_bar.pins": "Toots fixados", "navigation_bar.preferences": "Preferências", "navigation_bar.public_timeline": "Global", "navigation_bar.security": "Segurança", - "notification.favourite": "{name} adicionou a sua postagem aos favoritos", + "notification.favourite": "{name} favoritou seu toot", "notification.follow": "{name} te seguiu", + "notification.follow_request": "{name} quer te seguir", "notification.mention": "{name} te mencionou", - "notification.poll": "Uma enquete em que você votou chegou ao fim", - "notification.reblog": "{name} compartilhou a sua postagem", + "notification.own_poll": "Sua enquete terminou", + "notification.poll": "Uma enquete que você votou terminou", + "notification.reblog": "{name} deu boost no seu toot", "notifications.clear": "Limpar notificações", - "notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações permanentemente?", + "notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações?", "notifications.column_settings.alert": "Notificações no computador", "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias", "notifications.column_settings.filter_bar.category": "Barra de filtro rápido", "notifications.column_settings.filter_bar.show": "Mostrar", - "notifications.column_settings.follow": "Novos seguidores:", + "notifications.column_settings.follow": "Seguidores:", + "notifications.column_settings.follow_request": "Novos seguidores pendentes:", "notifications.column_settings.mention": "Menções:", - "notifications.column_settings.poll": "Resultados da enquete:", + "notifications.column_settings.poll": "Enquetes:", "notifications.column_settings.push": "Enviar notificações", - "notifications.column_settings.reblog": "Compartilhamento:", + "notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.show": "Mostrar nas colunas", "notifications.column_settings.sound": "Reproduzir som", "notifications.filter.all": "Tudo", - "notifications.filter.boosts": "Compartilhamentos", + "notifications.filter.boosts": "Boosts", "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menções", - "notifications.filter.polls": "Resultados da enquete", + "notifications.filter.polls": "Enquetes", "notifications.group": "{count} notificações", - "poll.closed": "Fechada", + "poll.closed": "Terminou", "poll.refresh": "Atualizar", "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}", "poll.total_votes": "{count, plural, one {# voto} other {# votos}}", "poll.vote": "Votar", - "poll.voted": "Você votou nesta resposta", - "poll_button.add_poll": "Adicionar uma enquete", + "poll.voted": "Você votou nesta opção", + "poll_button.add_poll": "Adicionar enquete", "poll_button.remove_poll": "Remover enquete", - "privacy.change": "Ajustar a privacidade da mensagem", - "privacy.direct.long": "Apenas para usuários mencionados", - "privacy.direct.short": "Direta", - "privacy.private.long": "Apenas para seus seguidores", - "privacy.private.short": "Privada", - "privacy.public.long": "Publicar em todos os feeds", - "privacy.public.short": "Pública", - "privacy.unlisted.long": "Não publicar em feeds públicos", - "privacy.unlisted.short": "Não listada", + "privacy.change": "Ajustar privacidade do toot", + "privacy.direct.long": "Postar apenas para usuários mencionados", + "privacy.direct.short": "Direto", + "privacy.private.long": "Postar apenas para seguidores", + "privacy.private.short": "Privado", + "privacy.public.long": "Postar em linhas públicas", + "privacy.public.short": "Público", + "privacy.unlisted.long": "Não postar em linhas públicas", + "privacy.unlisted.short": "Não-listado", "refresh": "Atualizar", "regeneration_indicator.label": "Carregando…", "regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!", @@ -323,38 +333,39 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "reply_indicator.cancel": "Cancelar", - "report.forward": "Encaminhar para {target}", - "report.forward_hint": "Essa conta pertence à um outro servidor. Encaminhar uma cópia da denúncia com seus dados tornados anônimos para esse servidor?", - "report.hint": "A sua denúncia será enviada aos moderadores da instância. Você pode adicionar uma explicação de porque você está denunciando essa conta abaixo:", + "report.forward": "Enviar cópia para {target}", + "report.forward_hint": "A conta está em outra instância. Enviar uma cópia anônima da denúncia para lá?", + "report.hint": "A denúncia será enviada aos moderadores da instância. Você pode explicar por que você denunciou a conta:", "report.placeholder": "Comentários adicionais", "report.submit": "Enviar", - "report.target": "Denunciar", + "report.target": "Denunciando {target}", "search.placeholder": "Pesquisar", - "search_popout.search_format": "Formato de busca avançado", - "search_popout.tips.full_text": "Texto simples retorna status que você escreveu, favoritou, compartilhou ou em que tenha sido mencionado; também retorna nomes de exibição, usuários e hashtags correspondentes.", + "search_popout.search_format": "Pesquisa avançada", + "search_popout.tips.full_text": "Texto simples retorna seus toots, favoritos, boosts ou toots em que foi mencionado, como também nomes de exibição, usuários e hashtags correspondentes.", "search_popout.tips.hashtag": "hashtag", - "search_popout.tips.status": "status", + "search_popout.tips.status": "toot", "search_popout.tips.text": "Texto simples retorna nomes de exibição, usuários e hashtags correspondentes", "search_popout.tips.user": "usuário", "search_results.accounts": "Pessoas", "search_results.hashtags": "Hashtags", "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está habilitado neste servidor Mastodon.", + "search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está ativado nesta instância Mastodon.", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "status.admin_account": "Abrir interface de moderação para @{name}", - "status.admin_status": "Abrir esse status na interface de moderação", + "status.admin_status": "Abrir o toot na interface de moderação", "status.block": "Bloquear @{name}", - "status.cancel_reblog_private": "Desfazer compartilhamento", - "status.cannot_reblog": "Esta postagem não pode ser compartilhada", - "status.copy": "Copiar o link para o status", + "status.bookmark": "Salvar", + "status.cancel_reblog_private": "Desfazer boost", + "status.cannot_reblog": "Não foi possível dar boost", + "status.copy": "Copiar o link do toot", "status.delete": "Excluir", "status.detailed_status": "Visão detalhada da conversa", - "status.direct": "Enviar mensagem direta a @{name}", + "status.direct": "Toot direto para @{name}", "status.embed": "Incorporar", - "status.favourite": "Adicionar aos favoritos", + "status.favourite": "Favoritar", "status.filtered": "Filtrado", - "status.load_more": "Carregar mais", - "status.media_hidden": "Mídia escondida", + "status.load_more": "Ver mais", + "status.media_hidden": "Mídia oculta", "status.mention": "Mencionar @{name}", "status.more": "Mais", "status.mute": "Silenciar @{name}", @@ -363,61 +374,65 @@ "status.pin": "Fixar no perfil", "status.pinned": "Toot fixado", "status.read_more": "Ler mais", - "status.reblog": "Compartilhar", - "status.reblog_private": "Compartilhar com a audiência original", - "status.reblogged_by": "{name} compartilhou", - "status.reblogs.empty": "Ninguém compartilhou esse toot até agora. Quando alguém o fizer, eles aparecerão aqui.", - "status.redraft": "Apagar & usar como rascunho", + "status.reblog": "Dar boost", + "status.reblog_private": "Dar boost para audiência original", + "status.reblogged_by": "{name} deu boost", + "status.reblogs.empty": "Nada aqui. Quando alguém der boost, o autor aparecerá aqui.", + "status.redraft": "Excluir e rascunhar", + "status.remove_bookmark": "Remover dos Salvos", "status.reply": "Responder", - "status.replyAll": "Responder à sequência", + "status.replyAll": "Responder à conversa", "status.report": "Denunciar @{name}", "status.sensitive_warning": "Conteúdo sensível", "status.share": "Compartilhar", "status.show_less": "Mostrar menos", - "status.show_less_all": "Mostrar menos para todas as mensagens", + "status.show_less_all": "Mostrar menos para todos os toots", "status.show_more": "Mostrar mais", - "status.show_more_all": "Mostrar mais para todas as mensagens", - "status.show_thread": "Mostrar sequência", + "status.show_more_all": "Mostrar mais para todos os toots", + "status.show_thread": "Mostrar conversa", "status.uncached_media_warning": "Não disponível", "status.unmute_conversation": "Desativar silêncio desta conversa", "status.unpin": "Desafixar do perfil", - "suggestions.dismiss": "Ignorar a sugestão", + "suggestions.dismiss": "Ignorar sugestão", "suggestions.header": "Você pode se interessar por…", "tabs_bar.federated_timeline": "Global", "tabs_bar.home": "Página inicial", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificações", - "tabs_bar.search": "Buscar", + "tabs_bar.search": "Pesquisar", "time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}", "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}", "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}", - "time_remaining.moments": "Momentos restantes", + "time_remaining.moments": "Tempo restante", "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre", "trends.trending_now": "Em alta no momento", "ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.", "upload_area.title": "Arraste e solte para enviar", - "upload_button.label": "Adicionar mídia (JPEG, PNG, GIF, WebM, MP4, MOV)", + "upload_button.label": "Adicionar mídia ({formats})", "upload_error.limit": "Limite de envio de arquivos excedido.", - "upload_error.poll": "Envio de arquivos não é permitido com enquetes.", - "upload_form.description": "Descreva a imagem para deficientes visuais", + "upload_error.poll": "Não é possível enviar arquivos com enquetes.", + "upload_form.audio_description": "Descrever para deficientes auditivos", + "upload_form.description": "Descrever para deficientes visuais", "upload_form.edit": "Editar", "upload_form.undo": "Remover", + "upload_form.video_description": "Descrever para deficientes auditivos e visuais", "upload_modal.analyzing_picture": "Analisando imagem…", "upload_modal.apply": "Aplicar", - "upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente", + "upload_modal.description_placeholder": "Um pequeno jabuti xereta viu dez cegonhas felizes", "upload_modal.detect_text": "Detectar texto da imagem", "upload_modal.edit_media": "Editar mídia", - "upload_modal.hint": "Clique ou arraste o círculo na visualização para escolher o ponto focal que sempre será visto em todas as miniaturas.", + "upload_modal.hint": "Clique ou arraste o círculo na prévia para escolher o ponto focal que ficará visível em todas as miniaturas.", "upload_modal.preview_label": "Prévia ({ratio})", - "upload_progress.label": "Salvando...", + "upload_progress.label": "Enviando...", "video.close": "Fechar vídeo", + "video.download": "Baixar arquivo", "video.exit_fullscreen": "Sair da tela cheia", "video.expand": "Expandir vídeo", "video.fullscreen": "Tela cheia", - "video.hide": "Esconder vídeo", + "video.hide": "Ocultar vídeo", "video.mute": "Silenciar", - "video.pause": "Parar", + "video.pause": "Pausar", "video.play": "Reproduzir", - "video.unmute": "Retirar silêncio" + "video.unmute": "Desativar silêncio" } diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index bb8a94516..dfcb63fd8 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", + "account.badges.group": "Group", "account.block": "Bloquear @{name}", "account.block_domain": "Esconder tudo do domínio {domain}", "account.blocked": "Bloqueado", @@ -39,7 +40,7 @@ "account.unmute": "Não silenciar @{name}", "account.unmute_notifications": "Deixar de silenciar @{name}", "alert.rate_limited.message": "Volte a tentar depois das {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "alert.rate_limited.title": "Limite de tentativas", "alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.title": "Bolas!", "autosuggest_hashtag.per_week": "{count} por semana", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.", "bundle_modal_error.retry": "Tente de novo", "column.blocks": "Utilizadores Bloqueados", + "column.bookmarks": "Favoritos", "column.community": "Cronologia local", "column.direct": "Mensagens directas", "column.directory": "Procurar perfis", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Duração da votação", "compose_form.poll.option_placeholder": "Opção {number}", "compose_form.poll.remove_option": "Eliminar esta opção", + "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": "Marcar multimédia como sensível", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Sem toots por aqui!", "empty_column.account_unavailable": "Perfil indisponível", "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.", + "empty_column.bookmarked_statuses": "Ainda não assinalou toots como favoritos. Quando o fizer, eles aparecerão aqui.", "empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!", "empty_column.direct": "Ainda não tens qualquer mensagem directa. Quando enviares ou receberes alguma, ela irá aparecer aqui.", "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "para abrir a lista dos utilizadores silenciados", "keyboard_shortcuts.my_profile": "para abrir o teu perfil", "keyboard_shortcuts.notifications": "para abrir a coluna das notificações", + "keyboard_shortcuts.open_media": "para abrir média", "keyboard_shortcuts.pinned": "para abrir a lista dos toots fixados", "keyboard_shortcuts.profile": "para abrir o perfil do autor", "keyboard_shortcuts.reply": "para responder", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Esconder notificações deste utilizador?", "navigation_bar.apps": "Aplicações móveis", "navigation_bar.blocks": "Utilizadores bloqueados", + "navigation_bar.bookmarks": "Favoritos", "navigation_bar.community_timeline": "Cronologia local", "navigation_bar.compose": "Escrever novo toot", "navigation_bar.direct": "Mensagens directas", @@ -273,7 +280,9 @@ "navigation_bar.security": "Segurança", "notification.favourite": "{name} adicionou o teu estado aos favoritos", "notification.follow": "{name} começou a seguir-te", + "notification.follow_request": "{name} pediu para segui-lo", "notification.mention": "{name} mencionou-te", + "notification.own_poll": "A sua votação terminou", "notification.poll": "Uma votação em participaste chegou ao fim", "notification.reblog": "{name} fez boost ao teu o teu estado", "notifications.clear": "Limpar notificações", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Barra de filtros rápidos", "notifications.column_settings.filter_bar.show": "Mostrar", "notifications.column_settings.follow": "Novos seguidores:", + "notifications.column_settings.follow_request": "Novos pedidos de seguidor:", "notifications.column_settings.mention": "Menções:", "notifications.column_settings.poll": "Resultados da votação:", "notifications.column_settings.push": "Notificações Push", @@ -344,6 +354,7 @@ "status.admin_account": "Abrir a interface de moderação para @{name}", "status.admin_status": "Abrir esta publicação na interface de moderação", "status.block": "Bloquear @{name}", + "status.bookmark": "Favorito", "status.cancel_reblog_private": "Remover boost", "status.cannot_reblog": "Não é possível fazer boost a esta publicação", "status.copy": "Copiar o link para a publicação", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} fez boost", "status.reblogs.empty": "Ainda ninguém fez boost a este toot. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", + "status.remove_bookmark": "Remover favorito", "status.reply": "Responder", "status.replyAll": "Responder à conversa", "status.report": "Denunciar @{name}", @@ -394,15 +406,17 @@ "time_remaining.moments": "Momentos restantes", "time_remaining.seconds": "{número, plural, um {# second} outro {# seconds}} faltam", "trends.count_by_accounts": "{count} {rawCount, plural, uma {person} outra {people}} a falar", - "trends.trending_now": "Tendencias actuais", + "trends.trending_now": "Tendências atuais", "ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.", "upload_area.title": "Arraste e solte para enviar", "upload_button.label": "Adicionar media", "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.", "upload_error.poll": "Carregamento de ficheiros não é permitido em votações.", + "upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva", "upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais", "upload_form.edit": "Editar", "upload_form.undo": "Apagar", + "upload_form.video_description": "Descreva para pessoas com diminuição da acuidade auditiva ou visual", "upload_modal.analyzing_picture": "A analizar imagem…", "upload_modal.apply": "Aplicar", "upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Pré-visualizar ({ratio})", "upload_progress.label": "A enviar...", "video.close": "Fechar vídeo", + "video.download": "Descarregar ficheiro", "video.exit_fullscreen": "Sair de full screen", "video.expand": "Expandir vídeo", "video.fullscreen": "Ecrã completo", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 617dbcc0d..7703d46fb 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Adaugă sau Elimină din liste", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blochează @{name}", "account.block_domain": "Ascunde tot de la {domain}", "account.blocked": "Blocat", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Ceva nu a funcționat în timupul încărcării acestui component.", "bundle_modal_error.retry": "Încearcă din nou", "column.blocks": "Utilizatori blocați", + "column.bookmarks": "Bookmarks", "column.community": "Fluxul Local", "column.direct": "Mesaje directe", "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": "Postează", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Mark media as sensitive", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Nici o postare aici!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "Nu ai blocat nici un utilizator incă.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Fluxul local este gol. Scrie ceva public pentru a împinge bila la vale!", "empty_column.direct": "Nu ai nici un mesaj direct incă. Când trimiți sau primești unul, va fi afișat aici.", "empty_column.domain_blocks": "Nu sunt domenii ascunse incă.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "să deschidă lista utilizatorilor opriți", "keyboard_shortcuts.my_profile": "să deschidă profilul tău", "keyboard_shortcuts.notifications": "să deschidă coloana cu notificări", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "să deschidă lista postărilor fixate", "keyboard_shortcuts.profile": "să deschidă porfilul autorului", "keyboard_shortcuts.reply": "să răspundă", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Ascunzi notificările de la acest utilizator?", "navigation_bar.apps": "Aplicații mobile", "navigation_bar.blocks": "Utilizatori blocați", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Flux local", "navigation_bar.compose": "Compune o nouă postare", "navigation_bar.direct": "Mesaje directe", @@ -273,7 +280,9 @@ "navigation_bar.security": "Securitate", "notification.favourite": "{name} a adăugat statusul tău la favorite", "notification.follow": "{name} te urmărește", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} te-a menționat", + "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} a redistribuit postarea ta", "notifications.clear": "Șterge notificările", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Bară de filtrare rapidă", "notifications.column_settings.filter_bar.show": "Arată", "notifications.column_settings.follow": "Noi urmăritori:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Mențiuni:", "notifications.column_settings.poll": "Poll results:", "notifications.column_settings.push": "Notificări push", @@ -344,6 +354,7 @@ "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Blochează @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Nedistribuit", "status.cannot_reblog": "Această postare nu poate fi redistribuită", "status.copy": "Copy link to status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} a redistribuit", "status.reblogs.empty": "Nimeni nu a redistribuit această postare până acum. Când cineva o va face, va apărea aici.", "status.redraft": "Șterge și adaugă la ciorne", + "status.remove_bookmark": "Remove bookmark", "status.reply": "Răspunde", "status.replyAll": "Răspunde la topic", "status.report": "Raportează @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)", "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": "Adaugă o descriere pentru persoanele cu deficiențe de vedere", "upload_form.edit": "Edit", "upload_form.undo": "Șterge", + "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": "Se Încarcă...", "video.close": "Închide video", + "video.download": "Download file", "video.exit_fullscreen": "Închide", "video.expand": "Extinde video", "video.fullscreen": "Ecran întreg", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index c8767e535..72c85169a 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -1,8 +1,9 @@ { - "account.add_or_remove_from_list": "Добавить или удалить из списков", + "account.add_or_remove_from_list": "Управление списками", "account.badges.bot": "Бот", - "account.block": "Блокировать", - "account.block_domain": "Блокировать все с {domain}", + "account.badges.group": "Group", + "account.block": "Заблокировать @{name}", + "account.block_domain": "Заблокировать {domain}", "account.blocked": "Заблокирован(а)", "account.cancel_follow_request": "Отменить запрос", "account.direct": "Написать @{name}", @@ -15,19 +16,19 @@ "account.follows": "Подписки", "account.follows.empty": "Этот пользователь пока ни на кого не подписался.", "account.follows_you": "Подписан(а) на вас", - "account.hide_reblogs": "Скрыть реблоги от @{name}", + "account.hide_reblogs": "Скрыть продвижения от @{name}", "account.last_status": "Последняя активность", "account.link_verified_on": "Владение этой ссылкой было проверено {date}", "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.", "account.media": "Медиа", - "account.mention": "Упомянуть", + "account.mention": "Упомянуть @{name}", "account.moved_to": "Ищите {name} здесь:", - "account.mute": "Заглушить", + "account.mute": "Игнорировать @{name}", "account.mute_notifications": "Скрыть уведомления от @{name}", - "account.muted": "Приглушён", + "account.muted": "Игнорируется", "account.never_active": "Никогда", "account.posts": "Посты", - "account.posts_with_replies": "Посты с ответами", + "account.posts_with_replies": "Посты и ответы", "account.report": "Пожаловаться", "account.requested": "Ожидает подтверждения. Нажмите для отмены", "account.share": "Поделиться профилем @{name}", @@ -36,30 +37,31 @@ "account.unblock_domain": "Разблокировать {domain}", "account.unendorse": "Не рекомендовать в профиле", "account.unfollow": "Отписаться", - "account.unmute": "Не скрывать @{name}", + "account.unmute": "Не игнорировать @{name}", "account.unmute_notifications": "Показывать уведомления от @{name}", - "alert.rate_limited.message": "Пожалуйста, повторите через {retry_time, time, medium}.", - "alert.rate_limited.title": "Скорость ограничена", + "alert.rate_limited.message": "Пожалуйста, повторите после {retry_time, time, medium}.", + "alert.rate_limited.title": "Вы выполняете действие слишком часто", "alert.unexpected.message": "Что-то пошло не так.", "alert.unexpected.title": "Ой!", "autosuggest_hashtag.per_week": "{count} / неделю", - "boost_modal.combo": "Нажмите {combo}, чтобы пропустить это в следующий раз", + "boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз", "bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.", "bundle_column_error.retry": "Попробовать снова", "bundle_column_error.title": "Ошибка сети", "bundle_modal_error.close": "Закрыть", "bundle_modal_error.message": "Что-то пошло не так при загрузке этого компонента.", "bundle_modal_error.retry": "Попробовать снова", - "column.blocks": "Список блокировки", + "column.blocks": "Заблокированные пользователи", + "column.bookmarks": "Закладки", "column.community": "Локальная лента", "column.direct": "Личные сообщения", "column.directory": "Просмотр профилей", "column.domain_blocks": "Скрытые домены", - "column.favourites": "Понравившееся", + "column.favourites": "Избранное", "column.follow_requests": "Запросы на подписку", "column.home": "Главная", "column.lists": "Списки", - "column.mutes": "Список скрытых пользователей", + "column.mutes": "Игнорируемые пользователи", "column.notifications": "Уведомления", "column.pins": "Закреплённый пост", "column.public": "Глобальная лента", @@ -72,21 +74,23 @@ "column_header.unpin": "Открепить", "column_subheading.settings": "Настройки", "community.column_settings.media_only": "Только с медиа", - "compose_form.direct_message_warning": "Этот статус будет виден только упомянутым пользователям.", - "compose_form.direct_message_warning_learn_more": "Узнать больше", - "compose_form.hashtag_warning": "Этот пост не будет показывается в поиске по хэштегу, т.к. он непубличный. Только публичные посты можно найти в поиске по хэштегу.", - "compose_form.lock_disclaimer": "Ваша учётная запись не {locked}. Любой пользователь может подписаться на вас и просматривать посты для подписчиков.", - "compose_form.lock_disclaimer.lock": "закрыт", - "compose_form.placeholder": "О чем вы думаете?", + "compose_form.direct_message_warning": "Адресованные посты отправляются и видны только упомянутым в них пользователям.", + "compose_form.direct_message_warning_learn_more": "Узнать подробнее", + "compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.", + "compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.", + "compose_form.lock_disclaimer.lock": "не закрыта", + "compose_form.placeholder": "О чём думаете?", "compose_form.poll.add_option": "Добавить вариант", "compose_form.poll.duration": "Продолжительность опроса", "compose_form.poll.option_placeholder": "Вариант {number}", - "compose_form.poll.remove_option": "Удалить этот вариант", + "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": "Пометить медиафайл как чувствительный", - "compose_form.sensitive.marked": "Медиафайлы не отмечены как чувствительные", - "compose_form.sensitive.unmarked": "Медиафайлы не отмечены как чувствительные", + "compose_form.sensitive.hide": "Отметить медиафайл как деликатный", + "compose_form.sensitive.marked": "Медиафайл отмечен как деликатный", + "compose_form.sensitive.unmarked": "Медиафайл не отмечен как деликатный", "compose_form.spoiler.marked": "Текст скрыт за предупреждением", "compose_form.spoiler.unmarked": "Текст не скрыт", "compose_form.spoiler_placeholder": "Текст предупреждения", @@ -95,20 +99,20 @@ "confirmations.block.confirm": "Заблокировать", "confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?", "confirmations.delete.confirm": "Удалить", - "confirmations.delete.message": "Вы уверены, что хотите удалить этот статус?", + "confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?", "confirmations.delete_list.confirm": "Удалить", "confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?", - "confirmations.domain_block.confirm": "Блокировать весь домен", - "confirmations.domain_block.message": "Вы на самом деле уверены, что хотите блокировать весь {domain}? В большинстве случаев нескольких отдельных блокировок или глушений достаточно.", + "confirmations.domain_block.confirm": "Да, заблокировать узел", + "confirmations.domain_block.message": "Вы точно уверены, что хотите скрыть все посты с узла {domain}? В большинстве случаев пары блокировок и скрытий вполне достаточно.\n\nПри блокировке узла, вы перестанете получать уведомления оттуда, все посты будут скрыты из публичных лент, а подписчики убраны.", "confirmations.logout.confirm": "Выйти", "confirmations.logout.message": "Вы уверены, что хотите выйти?", - "confirmations.mute.confirm": "Заглушить", + "confirmations.mute.confirm": "Игнорировать", "confirmations.mute.explanation": "Это скроет посты этого пользователя и те, в которых он упоминается, но при этом он по-прежнему сможет подписаться на вас и смотреть ваши посты.", - "confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?", + "confirmations.mute.message": "Вы уверены, что хотите добавить {name} в список игнорируемых?", "confirmations.redraft.confirm": "Удалить и исправить", - "confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.", + "confirmations.redraft.message": "Вы уверены, что хотите переписать этот пост? Старый пост будет удалён, а вместе с ним пропадут отметки «избранного», продвижения и ответы.", "confirmations.reply.confirm": "Ответить", - "confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?", + "confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?", "confirmations.unfollow.confirm": "Отписаться", "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?", "conversation.delete": "Удалить беседу", @@ -116,13 +120,13 @@ "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", "directory.federated": "Со всей федерации", - "directory.local": "Только из {domain}", + "directory.local": "Только с {domain}", "directory.new_arrivals": "Новички", "directory.recently_active": "Недавно активные", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", "embed.preview": "Так это будет выглядеть:", "emoji_button.activity": "Занятия", - "emoji_button.custom": "Особенные", + "emoji_button.custom": "С этого узла", "emoji_button.flags": "Флаги", "emoji_button.food": "Еда и напитки", "emoji_button.label": "Вставить эмодзи", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Здесь нет постов!", "empty_column.account_unavailable": "Профиль недоступен", "empty_column.blocks": "Вы ещё никого не заблокировали.", + "empty_column.bookmarked_statuses": "У вас пока нет постов в закладках. Как добавите один, он отобразится здесь.", "empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!", "empty_column.direct": "У вас пока нет личных сообщений. Как только вы отправите или получите одно, оно появится здесь.", "empty_column.domain_blocks": "Скрытых доменов пока нет.", @@ -149,7 +154,7 @@ "empty_column.home.public_timeline": "публичные ленты", "empty_column.list": "В этом списке пока ничего нет.", "empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.", - "empty_column.mutes": "Вы ещё никого не скрывали.", + "empty_column.mutes": "Вы никого не игнорируете и всех внимательно выслушиваете.", "empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.", "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту", "error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.", @@ -183,16 +188,16 @@ "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", "introduction.federation.action": "Далее", "introduction.federation.federated.headline": "Глобальная лента", - "introduction.federation.federated.text": "Публичные статусы с других серверов федеративной сети расположатся в глобальной ленте.", + "introduction.federation.federated.text": "Публичные посты с других серверов федеративной сети расположатся в глобальной ленте.", "introduction.federation.home.headline": "Домашняя лента", "introduction.federation.home.text": "Посты людей, на которых вы подписаны, будут отображаться в домашней ленте. Подписываться можно на кого угодно, независимо от узла.", "introduction.federation.local.headline": "Локальная лента", - "introduction.federation.local.text": "Публичные статусы от людей с того же сервера, что и вы, будут отображены в локальной ленте.", + "introduction.federation.local.text": "Публичные посты от людей с того же сервера, что и вы, будут отображены в локальной ленте.", "introduction.interactions.action": "Завершить обучение", "introduction.interactions.favourite.headline": "Отметки «нравится»", - "introduction.interactions.favourite.text": "Вы можете отметить статус, чтобы вернуться к нему позже и дать знать автору, что запись вам понравилась, поставив отметку \"нравится\".", + "introduction.interactions.favourite.text": "Дайте автору знать, что пост вам понравился и вернитесь к нему позже, добавив его в избранное.", "introduction.interactions.reblog.headline": "Продвижения", - "introduction.interactions.reblog.text": "Вы можете делиться статусами других людей, продвигая их в своей учётной записи.", + "introduction.interactions.reblog.text": "Вы можете делиться постами других людей, продвигая их в своей учётной записи.", "introduction.interactions.reply.headline": "Ответы", "introduction.interactions.reply.text": "Вы можете отвечать свои и чужие посты, образуя цепочки сообщений (обсуждения).", "introduction.welcome.action": "Поехали!", @@ -206,9 +211,9 @@ "keyboard_shortcuts.description": "Описание", "keyboard_shortcuts.direct": "чтобы показать колонку личных сообщений", "keyboard_shortcuts.down": "вниз по списку", - "keyboard_shortcuts.enter": "развернуть пост", + "keyboard_shortcuts.enter": "открыть пост", "keyboard_shortcuts.favourite": "в избранное", - "keyboard_shortcuts.favourites": "открыть 'Избранное'", + "keyboard_shortcuts.favourites": "открыть «Избранное»", "keyboard_shortcuts.federated": "перейти к глобальной ленте", "keyboard_shortcuts.heading": "Сочетания клавиш", "keyboard_shortcuts.home": "перейти к домашней ленте", @@ -216,10 +221,11 @@ "keyboard_shortcuts.legend": "показать это окно", "keyboard_shortcuts.local": "перейти к локальной ленте", "keyboard_shortcuts.mention": "упомянуть автора поста", - "keyboard_shortcuts.muted": "открыть список заглушённых", + "keyboard_shortcuts.muted": "открыть список игнорируемых", "keyboard_shortcuts.my_profile": "перейти к своему профилю", "keyboard_shortcuts.notifications": "перейти к уведомлениям", - "keyboard_shortcuts.pinned": "перейти к закреплённым статусам", + "keyboard_shortcuts.open_media": "открыть вложение", + "keyboard_shortcuts.pinned": "перейти к закреплённым постам", "keyboard_shortcuts.profile": "перейти к профилю автора", "keyboard_shortcuts.reply": "ответить", "keyboard_shortcuts.requests": "перейти к запросам на подписку", @@ -239,8 +245,8 @@ "lists.delete": "Удалить список", "lists.edit": "Изменить список", "lists.edit.submit": "Изменить название", - "lists.new.create": "Новый список", - "lists.new.title_placeholder": "Заголовок списка", + "lists.new.create": "Создать список", + "lists.new.title_placeholder": "Название для нового списка", "lists.search": "Искать среди подписок", "lists.subheading": "Ваши списки", "load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}", @@ -248,17 +254,18 @@ "media_gallery.toggle_visible": "Показать/скрыть", "missing_indicator.label": "Не найдено", "missing_indicator.sublabel": "Запрашиваемый ресурс не найден", - "mute_modal.hide_notifications": "Убрать уведомления от этого пользователя?", + "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?", "navigation_bar.apps": "Мобильные приложения", "navigation_bar.blocks": "Список блокировки", + "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальная лента", - "navigation_bar.compose": "Создать новый статус", + "navigation_bar.compose": "Создать новый пост", "navigation_bar.direct": "Личные сообщения", "navigation_bar.discover": "Изучайте", "navigation_bar.domain_blocks": "Скрытые домены", "navigation_bar.edit_profile": "Изменить профиль", - "navigation_bar.favourites": "Понравившееся", - "navigation_bar.filters": "Заглушенные слова", + "navigation_bar.favourites": "Избранное", + "navigation_bar.filters": "Игнорируемые слова", "navigation_bar.follow_requests": "Запросы на подписку", "navigation_bar.follows_and_followers": "Подписки и подписчики", "navigation_bar.info": "Об узле", @@ -271,29 +278,32 @@ "navigation_bar.preferences": "Настройки", "navigation_bar.public_timeline": "Глобальная лента", "navigation_bar.security": "Безопасность", - "notification.favourite": "{name} добавил(а) ваш статус в избранное", + "notification.favourite": "{name} добавил(а) ваш пост в избранное", "notification.follow": "{name} подписался (-лась) на вас", + "notification.follow_request": "{name} отправил запрос на подписку", "notification.mention": "{name} упомянул(а) вас", + "notification.own_poll": "Ваш опрос закончился", "notification.poll": "Опрос, в котором вы приняли участие, завершился", - "notification.reblog": "{name} продвинул(а) ваш статус", + "notification.reblog": "{name} продвинул(а) ваш пост", "notifications.clear": "Очистить уведомления", "notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?", - "notifications.column_settings.alert": "Десктопные уведомления", - "notifications.column_settings.favourite": "Нравится:", + "notifications.column_settings.alert": "Уведомления в фоне", + "notifications.column_settings.favourite": "Ваш пост добавили в «избранное»:", "notifications.column_settings.filter_bar.advanced": "Отображать все категории", - "notifications.column_settings.filter_bar.category": "Фильтры по категориям", - "notifications.column_settings.filter_bar.show": "Показывать", - "notifications.column_settings.follow": "Новые подписчики:", - "notifications.column_settings.mention": "Упоминания:", - "notifications.column_settings.poll": "Результаты опроса:", - "notifications.column_settings.push": "Push-уведомления", - "notifications.column_settings.reblog": "Продвижения:", - "notifications.column_settings.show": "Показывать в колонке", + "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": "Пуш-уведомления", + "notifications.column_settings.reblog": "Ваш пост продвинули:", + "notifications.column_settings.show": "Отображать в списке", "notifications.column_settings.sound": "Проигрывать звук", - "notifications.filter.all": "Все", + "notifications.filter.all": "Всё", "notifications.filter.boosts": "Продвижения", - "notifications.filter.favourites": "Отметки \"нравится\"", - "notifications.filter.follows": "Новые подписчики", + "notifications.filter.favourites": "Отметки «избранного»", + "notifications.filter.follows": "Подписки", "notifications.filter.mentions": "Упоминания", "notifications.filter.polls": "Результаты опросов", "notifications.group": "{count} уведомл.", @@ -305,26 +315,26 @@ "poll.voted": "Вы проголосовали за этот вариант", "poll_button.add_poll": "Добавить опрос", "poll_button.remove_poll": "Удалить опрос", - "privacy.change": "Изменить видимость статуса", + "privacy.change": "Изменить видимость поста", "privacy.direct.long": "Показать только упомянутым", - "privacy.direct.short": "Направленный", + "privacy.direct.short": "Адресованный", "privacy.private.long": "Показать только подписчикам", "privacy.private.short": "Приватный", "privacy.public.long": "Показать в публичных лентах", "privacy.public.short": "Публичный", - "privacy.unlisted.long": "Не показывать в лентах", + "privacy.unlisted.long": "Не показывать в публичных лентах", "privacy.unlisted.short": "Скрытый", "refresh": "Обновить", "regeneration_indicator.label": "Загрузка…", "regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!", - "relative_time.days": "{number}д", - "relative_time.hours": "{number}ч", + "relative_time.days": "{number} д", + "relative_time.hours": "{number} ч", "relative_time.just_now": "только что", - "relative_time.minutes": "{number}м", - "relative_time.seconds": "{number}с", + "relative_time.minutes": "{number} мин", + "relative_time.seconds": "{number} с", "reply_indicator.cancel": "Отмена", "report.forward": "Переслать в {target}", - "report.forward_hint": "Этот аккаунт расположен на другом узле. Отправить туда анонимную копию вашей жалобы?", + "report.forward_hint": "Эта учётная запись расположена на другом узле. Отправить туда анонимную копию вашей жалобы?", "report.hint": "Жалоба будет отправлена модераторам вашего узла. Вы также можете указать подробную причину жалобы ниже:", "report.placeholder": "Комментарий", "report.submit": "Отправить", @@ -333,53 +343,55 @@ "search_popout.search_format": "Продвинутый формат поиска", "search_popout.tips.full_text": "Поиск по простому тексту отобразит посты, которые вы написали, добавили в избранное, продвинули или в которых были упомянуты, а также подходящие имена пользователей и хэштеги.", "search_popout.tips.hashtag": "хэштег", - "search_popout.tips.status": "статус", + "search_popout.tips.status": "пост", "search_popout.tips.text": "Простой ввод текста покажет совпадающие имена пользователей, отображаемые имена и хэштеги", "search_popout.tips.user": "пользователь", "search_results.accounts": "Люди", "search_results.hashtags": "Хэштеги", "search_results.statuses": "Посты", - "search_results.statuses_fts_disabled": "Поиск постов по их контенту не поддерживается на этом сервере Mastodon.", + "search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным узлом Mastodon.", "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}", "status.admin_account": "Открыть интерфейс модератора для @{name}", - "status.admin_status": "Открыть этот статус в интерфейсе модератора", + "status.admin_status": "Открыть этот пост в интерфейсе модератора", "status.block": "Заблокировать @{name}", + "status.bookmark": "Добавить в закладки", "status.cancel_reblog_private": "Не продвигать", - "status.cannot_reblog": "Этот статус не может быть продвинут", - "status.copy": "Копировать ссылку на запись", + "status.cannot_reblog": "Этот пост не может быть продвинут", + "status.copy": "Скопировать ссылку на пост", "status.delete": "Удалить", "status.detailed_status": "Подробный просмотр обсуждения", "status.direct": "Написать @{name}", - "status.embed": "Встроить", + "status.embed": "Встроить на свой сайт", "status.favourite": "Нравится", "status.filtered": "Отфильтровано", - "status.load_more": "Показать еще", + "status.load_more": "Загрузить остальное", "status.media_hidden": "Медиа скрыто", "status.mention": "Упомянуть @{name}", "status.more": "Больше", - "status.mute": "Заглушить @{name}", - "status.mute_conversation": "Заглушить всё обсуждение", - "status.open": "Развернуть статус", + "status.mute": "Игнорировать @{name}", + "status.mute_conversation": "Игнорировать обсуждение", + "status.open": "Открыть пост", "status.pin": "Закрепить в профиле", - "status.pinned": "Закреплённый статус", + "status.pinned": "Закреплённый пост", "status.read_more": "Ещё", "status.reblog": "Продвинуть", "status.reblog_private": "Продвинуть для своей аудитории", "status.reblogged_by": "{name} продвинул(а)", - "status.reblogs.empty": "Никто ещё не продвинул этот статус. Как только кто-то это сделает, они появятся здесь.", + "status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.", "status.redraft": "Удалить и исправить", + "status.remove_bookmark": "Убрать из закладок", "status.reply": "Ответить", "status.replyAll": "Ответить всем", "status.report": "Пожаловаться", - "status.sensitive_warning": "Чувствительный контент", + "status.sensitive_warning": "Деликатное содержимое", "status.share": "Поделиться", "status.show_less": "Свернуть", - "status.show_less_all": "Свернуть для всех", + "status.show_less_all": "Свернуть все спойлеры в ветке", "status.show_more": "Развернуть", - "status.show_more_all": "Развернуть для всех", + "status.show_more_all": "Развернуть все спойлеры в ветке", "status.show_thread": "Показать обсуждение", "status.uncached_media_warning": "Недоступно", - "status.unmute_conversation": "Снять глушение с обсуждения", + "status.unmute_conversation": "Не игнорировать обсуждение", "status.unpin": "Открепить от профиля", "suggestions.dismiss": "Удалить предложение", "suggestions.header": "Вам может быть интересно…", @@ -392,17 +404,19 @@ "time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}", "time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}", "time_remaining.moments": "остались считанные мгновения", - "time_remaining.seconds": "{number, plural, one {осталась # секунду} few {осталось # секунды} many {осталось # секунд} other {осталось # секунд}}", + "time_remaining.seconds": "{number, plural, one {# секунда} many {# секунд} other {# секунды}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {человек говорит} few {человека говорят} other {человек говорят}} про это", "trends.trending_now": "Самое актуальное", "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.", "upload_area.title": "Перетащите сюда, чтобы загрузить", - "upload_button.label": "Добавить медиаконтент", + "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": "На дворе трава, на траве дрова", @@ -412,11 +426,12 @@ "upload_modal.preview_label": "Предпросмотр ({ratio})", "upload_progress.label": "Загрузка...", "video.close": "Закрыть видео", + "video.download": "Загрузить файл", "video.exit_fullscreen": "Покинуть полноэкранный режим", "video.expand": "Развернуть видео", "video.fullscreen": "Полноэкранный режим", "video.hide": "Скрыть видео", - "video.mute": "Заглушить звук", + "video.mute": "Выключить звук", "video.pause": "Пауза", "video.play": "Пуск", "video.unmute": "Включить звук" diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 0766e703f..689d6245c 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -1,10 +1,11 @@ { "account.add_or_remove_from_list": "Pridaj do, alebo odober zo zoznamov", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokuj @{name}", "account.block_domain": "Ukry všetko z {domain}", "account.blocked": "Blokovaný/á", - "account.cancel_follow_request": "Zruš požiadanie o sledovanie", + "account.cancel_follow_request": "Zruš žiadosť o sledovanie", "account.direct": "Priama správa pre @{name}", "account.domain_blocked": "Doména ukrytá", "account.edit_profile": "Uprav profil", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.", "bundle_modal_error.retry": "Skúsiť znova", "column.blocks": "Blokovaní užívatelia", + "column.bookmarks": "Záložky", "column.community": "Miestna časová os", "column.direct": "Priame správy", "column.directory": "Prehľadávaj profily", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Trvanie ankety", "compose_form.poll.option_placeholder": "Voľba {number}", "compose_form.poll.remove_option": "Odstráň túto voľbu", + "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": "Pošli", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označ médiá ako chúlostivé", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Niesú tu žiadne príspevky!", "empty_column.account_unavailable": "Profil nedostupný", "empty_column.blocks": "Ešte si nikoho nezablokoval/a.", + "empty_column.bookmarked_statuses": "Ešte nemáš žiadné záložky. Keď si pridáš príspevok k záložkám, zobrazí sa tu.", "empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!", "empty_column.direct": "Ešte nemáš žiadne priame správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.", "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", @@ -176,8 +181,8 @@ "hashtag.column_settings.tag_mode.none": "Žiaden z týchto", "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec", "home.column_settings.basic": "Základné", - "home.column_settings.show_reblogs": "Zobraziť povýšené", - "home.column_settings.show_replies": "Ukázať odpovede", + "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté", + "home.column_settings.show_replies": "Ukáž odpovede", "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodín}}", "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}", @@ -192,7 +197,7 @@ "introduction.interactions.favourite.headline": "Obľúbené", "introduction.interactions.favourite.text": "Obľúbením si môžeš príspevok uložiť na neskôr, a zároveň dať jeho autorovi vedieť, že sa ti páčil.", "introduction.interactions.reblog.headline": "Vyzdvihni", - "introduction.interactions.reblog.text": "Môžeš zdieľať príspevky iných ľudí s vašimi následovateľmi tým, že ich povýšiš.", + "introduction.interactions.reblog.text": "Môžeš zdieľať príspevky iných ľudí s tvojími následovateľmi tak, že ich vyzdvihneš.", "introduction.interactions.reply.headline": "Odpovedz", "introduction.interactions.reply.text": "Odpovedať môžeš na príspevky iných ľudí, aj na svoje vlastné, čím sa spolu prepoja do konverzácie.", "introduction.welcome.action": "Poďme do toho!", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov", "keyboard_shortcuts.my_profile": "otvor svoj profil", "keyboard_shortcuts.notifications": "otvor panel oboznámení", + "keyboard_shortcuts.open_media": "na otvorenie médií", "keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov", "keyboard_shortcuts.profile": "otvor autorov profil", "keyboard_shortcuts.reply": "odpovedať", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?", "navigation_bar.apps": "Aplikácie", "navigation_bar.blocks": "Blokovaní užívatelia", + "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Miestna časová os", "navigation_bar.compose": "Napíš nový príspevok", "navigation_bar.direct": "Priame správy", @@ -268,12 +275,14 @@ "navigation_bar.mutes": "Ignorovaní užívatelia", "navigation_bar.personal": "Osobné", "navigation_bar.pins": "Pripnuté príspevky", - "navigation_bar.preferences": "Voľby", + "navigation_bar.preferences": "Nastavenia", "navigation_bar.public_timeline": "Federovaná časová os", "navigation_bar.security": "Zabezbečenie", "notification.favourite": "{name} si obľúbil/a tvoj príspevok", "notification.follow": "{name} ťa začal/a následovať", + "notification.follow_request": "{name} žiada ťa následovať", "notification.mention": "{name} ťa spomenul/a", + "notification.own_poll": "Tvoja anketa sa skončila", "notification.poll": "Anketa v ktorej si hlasoval/a sa skončila", "notification.reblog": "{name} zdieľal/a tvoj príspevok", "notifications.clear": "Vyčisti oboznámenia", @@ -284,11 +293,12 @@ "notifications.column_settings.filter_bar.category": "Rýchle triedenie", "notifications.column_settings.filter_bar.show": "Ukáž", "notifications.column_settings.follow": "Noví sledujúci:", + "notifications.column_settings.follow_request": "Nové žiadosti o následovanie:", "notifications.column_settings.mention": "Zmienenia:", "notifications.column_settings.poll": "Výsledky ankiet:", "notifications.column_settings.push": "Push notifikácie", "notifications.column_settings.reblog": "Vyzdvihnutia:", - "notifications.column_settings.show": "Zobraz v stĺpci", + "notifications.column_settings.show": "Ukáž v stĺpci", "notifications.column_settings.sound": "Prehraj zvuk", "notifications.filter.all": "Všetky", "notifications.filter.boosts": "Vyzdvihnutia", @@ -344,6 +354,7 @@ "status.admin_account": "Otvor moderovacie rozhranie užívateľa @{name}", "status.admin_status": "Otvor tento príspevok v moderovacom rozhraní", "status.block": "Blokuj @{name}", + "status.bookmark": "Záložka", "status.cancel_reblog_private": "Nezdieľaj", "status.cannot_reblog": "Tento príspevok nemôže byť zdieľaný", "status.copy": "Skopíruj odkaz na príspevok", @@ -365,9 +376,10 @@ "status.read_more": "Čítaj ďalej", "status.reblog": "Vyzdvihni", "status.reblog_private": "Vyzdvihni k pôvodnému publiku", - "status.reblogged_by": "{name} povýšil/a", + "status.reblogged_by": "{name} vyzdvihli", "status.reblogs.empty": "Nikto ešte nevyzdvihol tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.", "status.redraft": "Vymaž a prepíš", + "status.remove_bookmark": "Odstráň záložku", "status.reply": "Odpovedať", "status.replyAll": "Odpovedz na diskusiu", "status.report": "Nahlás @{name}", @@ -393,25 +405,28 @@ "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}", "time_remaining.moments": "Ostáva už iba chviľka", "time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekúnd}}", - "trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}", + "trends.count_by_accounts": "{count} {rawCount, plural, one {človek spomína} other {ľudí spomína}}", "trends.trending_now": "Teraz populárne", "ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.", "upload_area.title": "Pretiahni a pusť pre nahratie", "upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.", "upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.", + "upload_form.audio_description": "Popíš, pre ľudí so stratou sluchu", "upload_form.description": "Opis pre slabo vidiacich", "upload_form.edit": "Uprav", "upload_form.undo": "Vymaž", + "upload_form.video_description": "Popíš, pre ľudí so stratou sluchu, alebo očným znevýhodnením", "upload_modal.analyzing_picture": "Analyzujem obrázok…", "upload_modal.apply": "Použi", "upload_modal.description_placeholder": "Rýchla hnedá líška skáče ponad lenivého psa", "upload_modal.detect_text": "Rozpoznaj text z obrázka", "upload_modal.edit_media": "Uprav médiá", - "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": "Klikni, alebo potiahni okruh ukážky pre zvolenie z ktorého východzieho bodu bude vždy v dohľadne na všetkých náhľadoch.", "upload_modal.preview_label": "Náhľad ({ratio})", "upload_progress.label": "Nahráva sa...", "video.close": "Zavri video", + "video.download": "Stiahni súbor", "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku", "video.expand": "Zväčši video", "video.fullscreen": "Zobraz na celú obrazovku", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index ecac0d9c7..da816837f 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Dodaj ali odstrani iz seznama", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Blokiraj @{name}", "account.block_domain": "Skrij vse iz {domain}", "account.blocked": "Blokirano", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Med nalaganjem te komponente je prišlo do napake.", "bundle_modal_error.retry": "Poskusi ponovno", "column.blocks": "Blokirani uporabniki", + "column.bookmarks": "Bookmarks", "column.community": "Lokalna časovnica", "column.direct": "Neposredna sporočila", "column.directory": "Browse profiles", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Trajanje ankete", "compose_form.poll.option_placeholder": "Izbira {number}", "compose_form.poll.remove_option": "Odstrani to izbiro", + "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": "Tutni", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označi medij kot občutljiv", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Tukaj ni tutov!", "empty_column.account_unavailable": "Profil ni na voljo", "empty_column.blocks": "Niste še blokirali nobenega uporabnika.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!", "empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga boste poslali ali prejeli, se bo prikazal tukaj.", "empty_column.domain_blocks": "Še vedno ni skritih domen.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "odpri seznam utišanih uporabnikov", "keyboard_shortcuts.my_profile": "odpri svoj profil", "keyboard_shortcuts.notifications": "odpri stolpec z obvestili", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "odpri seznam pripetih tutov", "keyboard_shortcuts.profile": "odpri avtorjev profil", "keyboard_shortcuts.reply": "odgovori", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Skrij obvestila tega uporabnika?", "navigation_bar.apps": "Mobilne aplikacije", "navigation_bar.blocks": "Blokirani uporabniki", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna časovnica", "navigation_bar.compose": "Sestavi nov tut", "navigation_bar.direct": "Neposredna sporočila", @@ -273,7 +280,9 @@ "navigation_bar.security": "Varnost", "notification.favourite": "{name} je vzljubil/a vaš status", "notification.follow": "{name} vam sledi", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} vas je omenil/a", + "notification.own_poll": "Your poll has ended", "notification.poll": "Glasovanje, v katerem ste sodelovali, se je končalo", "notification.reblog": "{name} je spodbudil/a vaš status", "notifications.clear": "Počisti obvestila", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Vrstica za hitro filtriranje", "notifications.column_settings.filter_bar.show": "Pokaži", "notifications.column_settings.follow": "Novi sledilci:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Omembe:", "notifications.column_settings.poll": "Rezultati glasovanja:", "notifications.column_settings.push": "Potisna obvestila", @@ -344,6 +354,7 @@ "status.admin_account": "Odpri vmesnik za moderiranje za @{name}", "status.admin_status": "Odpri status v vmesniku za moderiranje", "status.block": "Blokiraj @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Prekini spodbudo", "status.cannot_reblog": "Te objave ni mogoče spodbuditi", "status.copy": "Kopiraj povezavo do statusa", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} spodbuja", "status.reblogs.empty": "Nihče še ni spodbudil tega tuta. Ko se bo to zgodilo, se bodo pojavili tukaj.", "status.redraft": "Izbriši in preoblikuj", + "status.remove_bookmark": "Remove bookmark", "status.reply": "Odgovori", "status.replyAll": "Odgovori na objavo", "status.report": "Prijavi @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Dodaj medije ({formats})", "upload_error.limit": "Omejitev prenosa datoteke je presežena.", "upload_error.poll": "Prenos datoteke z anketami ni dovoljen.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Opišite za slabovidne", "upload_form.edit": "Edit", "upload_form.undo": "Izbriši", + "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": "Pošiljanje...", "video.close": "Zapri video", + "video.download": "Download file", "video.exit_fullscreen": "Izhod iz celozaslonskega načina", "video.expand": "Razširi video", "video.fullscreen": "Celozaslonski način", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index f58466d87..0b5a613c2 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Blloko @{name}", "account.block_domain": "Fshih gjithçka prej {domain}", "account.blocked": "E bllokuar", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Diç shkoi ters teksa ngarkohej ky përbërës.", "bundle_modal_error.retry": "Riprovoni", "column.blocks": "Përdorues të bllokuar", + "column.bookmarks": "Bookmarks", "column.community": "Rrjedhë kohore vendore", "column.direct": "Mesazhe të drejtpërdrejta", "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": "Mesazh", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Mark media as sensitive", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "S’ka mesazhe këtu!", "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.", "empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!", "empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejt. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.", "empty_column.domain_blocks": "Ende s’ka përkatësi të fshehura.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "për hapje liste përdoruesish të heshtuar", "keyboard_shortcuts.my_profile": "për hapjen e profilit tuaj", "keyboard_shortcuts.notifications": "për hapje shtylle njoftimesh", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "për hapje liste mesazhesh të fiksuar", "keyboard_shortcuts.profile": "për hapje të profilit të autorit", "keyboard_shortcuts.reply": "për t’u përgjigjur", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Të fshihen njoftimet prej këtij përdoruesi?", "navigation_bar.apps": "Aplikacione për celular", "navigation_bar.blocks": "Përdorues të bllokuar", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Rrjedhë kohore vendore", "navigation_bar.compose": "Hartoni mesazh të ri", "navigation_bar.direct": "Mesazhe të drejtpërdrejta", @@ -273,7 +280,9 @@ "navigation_bar.security": "Siguri", "notification.favourite": "{name} parapëlqeu gjendjen tuaj", "notification.follow": "{name} zuri t’ju ndjekë", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} ju ka përmendur", + "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} përforcoi gjendjen tuaj", "notifications.clear": "Pastroji njoftimet", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta", "notifications.column_settings.filter_bar.show": "Shfaq", "notifications.column_settings.follow": "Ndjekës të rinj:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Përmendje:", "notifications.column_settings.poll": "Poll results:", "notifications.column_settings.push": "Njoftime Push", @@ -344,6 +354,7 @@ "status.admin_account": "Hap ndërfaqe moderimi për @{name}", "status.admin_status": "Hape këtë gjendje te ndërfaqja e moderimit", "status.block": "Blloko @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Shpërforcojeni", "status.cannot_reblog": "Ky postim s’mund të përforcohet", "status.copy": "Kopjoje lidhjen te gjendje", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} përforcoi", "status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.", "status.redraft": "Fshijeni & rihartojeni", + "status.remove_bookmark": "Remove bookmark", "status.reply": "Përgjigjuni", "status.replyAll": "Përgjigjuni rrjedhës", "status.report": "Raportojeni @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Shtoni media (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "U tejkalua kufi ngarkimi kartelash.", "upload_error.poll": "File upload not allowed with polls.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Përshkruajeni për persona me probleme shikimi", "upload_form.edit": "Edit", "upload_form.undo": "Fshije", + "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": "Po ngarkohet…", "video.close": "Mbylle videon", + "video.download": "Download file", "video.exit_fullscreen": "Dil nga mënyra Sa Krejt Ekrani", "video.expand": "Zgjeroje videon", "video.fullscreen": "Sa krejt ekrani", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 59b8459ae..aab2dfa15 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "Blokiraj korisnika @{name}", "account.block_domain": "Sakrij sve sa domena {domain}", "account.blocked": "Blocked", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovo", "column.blocks": "Blokirani korisnici", + "column.bookmarks": "Bookmarks", "column.community": "Lokalna lajna", "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": "Tutni", "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": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!", "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": "da odgovorite", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?", "navigation_bar.apps": "Mobile apps", "navigation_bar.blocks": "Blokirani korisnici", + "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna lajna", "navigation_bar.compose": "Compose new toot", "navigation_bar.direct": "Direct messages", @@ -273,7 +280,9 @@ "navigation_bar.security": "Security", "notification.favourite": "{name} je stavio Vaš status kao omiljeni", "notification.follow": "{name} Vas je zapratio", + "notification.follow_request": "{name} has requested to follow you", "notification.mention": "{name} Vas je pomenuo", + "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} je podržao(la) Vaš status", "notifications.clear": "Očisti obaveštenja", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.follow": "Novi pratioci:", + "notifications.column_settings.follow_request": "New follow requests:", "notifications.column_settings.mention": "Pominjanja:", "notifications.column_settings.poll": "Poll results:", "notifications.column_settings.push": "Guraj obaveštenja", @@ -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": "Ovaj status ne može da se podrži", "status.copy": "Copy link to status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} podržao(la)", "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": "Odgovori", "status.replyAll": "Odgovori na diskusiju", "status.report": "Prijavi korisnika @{name}", @@ -400,9 +412,11 @@ "upload_button.label": "Dodaj multimediju", "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": "Opiši za slabovide osobe", "upload_form.edit": "Edit", "upload_form.undo": "Opozovi", + "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": "Otpremam...", "video.close": "Zatvori video", + "video.download": "Download file", "video.exit_fullscreen": "Napusti ceo ekran", "video.expand": "Proširi video", "video.fullscreen": "Ceo ekran", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index d222e774d..35436a93d 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Бот", + "account.badges.group": "Group", "account.block": "Блокирај @{name}", "account.block_domain": "Сакриј све са домена {domain}", "account.blocked": "Блокиран", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.", "bundle_modal_error.retry": "Покушајте поново", "column.blocks": "Блокирани корисници", + "column.bookmarks": "Bookmarks", "column.community": "Локална временска линија", "column.direct": "Директне поруке", "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": "Још увек немате блокираних корисника.", + "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": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} је подржао/ла Ваш статус", "notifications.clear": "Очисти обавештења", @@ -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": "Гурај обавештења", @@ -344,6 +354,7 @@ "status.admin_account": "Open moderation interface for @{name}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Блокирај @{name}", + "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Уклони подршку", "status.cannot_reblog": "Овај статус не може да се подржи", "status.copy": "Copy link to status", @@ -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": "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": "Опишите за особе са оштећеним видом", "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": "Отпремам...", "video.close": "Затвори видео", + "video.download": "Download file", "video.exit_fullscreen": "Напусти цео екран", "video.expand": "Прошири видео", "video.fullscreen": "Цео екран", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 9b12f337b..843ab9fc0 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Lägg till i eller ta bort från listor", "account.badges.bot": "Robot", + "account.badges.group": "Group", "account.block": "Blockera @{name}", "account.block_domain": "Dölj allt från {domain}", "account.blocked": "Blockerad", @@ -37,7 +38,7 @@ "account.unendorse": "Visa inte på profil", "account.unfollow": "Sluta följ", "account.unmute": "Sluta tysta @{name}", - "account.unmute_notifications": "Återaktivera notifieringar från @{name}", + "account.unmute_notifications": "Återaktivera aviseringar från @{name}", "alert.rate_limited.message": "Vänligen försök igen efter {retry_time, time, medium}.", "alert.rate_limited.title": "Mängd begränsad", "alert.unexpected.message": "Ett oväntat fel uppstod.", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Något gick fel när denna komponent laddades.", "bundle_modal_error.retry": "Försök igen", "column.blocks": "Blockerade användare", + "column.bookmarks": "Bokmärken", "column.community": "Lokal tidslinje", "column.direct": "Direktmeddelanden", "column.directory": "Bläddra bland profiler", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Varaktighet för omröstning", "compose_form.poll.option_placeholder": "Val {number}", "compose_form.poll.remove_option": "Ta bort detta val", + "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": "Markera media som känsligt", @@ -99,7 +103,7 @@ "confirmations.delete_list.confirm": "Ta bort", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.domain_block.confirm": "Dölj hela domänen", - "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina notifieringar. Dina följare från den domänen komer att tas bort.", + "confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.", "confirmations.logout.confirm": "Logga ut", "confirmations.logout.message": "Är du säker på att du vill logga ut?", "confirmations.mute.confirm": "Tysta", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Inga inlägg här!", "empty_column.account_unavailable": "Profilen ej tillgänglig", "empty_column.blocks": "Du har ännu ej blockerat några användare.", + "empty_column.bookmarked_statuses": "Du har inte bokmärkt några tutar än. När du gör ett bokmärke kommer det synas här.", "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!", "empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot ett kommer det att visas här.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", @@ -164,7 +169,7 @@ "getting_started.heading": "Kom igång", "getting_started.invite": "Skicka inbjudningar", "getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem via GitHub på {github}.", - "getting_started.security": "Säkerhet", + "getting_started.security": "Kontoinställningar", "getting_started.terms": "Användarvillkor", "hashtag.column_header.tag_mode.all": "och {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", @@ -179,8 +184,8 @@ "home.column_settings.show_reblogs": "Visa knuffar", "home.column_settings.show_replies": "Visa svar", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", - "intervals.full.hours": "{hours, plural, one {# timme} other {# timmar}}", - "intervals.full.minutes": "{minutes, plural, one {1 minut} other {# minuter}}", + "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}", + "intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}", "introduction.federation.action": "Nästa", "introduction.federation.federated.headline": "Federerad", "introduction.federation.federated.text": "Publika inlägg från andra servrar i servernätverket visas i den förenade tidslinjen.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "för att öppna listan över tystade användare", "keyboard_shortcuts.my_profile": "för att öppna din profil", "keyboard_shortcuts.notifications": "för att öppna Meddelanden", + "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "för att öppna Nålade toots", "keyboard_shortcuts.profile": "för att öppna skaparens profil", "keyboard_shortcuts.reply": "för att svara", @@ -248,9 +254,10 @@ "media_gallery.toggle_visible": "Växla synlighet", "missing_indicator.label": "Hittades inte", "missing_indicator.sublabel": "Den här resursen kunde inte hittas", - "mute_modal.hide_notifications": "Dölj notifikationer från denna användare?", + "mute_modal.hide_notifications": "Dölj aviseringar från denna användare?", "navigation_bar.apps": "Mobilappar", "navigation_bar.blocks": "Blockerade användare", + "navigation_bar.bookmarks": "Bokmärken", "navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.compose": "Författa ny toot", "navigation_bar.direct": "Direktmeddelanden", @@ -273,20 +280,23 @@ "navigation_bar.security": "Säkerhet", "notification.favourite": "{name} favoriserade din status", "notification.follow": "{name} följer dig", + "notification.follow_request": "{name} har begärt att följa dig", "notification.mention": "{name} nämnde dig", + "notification.own_poll": "Din röstning har avslutats", "notification.poll": "En omröstning du röstat i har avslutats", "notification.reblog": "{name} knuffade din status", - "notifications.clear": "Rensa meddelanden", - "notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?", - "notifications.column_settings.alert": "Skrivbordsmeddelanden", + "notifications.clear": "Rensa aviseringar", + "notifications.clear_confirmation": "Är du säker på att du vill rensa alla dina aviseringar permanent?", + "notifications.column_settings.alert": "Skrivbordsaviseringar", "notifications.column_settings.favourite": "Favoriter:", "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier", "notifications.column_settings.filter_bar.category": "Snabbfilter", "notifications.column_settings.filter_bar.show": "Visa", "notifications.column_settings.follow": "Nya följare:", + "notifications.column_settings.follow_request": "Ny följ-förfrågan:", "notifications.column_settings.mention": "Omnämningar:", "notifications.column_settings.poll": "Omröstningsresultat:", - "notifications.column_settings.push": "Push meddelanden", + "notifications.column_settings.push": "Push-aviseringar", "notifications.column_settings.reblog": "Knuffar:", "notifications.column_settings.show": "Visa i kolumnen", "notifications.column_settings.sound": "Spela upp ljud", @@ -344,6 +354,7 @@ "status.admin_account": "Öppet modereringsgränssnitt för @{name}", "status.admin_status": "Öppna denna status i modereringsgränssnittet", "status.block": "Blockera @{name}", + "status.bookmark": "Bokmärk", "status.cancel_reblog_private": "Ta bort knuff", "status.cannot_reblog": "Detta inlägg kan inte knuffas", "status.copy": "Kopiera länk till status", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} knuffade", "status.reblogs.empty": "Ingen har favoriserat den här tutningen än. När någon gör det kommer den att synas här.", "status.redraft": "Radera & gör om", + "status.remove_bookmark": "Ta bort bokmärke", "status.reply": "Svara", "status.replyAll": "Svara på tråden", "status.report": "Rapportera @{name}", @@ -386,7 +398,7 @@ "tabs_bar.federated_timeline": "Förenad", "tabs_bar.home": "Hem", "tabs_bar.local_timeline": "Lokal", - "tabs_bar.notifications": "Meddelanden", + "tabs_bar.notifications": "Aviseringar", "tabs_bar.search": "Sök", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} kvar", "time_remaining.hours": "{hours, plural, one {# timme} other {# timmar}} kvar", @@ -400,9 +412,11 @@ "upload_button.label": "Lägg till media", "upload_error.limit": "Filöverföringsgränsen överskriden.", "upload_error.poll": "Filuppladdning tillåts inte med omröstningar.", + "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Beskriv för synskadade", "upload_form.edit": "Redigera", "upload_form.undo": "Ta bort", + "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Analyserar bild…", "upload_modal.apply": "Verkställ", "upload_modal.description_placeholder": "En snabb brun räv hoppar över den lata hunden", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Förhandstitt ({ratio})", "upload_progress.label": "Laddar upp...", "video.close": "Stäng video", + "video.download": "Ladda ner fil", "video.exit_fullscreen": "Stäng helskärm", "video.expand": "Expandera video", "video.fullscreen": "Helskärm", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 9be141523..ddd1d9fd7 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -1,16 +1,17 @@ { - "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.cancel_follow_request": "பின்தொடரும் கோரிக்கையை நிராகரி", "account.direct": "நேரடி செய்தி @{name}", "account.domain_blocked": "மறைக்கப்பட்டத் தளங்கள்", "account.edit_profile": "சுயவிவரத்தை மாற்று", "account.endorse": "சுயவிவரத்தில் வெளிப்படுத்து", "account.follow": "பின்தொடர்", - "account.followers": "பின்பற்றுபவர்கள்", + "account.followers": "பின்தொடர்பவர்கள்", "account.followers.empty": "இதுவரை யாரும் இந்த பயனரைப் பின்தொடரவில்லை.", "account.follows": "பின்தொடர்", "account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.", @@ -18,7 +19,7 @@ "account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}", "account.last_status": "கடைசி செயல்பாடு", "account.link_verified_on": "இந்த இணைப்பை உரிமையாளர் சரிபார்க்கப்பட்டது {date}", - "account.locked_info": "இந்த கணக்கின் தனியுரிமை நிலை பூட்டப்படவுள்ளது. உரிமையாளர் தன்னை யார் பின்தொடரலாம் என்பதை தானே முடிவு செய்வார்.", + "account.locked_info": "இந்தக் கணக்கு தனியுரிமை நிலை பூட்டப்பட்டுள்ளது. அவர்களைப் பின்தொடர்பவர் யார் என்பதை உரிமையாளர் கைமுறையாக மதிப்பாய்வு செய்கிறார்.", "account.media": "ஊடகங்கள்", "account.mention": "குறிப்பிடு @{name}", "account.moved_to": "{name} நகர்த்தப்பட்டது:", @@ -29,37 +30,38 @@ "account.posts": "டூட்டுகள்", "account.posts_with_replies": "Toots மற்றும் பதில்கள்", "account.report": "@{name} -ஐப் புகாரளி", - "account.requested": "ஒப்புதலுக்காக காத்திருக்கிறது. கோரிக்கையை ரத்துசெய்ய கிளிக் செய்க", + "account.requested": "ஒப்புதலுக்காகக் காத்திருக்கிறது. பின்தொடரும் கோரிக்கையை நீக்க அழுத்தவும்", "account.share": "@{name} உடைய விவரத்தை பகிர்", "account.show_reblogs": "காட்டு boosts இருந்து @{name}", - "account.unblock": "விடுவி @{name}", - "account.unblock_domain": "காண்பி {domain}", - "account.unendorse": "சுயவிவரத்தில் அம்சம் இல்லை", - "account.unfollow": "பின்தொடராட்", - "account.unmute": "தடுப்புநீக்கு @{name}", - "account.unmute_notifications": "அறிவிப்புகளை அகற்றவும் @{name}", - "alert.rate_limited.message": "{retry_time, time, medium} மணிக்குப் பிறகு மீண்டும் முயற்சிக்கவும்.", - "alert.rate_limited.title": "விகித அளவுக்கு உட்படுத்தப்பட்டது", + "account.unblock": "@{name} மீது தடை நீக்குக", + "account.unblock_domain": "{domain} ஐ காண்பி", + "account.unendorse": "சுயவிவரத்தில் இடம்பெற வேண்டாம்", + "account.unfollow": "பின்தொடர்வதை நிறுத்துக", + "account.unmute": "@{name} இன் மீது மௌனத் தடையை நீக்குக", + "account.unmute_notifications": "@{name} இலிருந்து அறிவிப்புகளின் மீது மௌனத் தடையை நீக்குக", + "alert.rate_limited.message": "{retry_time, time, medium} க்கு பிறகு மீண்டும் முயற்சிக்கவும்.", + "alert.rate_limited.title": "விகிதம் வரையறுக்கப்பட்டுள்ளது", "alert.unexpected.message": "எதிர்பாராத பிழை ஏற்பட்டுவிட்டது.", "alert.unexpected.title": "அச்சச்சோ!", - "autosuggest_hashtag.per_week": "வாரத்திற்கு {count}", + "autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}", "boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்", - "bundle_column_error.body": "இந்த பகுதி கூறை ஏற்றம் செய்யும் பொது ஏதோ தவறு ஏற்பட்டுள்ளது.", - "bundle_column_error.retry": "மீண்டும் முயற்சி செய்", + "bundle_column_error.body": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", + "bundle_column_error.retry": "மீண்டும் முயல்க", "bundle_column_error.title": "பிணையப் பிழை", - "bundle_modal_error.close": "நெருக்கமாக", - "bundle_modal_error.message": "இந்த கூறுகளை ஏற்றும்போது ஏதோ தவறு ஏற்பட்டது.", + "bundle_modal_error.close": "மூடுக", + "bundle_modal_error.message": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", "bundle_modal_error.retry": "மீண்டும் முயற்சி செய்", "column.blocks": "தடுக்கப்பட்ட பயனர்கள்", - "column.community": "உள்ளூர் காலக்கெடு", - "column.direct": "நேரடி செய்திகள்", + "column.bookmarks": "Bookmarks", + "column.community": "சுய நிகழ்வு காலவரிசை", + "column.direct": "நேர் சேதிகள்", "column.directory": "சுயவிவரங்களை உலாவு", - "column.domain_blocks": "மறைந்த களங்கள்", - "column.favourites": "விருப்பத்துக்குகந்த", - "column.follow_requests": "கோரிக்கைகளை பின்பற்றவும்", - "column.home": "முதற்பக்கம்", - "column.lists": "குதிரை வீர்ர்கள்", - "column.mutes": "முடக்கப்பட்ட பயனர்கள்", + "column.domain_blocks": "மறைந்திருக்கும் திரளங்கள்", + "column.favourites": "பிடித்தவைகள்", + "column.follow_requests": "பின்தொடர அனுமதிகள்", + "column.home": "முகப்பு", + "column.lists": "பட்டியல்கள்", + "column.mutes": "மௌனத் தடை செய்யப்பட்ட பயனர்கள்", "column.notifications": "அறிவிப்புகள்", "column.pins": "Pinned toot", "column.public": "கூட்டாட்சி காலக்கெடு", @@ -71,7 +73,7 @@ "column_header.show_settings": "அமைப்புகளைக் காட்டு", "column_header.unpin": "பொருத்தப்படாத", "column_subheading.settings": "அமைப்புகள்", - "community.column_settings.media_only": "மீடியா மட்டுமே", + "community.column_settings.media_only": "படங்கள் மட்டுமே", "compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.", "compose_form.direct_message_warning_learn_more": "மேலும் அறிக", "compose_form.hashtag_warning": "இந்த toot பட்டியலிடப்படாதது போல எந்த ஹேஸ்டேக்கின் கீழ் பட்டியலிடப்படாது. ஹேஸ்டேக் மூலம் பொது டோட்டல்கள் மட்டுமே தேட முடியும்.", @@ -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": "இல்லை toots இங்கே!", "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": "படத்தைத் திறக்க‌", "keyboard_shortcuts.pinned": "திறக்க பொருத்தப்பட்டன toots பட்டியல்", "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": "புதியவற்றை எழுதுக toot", "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,9 +412,11 @@ "upload_button.label": "மீடியாவைச் சேர்க்கவும் (JPEG, PNG, GIF, WebM, MP4, MOV)", "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": "பொருள் விளக்கம்", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "முன்னோட்டம் ({ratio})", "upload_progress.label": "ஏற்றுகிறது ...", "video.close": "வீடியோவை மூடு", + "video.download": "கோப்பைப் பதிவிறக்கவும்", "video.exit_fullscreen": "முழு திரையில் இருந்து வெளியேறவும்", "video.expand": "வீடியோவை விரிவாக்கு", "video.fullscreen": "முழுத்திரை", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 3cfbc5786..12af667c7 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "జాబితాల నుండి చేర్చు లేదా తీసివేయి", "account.badges.bot": "బాట్", + "account.badges.group": "Group", "account.block": "@{name} ను బ్లాక్ చేయి", "account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు", "account.blocked": "బ్లాక్ అయినవి", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "ఈ భాగం లోడ్ అవుతున్నప్పుడు ఏదో తప్పు జరిగింది.", "bundle_modal_error.retry": "మళ్ళీ ప్రయత్నించండి", "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", + "column.bookmarks": "Bookmarks", "column.community": "స్థానిక కాలక్రమం", "column.direct": "ప్రత్యక్ష సందేశాలు", "column.directory": "Browse profiles", @@ -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": "Mark media as sensitive", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "ఇక్కడ ఏ టూట్లూ లేవు!No toots here!", "empty_column.account_unavailable": "Profile 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": "Your poll has ended", "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": "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": "దృష్టి లోపమున్న వారి కోసం వివరించండి", "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": "అప్లోడ్ అవుతోంది...", "video.close": "వీడియోని మూసివేయి", + "video.download": "Download file", "video.exit_fullscreen": "పూర్తి స్క్రీన్ నుండి నిష్క్రమించు", "video.expand": "వీడియోను విస్తరించండి", "video.fullscreen": "పూర్తి స్క్రీన్", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 7db168338..0c42944ee 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -1,9 +1,10 @@ { "account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ", "account.badges.bot": "บอต", - "account.block": "บล็อค @{name}", + "account.badges.group": "Group", + "account.block": "ปิดกั้น @{name}", "account.block_domain": "ซ่อนทุกอย่างจาก {domain}", - "account.blocked": "ถูกบล็อค", + "account.blocked": "ปิดกั้นอยู่", "account.cancel_follow_request": "ยกเลิกคำขอติดตาม", "account.direct": "ส่งข้อความโดยตรงถึง @{name}", "account.domain_blocked": "ซ่อนโดเมนอยู่", @@ -39,7 +40,7 @@ "account.unmute": "เลิกปิดเสียง @{name}", "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}", "alert.rate_limited.message": "โปรดลองใหม่หลังจาก {retry_time, time, medium}", - "alert.rate_limited.title": "เข้าใช้งานบ่อยเกินไป", + "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": "เรียกดูโปรไฟล์", @@ -79,9 +81,11 @@ "compose_form.lock_disclaimer.lock": "ล็อคอยู่", "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?", "compose_form.poll.add_option": "เพิ่มทางเลือก", - "compose_form.poll.duration": "ระยะเวลาโพล", + "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": "ทำเครื่องหมายสื่อว่าละเอียดอ่อน", @@ -99,11 +103,11 @@ "confirmations.delete_list.confirm": "ลบ", "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?", "confirmations.domain_block.confirm": "ซ่อนทั้งโดเมน", - "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการปิดเสียงแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก", "confirmations.logout.confirm": "ออกจากระบบ", "confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?", "confirmations.mute.confirm": "ปิดเสียง", - "confirmations.mute.explanation": "การกระทำนี้จะซ่อนโพสต์ของเขาและโพสต์ที่มีการกล่าวถึงเขา แต่ยังอนุญาตให้เขาเห็นโพสต์ของคุณและติดตามคุณได้", + "confirmations.mute.explanation": "นี่จะซ่อนโพสต์จากเขาและโพสต์ที่กล่าวถึงเขา แต่จะยังอนุญาตให้เขาเห็นโพสต์ของคุณและติดตามคุณ", "confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?", "confirmations.redraft.confirm": "ลบแล้วร่างใหม่", "confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้แล้วร่างใหม่? รายการโปรดและการดันจะหายไป และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "ไม่มีโพสต์ที่นี่!", "empty_column.account_unavailable": "ไม่มีโปรไฟล์", "empty_column.blocks": "คุณยังไม่ได้ปิดกั้นผู้ใช้ใด ๆ", + "empty_column.bookmarked_statuses": "คุณยังไม่มีโพสต์ที่เพิ่มที่คั่นหน้าไว้ใด ๆ เมื่อคุณเพิ่มที่คั่นหน้าโพสต์ โพสต์จะปรากฏที่นี่", "empty_column.community": "เส้นเวลาในเว็บว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!", "empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่", "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ซ่อนอยู่", @@ -152,8 +157,8 @@ "empty_column.mutes": "คุณยังไม่ได้ปิดเสียงผู้ใช้ใด ๆ", "empty_column.notifications": "คุณยังไม่มีการแจ้งเตือนใด ๆ โต้ตอบกับผู้อื่นเพื่อเริ่มการสนทนา", "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมให้เต็ม", - "error.unexpected_crash.explanation": "หน้านี้ไม่สามารถแสดงผลได้อย่างถูกต้อง เนื่องจากบั๊กในโค้ดของเราหรือปัญหาความเข้ากับได้กับเบราเซอร์", - "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้านี้ หากไม่สามารถช่วยได้ คุณอาจจะยังคงใช้ Mastodon ผ่านเบราเซอร์อื่นหรือผ่านแอปได้", + "error.unexpected_crash.explanation": "เนื่องจากข้อบกพร่องในโค้ดของเราหรือปัญหาความเข้ากันได้ของเบราว์เซอร์ จึงไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง", + "error.unexpected_crash.next_steps": "ลองรีเฟรชหน้า หากนั่นไม่ช่วย คุณอาจยังสามารถใช้ Mastodon ผ่านเบราว์เซอร์อื่นหรือแอป", "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด", "errors.unexpected_crash.report_issue": "รายงานปัญหา", "follow_request.authorize": "อนุญาต", @@ -164,7 +169,7 @@ "getting_started.heading": "เริ่มต้นใช้งาน", "getting_started.invite": "เชิญผู้คน", "getting_started.open_source_notice": "Mastodon เป็นซอฟต์แวร์เปิดต้นฉบับ คุณสามารถมีส่วนร่วมหรือรายงานปัญหาที่ GitHub ที่ {github}", - "getting_started.security": "ความปลอดภัย", + "getting_started.security": "การตั้งค่าบัญชี", "getting_started.terms": "เงื่อนไขการให้บริการ", "hashtag.column_header.tag_mode.all": "และ {additional}", "hashtag.column_header.tag_mode.any": "หรือ {additional}", @@ -190,14 +195,14 @@ "introduction.federation.local.text": "โพสต์สาธารณะจากผู้คนในเซิร์ฟเวอร์เดียวกันกับคุณจะปรากฏในเส้นเวลาในเว็บ", "introduction.interactions.action": "เสร็จสิ้นบทช่วยสอน!", "introduction.interactions.favourite.headline": "ชื่นชอบ", - "introduction.interactions.favourite.text": "คุณสามารถบันทึกโพสต์เพื่ออ่านทีหลัง และแจ้งให้ผู้เขียนโพสต์ทราบว่าคุณชอบโพสต์นั้นโดยการชื่นชอบโพสต์", + "introduction.interactions.favourite.text": "คุณสามารถบันทึกโพสต์ไว้ในภายหลังและแจ้งให้ผู้สร้างทราบว่าคุณชอบโพสต์โดยการชื่นชอบโพสต์", "introduction.interactions.reblog.headline": "ดัน", - "introduction.interactions.reblog.text": "คุณสามารถแชร์โพสต์ของผู้อื่นให้กับผู้ติดตามของคุณได้โดยการดันโพสต์", + "introduction.interactions.reblog.text": "คุณสามารถแบ่งปันโพสต์ของผู้อื่นกับผู้ติดตามของคุณโดยการดันโพสต์", "introduction.interactions.reply.headline": "ตอบกลับ", - "introduction.interactions.reply.text": "คุณสามารถตอบกลับโพสต์ของผู้อื่นและโพสต์ของคุณได้ ซึ่งจะถูกรวมเข้าด้วยกันเป็นบทสนทนา", + "introduction.interactions.reply.text": "คุณสามารถตอบกลับโพสต์ของผู้อื่นและของคุณเอง ซึ่งจะเชื่อมโยงโพสต์เข้าด้วยกันในการสนทนา", "introduction.welcome.action": "ไปกันเลย!", "introduction.welcome.headline": "ขั้นตอนแรก", - "introduction.welcome.text": "ยินดีต้อนรับสู่เฟดิเวิร์ส! ในอีกสักครู่คุณจะได้เผยแพร่ข้อความและคุยกับเพื่อนของคุณในหลากหลายเซิร์ฟเวอร์ แต่เซิร์ฟเวอร์ {domain} นี้มีความพิเศษ เพราะเป็นที่ที่โปรไฟล์ของคุณตั้งอยู่ จำชื่อไว้ด้วยนะ", + "introduction.welcome.text": "ยินดีต้อนรับสู่เฟดิเวิร์ส! ในอีกสักครู่ คุณจะสามารถออกอากาศข้อความและพูดคุยกับเพื่อน ๆ ของคุณผ่านเซิร์ฟเวอร์ที่หลากหลาย แต่เซิร์ฟเวอร์นี้ {domain} มีความพิเศษคือเป็นเซิร์ฟเวอร์ที่โฮสต์โปรไฟล์ของคุณ ดังนั้นจดจำชื่อของเซิร์ฟเวอร์ไว้", "keyboard_shortcuts.back": "เพื่อนำทางย้อนกลับ", "keyboard_shortcuts.blocked": "เพื่อเปิดรายการผู้ใช้ที่ปิดกั้นอยู่", "keyboard_shortcuts.boost": "เพื่อดัน", @@ -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,8 +280,10 @@ "navigation_bar.security": "ความปลอดภัย", "notification.favourite": "{name} ได้ชื่นชอบสถานะของคุณ", "notification.follow": "{name} ได้ติดตามคุณ", + "notification.follow_request": "{name} ได้ขอติดตามคุณ", "notification.mention": "{name} ได้กล่าวถึงคุณ", - "notification.poll": "โพลที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว", + "notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว", + "notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว", "notification.reblog": "{name} ได้ดันสถานะของคุณ", "notifications.clear": "ล้างการแจ้งเตือน", "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?", @@ -284,8 +293,9 @@ "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.poll": "ผลลัพธ์การสำรวจความคิดเห็น:", "notifications.column_settings.push": "การแจ้งเตือนแบบผลัก", "notifications.column_settings.reblog": "การดัน:", "notifications.column_settings.show": "แสดงในคอลัมน์", @@ -295,7 +305,7 @@ "notifications.filter.favourites": "รายการโปรด", "notifications.filter.follows": "การติดตาม", "notifications.filter.mentions": "การกล่าวถึง", - "notifications.filter.polls": "ผลลัพธ์โพล", + "notifications.filter.polls": "ผลลัพธ์การสำรวจความคิดเห็น", "notifications.group": "{count} การแจ้งเตือน", "poll.closed": "ปิดแล้ว", "poll.refresh": "รีเฟรช", @@ -303,8 +313,8 @@ "poll.total_votes": "{count, plural, other {# การลงคะแนน}}", "poll.vote": "ลงคะแนน", "poll.voted": "คุณได้ลงคะแนนให้กับคำตอบนี้", - "poll_button.add_poll": "เพิ่มโพล", - "poll_button.remove_poll": "เอาโพลออก", + "poll_button.add_poll": "เพิ่มการสำรวจความคิดเห็น", + "poll_button.remove_poll": "เอาการสำรวจความคิดเห็นออก", "privacy.change": "ปรับเปลี่ยนความเป็นส่วนตัวของสถานะ", "privacy.direct.long": "โพสต์ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น", "privacy.direct.short": "โดยตรง", @@ -339,11 +349,12 @@ "search_results.accounts": "ผู้คน", "search_results.hashtags": "แฮชแท็ก", "search_results.statuses": "โพสต์", - "search_results.statuses_fts_disabled": "การค้นหาเนื้อหาในโพสต์ถูกปิดบนเซิร์ฟเวอร์ Mastodon นี้", + "search_results.statuses_fts_disabled": "ไม่มีการเปิดใช้งานการค้นหาโพสต์โดยเนื้อหาของโพสต์ในเซิร์ฟเวอร์ Mastodon นี้", "search_results.total": "{count, number} {count, plural, other {ผลลัพธ์}}", "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}", @@ -378,7 +390,7 @@ "status.show_more": "แสดงเพิ่มเติม", "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด", "status.show_thread": "แสดงกระทู้", - "status.uncached_media_warning": "ไม่สามารถดูได้", + "status.uncached_media_warning": "ไม่พร้อมใช้งาน", "status.unmute_conversation": "เลิกปิดเสียงการสนทนา", "status.unpin": "ถอนหมุดจากโปรไฟล์", "suggestions.dismiss": "ยกเลิกข้อเสนอแนะ", @@ -397,21 +409,24 @@ "trends.trending_now": "กำลังนิยม", "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon", "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด", - "upload_button.label": "เพิ่มสื่อ (JPEG, PNG, GIF, WebM, MP4, MOV)", + "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.description_placeholder": "สุนัขจิ้งจอกสีน้ำตาลที่ว่องไวกระโดดข้ามสุนัขขี้เกียจ", + "upload_modal.detect_text": "ตรวจหาข้อความจากรูปภาพ", "upload_modal.edit_media": "แก้ไขสื่อ", - "upload_modal.hint": "คลิกหรือลากวงกลมในภาพเพื่อเลือกจุดโฟกัส ซึ่งจะทำให้ส่วนนั้นอยู่ในกรอบของภาพขนาดย่อตลอดเวลา", + "upload_modal.hint": "คลิกหรือลากวงกลมในตัวอย่างเพื่อเลือกจุดโฟกัส ซึ่งจะอยู่ในมุมมองของภาพขนาดย่อทั้งหมดเสมอ", "upload_modal.preview_label": "ตัวอย่าง ({ratio})", "upload_progress.label": "กำลังอัปโหลด...", "video.close": "ปิดวิดีโอ", + "video.download": "ดาวน์โหลดไฟล์", "video.exit_fullscreen": "ออกจากเต็มหน้าจอ", "video.expand": "ขยายวิดีโอ", "video.fullscreen": "เต็มหน้าจอ", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 89efafd1d..6920d10da 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1,11 +1,12 @@ { "account.add_or_remove_from_list": "Listelere ekle veya kaldır", "account.badges.bot": "Bot", + "account.badges.group": "Group", "account.block": "@{name} adlı kişiyi engelle", "account.block_domain": "{domain} alanından her şeyi gizle", "account.blocked": "Engellenmiş", "account.cancel_follow_request": "Takip isteğini iptal et", - "account.direct": "Mesaj gönder : @{name}", + "account.direct": "Mesaj gönder @{name}", "account.domain_blocked": "Alan adı gizlendi", "account.edit_profile": "Profili düzenle", "account.endorse": "Profildeki özellik", @@ -17,7 +18,7 @@ "account.follows_you": "Seni takip ediyor", "account.hide_reblogs": "@{name} kişisinin yinelemelerini gizle", "account.last_status": "Son aktivite", - "account.link_verified_on": "Bu bağlantının mülkiyeti {date} tarihinde kontrol edildi", + "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde kontrol edildi", "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceliyor.", "account.media": "Medya", "account.mention": "@{name} kullanıcısından bahset", @@ -35,7 +36,7 @@ "account.unblock": "@{name} adlı kişinin engelini kaldır", "account.unblock_domain": "{domain} göster", "account.unendorse": "Profilde özellik yok", - "account.unfollow": "Takipi bırak", + "account.unfollow": "Takibi bırak", "account.unmute": "@{name} adlı kişinin sesini aç", "account.unmute_notifications": "@{name} adlı kişinin bildirimlerini aç", "alert.rate_limited.message": "Lütfen sonra tekrar deneyin {retry_time, time, medium}.", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Bu bileşen yüklenirken bir şeyler ters gitti.", "bundle_modal_error.retry": "Tekrar deneyin", "column.blocks": "Engellenen kullanıcılar", + "column.bookmarks": "Yer imleri", "column.community": "Yerel zaman tüneli", "column.direct": "Doğrudan mesajlar", "column.directory": "Profillere göz at", @@ -82,6 +84,8 @@ "compose_form.poll.duration": "Anket süresi", "compose_form.poll.option_placeholder": "Seçim {number}", "compose_form.poll.remove_option": "Bu seçimi kaldır", + "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": "Tootla", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Medyayı hassas olarak işaretle", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "Burada hiç toot yok!", "empty_column.account_unavailable": "Profil kullanılamıyor", "empty_column.blocks": "Henüz bir kullanıcıyı engellemediniz.", + "empty_column.bookmarked_statuses": "Hiç işaretlediğiniz tootunuz yok. Bir tane olduğunda burada görünecek.", "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!", "empty_column.direct": "Henüz doğrudan mesajınız yok. Bir tane gönderdiğinizde veya aldığınızda burada görünecektir.", "empty_column.domain_blocks": "Henüz hiçbir gizli alan adı yok.", @@ -219,6 +224,7 @@ "keyboard_shortcuts.muted": "susturulmuş kullanıcı listesini açmak için", "keyboard_shortcuts.my_profile": "profilinizi açmak için", "keyboard_shortcuts.notifications": "bildirimler sütununu açmak için", + "keyboard_shortcuts.open_media": "medyayı açmak için", "keyboard_shortcuts.pinned": "sabitlenmiş tootların listesini açmak için", "keyboard_shortcuts.profile": "yazarın profilini açmak için", "keyboard_shortcuts.reply": "cevaplamak için", @@ -251,6 +257,7 @@ "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?", "navigation_bar.apps": "Mobil uygulamalar", "navigation_bar.blocks": "Engellenen kullanıcılar", + "navigation_bar.bookmarks": "Yer imleri", "navigation_bar.community_timeline": "Yerel zaman tüneli", "navigation_bar.compose": "Yeni toot oluştur", "navigation_bar.direct": "Direkt Mesajlar", @@ -273,7 +280,9 @@ "navigation_bar.security": "Güvenlik", "notification.favourite": "{name} senin durumunu favorilere ekledi", "notification.follow": "{name} seni takip ediyor", + "notification.follow_request": "{name} sizi takip etme isteği gönderdi", "notification.mention": "{name} senden bahsetti", + "notification.own_poll": "Anketiniz sona erdi", "notification.poll": "Oy verdiğiniz bir anket bitti", "notification.reblog": "{name} senin durumunu boost etti", "notifications.clear": "Bildirimleri temizle", @@ -284,6 +293,7 @@ "notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu", "notifications.column_settings.filter_bar.show": "Göster", "notifications.column_settings.follow": "Yeni takipçiler:", + "notifications.column_settings.follow_request": "Yeni takip istekleri:", "notifications.column_settings.mention": "Bahsedilenler:", "notifications.column_settings.poll": "Anket sonuçları:", "notifications.column_settings.push": "Push bildirimleri", @@ -344,6 +354,7 @@ "status.admin_account": "@{name} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu durumu açın", "status.block": "Engelle : @{name}", + "status.bookmark": "Yer imlerine ekle", "status.cancel_reblog_private": "Boost'u geri al", "status.cannot_reblog": "Bu gönderi boost edilemez", "status.copy": "Bağlantı durumunu kopyala", @@ -368,6 +379,7 @@ "status.reblogged_by": "{name} boost etti", "status.reblogs.empty": "Henüz kimse bu tootu yinelemedi. Biri yaptığında burada görünecek.", "status.redraft": "Sil & tekrar taslakla", + "status.remove_bookmark": "Yer imini kaldır", "status.reply": "Cevapla", "status.replyAll": "Konuşmayı cevapla", "status.report": "@{name}'i raporla", @@ -400,9 +412,11 @@ "upload_button.label": "Görsel ekle", "upload_error.limit": "Dosya yükleme sınırı aşıldı.", "upload_error.poll": "Anketlerde dosya yüklemesine izin verilmez.", + "upload_form.audio_description": "İşitme kaybı olan kişiler için tarif edin", "upload_form.description": "Görme engelliler için açıklama", "upload_form.edit": "Düzenle", "upload_form.undo": "Geri al", + "upload_form.video_description": "İşitme kaybı veya görme engeli olan kişiler için tarif edin", "upload_modal.analyzing_picture": "Resmi analiz ediyor…", "upload_modal.apply": "Uygula", "upload_modal.description_placeholder": "Pijamalı hasta yağız şoföre çabucak güvendi", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Ön izleme ({ratio})", "upload_progress.label": "Yükleniyor...", "video.close": "Videoyu kapat", + "video.download": "Dosyayı indir", "video.exit_fullscreen": "Tam ekrandan çık", "video.expand": "Videoyu genişlet", "video.fullscreen": "Tam ekran", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index c3b3e45b9..1c37f8e44 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "Додати або видалити зі списків", "account.badges.bot": "Бот", + "account.badges.group": "Group", "account.block": "Заблокувати @{name}", "account.block_domain": "Заглушити {domain}", "account.blocked": "Заблоковані", @@ -51,6 +52,7 @@ "bundle_modal_error.message": "Щось пішло не так під час завантаження компоненту.", "bundle_modal_error.retry": "Спробувати ще раз", "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": "У вас ще немає дмухів у закладках. Коли ви щось додасте до заклкдок, воно з'явиться тут.", "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": "Закладки", "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": "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,9 +412,11 @@ "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": "Щурячий бугай із їжаком-харцизом в'ючись підписали ґешефт у єнах", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "Переглянути ({ratio})", "upload_progress.label": "Завантаження...", "video.close": "Закрити відео", + "video.download": "Завантаження файла", "video.exit_fullscreen": "Вийти з повноекранного режиму", "video.expand": "Розширити відео", "video.fullscreen": "На весь екран", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 39ca86a0c..6f14ad3c6 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -1,91 +1,95 @@ { - "account.add_or_remove_from_list": "Add or Remove from lists", - "account.badges.bot": "Bot", - "account.block": "Block @{name}", - "account.block_domain": "Hide everything from {domain}", - "account.blocked": "Blocked", - "account.cancel_follow_request": "Cancel follow request", - "account.direct": "Direct message @{name}", - "account.domain_blocked": "Domain hidden", - "account.edit_profile": "Edit profile", - "account.endorse": "Feature on profile", - "account.follow": "Follow", - "account.followers": "Followers", - "account.followers.empty": "No one follows this user yet.", - "account.follows": "Follows", - "account.follows.empty": "This user doesn't follow anyone yet.", - "account.follows_you": "Follows you", - "account.hide_reblogs": "Hide boosts from @{name}", - "account.last_status": "Last active", - "account.link_verified_on": "Ownership of this link was checked on {date}", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", - "account.media": "Media", - "account.mention": "Mention @{name}", - "account.moved_to": "{name} has moved to:", - "account.mute": "Mute @{name}", - "account.mute_notifications": "Mute notifications from @{name}", - "account.muted": "Muted", - "account.never_active": "Never", - "account.posts": "Toots", - "account.posts_with_replies": "Toots and replies", - "account.report": "Report @{name}", - "account.requested": "Awaiting approval", - "account.share": "Share @{name}'s profile", - "account.show_reblogs": "Show boosts from @{name}", - "account.unblock": "Unblock @{name}", - "account.unblock_domain": "Unhide {domain}", - "account.unendorse": "Don't feature on profile", - "account.unfollow": "Unfollow", - "account.unmute": "Unmute @{name}", - "account.unmute_notifications": "Unmute notifications from @{name}", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "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.endorse": "مشکص پر نمایاں کریں", + "account.follow": "پیروی کریں", + "account.followers": "پیروکار", + "account.followers.empty": "\"ہنوز اس صارف کی کوئی پیروی نہیں کرتا\".", + "account.follows": "پیروی کرتے ہیں", + "account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".", + "account.follows_you": "آپ کا پیروکار ہے", + "account.hide_reblogs": "@{name} سے فروغ چھپائیں", + "account.last_status": "آخری فعال", + "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.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.unfollow": "پیروی ترک کریں", + "account.unmute": "@{name} کو با آواز کریں", + "account.unmute_notifications": "@{name} سے اطلاعات کو با آواز کریں", + "alert.rate_limited.message": "\"{retry_time, time, medium} کے بعد کوشش کریں\".", "alert.rate_limited.title": "Rate limited", - "alert.unexpected.message": "An unexpected error occurred.", - "alert.unexpected.title": "Oops!", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "You can press {combo} to skip this next time", - "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.retry": "Try again", - "column.blocks": "Blocked users", - "column.community": "Local timeline", - "column.direct": "Direct messages", - "column.directory": "Browse profiles", - "column.domain_blocks": "Hidden domains", - "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_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", - "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.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", - "compose_form.publish": "Toot", + "alert.unexpected.message": "ایک غیر متوقع سہو ہوا ہے.", + "alert.unexpected.title": "ا رے!", + "autosuggest_hashtag.per_week": "{count} فی ہفتہ", + "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", + "bundle_column_error.body": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", + "bundle_column_error.retry": "دوبارہ کوشش کریں", + "bundle_column_error.title": "نیٹ ورک کی خرابی", + "bundle_modal_error.close": "بند کریں", + "bundle_modal_error.message": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", + "bundle_modal_error.retry": "دوبارہ کوشش کریں", + "column.blocks": "مسدود صارفین", + "column.bookmarks": "Bookmarks", + "column.community": "مقامی زمانی جدول", + "column.direct": "راست پیغام", + "column.directory": "مشخصات کا مطالعہ کریں", + "column.domain_blocks": "پوشیدہ ڈومین", + "column.favourites": "پسندیدہ", + "column.follow_requests": "پیروی درخواست", + "column.home": "خانہ", + "column.lists": "فہرستیں", + "column.mutes": "خاموش کردہ صارفین", + "column.notifications": "اطلاعات", + "column.pins": "چسپاں ٹوٹ", + "column.public": "مجموعی زمانی جدول", + "column_back_button.label": "واپس", + "column_header.hide_settings": "ترتیبات کو چھپائیں", + "column_header.moveLeft_settings": "کالم کو بائیں جانب منتقل کریں", + "column_header.moveRight_settings": "کالم کو دائیں جانب منتقل کریں", + "column_header.pin": "چسپاں کریں", + "column_header.show_settings": "ترتیبات دکھائیں", + "column_header.unpin": "رہا کریں", + "column_subheading.settings": "ترتیبات", + "community.column_settings.media_only": "وسائل فقط", + "compose_form.direct_message_warning": "یہ ٹوٹ صرف مذکورہ صارفین کو بھیجا جائے گا.", + "compose_form.direct_message_warning_learn_more": "مزید جانیں", + "compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.", + "compose_form.lock_disclaimer": "آپ کا اکاؤنٹ {locked} نہیں ہے. کوئی بھی آپ کے مخصوص برائے پیروکار ٹوٹ دیکھنے کی خاطر آپ کی پیروی کر سکتا ہے.", + "compose_form.lock_disclaimer.lock": "مقفل", + "compose_form.placeholder": "آپ کیا سوچ رہے ہیں؟", + "compose_form.poll.add_option": "انتخاب شامل کریں", + "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": "Mark media as sensitive", - "compose_form.sensitive.marked": "Media is marked as sensitive", + "compose_form.sensitive.hide": "وسائل کو حساس نشاندہ کریں", + "compose_form.sensitive.marked": "وسائل حساس نشاندہ ہے", "compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", @@ -135,54 +139,55 @@ "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", - "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.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.", - "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": "You don't have any follow requests yet. When you receive one, it will show up here.", - "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.", - "empty_column.home.public_timeline": "the public timeline", - "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", - "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.", - "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", + "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": "ابھی تک کوئی چھپا ہوا ڈومین نہیں ہے.", + "empty_column.favourited_statuses": "آپ کا کوئی پسندیدہ ٹوٹ نہیں ہے. جب آپ پسند کریں گے، یہاں نظر آئےگا.", + "empty_column.favourites": "ابھی تک کسی نے بھی اس ٹوٹ کو پسند نہیں کیا ہے. جب بھی کوئی اسے پسند کرے گا، ان کا نام یہاں نظر آئے گا.", + "empty_column.follow_requests": "ابھی تک آپ کی پیری کرنے کی درخواست نہیں کی ہے. جب کوئی درخواست کرے گا، ان کا نام یہاں نظر آئے گا.", + "empty_column.hashtag": "ابھی یہ ہیش ٹیگ خالی ہے.", + "empty_column.home": "آپ کا خانگی جدول خالی ہے! {public} دیکھیں یا شروعات کیلئے تلاش کریں اور دیگر صارفین سے ملیں.", + "empty_column.home.public_timeline": "جدولِ عام", + "empty_column.list": "یہ فہرست ابھی خالی ہے. جب اس فہرست کے ارکان کچھ تحریر کریں گے، یہاں نظر آئے گا.", + "empty_column.lists": "ابھی آپ کی کوئی فہرست نہیں ہے. جب آپ بنائیں گے، وہ یہاں نظر آئے گی.", + "empty_column.mutes": "آپ نے ابھی کسی صارف کو خاموش نہیں کیا ہے.", + "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.", + "error.unexpected_crash.next_steps": "صفحے کو تازہ کرنے کی کوشش کریں. اگر کارآمد نہ ہو تو آپ کسی دیگر براؤزر یا مقامی ایپ سے ہنوز ماسٹوڈون استعمال کر سکتے ہیں.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", - "errors.unexpected_crash.report_issue": "Report issue", - "follow_request.authorize": "Authorize", - "follow_request.reject": "Reject", + "errors.unexpected_crash.report_issue": "مسئلہ کی اطلاع کریں", + "follow_request.authorize": "اجازت دیں", + "follow_request.reject": "انکار کریں", "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", - "getting_started.heading": "Getting started", - "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "getting_started.security": "Security", - "getting_started.terms": "Terms of service", - "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_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", - "home.column_settings.basic": "Basic", - "home.column_settings.show_reblogs": "Show boosts", - "home.column_settings.show_replies": "Show replies", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "getting_started.directory": "فہرست مشخصات", + "getting_started.documentation": "اسناد", + "getting_started.heading": "آغاز کریں", + "getting_started.invite": "دوستوں کو دعوت دیں", + "getting_started.open_source_notice": "ماسٹوڈون آزاد منبع سوفٹویر ہے. آپ {github} گِٹ ہب پر مسائل میں معاونت یا مشکلات کی اطلاع دے سکتے ہیں.", + "getting_started.security": "ترتیباتِ اکاؤنٹ", + "getting_started.terms": "شرائط خدمات", + "hashtag.column_header.tag_mode.all": "اور {additional}", + "hashtag.column_header.tag_mode.any": "یا {additional}", + "hashtag.column_header.tag_mode.none": "بغیر {additional}", + "hashtag.column_settings.select.no_options_message": "کوئی ترغیبات نہیں ملیں", + "hashtag.column_settings.select.placeholder": "ہیش ٹیگ داخل کریں…", + "hashtag.column_settings.tag_mode.all": "یہ تمام", + "hashtag.column_settings.tag_mode.any": "ان میں سے کوئی", + "hashtag.column_settings.tag_mode.none": "ان میں سے کوئی بھی نہیں", + "hashtag.column_settings.tag_toggle": "اس کالم کے لئے مزید ٹیگز شامل کریں", + "home.column_settings.basic": "بنیادی", + "home.column_settings.show_reblogs": "افزائشات دکھائیں", + "home.column_settings.show_replies": "جوابات دکھائیں", + "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", + "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", - "introduction.federation.action": "Next", - "introduction.federation.federated.headline": "Federated", + "introduction.federation.action": "اگلا", + "introduction.federation.federated.headline": "مجموعی", "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", "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!", @@ -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", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json new file mode 100644 index 000000000..2d972cf04 --- /dev/null +++ b/app/javascript/mastodon/locales/vi.json @@ -0,0 +1,438 @@ +{ + "account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách", + "account.badges.bot": "Robot", + "account.badges.group": "Group", + "account.block": "Chặn @{name}", + "account.block_domain": "Ẩn mọi thứ từ {domain}", + "account.blocked": "Đã chặn", + "account.cancel_follow_request": "Hủy theo yêu cầu", + "account.direct": "Nhắn riêng @{name}", + "account.domain_blocked": "Miền đã ẩn", + "account.edit_profile": "Sửa hồ sơ", + "account.endorse": "Đưa lên hồ sơ", + "account.follow": "Quan tâm", + "account.followers": "Người quan tâm", + "account.followers.empty": "Chưa có ai quan tâm", + "account.follows": "Đang quan tâm", + "account.follows.empty": "Chưa quan tâm ai", + "account.follows_you": "Đã quan tâm bạn", + "account.hide_reblogs": "Ẩn loan tin từ @{name}", + "account.last_status": "Hoạt động lần cuối", + "account.link_verified_on": "Quyền sở hữu của liên kết này đã được kiểm tra vào {date}", + "account.locked_info": "Tài khoản này đã mở chế độ ẩn. Người sở hữu tài khoản này sẽ tự mình chấp nhận các yêu cầu quan tâm.", + "account.media": "Ảnh và video", + "account.mention": "Nhắc đến @{name}", + "account.moved_to": "{name} đã chuyển đến:", + "account.mute": "Ẩn @{name}", + "account.mute_notifications": "Tắt thông báo từ @{name}", + "account.muted": "Đã ẩn", + "account.never_active": "Không bao giờ", + "account.posts": "Tút", + "account.posts_with_replies": "Tút và trả lời", + "account.report": "Báo cáo @{name}", + "account.requested": "Đang chờ chấp nhận. Nhấn vào đây để hủy bỏ yêu cầu sau", + "account.share": "Chia sẻ hồ sơ @{name}", + "account.show_reblogs": "Hiện loan tin các từ @{name}", + "account.unblock": "Mở chặn @{name}", + "account.unblock_domain": "Bỏ ẩn {domain}", + "account.unendorse": "Không đưa lên nổi bật", + "account.unfollow": "Ngưng quan tâm", + "account.unmute": "Huỷ bỏ qua @{name}", + "account.unmute_notifications": "Hiển thị thông báo từ @{name}", + "alert.rate_limited.message": "Vui lòng thử lại sau {retry_time, time, Medium}.", + "alert.rate_limited.title": "Tỷ lệ giới hạn", + "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.", + "alert.unexpected.title": "Ốiii!", + "autosuggest_hashtag.per_week": "{tính} mỗi tuần", + "boost_modal.combo": "Bạn có thể nhấn {combo} để bỏ qua lần sau", + "bundle_column_error.body": "Có gì đó sai sai trong khi tải nội dung này", + "bundle_column_error.retry": "Thử lại", + "bundle_column_error.title": "Lỗi mạng", + "bundle_modal_error.close": "Tắt", + "bundle_modal_error.message": "Có gì đó sai sai trong khi tải nội dung này", + "bundle_modal_error.retry": "Thử lại", + "column.blocks": "Người bị chặn", + "column.bookmarks": "Đã lưu", + "column.community": "Dòng thời gian của miền", + "column.direct": "Tin nhắn", + "column.directory": "Duyệt hồ sơ", + "column.domain_blocks": "Miền đã ẩn", + "column.favourites": "Đã thích", + "column.follow_requests": "Yêu cầu quan tâm", + "column.home": "Bảng tin", + "column.lists": "Danh sách", + "column.mutes": "Đã ẩn", + "column.notifications": "Thông báo", + "column.pins": "Tút được ghim", + "column.public": "Dòng thời gian liên kết", + "column_back_button.label": "Quay lại", + "column_header.hide_settings": "Ẩn các thiết lập", + "column_header.moveLeft_settings": "Di chuyển cột sang trái", + "column_header.moveRight_settings": "Di chuyển cột sang phải", + "column_header.pin": "Ghim", + "column_header.show_settings": "Hiển thị cài đặt", + "column_header.unpin": "Bỏ ghim", + "column_subheading.settings": "Cài đặt", + "community.column_settings.media_only": "Chỉ tút có media", + "compose_form.direct_message_warning": "Tút này sẽ chỉ gửi cho người được nhắc đến.", + "compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm", + "compose_form.hashtag_warning": "Tút này sẽ không được xuất hiện khi tìm kiếm theo hashtag vì nó không công khai. Chỉ Tút công khai có thể được tìm kiếm theo hashtag.", + "compose_form.lock_disclaimer": "Tài khoản của bạn không được {locked}. Bất cứ ai cũng có thể quan tâm bạn và xem bài viết đi bạn đăng cho người quan tâm", + "compose_form.lock_disclaimer.lock": "khóa", + "compose_form.placeholder": "Bạn đang nghĩ gì?", + "compose_form.poll.add_option": "Thêm lựa chọn", + "compose_form.poll.duration": "Thời hạn", + "compose_form.poll.option_placeholder": "Lựa chọn {number}", + "compose_form.poll.remove_option": "Xóa lựa chọn này", + "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": "Tút", + "compose_form.publish_loud": "{publish}!", + "compose_form.sensitive.hide": "Đánh dấu hình ảnh nhạy cảm", + "compose_form.sensitive.marked": "Media đã được đánh dấu nhạy cảm", + "compose_form.sensitive.unmarked": "Media đã không được đánh dấu nhạy cảm", + "compose_form.spoiler.marked": "Văn bản ẩn dấu sau lời cảnh báo", + "compose_form.spoiler.unmarked": "Văn bản không bị ẩn", + "compose_form.spoiler_placeholder": "Viết cảnh báo của bạn ở đây", + "confirmation_modal.cancel": "Hủy bỏ", + "confirmations.block.block_and_report": "Chặn và Báo cáo", + "confirmations.block.confirm": "Chặn", + "confirmations.block.message": "Bạn có chắc chắn muốn chặn {name}?", + "confirmations.delete.confirm": "Xóa bỏ", + "confirmations.delete.message": "Bạn có chắc chắn muốn xóa tút này?", + "confirmations.delete_list.confirm": "Xóa bỏ", + "confirmations.delete_list.message": "Bạn có chắc chắn muốn xóa vĩnh viễn danh sách này?", + "confirmations.domain_block.confirm": "Ẩn toàn bộ miền", + "confirmations.domain_block.message": "Bạn có thực sự, thực sự chắc chắn rằng bạn muốn ẩn toàn bộ từ {domain}? Hầu hết các trường hợp, bạn chỉ cần chặn hoặc ẩn một vài tài khoản thì phù hợp hơn. Ẩn toàn bộ miền khiến bạn sẽ không thấy nội dung từ miền đó trong bất kỳ nơi nào kể cả thông báo. người quan tâm bạn từ miền đó sẽ bị xóa luôn.", + "confirmations.logout.confirm": "Đăng xuất", + "confirmations.logout.message": "Bạn có chắc chắn bạn muốn thoát?", + "confirmations.mute.confirm": "Ẩn", + "confirmations.mute.explanation": "Điều này sẽ ẩn bài đăng từ họ và bài viết đề cập đến họ, nhưng nó vẫn sẽ cho phép họ xem bài đăng của bạn và quan tâm bạn.", + "confirmations.mute.message": "Bạn có chắc chắn muốn ẩn {name}?", + "confirmations.redraft.confirm": "Xóa & đưa vào nháp", + "confirmations.redraft.message": "Bạn có chắc chắn muốn xóa tút này và đưa nó vào nháp? Những lượt thích và loan tin tút sẽ bị mất, và những tút trả lời tút này sẽ mất đầu mối.", + "confirmations.reply.confirm": "Trả lời", + "confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?", + "confirmations.unfollow.confirm": "Ngưng quan tâm", + "confirmations.unfollow.message": "Bạn có chắc chắn muốn ngưng quan tâm {name}?", + "conversation.delete": "Xóa cuộc hội thoại", + "conversation.mark_as_read": "đánh dấu là đã đọc", + "conversation.open": "Xem cuộc hội thoại", + "conversation.with": "Với {tên}", + "directory.federated": "Từ fediverse được biết đến", + "directory.local": "Chỉ từ {domain}", + "directory.new_arrivals": "Điểm đến mới", + "directory.recently_active": "Mới hoạt động", + "embed.instructions": "Nhúng tút này trên trang web của bạn bằng cách sao chép đoạn mã dưới đây.", + "embed.preview": "Nó sẽ hiển thị như dưới đây:", + "emoji_button.activity": "Hoạt động", + "emoji_button.custom": "Riêng", + "emoji_button.flags": "Cờ", + "emoji_button.food": "Ăn uống", + "emoji_button.label": "Chèn biểu emoj", + "emoji_button.nature": "Thiên nhiên", + "emoji_button.not_found": "Không emojos !! (╯ ° □ °) ╯( ┻━┻", + "emoji_button.objects": "Đối tượng", + "emoji_button.people": "Người", + "emoji_button.recent": "Hay dùng", + "emoji_button.search": "Tìm kiếm...", + "emoji_button.search_results": "Kết quả tìm kiếm", + "emoji_button.symbols": "Biểu tượng", + "emoji_button.travel": "Du lịch", + "empty_column.account_timeline": "Chưa có tút nào", + "empty_column.account_unavailable": "Hồ sơ không truy cập được", + "empty_column.blocks": "Bạn chưa chặn ai cả.", + "empty_column.bookmarked_statuses": "Bạn chưa lưu tút nào, nếu có sẽ thấy ở đây.", + "empty_column.community": "Chưa có gì trong dòng thời gian chung của miền cả, bạn hãy tút gì đó đi!", + "empty_column.direct": "Bạn không có bất kỳ tin nhắn trực tiếp nêu ra. Khi bạn gửi hoặc nhận một, nó sẽ hiển thị ở đây.", + "empty_column.domain_blocks": "Chưa ẩn miền nào", + "empty_column.favourited_statuses": "Bạn chưa thích tút nào, nếu có sẽ thấy ở đây.", + "empty_column.favourites": "Chưa ai thích tút này, nếu có bạn sẽ thấy ở đây.", + "empty_column.follow_requests": "Bạn chưa có yêu cầu nào. Khi bạn nhận được yêu cầu, nó sẽ hiển ở đây.", + "empty_column.hashtag": "Chưa có bài đăng nào sử dụng hashtag này.", + "empty_column.home": "Bảng tin của bạn đang trống! Truy cập {public} hoặc sử dụng tìm kiếm để quan tâm và trao đổi với những người khác đi.", + "empty_column.home.public_timeline": "Dòng thời gian công khai", + "empty_column.list": "Không có gì trong danh sách này là nêu ra. Khi các thành viên của danh sách này gửi trạng thái mới, họ sẽ xuất hiện ở đây.", + "empty_column.lists": "Bạn không có bất kỳ danh sách được nêu ra. Khi bạn tạo một, nó sẽ hiển thị ở đây.", + "empty_column.mutes": "Bạn chưa tắt bất kỳ người dùng nào.", + "empty_column.notifications": "Bạn không có thông báo nào. Tương tác với những người khác để bắt đầu trao đổi.", + "empty_column.public": "Chưa có gì cả, bạn hãy đăng gì đó đi đừng để nó trắng trơn", + "error.unexpected_crash.explanation": "Do lỗi trong mã của chúng tôi hoặc sự cố tương thích trình duyệt, trang này không thể được hiển thị chính xác.", + "error.unexpected_crash.next_steps": "Hãy thử làm mới trang. Nếu điều đó không có ích, bạn vẫn có thể sử dụng Mastodon thông qua một trình duyệt hoặc ứng dụng gốc khác.", + "errors.unexpected_crash.copy_stacktrace": "Sao chép stacktrace vào clipboard", + "errors.unexpected_crash.report_issue": "Báo cáo phát hành", + "follow_request.authorize": "Cho phép", + "follow_request.reject": "Từ chối", + "getting_started.developers": "Nhà phát triển", + "getting_started.directory": "Danh mục thành viên", + "getting_started.documentation": "Tài liệu", + "getting_started.heading": "Bắt đầu", + "getting_started.invite": "Mời bạn bè", + "getting_started.open_source_notice": "Mastodon là phần mềm mã nguồn mở. Bạn có thể đóng góp hoặc báo cáo vấn đề gặp phải trên GitHub tại {github}.", + "getting_started.security": "Bảo mật", + "getting_started.terms": "Điều khoản dịch vụ", + "hashtag.column_header.tag_mode.all": "Và {additional} thêm", + "hashtag.column_header.tag_mode.any": "Hoặc {additional} thêm", + "hashtag.column_header.tag_mode.none": "Mà không {additional} thêm", + "hashtag.column_settings.select.no_options_message": "Không tìm thấy đề xuất nào", + "hashtag.column_settings.select.placeholder": "Nhập hashtags ...", + "hashtag.column_settings.tag_mode.all": "Tất cả những cái này", + "hashtag.column_settings.tag_mode.any": "Bất kỳ trong số này", + "hashtag.column_settings.tag_mode.none": "Không ai trong số những", + "hashtag.column_settings.tag_toggle": "Bao gồm thêm thẻ cho cột này", + "home.column_settings.basic": "Cơ bản", + "home.column_settings.show_reblogs": "Hiện tút được loan tin", + "home.column_settings.show_replies": "Hiện trả lời", + "intervals.full.days": "{number} days", + "intervals.full.hours": "{number} hours", + "intervals.full.minutes": "{number} minutes", + "introduction.federation.action": "Tiếp", + "introduction.federation.federated.headline": "Miền liên kết", + "introduction.federation.federated.text": "Bài đăng công khai từ các miền khác có liên hệ với miền của bạn sẽ xuất hiện ở Dòng thời gian liên kết", + "introduction.federation.home.headline": "Bảng tin", + "introduction.federation.home.text": "Bài đăng từ những người bạn quan tâm sẽ xuất hiện ở bảng tin của bạn. Bạn có thể quan tâm bất cứ ai trên bất cứ miền nào!", + "introduction.federation.local.headline": "Cùng miền", + "introduction.federation.local.text": "Bài đăng công khai từ những người trên cùng một miền như bạn sẽ xuất hiện trong Dòng thời gian cùng miền.", + "introduction.interactions.action": "Hoàn thành hướng dẫn!", + "introduction.interactions.favourite.headline": "Thích", + "introduction.interactions.favourite.text": "Bạn có thể lưu tút để sau này xem lại, và để cho các tác giả biết rằng bạn thích tút của họ bằng cách bấm thích tút đó.", + "introduction.interactions.reblog.headline": "Loan tin", + "introduction.interactions.reblog.text": "Bạn có thể chia sẻ Tút của người khác với những người quan tâm bạn bằng cách loan tin.", + "introduction.interactions.reply.headline": "Trả lời", + "introduction.interactions.reply.text": "Bạn có thể trả lời tút của những người khác và tút riêng của bạn, từ đó tạo nên những cuộc hội thoại.", + "introduction.welcome.action": "Ok đi thôi!", + "introduction.welcome.headline": "Bước đầu tiên", + "introduction.welcome.text": "Chào mừng bạn đến mạng xã hội đa liên kết! Trong vài phút tới, bạn sẽ có thể phát đi những nội dung và trao đổi với bạn bè của bạn trên một loạt các trang hay còn gọi là các miền. Đặc biệt ở là {domain}, là nơi lưu trữ hồ sơ của bạn, vì vậy đừng quên miền này.", + "keyboard_shortcuts.back": "để trở lại", + "keyboard_shortcuts.blocked": "để mở danh sách người dùng bị chặn", + "keyboard_shortcuts.boost": "để loan tin", + "keyboard_shortcuts.column": "để tập trung một tút cụ thể từ một trong các cột", + "keyboard_shortcuts.compose": "để vào khung soạn tút", + "keyboard_shortcuts.description": "Mô tả", + "keyboard_shortcuts.direct": "để mở thư cột trực tiếp", + "keyboard_shortcuts.down": "để di chuyển xuống trong danh sách", + "keyboard_shortcuts.enter": "để mở trạng thái", + "keyboard_shortcuts.favourite": "để thích", + "keyboard_shortcuts.favourites": "để mở danh sách yêu thích", + "keyboard_shortcuts.federated": "để mở dòng thời gian liên kết", + "keyboard_shortcuts.heading": "Các phím tắt", + "keyboard_shortcuts.home": "để mở bảng tin", + "keyboard_shortcuts.hotkey": "Phím tắt", + "keyboard_shortcuts.legend": "để hiển thị bảng hướng dẫn này", + "keyboard_shortcuts.local": "để mở dòng thời gian của miền", + "keyboard_shortcuts.mention": "để nhắc đến tác giả", + "keyboard_shortcuts.muted": "để mở danh sách người dùng tắt tiếng", + "keyboard_shortcuts.my_profile": "để mở hồ sơ của bạn", + "keyboard_shortcuts.notifications": "để mở thông báo cột", + "keyboard_shortcuts.open_media": "để mở media", + "keyboard_shortcuts.pinned": "để mở danh sách tút được ghim", + "keyboard_shortcuts.profile": "để mở hồ sơ của tác giả", + "keyboard_shortcuts.reply": "để trả lời", + "keyboard_shortcuts.requests": "để mở danh sách các yêu cầu", + "keyboard_shortcuts.search": "để vào ô tìm kiếm", + "keyboard_shortcuts.start": "để mở cột \"Bắt đầu\"", + "keyboard_shortcuts.toggle_hidden": "để ẩn/hiện đằng sau văn bản CW", + "keyboard_shortcuts.toggle_sensitivity": "để hiển thị / ẩn media", + "keyboard_shortcuts.toot": "để viết tút mới", + "keyboard_shortcuts.unfocus": "để đưa con trỏ ra khỏi ô soạn thảo hoặc ô tìm kiếm", + "keyboard_shortcuts.up": "để di chuyển lên trong danh sách", + "lightbox.close": "Tắt", + "lightbox.next": "Tiếp", + "lightbox.previous": "Trước", + "lightbox.view_context": "Xem bối cảnh", + "lists.account.add": "Thêm vào danh sách", + "lists.account.remove": "Xóa khỏi danh sách", + "lists.delete": "Xóa danh sách", + "lists.edit": "Sửa danh sách", + "lists.edit.submit": "Thay đổi tiêu đề", + "lists.new.create": "Thêm vào danh sách", + "lists.new.title_placeholder": "Tên danh sách mới", + "lists.search": "Tìm kiếm trong số những người bạn quan tâm", + "lists.subheading": "Danh sách của bạn", + "load_pending": "{count, plural, other {}}", + "loading_indicator.label": "Đang tải...", + "media_gallery.toggle_visible": "Bật/tắt", + "missing_indicator.label": "Không tìm thấy", + "missing_indicator.sublabel": "Tài liệu này không thể được tìm thấy", + "mute_modal.hide_notifications": "Ẩn thông báo từ thành viên này?", + "navigation_bar.apps": "Ứng dụng di động", + "navigation_bar.blocks": "Người dùng bị chặn", + "navigation_bar.bookmarks": "Đã lưu", + "navigation_bar.community_timeline": "Dòng thời gian của miền", + "navigation_bar.compose": "Soạn tút mới", + "navigation_bar.direct": "Tin nhắn trực tiếp", + "navigation_bar.discover": "Khám phá", + "navigation_bar.domain_blocks": "Miền đã ẩn", + "navigation_bar.edit_profile": "Sửa hồ sơ cá nhân", + "navigation_bar.favourites": "Đã thích", + "navigation_bar.filters": "Nói cách tắt tiếng", + "navigation_bar.follow_requests": "Yêu cầu quan tâm", + "navigation_bar.follows_and_followers": "Đang quan tâm và được quan tâm", + "navigation_bar.info": "Giới thiệu", + "navigation_bar.keyboard_shortcuts": "Phím tắt", + "navigation_bar.lists": "Danh sách", + "navigation_bar.logout": "Đăng xuất", + "navigation_bar.mutes": "Người sử dụng tắt tiếng", + "navigation_bar.personal": "Cá nhân", + "navigation_bar.pins": "Tút được ghim", + "navigation_bar.preferences": "Tùy chỉnh", + "navigation_bar.public_timeline": "Dòng thời gian liên kết", + "navigation_bar.security": "Bảo mật", + "notification.favourite": "{name} favourited trạng thái của bạn", + "notification.follow": "{name} đã quan tâm bạn", + "notification.follow_request": "{name} đã yêu cầu theo dõi bạn", + "notification.mention": "{name} nhắc đến bạn", + "notification.own_poll": "Cuộc thăm dò của bạn đã kết thúc", + "notification.poll": "Một cuộc thăm dò bạn đã bỏ phiếu tại đã kết thúc", + "notification.reblog": "{name} loan tin tút của bạn", + "notifications.clear": "Xóa thông báo", + "notifications.clear_confirmation": "Bạn có chắc chắn muốn xóa vĩnh viễn tất cả các thông báo của mình?", + "notifications.column_settings.alert": "Thông báo trên máy tính", + "notifications.column_settings.favourite": "Đã thích:", + "notifications.column_settings.filter_bar.advanced": "Hiển thị tất cả các loại", + "notifications.column_settings.filter_bar.category": "Lọc nhanh", + "notifications.column_settings.filter_bar.show": "Hiện", + "notifications.column_settings.follow": "Người mới quan tâm :", + "notifications.column_settings.follow_request": "Yêu cầu theo dõi mới:", + "notifications.column_settings.mention": "Nhắc đến:", + "notifications.column_settings.poll": "Kết quả cuộc thăm dò:", + "notifications.column_settings.push": "Thông báo đẩy", + "notifications.column_settings.reblog": "Loan tin:", + "notifications.column_settings.show": "Hiện trong cột", + "notifications.column_settings.sound": "Mở tiếng", + "notifications.filter.all": "Toàn bộ", + "notifications.filter.boosts": "Loan tin", + "notifications.filter.favourites": "Đã thích", + "notifications.filter.follows": "Quan tâm", + "notifications.filter.mentions": "Nhắc đến", + "notifications.filter.polls": "Kết quả cuộc thăm dò", + "notifications.group": "{count} thông báo", + "poll.closed": "Đóng", + "poll.refresh": "Làm mới", + "poll.total_people": "{count, plural, other {}}", + "poll.total_votes": "{count, plural, other {}}", + "poll.vote": "Bỏ phiếu", + "poll.voted": "Bạn đã bình chọn cho câu trả lời này", + "poll_button.add_poll": "Tạo thăm dò", + "poll_button.remove_poll": "Bỏ thăm dò", + "privacy.change": "Điều chỉnh chế độ của tút", + "privacy.direct.long": "Chỉ gửi cho người được nhắc đến", + "privacy.direct.short": "Nhắn riêng", + "privacy.private.long": "Chỉ người quan tâm mới xem được", + "privacy.private.short": "Chỉ người quan tâm", + "privacy.public.long": "Đăng lên các dòng thời gian công khai", + "privacy.public.short": "Công khai", + "privacy.unlisted.long": "Không đăng lên các dòng thời gian công khai", + "privacy.unlisted.short": "Không công khai", + "refresh": "Làm tươi", + "regeneration_indicator.label": "Đang tải…", + "regeneration_indicator.sublabel": "Bảng tin của bạn đang được cập nhật!", + "relative_time.days": "{number} ngày", + "relative_time.hours": "{number} giờ", + "relative_time.just_now": "vừa xong", + "relative_time.minutes": "{number} phút", + "relative_time.seconds": "{number} giây", + "reply_indicator.cancel": "Hủy bỏ", + "report.forward": "Chuyển đến {target}", + "report.forward_hint": "Tài khoản này từ miền khác. Gửi thêm một báo cáo ẩn danh tới miền của tài khoản này?", + "report.hint": "Báo cáo này sẽ được gửi đến điều hành viên miền của bạn. Bạn có thể cung cấp lý do tại sao bạn lại báo cáo tài khoản vào này dưới đây:", + "report.placeholder": "Ý kiến ​​khác", + "report.submit": "Gửi đi", + "report.target": "Báo xấu {target}", + "search.placeholder": "Tìm kiếm", + "search_popout.search_format": "Tìm kiếm nâng cao theo cú pháp", + "search_popout.tips.full_text": "Không dùng ký tự đặc biệt sẽ trả về tút của bạn, tút bạn thích, tút bạn loan tin hoặc bạn được nhắc đến, kể cả tên tài khoản, tên hiển thị và hashtag.", + "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.status": "tút", + "search_popout.tips.text": "không dùng ký tự đặc biệt sẽ trả về nội dung tương ứng, tên tài khoản và các hashtag.", + "search_popout.tips.user": "thành viên", + "search_results.accounts": "Người", + "search_results.hashtags": "Hashtags", + "search_results.statuses": "Tút", + "search_results.statuses_fts_disabled": "Tìm kiếm các tút theo nội dung của chúng không được kích hoạt trên trang Mastodon này.", + "search_results.total": "{đếm, số} {đếm, số nhiều, một {kết quả} khác {kết quả}}", + "status.admin_account": "Mở giao diện quản trị @{name}", + "status.admin_status": "Mở tút này trong giao diện quản trị", + "status.block": "Chặn @{name}", + "status.bookmark": "Lưu", + "status.cancel_reblog_private": "Hủy loan tin", + "status.cannot_reblog": "Không thể loan tin tút này", + "status.copy": "Sao chép liên kết đến tút", + "status.delete": "Xóa bỏ", + "status.detailed_status": "Chi tiết xem cuộc hội thoại", + "status.direct": "Nhắn riêng @{name}", + "status.embed": "Nhúng", + "status.favourite": "Thích", + "status.filtered": "Lọc qua", + "status.load_more": "Tải thêm", + "status.media_hidden": "Media đã ẩn", + "status.mention": "Nhắc đến @{name}", + "status.more": "Thêm nữa", + "status.mute": "Ẩn @{name}", + "status.mute_conversation": "Ẩn trao đổi", + "status.open": "Mở rộng tút này", + "status.pin": "Ghim trong hồ sơ", + "status.pinned": "Tút được ghim", + "status.read_more": "Đọc thêm", + "status.reblog": "Loan tin", + "status.reblog_private": "Loan tin đến những người có thể xem", + "status.reblogged_by": "{name} loan tin", + "status.reblogs.empty": "Chưa ai loan tin tút này, nếu có bạn sẽ thấy ở đây.", + "status.redraft": "Xóa & nháp lại", + "status.remove_bookmark": "Xóa", + "status.reply": "Trả lời", + "status.replyAll": "Trả lời chủ đề", + "status.report": "Báo cáo @{name}", + "status.sensitive_warning": "Nội dung nhạy cảm", + "status.share": "Chia sẻ", + "status.show_less": "Hiện ít hơn", + "status.show_less_all": "Hiển thị ít hơn cho tất cả", + "status.show_more": "Xem nhiều hơn", + "status.show_more_all": "Hiển thị thêm cho tất cả", + "status.show_thread": "Xem chủ đề", + "status.uncached_media_warning": "Không có sẵn", + "status.unmute_conversation": "Bỏ ẩn hội thoại", + "status.unpin": "Bỏ ghim khỏi hồ sơ", + "suggestions.dismiss": "Tắt đề xuất", + "suggestions.header": "Có thể bạn quan tâm…", + "tabs_bar.federated_timeline": "Miền liên kết", + "tabs_bar.home": "Bảng tin", + "tabs_bar.local_timeline": "Cùng miền", + "tabs_bar.notifications": "Thông báo", + "tabs_bar.search": "Tìm kiếm", + "time_remaining.days": "{number, plural, other {}} left", + "time_remaining.hours": "{number, plural, other {}} left", + "time_remaining.minutes": "{number, plural, other {}} left", + "time_remaining.moments": "Còn lại", + "time_remaining.seconds": "{number, plural, other {}} left", + "trends.count_by_accounts": "{Count} {rawCount, số nhiều, một {người} khác {người}} nói chuyện", + "trends.trending_now": "Đang là xu hướng", + "ui.beforeunload": "Bản nháp của bạn sẽ bị mất nếu bạn rời của Mastodon.", + "upload_area.title": "Kéo và thả để tải lên", + "upload_button.label": "Thêm media (JPEG, PNG, GIF, WebM, MP4, MOV)", + "upload_error.limit": "Giới hạn tải lên tập tin vượt quá.", + "upload_error.poll": "Không thể tải file lên cùng với thăm dò", + "upload_form.audio_description": "Mô tả cho người có vấn đề về thính giác", + "upload_form.description": "Mô tả cho người khiếm thị", + "upload_form.edit": "Biên tập", + "upload_form.undo": "Xóa bỏ", + "upload_form.video_description": "Mô tả cho người có vấn đề về thính giác", + "upload_modal.analyzing_picture": "Phân tích hình ảnh", + "upload_modal.apply": "Ứng dụng", + "upload_modal.description_placeholder": "Một con cáo nâu nhanh nhẹn nhảy qua con chó lười", + "upload_modal.detect_text": "Phát hiện văn bản từ hình ảnh", + "upload_modal.edit_media": "Chỉnh sửa phương tiện truyền thông", + "upload_modal.hint": "Nhấp hoặc kéo vòng tròn trên bản xem trước để chọn tiêu điểm sẽ luôn được xem trên tất cả các hình thu nhỏ.", + "upload_modal.preview_label": "Xem trước ({tỷ lệ})", + "upload_progress.label": "Đang tải lên ...", + "video.close": "Đóng video", + "video.download": "Download file", + "video.exit_fullscreen": "Thoát toàn màn hình", + "video.expand": "Mở rộng video", + "video.fullscreen": "Toàn màn hình", + "video.hide": "Ẩn video", + "video.mute": "Tắt tiếng", + "video.pause": "Pause", + "video.play": "Play", + "video.unmute": "Mở tiếng" +} diff --git a/app/javascript/mastodon/locales/whitelist_is.json b/app/javascript/mastodon/locales/whitelist_is.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_is.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_kab.json b/app/javascript/mastodon/locales/whitelist_kab.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_kab.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/whitelist_vi.json b/app/javascript/mastodon/locales/whitelist_vi.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_vi.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 550810680..84670d4b5 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "从列表中添加或删除", "account.badges.bot": "机器人", + "account.badges.group": "Group", "account.block": "屏蔽 @{name}", "account.block_domain": "隐藏来自 {domain} 的内容", "account.blocked": "已屏蔽", @@ -38,7 +39,7 @@ "account.unfollow": "取消关注", "account.unmute": "不再隐藏 @{name}", "account.unmute_notifications": "不再隐藏来自 @{name} 的通知", - "alert.rate_limited.message": "请在 {retry_time, time, medium} 后重试。", + "alert.rate_limited.message": "请在{retry_time, time, medium}后重试。", "alert.rate_limited.title": "频率受限", "alert.unexpected.message": "发生了意外错误。", "alert.unexpected.title": "哎呀!", @@ -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": "你还没有给任何嘟文添加过书签。在你添加书签后,嘟文就会显示在这里。", "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": "打开媒体", "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": "推送通知", @@ -299,7 +309,7 @@ "notifications.group": "{count} 条通知", "poll.closed": "已关闭", "poll.refresh": "刷新", - "poll.total_people": "{count, plural, one {# 人} other {# 人}}", + "poll.total_people": "{count}人", "poll.total_votes": "{count} 票", "poll.vote": "投票", "poll.voted": "您已经对这个答案投过票了", @@ -316,14 +326,14 @@ "privacy.unlisted.short": "不公开", "refresh": "刷新", "regeneration_indicator.label": "加载中……", - "regeneration_indicator.sublabel": "你的主页时间轴正在准备中!", + "regeneration_indicator.sublabel": "你的主页动态正在准备中!", "relative_time.days": "{number}天", "relative_time.hours": "{number}时", "relative_time.just_now": "刚刚", "relative_time.minutes": "{number}分", "relative_time.seconds": "{number}秒", "reply_indicator.cancel": "取消", - "report.forward": "发送举报至 {target}", + "report.forward": "转发举报至 {target}", "report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的举报?", "report.hint": "举报将会发送给你所在服务器的监察员。你可以在下面填写举报该用户的理由:", "report.placeholder": "备注", @@ -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,9 +412,11 @@ "upload_button.label": "上传媒体文件 (JPEG, PNG, GIF, WebM, MP4, MOV)", "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": "天地玄黄 宇宙洪荒 日月盈仄 辰宿列张", @@ -412,6 +426,7 @@ "upload_modal.preview_label": "预览 ({ratio})", "upload_progress.label": "上传中……", "video.close": "关闭视频", + "video.download": "下载文件", "video.exit_fullscreen": "退出全屏", "video.expand": "展开视频", "video.fullscreen": "全屏", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 3ca9f0e2e..a685409ee 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -1,31 +1,32 @@ { - "account.add_or_remove_from_list": "Add or Remove from lists", + "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": "Cancel follow request", + "account.cancel_follow_request": "取消關注請求", "account.direct": "私訊 @{name}", "account.domain_blocked": "服務站被隱藏", "account.edit_profile": "修改個人資料", - "account.endorse": "Feature on profile", + "account.endorse": "在個人資料推薦對方", "account.follow": "關注", "account.followers": "關注的人", - "account.followers.empty": "No one follows this user yet.", + "account.followers.empty": "尚沒有人關注這位使用者。", "account.follows": "正關注", - "account.follows.empty": "This user doesn't follow anyone yet.", + "account.follows.empty": "這位使用者尚未關注任何使用者。", "account.follows_you": "關注你", "account.hide_reblogs": "隱藏 @{name} 的轉推", - "account.last_status": "Last active", - "account.link_verified_on": "Ownership of this link was checked on {date}", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.last_status": "上次活躍時間", + "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.never_active": "Never", + "account.never_active": "永不", "account.posts": "文章", "account.posts_with_replies": "包含回覆的文章", "account.report": "舉報 @{name}", @@ -34,15 +35,15 @@ "account.show_reblogs": "顯示 @{name} 的推文", "account.unblock": "解除對 @{name} 的封鎖", "account.unblock_domain": "不再隱藏 {domain}", - "account.unendorse": "Don't feature on profile", + "account.unendorse": "不再於個人資料頁面推薦對方", "account.unfollow": "取消關注", "account.unmute": "取消 @{name} 的靜音", "account.unmute_notifications": "取消來自 @{name} 通知的靜音", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", - "alert.rate_limited.title": "Rate limited", + "alert.rate_limited.message": "請在 {retry_time, time, medium} 過後重試", + "alert.rate_limited.title": "已限速", "alert.unexpected.message": "發生不可預期的錯誤。", "alert.unexpected.title": "噢!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "如你想在下次路過這顯示,請按{combo},", "bundle_column_error.body": "加載本組件出錯。", "bundle_column_error.retry": "重試", @@ -51,9 +52,10 @@ "bundle_modal_error.message": "加載本組件出錯。", "bundle_modal_error.retry": "重試", "column.blocks": "封鎖用戶", + "column.bookmarks": "書籤", "column.community": "本站時間軸", "column.direct": "個人訊息", - "column.directory": "Browse profiles", + "column.directory": "瀏覽個人資料", "column.domain_blocks": "隱藏的服務站", "column.favourites": "最愛的文章", "column.follow_requests": "關注請求", @@ -78,20 +80,22 @@ "compose_form.lock_disclaimer": "你的用戶狀態為「{locked}」,任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "公共", "compose_form.placeholder": "你在想甚麼?", - "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.add_option": "新增選擇", + "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": "Mark media as sensitive", + "compose_form.sensitive.hide": "標記媒體為敏感內容", "compose_form.sensitive.marked": "媒體被標示為敏感", "compose_form.sensitive.unmarked": "媒體沒有被標示為敏感", "compose_form.spoiler.marked": "文字被警告隱藏", "compose_form.spoiler.unmarked": "文字沒有被隱藏", "compose_form.spoiler_placeholder": "敏感警告訊息", "confirmation_modal.cancel": "取消", - "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "你確定要封鎖{name}嗎?", "confirmations.delete.confirm": "刪除", @@ -100,25 +104,25 @@ "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", "confirmations.domain_block.confirm": "隱藏整個網站", "confirmations.domain_block.message": "你真的真的確定要隱藏整個 {domain} ?多數情況下,比較推薦封鎖或靜音幾個特定目標就好。你從此將不會再看到該站的內容和通知。來自該站的關注者亦會被移除。", - "confirmations.logout.confirm": "Log out", - "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.confirm": "登出", + "confirmations.logout.message": "確定要登出嗎?", "confirmations.mute.confirm": "靜音", - "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.explanation": "這將會隱藏來自他們的貼文與通知,但是他們還是可以查閱你的貼文與關注你。", "confirmations.mute.message": "你確定要將{name}靜音嗎?", "confirmations.redraft.confirm": "刪除並編輯", "confirmations.redraft.message": "你確定要刪除並重新編輯嗎?所有相關的回覆、轉推與最愛都會被刪除。", - "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.reply.confirm": "回覆", + "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?", "confirmations.unfollow.confirm": "取消關注", "confirmations.unfollow.message": "真的不要繼續關注 {name} 了嗎?", - "conversation.delete": "Delete conversation", - "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.recently_active": "Recently active", + "conversation.delete": "刪除對話", + "conversation.mark_as_read": "標為已讀", + "conversation.open": "檢視對話", + "conversation.with": "與 {names}", + "directory.federated": "來自已知聯邦宇宙", + "directory.local": "僅來自 {domain}", + "directory.new_arrivals": "新貨", + "directory.recently_active": "最近活躍", "embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。", "embed.preview": "看上去會是這樣:", "emoji_button.activity": "活動", @@ -135,176 +139,182 @@ "emoji_button.search_results": "搜尋結果", "emoji_button.symbols": "符號", "emoji_button.travel": "旅遊景物", - "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.account_timeline": "這裡還沒有嘟文!", + "empty_column.account_unavailable": "無法取得個人資料", + "empty_column.blocks": "你還沒有封鎖任何使用者。", + "empty_column.bookmarked_statuses": "你還沒建立任何書籤。這裡將會顯示你建立的書籤。", "empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!", "empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。", - "empty_column.domain_blocks": "There are no hidden domains yet.", - "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": "You don't have any follow requests yet. When you receive one, it will show up here.", + "empty_column.domain_blocks": "尚未隱藏任何網域。", + "empty_column.favourited_statuses": "你還沒收藏任何嘟文。這裡將會顯示你收藏的嘟文。", + "empty_column.favourites": "還沒有人收藏這則嘟文。這裡將會顯示被收藏的嘟文。", + "empty_column.follow_requests": "您尚未收到任何關注請求。這裡將會顯示收到的關注請求。", "empty_column.hashtag": "這個標籤暫時未有內容。", "empty_column.home": "你還沒有關注任何用戶。快看看{public},向其他用戶搭訕吧。", "empty_column.home.public_timeline": "公共時間軸", "empty_column.list": "這個列表暫時未有內容。", - "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", - "empty_column.mutes": "You haven't muted any users yet.", + "empty_column.lists": "你還沒有建立任何名單。這裡將會顯示你所建立的名單。", + "empty_column.mutes": "你尚未靜音任何使用者。", "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", - "errors.unexpected_crash.report_issue": "Report issue", + "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,故無法正常顯示頁面。", + "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有進展,你可以使用不同的瀏覽器或 Mastodon 應用程式來檢視。", + "errors.unexpected_crash.copy_stacktrace": "複製到剪貼簿", + "errors.unexpected_crash.report_issue": "舉報問題", "follow_request.authorize": "批准", "follow_request.reject": "拒絕", "getting_started.developers": "開發者", - "getting_started.directory": "Profile directory", - "getting_started.documentation": "Documentation", + "getting_started.directory": "個人資料目錄", + "getting_started.documentation": "文件", "getting_started.heading": "開始使用", "getting_started.invite": "邀請使用者", "getting_started.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub ({github}) 貢獻或者回報問題。", "getting_started.security": "帳戶安全", "getting_started.terms": "服務條款", - "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_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_header.tag_mode.all": "以及{additional}", + "hashtag.column_header.tag_mode.any": "或是{additional}", + "hashtag.column_header.tag_mode.none": "而無需{additional}", + "hashtag.column_settings.select.no_options_message": "找不到建議", + "hashtag.column_settings.select.placeholder": "輸入主題標籤…", + "hashtag.column_settings.tag_mode.all": "全部", + "hashtag.column_settings.tag_mode.any": "任一", + "hashtag.column_settings.tag_mode.none": "全不", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "home.column_settings.basic": "基本", "home.column_settings.show_reblogs": "顯示被轉推的文章", "home.column_settings.show_replies": "顯示回應文章", - "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}}", - "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.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.", + "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", + "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", + "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", + "introduction.federation.action": "下一步", + "introduction.federation.federated.headline": "站台聯盟", + "introduction.federation.federated.text": "來自聯盟宇宙中其他站台的公開嘟文將會在站點聯盟時間軸中顯示。", + "introduction.federation.home.headline": "首頁", + "introduction.federation.home.text": "你關注使用者的嘟文將會在首頁動態中顯示。你可以關注任何伺服器上的任何人!", + "introduction.federation.local.headline": "本機", + "introduction.federation.local.text": "跟您同伺服器之使用者所發的公開嘟文將會顯示在本機時間軸中。", "introduction.interactions.action": "Finish toot-orial!", - "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", - "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", - "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.interactions.favourite.headline": "關注", + "introduction.interactions.favourite.text": "您能儲存嘟文供稍候觀看,或者收藏嘟文,讓作者知道您喜歡這則嘟文。", + "introduction.interactions.reblog.headline": "轉嘟", + "introduction.interactions.reblog.text": "您能藉由轉嘟他人嘟文來分享給您的關注者。", + "introduction.interactions.reply.headline": "回覆", + "introduction.interactions.reply.text": "您能回覆其他人或自己的嘟文,這麼做會把這些回覆串成一串對話。", + "introduction.welcome.action": "開始旅程吧!", + "introduction.welcome.headline": "第一步", + "introduction.welcome.text": "歡迎來到聯盟宇宙!等等你就可以廣播訊息及跨越各種各式各樣的伺服器與朋友聊天。但這台伺服器,{domain},非常特別 - 它寄管了你的個人資料,所以請記住它的名字。", "keyboard_shortcuts.back": "後退", - "keyboard_shortcuts.blocked": "to open blocked users list", + "keyboard_shortcuts.blocked": "開啟「封鎖使用者」名單", "keyboard_shortcuts.boost": "轉推", "keyboard_shortcuts.column": "把標示移動到其中一列", "keyboard_shortcuts.compose": "把標示移動到文字輸入區", "keyboard_shortcuts.description": "描述", - "keyboard_shortcuts.direct": "to open direct messages column", + "keyboard_shortcuts.direct": "開啟私訊欄", "keyboard_shortcuts.down": "在列表往下移動", "keyboard_shortcuts.enter": "打開文章", "keyboard_shortcuts.favourite": "收藏", - "keyboard_shortcuts.favourites": "to open favourites list", - "keyboard_shortcuts.federated": "to open federated timeline", + "keyboard_shortcuts.favourites": "開啟收藏名單", + "keyboard_shortcuts.federated": "開啟站點聯盟時間軸", "keyboard_shortcuts.heading": "鍵盤快速鍵", - "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.home": "開啟首頁時間軸", "keyboard_shortcuts.hotkey": "快速鍵", "keyboard_shortcuts.legend": "顯示這個說明", - "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.local": "開啟本機時間軸", "keyboard_shortcuts.mention": "提及作者", - "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.pinned": "to open pinned toots list", - "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.muted": "開啟靜音使用者名單", + "keyboard_shortcuts.my_profile": "開啟個人資料頁面", + "keyboard_shortcuts.notifications": "開啟通知欄", + "keyboard_shortcuts.open_media": "開啟媒體", + "keyboard_shortcuts.pinned": "開啟釘選的嘟文名單", + "keyboard_shortcuts.profile": "開啟作者的個人資料頁面", "keyboard_shortcuts.reply": "回覆", - "keyboard_shortcuts.requests": "to open follow requests list", + "keyboard_shortcuts.requests": "開啟關注請求名單", "keyboard_shortcuts.search": "把標示移動到搜索", - "keyboard_shortcuts.start": "to open \"get started\" column", + "keyboard_shortcuts.start": "開啟「開始使用」欄位", "keyboard_shortcuts.toggle_hidden": "顯示或隱藏被標為敏感的文字", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toggle_sensitivity": "顯示 / 隱藏媒體", "keyboard_shortcuts.toot": "新的推文", "keyboard_shortcuts.unfocus": "把標示移離文字輸入和搜索", "keyboard_shortcuts.up": "在列表往上移動", "lightbox.close": "關閉", "lightbox.next": "繼續", "lightbox.previous": "回退", - "lightbox.view_context": "View context", + "lightbox.view_context": "檢視內文", "lists.account.add": "新增到列表", "lists.account.remove": "從列表刪除", "lists.delete": "刪除列表", "lists.edit": "編輯列表", - "lists.edit.submit": "Change title", + "lists.edit.submit": "變更標題", "lists.new.create": "新增列表", "lists.new.title_placeholder": "新列表標題", "lists.search": "從你關注的用戶中搜索", "lists.subheading": "列表", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count, plural, other {# 個新項目}}", "loading_indicator.label": "載入中...", "media_gallery.toggle_visible": "打開或關上", "missing_indicator.label": "找不到內容", "missing_indicator.sublabel": "無法找到內容", "mute_modal.hide_notifications": "隱藏來自這用戶的通知嗎?", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.apps": "封鎖的使用者", "navigation_bar.blocks": "被你封鎖的用戶", + "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", - "navigation_bar.compose": "Compose new toot", + "navigation_bar.compose": "撰寫新嘟文", "navigation_bar.direct": "個人訊息", "navigation_bar.discover": "探索", "navigation_bar.domain_blocks": "隱藏的服務站", "navigation_bar.edit_profile": "修改個人資料", "navigation_bar.favourites": "最愛的內容", - "navigation_bar.filters": "Muted words", + "navigation_bar.filters": "靜音詞彙", "navigation_bar.follow_requests": "關注請求", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "關注及關注者", "navigation_bar.info": "關於本服務站", "navigation_bar.keyboard_shortcuts": "鍵盤快速鍵", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", "navigation_bar.mutes": "被你靜音的用戶", - "navigation_bar.personal": "Personal", + "navigation_bar.personal": "個人", "navigation_bar.pins": "置頂文章", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "跨站時間軸", "navigation_bar.security": "安全", "notification.favourite": "{name} 收藏了你的文章", "notification.follow": "{name} 開始關注你", + "notification.follow_request": "{name} 要求關注你", "notification.mention": "{name} 提及你", - "notification.poll": "A poll you have voted in has ended", + "notification.own_poll": "您的投票已結束", + "notification.poll": "您投過的投票已經結束", "notification.reblog": "{name} 轉推你的文章", "notifications.clear": "清空通知紀錄", "notifications.clear_confirmation": "你確定要清空通知紀錄嗎?", "notifications.column_settings.alert": "顯示桌面通知", "notifications.column_settings.favourite": "收藏了你的文章:", - "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.advanced": "顯示所有分類", + "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": "Poll results:", + "notifications.column_settings.poll": "投票結果:", "notifications.column_settings.push": "推送通知", "notifications.column_settings.reblog": "轉推你的文章:", "notifications.column_settings.show": "在通知欄顯示", "notifications.column_settings.sound": "播放音效", - "notifications.filter.all": "All", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favourites", - "notifications.filter.follows": "Follows", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", + "notifications.filter.all": "全部", + "notifications.filter.boosts": "轉嘟", + "notifications.filter.favourites": "最愛", + "notifications.filter.follows": "關注的使用者", + "notifications.filter.mentions": "提及", + "notifications.filter.polls": "投票結果", "notifications.group": "{count} 條通知", - "poll.closed": "Closed", - "poll.refresh": "Refresh", - "poll.total_people": "{count, plural, one {# person} other {# people}}", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll.voted": "You voted for this answer", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll.closed": "已關閉", + "poll.refresh": "重新整理", + "poll.total_people": "{count, plural, one {# 個投票} other {# 個投票}}", + "poll.total_votes": "{count, plural, one {# 個投票} other {# 個投票}}", + "poll.vote": "投票", + "poll.voted": "你已對此問題投票", + "poll_button.add_poll": "建立投票", + "poll_button.remove_poll": "移除投票", "privacy.change": "調整私隱設定", "privacy.direct.long": "只有提及的用戶能看到", "privacy.direct.short": "私人訊息", @@ -314,7 +324,7 @@ "privacy.public.short": "公共", "privacy.unlisted.long": "公開,但不在公共時間軸顯示", "privacy.unlisted.short": "公開", - "refresh": "Refresh", + "refresh": "重新整理", "regeneration_indicator.label": "載入中……", "regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!", "relative_time.days": "{number}日", @@ -339,20 +349,21 @@ "search_results.accounts": "使用者", "search_results.hashtags": "標籤", "search_results.statuses": "文章", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.statuses_fts_disabled": "「依內容搜尋嘟文」未在此 Mastodon 伺服器啟用。", "search_results.total": "{count, number} 項結果", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_status": "Open this status in the moderation interface", + "status.admin_account": "開啟 @{name} 的管理介面", + "status.admin_status": "在管理介面開啟此嘟文", "status.block": "封鎖 @{name}", + "status.bookmark": "書籤", "status.cancel_reblog_private": "取消轉推", "status.cannot_reblog": "這篇文章無法被轉推", - "status.copy": "Copy link to status", + "status.copy": "將連結複製到嘟文中", "status.delete": "刪除", - "status.detailed_status": "Detailed conversation view", + "status.detailed_status": "對話的詳細內容", "status.direct": "私訊 @{name}", "status.embed": "鑲嵌", "status.favourite": "收藏", - "status.filtered": "Filtered", + "status.filtered": "已過濾", "status.load_more": "載入更多", "status.media_hidden": "隱藏媒體內容", "status.mention": "提及 @{name}", @@ -362,12 +373,13 @@ "status.open": "展開文章", "status.pin": "置頂到資料頁", "status.pinned": "置頂文章", - "status.read_more": "Read more", + "status.read_more": "閱讀更多", "status.reblog": "轉推", "status.reblog_private": "轉推到原讀者", "status.reblogged_by": "{name} 轉推", - "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", + "status.reblogs.empty": "還沒有人轉嘟。如果有,會顯示在這裡。", "status.redraft": "刪除並編輯", + "status.remove_bookmark": "移除書籤", "status.reply": "回應", "status.replyAll": "回應所有人", "status.report": "舉報 @{name}", @@ -377,41 +389,44 @@ "status.show_less_all": "減少顯示這類文章", "status.show_more": "顯示更多", "status.show_more_all": "顯示更多這類文章", - "status.show_thread": "Show thread", - "status.uncached_media_warning": "Not available", + "status.show_thread": "顯示討論串", + "status.uncached_media_warning": "無法使用", "status.unmute_conversation": "解禁對話", "status.unpin": "解除置頂", - "suggestions.dismiss": "Dismiss suggestion", - "suggestions.header": "You might be interested in…", + "suggestions.dismiss": "關閉建議", + "suggestions.header": "您可能對這些東西有興趣…", "tabs_bar.federated_timeline": "跨站", "tabs_bar.home": "主頁", "tabs_bar.local_timeline": "本站", "tabs_bar.notifications": "通知", "tabs_bar.search": "搜尋", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "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", + "time_remaining.days": "剩餘{number, plural, one {# 天數} other {# 天數}}", + "time_remaining.hours": "剩餘{number, plural, one {# 小時} other {# 小時}}", + "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}", + "time_remaining.moments": "剩餘時間", + "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}", "trends.count_by_accounts": "{count} 位用戶在討論", - "trends.trending_now": "Trending now", + "trends.trending_now": "目前趨勢", "ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。", "upload_area.title": "將檔案拖放至此上載", "upload_button.label": "上載媒體檔案", - "upload_error.limit": "File upload limit exceeded.", - "upload_error.poll": "File upload not allowed with polls.", + "upload_error.limit": "已達到檔案上傳限制。", + "upload_error.poll": "不允許在投票上傳檔案。", + "upload_form.audio_description": "簡單描述內容給聽障人士", "upload_form.description": "為視覺障礙人士添加文字說明", - "upload_form.edit": "Edit", + "upload_form.edit": "編輯", "upload_form.undo": "刪除", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "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.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_form.video_description": "簡單描述給聽障或視障人士", + "upload_modal.analyzing_picture": "正在分析圖片…", + "upload_modal.apply": "套用", + "upload_modal.description_placeholder": "A quick brown fox 跳過那隻懶狗", + "upload_modal.detect_text": "從圖片偵測文字", + "upload_modal.edit_media": "編輯媒體", + "upload_modal.hint": "點擊或拖曳圓圈以選擇預覽縮圖。", + "upload_modal.preview_label": "預覽 ({ratio})", "upload_progress.label": "上載中……", "video.close": "關閉影片", + "video.download": "下載檔案", "video.exit_fullscreen": "退出全熒幕", "video.expand": "展開影片", "video.fullscreen": "全熒幕", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 136573381..e5f740b46 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -1,6 +1,7 @@ { "account.add_or_remove_from_list": "從名單中新增或移除", "account.badges.bot": "機器人", + "account.badges.group": "Group", "account.block": "封鎖 @{name}", "account.block_domain": "隱藏來自 {domain} 的所有內容", "account.blocked": "已封鎖", @@ -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": "標記媒體為敏感內容", @@ -103,7 +107,7 @@ "confirmations.logout.confirm": "登出", "confirmations.logout.message": "確定要登出嗎?", "confirmations.mute.confirm": "靜音", - "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.explanation": "這將會隱藏來自他們的貼文與通知,但是他們還是可以查閱你的貼文與關注你。", "confirmations.mute.message": "確定靜音 {name} ?", "confirmations.redraft.confirm": "刪除並重新編輯", "confirmations.redraft.message": "確定刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及收藏,且回覆這則的嘟文將會變成獨立的嘟文。", @@ -138,6 +142,7 @@ "empty_column.account_timeline": "這裡還沒有嘟文!", "empty_column.account_unavailable": "無法取得個人資料", "empty_column.blocks": "你還沒有封鎖任何使用者。", + "empty_column.bookmarked_statuses": "你還沒建立任何書籤。這裡將會顯示你建立的書籤。", "empty_column.community": "本地時間軸是空的。快公開嘟些文搶頭香啊!", "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。", "empty_column.domain_blocks": "尚未隱藏任何網域。", @@ -152,10 +157,10 @@ "empty_column.mutes": "你尚未靜音任何使用者。", "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", - "errors.unexpected_crash.report_issue": "Report issue", + "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,故無法正常顯示頁面。", + "error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有進展,你可以使用不同的瀏覽器或 Mastodon 應用程式來檢視。", + "errors.unexpected_crash.copy_stacktrace": "複製到剪貼簿", + "errors.unexpected_crash.report_issue": "舉報問題", "follow_request.authorize": "授權", "follow_request.reject": "拒絕", "getting_started.developers": "開發者", @@ -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": "推送通知", @@ -299,7 +309,7 @@ "notifications.group": "{count} 條通知", "poll.closed": "已關閉", "poll.refresh": "重新整理", - "poll.total_people": "{count, plural, one {# person} other {# people}}", + "poll.total_people": "{count, plural, one {# 個投票} other {# 個投票}}", "poll.total_votes": "{count, plural, one {# 個投票} other {# 個投票}}", "poll.vote": "投票", "poll.voted": "你已對此問題投票", @@ -314,7 +324,7 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "公開,但不會顯示在公開時間軸", "privacy.unlisted.short": "不公開", - "refresh": "Refresh", + "refresh": "重新整理", "regeneration_indicator.label": "載入中…", "regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!", "relative_time.days": "{number} 天", @@ -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": "上傳媒體檔案 (JPEG, PNG, GIF, WebM, MP4, MOV)", "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 跳過那隻懶狗", "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": "全螢幕", diff --git a/config/locales/activerecord.ast.yml b/config/locales/activerecord.ast.yml index de95817c1..4dfa507fc 100644 --- a/config/locales/activerecord.ast.yml +++ b/config/locales/activerecord.ast.yml @@ -1,6 +1,9 @@ --- ast: activerecord: + attributes: + poll: + options: Escoyetes errors: models: account: diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml index 2795a6b33..67dd9a094 100644 --- a/config/locales/activerecord.ca.yml +++ b/config/locales/activerecord.ca.yml @@ -14,4 +14,4 @@ ca: status: attributes: reblog: - taken: de l'estat ja existeix + taken: del tut ja existeix diff --git a/config/locales/activerecord.is.yml b/config/locales/activerecord.is.yml new file mode 100644 index 000000000..b5d656130 --- /dev/null +++ b/config/locales/activerecord.is.yml @@ -0,0 +1,17 @@ +--- +is: + activerecord: + attributes: + poll: + expires_at: Lokadagur + options: Valkostir + errors: + models: + account: + attributes: + username: + invalid: aðeins bókstafir, tölur og undirstrik + status: + attributes: + reblog: + taken: af stöðu er þegar fyrirliggjandi diff --git a/config/locales/activerecord.kab.yml b/config/locales/activerecord.kab.yml new file mode 100644 index 000000000..21007347c --- /dev/null +++ b/config/locales/activerecord.kab.yml @@ -0,0 +1,12 @@ +--- +kab: + activerecord: + attributes: + poll: + options: Tifranin + errors: + models: + account: + attributes: + username: + invalid: isekkilen, uṭṭunen d yijerriden n wadda kan diff --git a/config/locales/activerecord.ml.yml b/config/locales/activerecord.ml.yml index 6931a683d..baecb9e82 100644 --- a/config/locales/activerecord.ml.yml +++ b/config/locales/activerecord.ml.yml @@ -1 +1,12 @@ +--- ml: + activerecord: + attributes: + poll: + expires_at: സമയപരിധി + errors: + models: + account: + attributes: + username: + invalid: അക്ഷരങ്ങളും, അക്കങ്ങളും, പിന്നെ അടിവരയും മാത്രം diff --git a/config/locales/activerecord.nn.yml b/config/locales/activerecord.nn.yml index 777f4e600..31f1682bd 100644 --- a/config/locales/activerecord.nn.yml +++ b/config/locales/activerecord.nn.yml @@ -1 +1,17 @@ +--- nn: + activerecord: + attributes: + poll: + expires_at: Frist + options: Val + errors: + models: + account: + attributes: + username: + invalid: bare bokstaver, tall og understreker + status: + attributes: + reblog: + taken: av status eksisterer allerede diff --git a/config/locales/activerecord.no.yml b/config/locales/activerecord.no.yml index 3676b953c..553bd65bf 100644 --- a/config/locales/activerecord.no.yml +++ b/config/locales/activerecord.no.yml @@ -1,6 +1,10 @@ --- 'no': activerecord: + attributes: + poll: + expires_at: Tidsfrist + options: Valg errors: models: account: diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml index 3f2b6aaaa..5a7d48bc3 100644 --- a/config/locales/activerecord.pt-BR.yml +++ b/config/locales/activerecord.pt-BR.yml @@ -4,13 +4,13 @@ pt-BR: attributes: poll: expires_at: Expira em - options: Escolhas + options: Opções errors: models: account: attributes: username: - invalid: apenas letras, números e '_' são permitidos + invalid: apenas letras, números e underlines ( "_" ) status: attributes: reblog: diff --git a/config/locales/activerecord.pt-PT.yml b/config/locales/activerecord.pt-PT.yml index cbb053a90..884b79fa1 100644 --- a/config/locales/activerecord.pt-PT.yml +++ b/config/locales/activerecord.pt-PT.yml @@ -1,6 +1,10 @@ --- pt-PT: activerecord: + attributes: + poll: + expires_at: Expira em + options: Escolhas errors: models: account: diff --git a/config/locales/activerecord.ta.yml b/config/locales/activerecord.ta.yml index b89c564f2..781fbd2d9 100644 --- a/config/locales/activerecord.ta.yml +++ b/config/locales/activerecord.ta.yml @@ -3,15 +3,15 @@ ta: activerecord: attributes: poll: - expires_at: இறுதிகட்டம் + expires_at: காலக்கெடு options: தேர்வுகள் errors: models: account: attributes: username: - invalid: எழுத்துக்கள், எண்கள் மற்றும் அடிக்கோடு + invalid: எழுத்துகள், எண்கள் மற்றும் அடிக்கோடுகள் மட்டுமே status: attributes: reblog: - taken: அந்த நிலையறிக்கை ஏற்கனவே உள்ளது + taken: ஏற்கனவே பதியப்பட்டது diff --git a/config/locales/activerecord.vi.yml b/config/locales/activerecord.vi.yml new file mode 100644 index 000000000..61d64b6c6 --- /dev/null +++ b/config/locales/activerecord.vi.yml @@ -0,0 +1,17 @@ +--- +vi: + activerecord: + attributes: + poll: + expires_at: Hạn chót + options: Lựa chọn + errors: + models: + account: + attributes: + username: + invalid: chỉ chấp nhận số, ký tự, và dấu gạch dưới + status: + attributes: + reblog: + taken: của trạng thái đã tồn tại diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 835e96769..1519be44b 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -9,7 +9,7 @@ ar: administered_by: 'يُديره:' api: واجهة برمجة التطبيقات apps: تطبيقات الأجهزة المحمولة - apps_platforms: إستخدم ماستودون في iOS، أندرويد وأنظمة أخرى + apps_platforms: استخدم ماستدون على iOS وأندرويد وأنظمة أخرى browse_directory: تصفح دليل الصفحات التعريفية وصفّي بحسب الإهتمام browse_public_posts: تصفح تيارًا مباشرًا مِن منشورات عامة على ماستدون contact: للتواصل معنا @@ -39,6 +39,7 @@ ar: unavailable_content_description: domain: الخادم reason: 'السبب:' + silenced: 'سيتم إخفاء المنشورات القادمة من هذه الخوادم في الخيوط الزمنية والمحادثات العامة، ولن يتم إنشاء أي إخطارات من جراء تفاعلات مستخدميها، ما لم تُتَابعهم:' user_count_after: few: مستخدمين many: مستخدمين @@ -50,6 +51,7 @@ ar: what_is_mastodon: ما هو ماستدون ؟ accounts: choices_html: 'توصيات %{name}:' + endorsements_hint: يمكنك التوصية بالأشخاص الذين تتابعهم من واجهة الويب، وسيظهرون هنا. follow: اتبع followers: few: متابِعون @@ -177,6 +179,7 @@ ar: staff: الفريق user: مستخدِم search: البحث + search_same_ip: مستخدِمون آخرون بنفس الـ IP shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد show: created_reports: البلاغات التي أنشأها هذا الحساب @@ -203,10 +206,12 @@ ar: confirm_user: "%{name} قد قام بتأكيد عنوان البريد الإلكتروني لـ %{target}" create_account_warning: قام %{name} بإرسال تحذير إلى %{target} create_custom_emoji: "%{name} قام برفع إيموجي جديد %{target}" + create_domain_allow: قام %{name} بإضافة النطاق %{target} إلى القائمة البيضاء create_domain_block: "%{name} قام بحجب نطاق %{target}" create_email_domain_block: "%{name} قد قام بحظر نطاق البريد الإلكتروني %{target}" demote_user: "%{name} قد قام بإنزال الرتبة الوظيفية لـ %{target}" destroy_custom_emoji: قام %{name} بحذف الإيموجي %{target} + destroy_domain_allow: قام %{name} بإزالة النطاق %{target} مِن القائمة البيضاء destroy_domain_block: "%{name} قام بإلغاء الحجب عن النطاق %{target}" destroy_email_domain_block: قام %{name} بإضافة نطاق البريد الإلكتروني %{target} إلى اللائحة البيضاء destroy_status: لقد قام %{name} بحذف منشور %{target} @@ -337,6 +342,7 @@ ar: delete: حذف destroyed_msg: تم حذف نطاق البريد الإلكتروني من اللائحة السوداء بنجاح domain: النطاق + empty: ليس هناك أية نطاقات للبريد الإلكتروني مُدرَجة في القائمة السوداء. new: create: إضافة نطاق title: إضافة نطاق بريد جديد إلى اللائحة السوداء @@ -388,6 +394,7 @@ ar: pending: في انتظار تسريح المُرحِّل save_and_enable: حفظ وتشغيل setup: إعداد اتصال بمُرحّل + signatures_not_enabled: لن تعمل المُرحِّلات بشكل صحيح إن تم تنشيط الوضع الآمن أو وضع القائمة البيضاء status: الحالة title: المُرحّلات report_notes: @@ -433,8 +440,12 @@ ar: custom_css: desc_html: يقوم بتغيير المظهر بواسطة سي أس أس يُحمَّل على كافة الصفحات title: سي أس أس مخصص + default_noindex: + title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين domain_blocks: all: للجميع + disabled: لا أحد + title: اظهر خاصية حجب النطاقات domain_blocks_rationale: title: اظهر السبب hero: @@ -492,6 +503,8 @@ ar: desc_html: عرض الخيط العمومي على صفحة الاستقبال title: مُعاينة الخيط العام title: إعدادات الموقع + trendable_by_default: + title: السماح للوسوم بالظهور على المتداوَلة بدون مراجعة مسبقة trends: title: الوسوم المتداولة statuses: @@ -539,11 +552,19 @@ ar: body: قام %{reporter} بالإبلاغ عن %{target} body_remote: أبلغ شخص ما من %{domain} عن %{target} subject: تقرير جديد ل%{instance} (#%{id}) + aliases: + add_new: أنشئ كُنية + created_msg: تم إنشاء الكُنية الجديدة بنجاح. يمكنكم الآن الشروع في الإنتقال مِن حسابكم القديم. + remove: إلغاء ربط الكنية appearance: advanced_web_interface: واجهة الويب المتقدمة animations_and_accessibility: الإتاحة والحركة confirmation_dialogs: نوافذ التأكيد discovery: استكشاف + localization: + body: ماستدون يُترجِمه متطوّعون. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: يمكن للجميع المساهمة. sensitive_content: محتوى حساس toot_layout: تصميم التبويق application_mailer: @@ -571,6 +592,7 @@ ar: description: prefix_invited_by_user: يدعوك @%{name} للاتحاق بخادم ماستدون هذا! prefix_sign_up: أنشئ حسابًا على ماستدون اليوم! + suffix: بفضل حساب ، ستكون قادرا على متابعة الأشخاص ونشر تحديثات وتبادل رسائل مع مستخدمين مِن أي خادم Mastodon وأكثر! didnt_get_confirmation: لم تتلق تعليمات التأكيد ؟ forgot_password: نسيت كلمة المرور ؟ invalid_reset_password_token: رمز إعادة تعيين كلمة المرور غير صالح أو منتهي الصلاحية. يرجى طلب واحد جديد. @@ -589,9 +611,11 @@ ar: security: الأمان set_new_password: إدخال كلمة مرور جديدة setup: + email_below_hint_html: إذا كان عنوان البريد الإلكتروني التالي غير صحيح، فيمكنك تغييره هنا واستلام بريد إلكتروني جديد للتأكيد. title: الضبط status: account_status: حالة الحساب + confirming: في انتظار اكتمال تأكيد البريد الإلكتروني. functional: حسابك جاهز. redirecting_to: حسابك غير نشط لأنه تم تحويله حاليا إلى %{acct}. trouble_logging_in: هل صادفتكم مشكلة في الولوج؟ @@ -608,6 +632,7 @@ ar: title: إتباع %{acct} challenge: confirm: واصل + hint_html: "توصية: لن نطلب منك ثانية كلمتك السرية في غضون الساعة اللاحقة." invalid_password: الكلمة السرية خاطئة prompt: أكِّد الكلمة السرية للمواصلة datetime: @@ -648,7 +673,7 @@ ar: '400': The request you submitted was invalid or malformed. '403': ليس لك الصلاحيات الكافية لعرض هذه الصفحة. '404': إنّ الصفحة التي تبحث عنها لا وجود لها أصلا. - '406': This page is not available in the requested format. + '406': إنّ هذه الصفحة غير متوفّرة في النسق المطلوب. '410': إنّ الصفحة التي تبحث عنها لم تعد موجودة. '422': content: فشل التحقق الآمن. ربما منعتَ كعكات الكوكيز؟ @@ -657,9 +682,10 @@ ar: '500': content: نحن متأسفون، لقد حدث خطأ ما مِن جانبنا. title: هذه الصفحة خاطئة - '503': The page could not be served due to a temporary server failure. + '503': تعذر تحميل الصفحة بسبب فشل مؤقت في الخادم. noscript_html: يرجى تفعيل الجافا سكريبت لاستخدام تطبيق الويب لماستدون، أو عِوض ذلك قوموا بتجريب إحدى التطبيقات الأصلية الدّاعمة لماستدون على منصّتكم. existing_username_validator: + not_found: لم نتمكّن مِن العثور على مستخدم محلي باسم المستخدم هذا not_found_multiple: تعذر العثور على %{usernames} exports: archive_takeout: @@ -672,7 +698,6 @@ ar: blocks: قمت بحظر csv: CSV domain_blocks: النطاقات المحظورة - follows: أنت تتبع lists: القوائم mutes: قُمتَ بكتم storage: ذاكرة التخزين @@ -776,11 +801,13 @@ ar: cancel: ألغِ التوجيه cancelled_msg: تم إلغاء التوجيه بنجاح. errors: + already_moved: هو نفسه نفس الحساب الذي قمت بالإنتقال إليه move_to_self: لا يمكنه أن يكون الحساب الحالي not_found: تعذر العثور عليه on_cooldown: إنّك في مرحلة الجمود followers_count: المتابِعين عند الإنتقال incoming_migrations: الانتقال مِن حساب آخر + incoming_migrations_html: قصد الإنتقال من حساب آخَر إلى هذا يجب عليك أوّلًا إنشاء كُنية حساب. not_redirecting: حاليا ، حسابك لا يقوم بالتحويل إلى أي حساب آخر. past_migrations: التهجيرات السابقة proceed_with_move: انقل مشارِكيك @@ -788,6 +815,7 @@ ar: set_redirect: تعين إعادة التوجيه warning: before: 'يرجى قراءة هذه الملاحظات بتأنّي قبل المواصلة:' + other_data: لن يتم نقل أية بيانات أخرى تلقائيا moderation: title: الإشراف notification_mailer: @@ -832,6 +860,10 @@ ar: body: 'قام %{name} بترقية منشورك:' subject: قام %{name} بترقية منشورك title: ترقية جديدة + notifications: + email_events: الأحداث للإشعارات عبر البريد الإلكتروني + email_events_hint: 'اختر الأحداث التي تريد أن تصِلَك اشعارات عنها:' + other_settings: إعدادات أخرى للإشعارات number: human: decimal_units: @@ -855,6 +887,7 @@ ar: duration_too_long: بعيد جدا في المستقبَل duration_too_short: مبكّر جدا expired: لقد انتهى استطلاع الرأي + too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر preferences: other: إعدادات أخرى posting_defaults: التفضيلات الافتراضية لنشر التبويقات @@ -862,6 +895,8 @@ ar: relationships: activity: نشاط الحساب dormant: في سبات + followers: المتابِعون + following: يُتابِع last_active: آخر نشاط most_recent: الأحدث moved: هاجر @@ -935,6 +970,7 @@ ar: settings: account: الحساب account_settings: إعدادات الحساب + aliases: كُنيات الحساب appearance: المظهر authorized_apps: التطبيقات المرخص لها back: عودة إلى ماستدون @@ -1049,11 +1085,13 @@ ar: subject: نسخة بيانات حسابك جاهزة للتنزيل title: المغادرة بأرشيف الحساب warning: + get_in_touch: يمكنك الرد على هذا البريد الإلكتروني للاتصال بفريق %{instance}. review_server_policies: مراجعة شروط السيرفر statuses: 'خصيصا لـ:' subject: disable: تم تجميد حسابك %{acct} none: تحذير إلى %{acct} + silence: إنّ حسابك %{acct} محدود suspend: لقد تم تعليق حسابك %{acct} title: disable: الحساب مُجمَّد @@ -1071,10 +1109,12 @@ ar: full_handle: عنوانك الكامل full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى. review_preferences_action: تعديل التفضيلات + review_preferences_step: تأكد من ضبط تفضيلاتك ، مثلًا أية رسائل بريد إلكترونية ترغب في تلقيها أو أي مستوى للخصوصية ترغب في اسناده افتراضيًا لمنشوراتك. إن كانت الحركة لا تُعكّر مزاجك فيمكنك إختيار تفعيل التشغيل التلقائي لوسائط GIF المتحركة. subject: أهلًا بك على ماستدون tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها. tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط العامة المحلية و كذا الفدرالية. tip_local_timeline: الخيط العام المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك! + tip_mobile_webapp: إن كان متصفحك على جهازك المحمول يُتيح ميزة إضافة Mastodon على شاشتك الرئيسية ، فيمكنك تلقي الإشعارات المدفوعة. إنه يعمل كتطبيق أصلي بحت! tips: نصائح title: أهلاً بك، %{name}! users: diff --git a/config/locales/ast.yml b/config/locales/ast.yml index ed8aef235..6c757558e 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -1,18 +1,29 @@ --- ast: about: - about_mastodon_html: Mastodon ye una rede social basada en protocolos abiertos y software de códigu llibre. Ye descentralizada, como'l corréu electrónicu. + about_hashtag_html: Estos son los barritos públicos etiquetaos con #%{hashtag}. Pues interactuar con ellos si tienes una cuenta en cualesquier parte del fediversu. + about_mastodon_html: 'La rede social del futuru: ¡ensin anuncios nin vixilancia, con un diseñu éticu y descentralizáu! Controla los tos datos con Mastodon.' about_this: Tocante a administered_by: 'Alministráu por:' + api: API + browse_directory: Restola nun direutoriu de perfiles y peñera polos intereses contact: Contautu contact_missing: Nun s'afitó contact_unavailable: N/D + discover_users: Descubri usuarios documentation: Documentación + federation_hint_html: Con una cuenta en %{instance} vas ser a siguir a persones de cualesquier sirvidor de Mastodon y más. hosted_on: Mastodon ta agospiáu en %{domain} - learn_more: Deprendi más + learn_more: Deprender más + privacy_policy: Política de privacidá + server_stats: 'Estadístiques del sirvidor:' source_code: Códigu fonte status_count_before: Que crearon + tagline: Sigui a persones y conoz a más terms: Términos del serviciu + unavailable_content_description: + domain: Sirvidor + reason: Razón user_count_after: one: usuariu other: usuarios @@ -20,29 +31,39 @@ ast: what_is_mastodon: "¿Qué ye Mastodon?" accounts: followers: - one: Xente que te sigue + one: Siguidor other: Siguidores joined: Xunióse en %{date} + last_active: última actividá moved_html: "%{name} mudóse a %{new_profile_link}:" network_hidden: Esta información nun ta disponible + never_active: Enxamás nothing_here: "¡Equí nun hai nada!" people_followed_by: Persones a les que sigue %{name} people_who_follow: Persones que siguen a %{name} - posts_with_replies: Toots y rempuestes + posts: + one: Barritu + other: Barritos + posts_tab_heading: Barritos + posts_with_replies: Barritos y rempuestes reserved_username: El nome d'usuariu ta acutáu roles: bot: Robó admin: accounts: + approve_all: Aprobar too are_you_sure: "¿De xuru?" + avatar: Avatar by_domain: Dominiu domain: Dominiu email: Corréu followers: Siguidores + ip: IP location: local: Llocal title: Allugamientu protocol: Protocolu + reject_all: Refugar too resend_confirmation: already_confirmed: Esti usuariu yá ta confirmáu role: Permisos @@ -53,11 +74,21 @@ ast: statuses: Estaos title: Cuentes username: Nome d'usuariu + web: Web action_logs: actions: + create_account_warning: "%{name} unvió una alvertencia a %{target}" create_domain_block: "%{name} bloquió'l dominiu %{target}" disable_custom_emoji: "%{name} desactivó'l fustaxe %{target}" disable_user: "%{name} desactivó l'aniciu de sesión del usuariu %{target}" + enable_custom_emoji: "%{name} activó'l fustaxe %{target}" + promote_user: "%{name} ascendió al usuariu %{target}" + remove_avatar_user: "%{name} desanició l'avatar de %{target}" + reopen_report: "%{name} reabrió l'informe de %{target}" + reset_password_user: "%{name} reafitó la contraseña del usuariu %{target}" + resolve_report: "%{name} resolvió l'informe de %{target}" + silence_account: "%{name} silenció la cuenta de %{target}" + suspend_account: "%{name} suspendió la cuenta de %{target}" custom_emojis: by_domain: Dominiu copy_failed_msg: Nun pudo facese una copia llocal d'esi fustaxe @@ -68,8 +99,10 @@ ast: feature_registrations: Rexistros features: Carauterístiques hidden_service: Federación con servicios anubríos - recent_users: Usuarios recientes + recent_users: Usuarios de recién + software: Software total_users: usuarios en total + trends: Tendencies week_interactions: interaiciones d'esta selmana week_users_new: usuarios d'esta selmana domain_blocks: @@ -77,7 +110,8 @@ ast: email_domain_blocks: domain: Dominiu instances: - title: Instancies conocíes + by_domain: Dominiu + title: Federación invites: filter: available: Disponible @@ -85,6 +119,7 @@ ast: title: Invitaciones relays: save_and_enable: Guardar y activar + status: Estáu reports: are_you_sure: "¿De xuru?" status: Estáu @@ -93,28 +128,54 @@ ast: min_invite_role: disabled: Naide site_description: - title: Descipción de la instancia - site_title: Nome de la instancia + title: Descripción del sirvidor + site_title: Nome del sirvidor title: Axustes del sitiu statuses: failed_to_execute: Fallu al executar + tags: + context: Contestu + most_recent: Lo más recién + name: Etiqueta + title: Etiquetes title: Alministración admin_mailer: + new_pending_account: + body: Los detalles de la cuenta nueva tán embaxo. Pues aprobar o refugar esta aplicación. new_report: body_remote: Daquién dende %{domain} informó de %{target} + new_trending_tag: + body: 'Güei la etiqueta #%{name} ye tendencia pero nun se revisó anteriormente. Nun va amosase públicamente a nun ser que lo permitas o guardes el formulariu como ta pa nun saber más d''ello.' + appearance: + advanced_web_interface: Interfaz web avanzada + confirmation_dialogs: Diálogos de confirmación + discovery: Descubrición + localization: + body: Mastodon tradúcenlu voluntarios, + guide_link: https://crowdin.com/project/mastodon + guide_link_text: tol mundu pue collaborar. + toot_layout: Distribución de los barritos applications: invalid_url: La URL apurrida nun ye válida - warning: Ten curiáu con estos datos, ¡enxamás nun los compartas con naide! + warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide! auth: change_password: Contraseña + checkbox_agreement_html: Aceuto les regles del sirvidor y los términos del serviciu + checkbox_agreement_without_rules_html: Aceuto los términos del serviciu delete_account: Desaniciu de la cuenta delete_account_html: Si deseyes desaniciar la to cuenta, pues siguir equí. Va pidísete la confirmación. + description: + suffix: "¡Con una cuenta, vas ser a siguir a persones, espublizar anovamientos ya intercambiar mensaxes con usuarios de cualesquier sirvidor de Mastodon y más!" forgot_password: "¿Escaeciesti la contraseña?" login: Aniciar sesión migrate_account: Mudase a otra cuenta - migrate_account_html: Si deseyes redirixir esta cuenta a otra, pues configuralo equí. + migrate_account_html: Si deseyes redirixir esta cuenta a otra, pues configuralo equí. + providers: + cas: CAS + saml: SAML register: Rexistrase security: Seguranza + trouble_logging_in: "¿Problemes col aniciu de sesión?" authorize_follow: already_following: Yá tas siguiendo a esta cuenta error: Desafortunadamente, hebo un fallu guetando la cuenta remota @@ -129,10 +190,13 @@ ast: less_than_x_seconds: Púramente agora deletes: confirm_password: Introduz la contraseña pa verificar la to identidá + warning: + email_contact_html: Si entá nun aportó, pues unviar un corréu a%{email} pa más ayuda + more_details_html: Pa más detalles, mira la política de privacidá. errors: '400': The request you submitted was invalid or malformed. '403': Nun tienes permisu pa ver esta páxina. - '404': La páxina que tabes guetando nun esiste. + '404': La páxina que tabes guetando nun ta equí. '406': This page is not available in the requested format. '410': La páxina que tabes guetando yá nun esiste. '422': @@ -144,26 +208,39 @@ ast: exports: archive_takeout: date: Data - hint_html: Pues solicitar un archivu colos tos toots y ficheros xubíos. Los datos esportaos van tar nel formatu ActivityPub, llexible pa cualesquier software que seya compatible. Pues solicitar un archivu cada 7 díes. + hint_html: Pues solicitar un archivu colos tos barritos y ficheros xubíos. Los datos esportaos van tar nel formatu ActivityPub, llexible pa cualesquier software que seya compatible. Pues solicitar un archivu cada 7 díes. request: Solicitar l'archivu size: Tamañu blocks: Xente que bloquiesti - follows: Xente que sigues + csv: CSV + lists: Llistes mutes: Xente que silenciesti + featured_tags: + add_new: Amestar filters: contexts: notifications: Avisos public: Llinies temporales públiques thread: Conversaciones index: + empty: Nun tienes peñeres. title: Peñeres new: title: Amestar una peñera nueva + footer: + developers: Desendolcadores + more: Más… + resources: Recursos generic: + all: Too changes_saved_msg: "¡Los cambeos guardáronse con ésitu!" save_changes: Guardar cambeos + identity_proofs: + authorize: Sí, autorizar + i_am_html: Soi %{username} de %{service}. + identity: Identidá imports: - preface: Pues importar los datos qu'esportares dende otra instancia, como por exemplu la llista de persones que bloquiares o tubieres siguiendo. + preface: Pues importar los datos qu'esportares dende otra instancia, como por exemplu la llista de persones que bloquiares o tuvieres siguiendo. types: blocking: Llista de xente bloquiao following: Llista de siguidores @@ -180,13 +257,16 @@ ast: '604800': 1 selmana '86400': 1 día expires_in_prompt: Enxamás + generate: Xenerar un enllaz d'invitación invited_by: 'Convidóte:' max_uses: one: 1 usu other: "%{count} usos" + prompt: Xenera y comparti enllaces con otros pa da-yos accesu a esti sirividor table: expires_at: Data de caducidá uses: Usos + title: Convidar a persones lists: errors: limit: Algamesti la cantidá máxima de llistes @@ -196,6 +276,8 @@ ast: too_many: Nun puen axuntase más de 4 ficheros migrations: acct: nome_usuariu@dominiu de la cuenta nueva + warning: + followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva notification_mailer: digest: body: Equí hai un resume de los mensaxes que nun viesti dende la última visita'l %{since} @@ -213,31 +295,83 @@ ast: reblog: body: "%{name} compartió'l to estáu:" subject: "%{name} compartió'l to estáu" - title: Compartición nueva de toot + title: Compartición nueva de barritu + notifications: + email_events_hint: 'Esbilla los eventos de los que quies recibir avisos:' + other_settings: Otros axustes pagination: next: Siguiente + polls: + errors: + already_voted: Yá votesti nesta encuesta + expired: La encuesta yá finó + preferences: + public_timelines: Llinies temporales públiques + relationships: + followers: Siguidores + most_recent: Lo más recién + relationship: Rellación + remove_selected_follows: Dexar de siguir a los usuarios esbillaos remote_follow: acct: Introduz el nome_usuariu@dominiu dende'l que lo quies facer no_account_html: "¿Nun tienes una cuenta? Pues rexistrate equí" proceed: Siguir prompt: 'Vas siguir a:' + remote_interaction: + reblog: + prompt: 'Quies compartir esti barritu:' + reply: + prompt: 'Quies responder a esti barritu:' sessions: browser: Restolador browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox generic: Restolador desconocíu + ie: Internet Explorer + micro_messenger: MicroMessenger + opera: Opera + otter: Otter + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" + ip: IP platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac other: plataforma desconocida + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone title: Sesiones settings: + account: Cuenta + appearance: Aspeutu authorized_apps: Aplicaciones autorizaes back: Volver a Mastodon - edit_profile: Edición del perfil + development: Desendolcu + edit_profile: Editar el perfil export: Esportación de datos + featured_tags: Etiquetes destacaes import: Importación + import_and_export: Importación y esportación notifications: Avisos preferences: Preferencies + profile: Perfil two_factor_authentication: Autenticación en dos pasos statuses: attached: @@ -247,20 +381,34 @@ ast: video: one: "%{count} videu" other: "%{count} vídeos" - boosted_from_html: Compartióse'l toot dende %{acct_link} + boosted_from_html: Compartióse'l barritu dende %{acct_link} language_detection: Deteutala automáticamente pin_errors: - limit: Yá fixesti'l númberu máxiumu de toots - ownership: Nun pue fixase'l toot d'otra persona - private: Nun puen fixase los toots que nun seyan públicos - reblog: Nun pue fixase un toot compartíu + limit: Yá fixesti'l númberu máximu de barritos + ownership: Nun pue fixase'l barritu d'otra persona + private: Nun puen fixase los barritos que nun seyan públicos + reblog: Nun pue fixase un barritu compartíu + poll: + total_people: + one: "%{count} persona" + other: "%{count} persones" + total_votes: + one: "%{count} votu" + other: "%{count} votos" show_more: Amosar más title: "%{name}: «%{quote}»" visibilities: private: Namái siguidores + private_long: Namái s'amuesen a los siguidores + public_long: Tol mundu los puen ver + unlisted: Nun llistar + unlisted_long: Tol mundu puen velos pero nun se llisten nes llinies temporales públiques stream_entries: - reblogged: compartióse + pinned: Barritu fixáu + reblogged: compartió sensitive_content: Conteníu sensible + tags: + does_not_match_previous_name: nun concasa col nome anterior themes: default: Mastodon two_factor_authentication: @@ -269,17 +417,27 @@ ast: enabled: L'autenticación en dos pasos ta activada enabled_success: L'autenticación en dos pasos activóse con ésitu generate_recovery_codes: Xenerar códigos de recuperación - lost_recovery_codes: Los códigos de recuperación permítente recuperar l'accesu a la cuenta si pierdes el teléfonu. Si tamién pierdes esos códigos, pues xeneralos de nueves equí. Los códigos de recuperación vieyos van invalidase. + lost_recovery_codes: Los códigos de recuperación permítente recuperar l'accesu a la cuenta si pierdes el teléfonu. Si tamién pierdes estos códigos, pues rexeneralos equí. Los códigos de recuperación vieyos van invalidase. manual_instructions: 'Si nun pues escaniar el códigu QR y precises introducilu a mano, equí ta''l secretu en testu planu:' recovery_codes: Códigos de recuperación recovery_codes_regenerated: Los códigos de recuperación rexeneráronse con ésitu user_mailer: + warning: + explanation: + suspend: La to cuenta suspendióse y tolos espublizamientos qu'espublizares desaniciáronse de mou irreversible d'esti sirvidor y sirvidores onde teníes siguidores. + subject: + suspend: Suspendióse la cuenta %{acct} + title: + none: Alvertencia + suspend: Cuenta suspendida welcome: full_handle_hint: Esto ye lo que-yos diríes a los collacios pa que puean unviate mensaxes o siguite dende otra instancia. subject: Afáyate en Mastodon tips: Conseyos users: invalid_email: La direición de corréu nun ye válida + invalid_otp_token: El códigu nun ye válidu + otp_lost_help_html: Si pierdes l'accesu, contauta con %{email} seamless_external_login: Aniciesti sesión pente un serviciu esternu, polo que los axustes de la contraseña y corréu nun tán disponibles. verification: verification: Verificación diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 85431bc8d..07149f51f 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -59,7 +59,6 @@ bg: '503': The page could not be served due to a temporary server failure. exports: blocks: Вашите блокирания - follows: Вашите следвания storage: Съхранение на мултимедия generic: changes_saved_msg: Успешно запазване на промените! diff --git a/config/locales/br.yml b/config/locales/br.yml index 3710084e7..7d15639ee 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -1,5 +1,10 @@ --- br: + about: + about_this: Diàr-benn + active_count_after: oberiant + apps: Arloadoù pellgomz + apps_platforms: Ober get Mastodoñ àr iOS, Android ha savennoù arall errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/ca.yml b/config/locales/ca.yml index c3cfe3083..b8e55776d 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1,26 +1,26 @@ --- ca: about: - about_hashtag_html: Aquests són toots públics etiquetats amb #%{hashtag}. Pots interactuar amb ells si tens un compte a qualsevol lloc del fediverse. - about_mastodon_html: Mastodon és una xarxa social basada en protocols web oberts i en programari lliure i de codi obert. Està descentralitzat com el correu electrònic. + about_hashtag_html: Aquests són tuts públics etiquetats amb #%{hashtag}. Pots interactuar amb elles si tens un compte a qualsevol lloc del fedivers. + about_mastodon_html: 'La xarxa social del futur: sense anuncis, sense vigilància corporativa, disseny ètic i descentralització. Posseeix les teves dades amb Mastodon!' about_this: Quant a active_count_after: actiu active_footnote: Usuaris actius mensuals (UAM) administered_by: 'Administrat per:' api: API apps: Apps mòbils - apps_platforms: Utilitza Mastodon des de iOS, Android i altres plataformes + apps_platforms: Utilitza Mastodont des de iOS, Android i altres plataformes browse_directory: Navega per el directori de perfils i filtra segons interessos browse_local_posts: Navega un flux en directe de publicacions d’aquest servidor - browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodon + browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodont contact: Contacte contact_missing: No configurat contact_unavailable: N/D discover_users: Descobreix usuaris documentation: Documentació - federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodon i altres. + federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodont i altres. get_apps: Prova una aplicació mòbil - hosted_on: Mastodon allotjat a %{domain} + hosted_on: Mastodont allotjat a %{domain} instance_actor_flash: | Aquest compte és un actor virtual utilitzat per a representar al propi servidor i no cap usuari individual. S'utilitza per a propòsits de federació i no ha de ser bloquejat si no voleu bloquejar tota la instància, en aquest cas hauríeu d'utilitzar un bloqueig de domini. @@ -30,8 +30,8 @@ ca: server_stats: 'Estadístiques del servidor:' source_code: Codi font status_count_after: - one: toot - other: toots + one: estat + other: estats status_count_before: Que han escrit tagline: Segueix els teus amics i descobreix-ne de nous terms: Termes del servei @@ -40,14 +40,14 @@ ca: domain: Servidor reason: Raó rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats o emmagatzemats i cap miniatura serà mostrada, requerint clic manual a través de l''arxiu original:' - silenced: 'Les publicacions d''aquests servidors seran amagades en les línies de temps públiques i converses, i cap notificació serà generada de les interaccions dels seus usuaris, llevat que estiguis seguint-los:' + silenced: 'Les publicacions d''aquests servidors seran amagades en les cronologíes públiques i converses, i cap notificació serà generada de les interaccions dels seus usuaris, llevat que estiguis seguint-los:' suspended: 'Cap dada d''aquests servidors serà processada, emmagatzemada o intercanviada, fent impossible qualsevol interacció o comunicació amb els usuaris d''aquests servidors:' - unavailable_content_html: Mastodon generalment et permet per veure contingut i interaccionar amb usuaris de qualsevol altre servidor en el fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular. + unavailable_content_html: Mastodont generalment et permet per veure contingut i interaccionar amb usuaris de qualsevol altre servidor en el fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular. user_count_after: one: usuari other: usuaris user_count_before: Tenim - what_is_mastodon: Què és Mastodon? + what_is_mastodon: Què és Mastodont? accounts: choices_html: 'Eleccions de %{name}:' endorsements_hint: Pots recomanar persones que segueixes a l'interfície de web, que apareixeran aquí. @@ -70,14 +70,15 @@ ca: pin_errors: following: Has d'estar seguint la persona que vulguis avalar posts: - one: Toot - other: Toots - posts_tab_heading: Toots - posts_with_replies: Toots i respostes + one: Barrita + other: Barritadas + posts_tab_heading: Barritadas + posts_with_replies: Barritades i respostes reserved_username: El nom d'usuari està reservat roles: admin: Administrador bot: Bot + group: Grup moderator: Moderador unavailable: Perfil inaccessible unfollow: Deixa de seguir @@ -225,7 +226,7 @@ ca: unsuspend_account: "%{name} ha llevat la suspensió del compte de %{target}" update_custom_emoji: "%{name} ha actualitzat l'emoji %{target}" update_status: "%{name} estat actualitzat per %{target}" - deleted_status: "(toot suprimit)" + deleted_status: "(estat esborrat)" title: Registre d'auditoria custom_emojis: assign_category: Assigna una categoria @@ -269,7 +270,7 @@ ca: feature_registrations: Registres feature_relay: Relay de la Federació feature_spam_check: Anti-spam - feature_timeline_preview: Vista previa de línia de temps + feature_timeline_preview: Vista previa de la cronología features: Característiques hidden_service: Federació amb serveis ocults open_reports: informes oberts @@ -338,6 +339,7 @@ ca: delete: Suprimeix destroyed_msg: S'ha eliminat correctament el bloc del domini de correu domain: Domini + empty: Cap domini de correu a la llista negre. new: create: Afegeix un domini title: Nova adreça de correu en la llista negra @@ -376,11 +378,11 @@ ca: relays: add_new: Afegiu un nou relay delete: Esborra - description_html: Un relay de federació és un servidor intermediari que intercanvia grans volums de toots públics entre servidors que es subscriuen i publiquen en ell. Pot ajudar a servidors petits i mitjans a descobrir contingut del fedivers, no fent necessari que els usuaris locals manualment segueixin altres persones de servidors remots. + description_html: Un relay de federació és un servidor intermediari que intercanvia grans volums de barritades públiquess entre servidors que es subscriuen i publiquen en ell. Pot ajudar a servidors petits i mitjans a descobrir contingut del fedivers, no fent necessari que els usuaris locals manualment segueixin altres persones de servidors remots. disable: Inhabilita disabled: Desactivat enable: Activat - enable_hint: Una vegada habilitat el teu servidor es subscriurà a tots els toots públics d'aquest relay i començarà a enviar-hi tots els toots públics d'aquest servidor. + enable_hint: Una vegada habilitat el teu servidor es subscriurà a totes les barritades públiques d'aquesta ristra i començarà a enviar-hi totes les barritades públiques d'aquest servidor. enabled: Activat inbox_url: URL del Relay pending: S'està esperant l'aprovació del relay @@ -393,10 +395,18 @@ ca: created_msg: La nota del informe s'ha creat correctament! destroyed_msg: La nota del informe s'ha esborrat correctament! reports: + account: + notes: + one: "%{count} nota" + other: "%{count} notes" + reports: + one: "%{count} informe" + other: "%{count} informes" action_taken_by: Mesures adoptades per are_you_sure: N'estàs segur? assign_to_self: Assignar-me assigned: Moderador assignat + by_target_domain: Domini del compte reportat comment: none: Cap created_at: Reportat @@ -442,6 +452,8 @@ ca: users: Per als usuaris locals en línia domain_blocks_rationale: title: Mostra el raonament + enable_bootstrap_timeline_accounts: + title: Activa els seguiments per defecte per els usuaris nous hero: desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor title: Imatge d’heroi @@ -474,8 +486,8 @@ ca: open: Qualsevol pot registrar-se title: Mode de registres show_known_fediverse_at_about_page: - desc_html: Quan s'activa, mostrarà tots els toots de tot el fedivers conegut en vista prèvia. En cas contrari, només es mostraran toots locals. - title: Mostra el fedivers conegut en vista prèvia de la línia de temps + desc_html: Quan s'activa, mostrarà tots els brams del fedivers conegut en vista prèvia. En cas contrari, només es mostraran els locals + title: Mostra el fedivers conegut en vista prèvia de la cronología show_staff_badge: desc_html: Mostra una insígnia de personal en la pàgina d'usuari title: Mostra insígnia de personal @@ -486,21 +498,21 @@ ca: desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML title: Descripció ampliada del lloc site_short_description: - desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. Si està buit, s'estableix per defecte la descripció del servidor. + desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodont i què fa que aquest servidor sigui especial. Si està buit, s'estableix per defecte la descripció del servidor. title: Descripció curta del servidor site_terms: desc_html: Pots escriure la teva pròpia política de privadesa, els termes del servei o d'altres normes legals. Pots utilitzar etiquetes HTML title: Termes del servei personalitzats site_title: Nom del servidor spam_check_enabled: - desc_html: Mastodon pot auto-silenciar i informar automàticament de comptes basat en mesures com ara la detecció de comptes que envien missatges repetits no sol·licitats. Pot haver-hi falsos positius. + desc_html: Mastodont pot auto-silenciar i informar automàticament de comptes basat en mesures com ara la detecció de comptes que envien missatges repetits no sol·licitats. Pot haver-hi falsos positius. title: Anti-spam thumbnail: desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px title: Miniatura del servidor timeline_preview: - desc_html: Mostra la línia de temps pública a la pàgina inicial - title: Vista prèvia de la línia de temps + desc_html: Mostra la cronología pública a la pàgina inicial + title: Vista prèvia de la cronología title: Configuració del lloc trendable_by_default: desc_html: Afecta a les etiquetes que no s'havien rebutjat prèviament @@ -566,12 +578,16 @@ ca: remove: Desvincular l'àlies appearance: advanced_web_interface: Interfície web avançada - advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, línia de temps federada i qualsevol número de llistes i etiquetes.' + advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, cronología federada i qualsevol número de llistes i etiquetes.' animations_and_accessibility: Animacions i accessibilitat confirmation_dialogs: Diàlegs de confirmació discovery: Descobriment + localization: + body: Mastodon és traduït per voluntaris. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Tothom hi pot contribuir. sensitive_content: Contingut sensible - toot_layout: Disseny del tut + toot_layout: Disseny de la barritada application_mailer: notification_preferences: Canvia les preferències de correu salutation: "%{name}," @@ -595,9 +611,9 @@ ca: delete_account: Suprimeix el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. description: - prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodon!" - prefix_sign_up: Registra't avui a Mastodon! - suffix: Amb un compte seràs capaç de seguir persones, publicar i intercanviar missatges amb usuaris de qualsevol servidor de Mastodon i més! + prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodont!" + prefix_sign_up: Registra't avui a Mastodont! + suffix: Amb un compte seràs capaç de seguir persones, publicar i intercanviar missatges amb usuaris de qualsevol servidor de Mastodont i més! didnt_get_confirmation: No has rebut el correu de confirmació? forgot_password: Has oblidat la contrasenya? invalid_reset_password_token: L'enllaç de restabliment de la contrasenya no és vàlid o ha caducat. Torna-ho a provar. @@ -693,22 +709,21 @@ ca: content: Ho sentim, però alguna cosa ha fallat a la nostra banda. title: Aquesta pàgina no es correcta '503': La pàgina no podria ser servida a causa d'un error temporal del servidor. - noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les aplicacions natives de Mastodon per a la vostra plataforma. + noscript_html: Per a utilitzar Mastodont, activa el JavaScript. També pots provar una de les aplicacions natives de Mastodont per a la vostra plataforma. existing_username_validator: not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari not_found_multiple: no s'ha pogut trobar %{usernames} exports: archive_takeout: date: Data - download: Descarrega l’arxiu - hint_html: Pots sol·licitar un arxiu dels teus toots i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies. - in_progress: Compilant el teu arxiu... + download: Baixa l’arxiu + hint_html: Pots sol·licitar un arxiu de les teves barritades i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies. + in_progress: S'està compilant el teu arxiu... request: Sol·licita el teu arxiu size: Tamany blocks: Persones que has blocat csv: CSV domain_blocks: Bloquejos de dominis - follows: Persones que segueixes lists: Llistes mutes: Persones silenciades storage: Emmagatzematge @@ -719,9 +734,9 @@ ca: hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per les teves publicacions amb aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini." filters: contexts: - home: Línia de temps Inici + home: Cronología d'inici notifications: Notificacions - public: Línies de temps públiques + public: Cronologíes públiques thread: Converses edit: title: Editar filtre @@ -730,6 +745,7 @@ ca: invalid_irreversible: El filtratge irreversible només funciona amb el contextos inici o notificacions index: delete: Esborra + empty: No hi tens cap filtre. title: Filtres new: title: Afegir nou filtre @@ -764,7 +780,7 @@ ca: i_am_html: Sóc %{username} a %{service}. identity: Identitat inactive: Inactiu - publicize_checkbox: 'I tooteja això:' + publicize_checkbox: 'I barrita això:' publicize_toot: 'Està provat! Sóc %{username} a %{service}: %{url}' status: Estat de verificació view_proof: Veure la prova @@ -781,7 +797,7 @@ ca: domain_blocking: Llistat de dominis bloquejats following: Llista de seguits muting: Llista de silenciats - upload: Carregar + upload: Carrega in_memoriam_html: En Memòria. invites: delete: Desactivar @@ -878,6 +894,10 @@ ca: body: "%{name} ha impulsat el teu estat:" subject: "%{name} ha impulsat el teu estat" title: Nou impuls + notifications: + email_events: Esdeveniments per a notificacions per correu electrònic + email_events_hint: 'Selecciona els esdeveniments per als quals vols rebre notificacions:' + other_settings: Altres opcions de notificació number: human: decimal_units: @@ -907,10 +927,12 @@ ca: preferences: other: Altre posting_defaults: Valors predeterminats de publicació - public_timelines: Línies de temps públiques + public_timelines: Cronologíes públiques relationships: activity: Activitat del compte dormant: Inactiu + followers: Seguidors + following: Seguint last_active: Darrer actiu most_recent: Més recent moved: Mogut @@ -931,16 +953,16 @@ ca: remote_interaction: favourite: proceed: Procedir a afavorir - prompt: 'Vols marcar com a favorit aquest toot:' + prompt: 'Vols marcar com a favorit aquesta barritada:' reblog: proceed: Procedir a impulsar - prompt: 'Vols impulsar aquest toot:' + prompt: 'Vols impulsar aquesta barritada:' reply: proceed: Procedir a respondre - prompt: 'Vols respondre a aquest toot:' + prompt: 'Vols respondre a aquesta barritada:' scheduled_statuses: - over_daily_limit: Has superat el límit de %{limit} toots programats per a aquell dia - over_total_limit: Has superat el limit de %{limit} toots programats + over_daily_limit: Has superat el límit de %{limit} barritades programades per a aquell dia + over_total_limit: Has superat el limit de %{limit} barritades programades too_soon: La data programada ha de ser futura sessions: activity: Última activitat @@ -965,7 +987,7 @@ ca: weibo: Weibo current_session: Sessió actual description: "%{browser} de %{platform}" - explanation: Aquests són els navegadors web que actualment han iniciat la sessió amb el teu compte de Mastodon. + explanation: Aquests són els navegadors web que actualment han iniciat la sessió amb el teu compte de Mastodont. ip: IP platforms: adobe_air: Adobe Air @@ -989,15 +1011,15 @@ ca: aliases: Àlies de compte appearance: Aparènça authorized_apps: Aplicacions autoritzades - back: Torna a Mastodon + back: Torna a Mastodont delete: Eliminació del compte development: Desenvolupament edit_profile: Editar perfil - export: Exportar dades + export: Exportació de dades featured_tags: Etiquetes destacades identity_proofs: Proves d'identitat - import: Importar - import_and_export: Importar i exportar + import: Importació + import_and_export: Importació i exportació migrate: Migració del compte notifications: Notificacions preferences: Preferències @@ -1024,9 +1046,9 @@ ca: open_in_web: Obre en la web over_character_limit: Límit de caràcters de %{max} superat pin_errors: - limit: Ja has fixat el màxim nombre de toots - ownership: No es pot fixar el toot d'algú altre - private: No es pot fixar el toot no públic + limit: Ja has fixat el màxim nombre de barritades + ownership: No es pot fixar la barritada d'altra persona + private: No es pot fixar la barritada no pública reblog: No es pot fixar un impuls poll: total_people: @@ -1045,9 +1067,9 @@ ca: public: Públic public_long: Tothom pot veure-ho unlisted: No llistat - unlisted_long: Tothom ho pot veure, però no es mostra en la història federada + unlisted_long: Tothom ho pot veure, però no es mostra en la cronología federada stream_entries: - pinned: Toot fixat + pinned: Barritada fixada reblogged: ha impulsat sensitive_content: Contingut sensible tags: @@ -1136,9 +1158,9 @@ ca:

Originalment adaptat des del Discourse privacy policy.

title: "%{instance} Condicions del servei i política de privadesa" themes: - contrast: Mastodon (Alt contrast) - default: Mastodon (Fosc) - mastodon-light: Mastodon (Clar) + contrast: Mastodont (Alt contrast) + default: Mastodont (Fosc) + mastodon-light: Mastodont (Clar) time: formats: default: "%b %d, %Y, %H:%M" @@ -1161,14 +1183,14 @@ ca: wrong_code: El codi introduït no és vàlid! És correcta l'hora del servidor i del dispositiu? user_mailer: backup_ready: - explanation: Has sol·licitat una copia completa del teu compte Mastodon. Ara ja està a punt per descàrrega! + explanation: Has sol·licitat una copia completa del teu compte Mastodont. Ara ja està a punt per descàrrega! subject: El teu arxiu està preparat per a descàrrega title: Recollida del arxiu warning: explanation: disable: Mentre el teu compte estigui congelat les dades romandran intactes però no pots dur a terme cap acció fins que no estigui desbloquejat. silence: Mentre el teu compte estigui limitat només les persones que ja et segueixen veuen les teves dades en aquest servidor i pots ser exclòs de diverses llistes públiques. No obstant això, d'altres encara poden seguir-te manualment. - suspend: El teu compte s'ha suspès i tots els teus toots i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidors. + suspend: El teu compte s'ha suspès i totes les teves barritades i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidores. get_in_touch: Pots respondre a aquest correu electrònic per a contactar amb el personal de %{instance}. review_server_policies: Revisa les polítiques del servidor statuses: 'Concretament, per:' @@ -1192,11 +1214,11 @@ ca: full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor. review_preferences_action: Canviar preferències review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. - subject: Benvingut/da a Mastodon - tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. + subject: Benvingut/da a Mastodont + tip_federated_timeline: La cronología federada és el cabal principal de la xarxa Mastodont. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! - tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes! + tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodont a la teva pantalla d'inici, podràs rebre notificacions d'empènyer "push". Es comporta com una aplicació nativa en molts aspectes! tips: Consells title: Benvingut a bord, %{name}! users: @@ -1207,5 +1229,5 @@ ca: seamless_external_login: Has iniciat sessió via un servei extern per tant els ajustos de contrasenya i correu electrònic no estan disponibles. signed_in_as: 'Sessió iniciada com a:' verification: - explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodon. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' + explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodont. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' verification: Verificació diff --git a/config/locales/co.yml b/config/locales/co.yml index 9653363ca..0d6a23a45 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -2,7 +2,7 @@ co: about: about_hashtag_html: Quessi sò statuti pubblichi taggati cù #%{hashtag}. Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediverse. - about_mastodon_html: Mastodon ghjè una rete suciale custruita incù prutucolli web aperti è lugiziali liberi. Hè decentralizatu cumu l’e-mail. + about_mastodon_html: 'A rete suciale di u futuru: micca pubblicità, micca surveglianza, cuncezzione etica, è dicentralizazione! Firmate in cuntrollu di i vostri dati cù Mastodon!' about_this: À prupositu active_count_after: attivi active_footnote: Utilizatori Attivi Mensili (UAM) @@ -78,6 +78,7 @@ co: roles: admin: Amministratore bot: Bot + group: Gruppu moderator: Muderatore unavailable: Prufile micca dispunibule unfollow: Ùn siguità più @@ -314,7 +315,7 @@ co: public_comment_hint: Cummentariu nant'à a limitazione di stu duminiu per u pubblicu generale, s'ella hè attivata a rivelazione di a lista di limitazione di duminiu. reject_media: Righjittà i fugliali media reject_media_hint: Sguassa tutti i media caricati è ricusa caricamenti futuri. Inutile per una suspensione - reject_reports: Righjittà i rapporti + reject_reports: Righjittà i riporti reject_reports_hint: Ignurà tutti i signalamenti chì venenu d'issu duminiu. Senz'oghjettu pè e suspensione rejecting_media: righjettu di i fugliali media rejecting_reports: righjettu di i signalamenti @@ -338,6 +339,7 @@ co: delete: Toglie destroyed_msg: U blucchime di u duminiu d’e-mail ùn hè più attivu domain: Duminiu + empty: Ùn c'hè manc'un duminiu d'email in lista nera. new: create: Creà un blucchime title: Nova iscrizzione nant’a lista nera e-mail @@ -361,7 +363,7 @@ co: total_blocked_by_us: Bluccati da noi total_followed_by_them: Siguitati da elli total_followed_by_us: Siguitati da noi - total_reported: Rapporti nant'à elli + total_reported: Riporti nant'à elli total_storage: Media aghjunti invites: deactivate_all: Disattivà tuttu @@ -393,10 +395,18 @@ co: created_msg: Nota di signalamentu creata! destroyed_msg: Nota di signalamentu sguassata! reports: + account: + notes: + one: "%{count} nota" + other: "%{count} note" + reports: + one: "%{count} riportu" + other: "%{count} riporti" action_taken_by: Intervenzione di are_you_sure: Site sicuru·a? assign_to_self: Assignallu à mè assigned: Muderatore assignatu + by_target_domain: Duminiu di u contu signalatu comment: none: Nisunu created_at: Palisatu @@ -442,6 +452,8 @@ co: users: À l'utilizatori lucali cunnettati domain_blocks_rationale: title: Vede ragiò + enable_bootstrap_timeline_accounts: + title: Attivà l'abbunamenti predefiniti per l'utilizatori novi hero: desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di u servore sarà usata title: Ritrattu di cuprendula @@ -570,6 +582,10 @@ co: animations_and_accessibility: Animazione è accessibilità confirmation_dialogs: Pop-up di cunfirmazione discovery: Scuperta + localization: + body: Mastodon hè tradottu da una squadra di vuluntari. + guide_link: https://fr.crowdin.com/project/mastodon + guide_link_text: Tuttu u mondu pò participà. sensitive_content: Cuntinutu sensibile toot_layout: Urganizazione application_mailer: @@ -708,7 +724,6 @@ co: blocks: Bluccate csv: CSV domain_blocks: Blucchime di duminiu - follows: Seguitate lists: Liste mutes: Piattate storage: I vostri media @@ -730,6 +745,7 @@ co: invalid_irreversible: A filtrazione irreversibile marchja solu per l'accolta è e nutificazione index: delete: Toglie + empty: Ùn avete manc'un filtru. title: Filtri new: title: Aghjunghje un novu filtru @@ -878,6 +894,10 @@ co: body: 'U vostru statutu hè statu spartutu da %{name}:' subject: "%{name} hà spartutu u vostru statutu" title: Nova spartera + notifications: + email_events: Avvenimenti da nutificà cù l'e-mail + email_events_hint: 'Selezziunate l''avvenimenti per quelli vulete riceve nutificazione:' + other_settings: Altri parametri di nutificazione number: human: decimal_units: @@ -911,6 +931,8 @@ co: relationships: activity: Attività di u contu dormant: Inattivu + followers: Abbunati + following: Abbunamenti last_active: Ultima attività most_recent: Più ricente moved: Spiazzatu @@ -1005,7 +1027,7 @@ co: relationships: Abbunamenti è abbunati two_factor_authentication: Identificazione à dui fattori spam_check: - spam_detected: Quessu ghjè un rapportu automaticu. Un spam hè statu ditettatu. + spam_detected: Quessu ghjè un riportu automaticu. Un spam hè statu ditettatu. statuses: attached: description: 'Aghjuntu: %{attached}' diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 81ae22680..678aac7ee 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -9,7 +9,7 @@ cs: administered_by: 'Server spravuje:' api: API apps: Mobilní aplikace - apps_platforms: Používejte Mastodon z iOS, Androidu a jiných platforem + apps_platforms: Používejte Mastodon na iOS, Androidu a dalších platformách browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů browse_local_posts: Prozkoumejte živý proud veřejných příspěvků z tohoto serveru browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu @@ -18,14 +18,14 @@ cs: contact_unavailable: Neuvedeno discover_users: Objevujte uživatele documentation: Dokumentace - federation_hint_html: S účtem na %{instance} můžete sledovat lidi na jakémkoliv serveru Mastodon a jiných službách. + federation_hint_html: S účtem na serveru %{instance} můžete sledovat lidi na jakémkoliv ze serverů Mastodon a dalších službách. get_apps: Vyzkoušejte mobilní aplikaci - hosted_on: Mastodon na adrese %{domain} + hosted_on: Mastodon na doméně %{domain} instance_actor_flash: | - Tento účet je virtuální aktér, který představuje server samotný a ne jedotlivého uživatele. - Používá se pro účely federace a nesmí být blokován, pokud nechcete blokovat celý server. V tomto případě použijte doménovou blokaci. + Tento účet je virtuální aktér, který představuje server samotný, nikoliv účet jednotlivého uživatele. + Používá se pro účely federace a nesmí být blokován, pokud nechcete blokovat celý server. V takovém případě použijte blokaci domény. learn_more: Zjistit více - privacy_policy: Zásady soukromí + privacy_policy: Zásady ochrany osobních údajů see_whats_happening: Podívejte se, co se děje server_stats: 'Statistika serveru:' source_code: Zdrojový kód @@ -62,19 +62,19 @@ cs: many: Sledujících one: Sledující other: Sledujících - following: Sledovaných - joined: Připojil/a se v %{date} + following: Sledovaní + joined: Uživatelem od %{date} last_active: naposledy aktivní link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date} media: Média moved_html: "%{name} se přesunul/a na %{new_profile_link}:" network_hidden: Tato informace není k dispozici never_active: Nikdy - nothing_here: Tady nic není! + nothing_here: Nic tu není! people_followed_by: Lidé, které sleduje %{name} people_who_follow: Lidé, kteří sledují uživatele %{name} pin_errors: - following: Musíte již sledovat osobu, kterou chcete podpořit + following: Osobu, kterou chcete podpořit, už musíte sledovat posts: few: Tooty many: Tootů @@ -86,8 +86,9 @@ cs: roles: admin: Administrátor bot: Robot + group: Skupina moderator: Moderátor - unavailable: Profil nedostupný + unavailable: Profil není dostupný unfollow: Přestat sledovat admin: account_actions: @@ -101,7 +102,7 @@ cs: accounts: approve: Schválit approve_all: Schválit vše - are_you_sure: Jste si jistý/á? + are_you_sure: Opravdu? avatar: Avatar by_domain: Doména change_email: @@ -117,7 +118,7 @@ cs: deleted: Smazáno demote: Degradovat disable: Zablokovat - disable_two_factor_authentication: Zakázat 2FA + disable_two_factor_authentication: Vypnout 2FA disabled: Blokováno display_name: Zobrazované jméno domain: Doména @@ -127,12 +128,12 @@ cs: enable: Povolit enabled: Povoleno followers: Sledující - follows: Sledovaní + follows: Sleduje header: Záhlaví inbox_url: URL příchozí schránky invited_by: Pozván/a uživatelem ip: IP adresa - joined: Připojil/a se + joined: Uživatelem od location: all: Všechny local: Místní @@ -145,8 +146,8 @@ cs: active: Aktivní all: Vše pending: Čekající - silenced: Utišen/a - suspended: Pozastaven/a + silenced: Uživatel ztišen + suspended: Uživatel pozastaven title: Moderování moderation_notes: Moderátorské poznámky most_recent_activity: Nejnovější aktivita @@ -182,17 +183,17 @@ cs: search_same_ip: Další uživatelé se stejnou IP adresou shared_inbox_url: URL sdílené příchozí schránky show: - created_reports: Vytvořená nahlášení + created_reports: Vytvořená hlášení targeted_reports: Nahlášeni ostatními - silence: Utišit - silenced: Utišen/a + silence: Ztišit + silenced: Uživatel ztišen statuses: Tooty subscribe: Odebírat - suspended: Pozastaven/a + suspended: Uživatel pozastaven time_in_queue: Čeká ve frontě %{time} title: Účty unconfirmed_email: Nepotvrzený e-mail - undo_silenced: Zrušit utišení + undo_silenced: Zrušit ztišení undo_suspension: Zrušit pozastavení unsubscribe: Přestat odebírat username: Uživatelské jméno @@ -201,46 +202,46 @@ cs: whitelisted: Na bílé listině action_logs: actions: - assigned_to_self_report: "%{name} přidělil/a hlášení %{target} sobě" - change_email_user: "%{name} změnil/a e-mailovou adresu uživatele %{target}" - confirm_user: "%{name} potvrdil/a e-mailovou adresu uživatele %{target}" - create_account_warning: "%{name} poslal/a varování uživateli %{target}" - create_custom_emoji: "%{name} nahrál/a nové emoji %{target}" - create_domain_allow: "%{name} přidal/a doménu %{target} na bílou listinu" - create_domain_block: "%{name} zablokoval/a doménu %{target}" - create_email_domain_block: "%{name} přidal/a e-mailovou doménu %{target} na černou listinu" - demote_user: "%{name} degradoval/a uživatele %{target}" - destroy_custom_emoji: "%{name} zničil/a emoji %{target}" - destroy_domain_allow: "%{name} odebral/a doménu %{target} z bílé listiny" - destroy_domain_block: "%{name} odblokoval/a doménu %{target}" - destroy_email_domain_block: "%{name} odebral/a e-mailovou doménu %{target} z černé listiny" - destroy_status: "%{name} odstranil/a toot uživatele %{target}" - disable_2fa_user: "%{name} vypnul/a dvoufázové ověřování pro uživatele %{target}" - disable_custom_emoji: "%{name} zakázal/a emoji %{target}" - disable_user: "%{name} zakázal/a přihlašování pro uživatele %{target}" - enable_custom_emoji: "%{name} povolil/a emoji %{target}" - enable_user: "%{name} povolil/a přihlašování pro uživatele %{target}" - memorialize_account: "%{name} změnil/a účet %{target} na stránku „in memoriam“" - promote_user: "%{name} povýšil/a uživatele %{target}" - remove_avatar_user: "%{name} odstranil/a avatar uživatele %{target}" - reopen_report: "%{name} znovuotevřel/a nahlášení %{target}" - reset_password_user: "%{name} obnovil/a heslo uživatele %{target}" - resolve_report: "%{name} vyřešil/a nahlášení %{target}" - silence_account: "%{name} utišil/a účet uživatele %{target}" - suspend_account: "%{name} pozastavil/a účet uživatele %{target}" - unassigned_report: "%{name} odebral/a nahlášení %{target}" - unsilence_account: "%{name} odtišil/a účet uživatele %{target}" - unsuspend_account: "%{name} zrušil/a pozastavení účtu uživatele %{target}" - update_custom_emoji: "%{name} aktualizoval/a emoji %{target}" - update_status: "%{name} aktualizoval/a toot uživatele %{target}" + assigned_to_self_report: Uživatel %{name} si přidělil hlášení %{target} + change_email_user: Uživatel %{name} změnil e-mailovou adresu uživatele %{target} + confirm_user: Uživatel %{name} potvrdil e-mailovou adresu uživatele %{target} + create_account_warning: Uživatel %{name} poslal varování uživateli %{target} + create_custom_emoji: Uživatel %{name} nahrál nové emoji %{target} + create_domain_allow: Uživatel %{name} přidal doménu %{target} na bílou listinu + create_domain_block: Uživatel %{name} zablokoval doménu %{target} + create_email_domain_block: Uživatel %{name} přidal e-mailovou doménu %{target} na černou listinu + demote_user: Uživatel %{name} degradoval uživatele %{target} + destroy_custom_emoji: Uživatel %{name} zničil emoji %{target} + destroy_domain_allow: Uživatel %{name} odebral doménu %{target} z bílé listiny + destroy_domain_block: Uživatel %{name} odblokoval doménu %{target} + destroy_email_domain_block: Uživatel %{name} odebral e-mailovou doménu %{target} z černé listiny + destroy_status: Uživatel %{name} odstranil toot uživatele %{target} + disable_2fa_user: Uživatel %{name} vypnul dvoufázové ověřování pro uživatele %{target} + disable_custom_emoji: Uživatel %{name} zakázal emoji %{target} + disable_user: Uživatel %{name} zakázal přihlašování pro uživatele %{target} + enable_custom_emoji: Uživatel %{name} povolil emoji %{target} + enable_user: Uživatel %{name} povolil přihlašování pro uživatele %{target} + memorialize_account: Uživatel %{name} změnil účet %{target} na „in memoriam“ stránku + promote_user: Uživatel %{name} povýšil uživatele %{target} + remove_avatar_user: Uživatel %{name} odstranil avatar uživatele %{target} + reopen_report: Uživatel %{name} znovu otevřel hlášení %{target} + reset_password_user: Uživatel %{name} obnovil heslo uživatele %{target} + resolve_report: Uživatel %{name} vyřešil hlášení %{target} + silence_account: Uživatel %{name} ztišil uživatele %{target} + suspend_account: Uživatel %{name} pozastavil účet uživatele %{target} + unassigned_report: Uživatel %{name} odebral hlášení %{target} + unsilence_account: Uživatel %{name} zrušil ztišení uživatele %{target} + unsuspend_account: Uživatel %{name} zrušil pozastavení účtu uživatele %{target} + update_custom_emoji: Uživatel %{name} aktualizoval emoji %{target} + update_status: Uživatel %{name} aktualizoval toot uživatele %{target} deleted_status: "(smazaný toot)" - title: Záznam auditu + title: Auditovací protokol custom_emojis: assign_category: Přiřadit kategorii by_domain: Doména copied_msg: Místní kopie emoji byla úspěšně vytvořena copy: Kopírovat - copy_failed_msg: Nebylo možné vytvořit místní kopii tohoto emoji + copy_failed_msg: Místní kopii tohoto emoji nebylo možné vytvořit create_new_category: Vytvořit novou kategorii created_msg: Emoji úspěšně vytvořeno! delete: Smazat @@ -261,15 +262,15 @@ cs: shortcode: Zkratka shortcode_hint: Alespoň 2 znaky, pouze alfanumerické znaky a podtržítka title: Vlastní emoji - uncategorized: Nezařazená + uncategorized: Nezařazeno unlist: Neuvést unlisted: Neuvedeno - update_failed_msg: Nebylo možné aktualizovat toto emoji + update_failed_msg: Toto emoji nebylo možné aktualizovat updated_msg: Emoji úspěšně aktualizováno! upload: Nahrát dashboard: authorized_fetch_mode: Zabezpečený režim - backlog: opožděné úlohy + backlog: nevyřízené úlohy config: Konfigurace feature_deletions: Smazání účtů feature_invites: Odkazy pozvánek @@ -281,8 +282,8 @@ cs: features: Vlastnosti hidden_service: Federace se skrytými službami open_reports: otevřená hlášení - pending_tags: hashtagů čeká na posouzení - pending_users: uživatelů + pending_tags: hashtagy čekající na posouzení + pending_users: uživatelé čekající na posouzení recent_users: Nedávní uživatelé search: Fulltextové vyhledávání single_user_mode: Režim jednoho uživatele @@ -306,28 +307,28 @@ cs: destroyed_msg: Blokace domény byla zrušena domain: Doména edit: Upravit doménovou blokaci - existing_domain_block_html: Pro účet %{name} jste již nastavil/a přísnější omezení, musíte jej nejdříve odblokovat. + existing_domain_block_html: Pro účet %{name} jste už nastavili přísnější omezení, nejprve jej odblokujte. new: create: Vytvořit blokaci hint: Blokace domény nezakáže vytváření záznamů účtů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderování. severity: - desc_html: Funkce Utišit zneviditelní příspěvky z účtu komukoliv, kdo jej nesleduje. Funkce Pozastavit odstraní všechen obsah, média a profilová data účtu. Pro pouhé odmítnutí mediálních souborů použijte funkci Žádné. + desc_html: "Ztišení skryje příspěvky z účtu komukoliv, kdo jej nesleduje. Pozastavení odstraní všechen obsah, média a profilová data účtu. Pro pouhé odmítnutí mediálních souborů použijte funkci Žádné." noop: Žádné - silence: Utišit + silence: Ztišit suspend: Pozastavit - title: Nová doménová blokace + title: Nová blokace domény private_comment: Soukromý komentář private_comment_hint: Komentář o tomto omezení domény pro vnitřní použití moderátory. public_comment: Veřejný komentář - public_comment_hint: Komentář o tomto omezení domény pro obecnou veřejnost, pokud je povoleno zobrazování seznamu omezení domén. + public_comment_hint: Komentář o tomto omezení domény pro obecnou veřejnost, pokud je povoleno zobrazování seznamu omezených domén. reject_media: Odmítat mediální soubory reject_media_hint: Odstraní lokálně uložené mediální soubory a odmítne jejich stahování v budoucnosti. Nepodstatné pro pozastavení - reject_reports: Odmítat nahlášení - reject_reports_hint: Ignorovat všechna nahlášení pocházející z této domény. Nepodstatné pro pozastavení + reject_reports: Odmítat hlášení + reject_reports_hint: Ignorovat všechna hlášení pocházející z této domény. Nepodstatné pro pozastavení rejecting_media: odmítají se mediální soubory - rejecting_reports: odmítají se nahlášení + rejecting_reports: odmítají se hlášení severity: - silence: utišeno + silence: ztišeno suspend: pozastaveno show: affected_accounts: @@ -336,18 +337,19 @@ cs: one: Jeden účet v databázi byl ovlivněn other: "%{count} účtů v databázi bylo ovlivněno" retroactive: - silence: Odtišit existující ovlivněné účty z této domény + silence: Zrušit ztišení existujících ovlivněných účtů z této domény suspend: Zrušit pozastavení existujících ovlivněných účtů z této domény title: Zrušit blokaci domény %{domain} undo: Odvolat undo: Odvolat blokaci domény - view: Zobrazit doménovou blokaci + view: Zobrazit blokaci domény email_domain_blocks: - add_new: Přidat nový + add_new: Přidat created_msg: E-mailová doména úspěšně přidána na černou listinu delete: Smazat destroyed_msg: E-mailová doména úspěšně odstraněna z černé listiny domain: Doména + empty: Na černé listině aktuálně nejsou žádné e-mailové domény. new: create: Přidat doménu title: Nová položka pro černou listinu e-mailů @@ -373,14 +375,14 @@ cs: total_blocked_by_us: Blokované námi total_followed_by_them: Sledované jimi total_followed_by_us: Sledované námi - total_reported: Nahlášení o nich + total_reported: Hlášení o nich total_storage: Mediální přílohy invites: deactivate_all: Deaktivovat vše filter: all: Všechny available: Dostupné - expired: Vypršelé + expired: Vypršené title: Filtrovat title: Pozvánky pending_accounts: @@ -388,27 +390,39 @@ cs: relays: add_new: Přidat nový most delete: Smazat - description_html: "Federovací most je přechodný server, který vyměňuje velká množství veřejných tootů mezi servery, které z něj odebírají a publikují na něj. Může pomoci malým a středně velkým serverům objevovat obsah z fedivesmíru, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech." + description_html: "Federovací most je přechodový server, který vyměňuje velká množství veřejných tootů mezi servery, které je z něj odebírají a publikují na něj. Může pomoci malým a středně velkým serverům objevovat obsah z fedivesmíru, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech." disable: Zakázat disabled: Zakázáno enable: Povolit - enable_hint: Je-li tohle povoleno, začne váš server odebírat všechny veřejné tooty z tohoto mostu a odesílat na něj své vlastní veřejné tooty. + enable_hint: Po zapnutí začne váš server odebírat všechny veřejné tooty z tohoto mostu a odesílat na něj své vlastní veřejné tooty. enabled: Povoleno inbox_url: URL mostu - pending: Čekám na souhlas mostu + pending: Čeká na souhlas mostu save_and_enable: Uložit a povolit setup: Nastavit připojení k mostu - signatures_not_enabled: Mosty nebudou fungovat správně, dokud je povolen zabezpečený režim nebo režim bílé listiny + signatures_not_enabled: Dokud je povolen zabezpečený režim nebo režim bílé listiny, nebudou mosty správně fungovat status: Stav title: Mosty report_notes: - created_msg: Poznámka o nahlášení úspěšně vytvořena! - destroyed_msg: Poznámka o nahlášení úspěšně smazána! + created_msg: Poznámka o hlášení úspěšně vytvořena! + destroyed_msg: Poznámka o hlášení úspěšně smazána! reports: - action_taken_by: Akci vykonal/a - are_you_sure: Jste si jistý/á? + account: + notes: + few: "%{count} poznámky" + many: "%{count} poznámek" + one: "%{count} poznámka" + other: "%{count} poznámek" + reports: + few: "%{count} hlášení" + many: "%{count} hlášení" + one: "%{count} hlášení" + other: "%{count} hlášení" + action_taken_by: Akci vykonal uživatel + are_you_sure: Opravu? assign_to_self: Přidělit ke mně assigned: Přiřazený moderátor + by_target_domain: Doména nahlášeného účtu comment: none: Žádné created_at: Nahlášené @@ -420,14 +434,14 @@ cs: create_and_unresolve: Znovu otevřít s poznámkou delete: Smazat placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality… - reopen: Znovu otevřít nahlášení + reopen: Znovu otevřít hlášení report: 'Nahlásit #%{id}' reported_account: Nahlášený účet reported_by: Nahlášeno uživatelem resolved: Vyřešeno - resolved_msg: Nahlášení úspěšně vyřešeno! + resolved_msg: Hlášení úspěšně vyřešeno! status: Stav - title: Nahlášení + title: Hlášení unassign: Odebrat unresolved: Nevyřešeno updated_at: Aktualizováno @@ -436,29 +450,31 @@ cs: desc_html: Počty lokálně publikovaných tootů, aktivních uživatelů a nových registrací, v týdenních intervalech title: Publikovat hromadné statistiky o uživatelské aktivitě bootstrap_timeline_accounts: - desc_html: Je-li uživatelských jmen více, oddělujte je čárkami. Lze zadat pouze místní a odemknuté účty. Je-li tohle prázdné, jsou výchozí hodnotou všichni místní administrátoři. + desc_html: Je-li uživatelských jmen více, oddělte je čárkami. Lze zadat pouze místní a odemčené účty. Je-li seznam prázdný, jsou výchozí hodnotou všichni místní administrátoři. title: Výchozí sledovaní pro nové uživatele contact_information: email: Pracovní e-mail username: Uživatelské jméno pro kontaktování custom_css: - desc_html: Pozměnit vzhled pomocí šablony CSS načtené na každé stránce + desc_html: Pozměnit vzhled pomocí CSS šablony načítané na každé stránce title: Vlastní CSS default_noindex: desc_html: Ovlivňuje všechny uživatele, kteří toto nastavení sami nezměnili - title: Odhlásit uživatele z indexování vyhledávačemi ve výchozím stavu + title: Ve výchozím stavu odhlásit uživatele z indexování vyhledávači domain_blocks: all: Všem disabled: Nikomu - title: Zobrazit doménové blokace + title: Zobrazit blokované domény users: Přihlášeným místním uživatelům domain_blocks_rationale: title: Zobrazit odůvodnění + enable_bootstrap_timeline_accounts: + title: Povolit výchozí sledování pro nové uživatele hero: - desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru + desc_html: Zobrazuje se na hlavní stránce. Doporučujeme rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru title: Hlavní obrázek mascot: - desc_html: Zobrazuje se na několika stránkách. Doporučuje se rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot + desc_html: Zobrazuje se na několika stránkách. Doporučujeme rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot title: Obrázek maskota peers_api_enabled: desc_html: Domény, na které tento server narazil ve fedivesmíru @@ -474,7 +490,7 @@ cs: desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky title: Zpráva o uzavřených registracích deletion: - desc_html: Dovolit každému smazání svého účtu + desc_html: Povolit komukoliv smazat svůj účet title: Zpřístupnit smazání účtu min_invite_role: disabled: Nikdo @@ -492,33 +508,33 @@ cs: desc_html: Zobrazit na stránce uživatele odznak člena personálu title: Zobrazit odznak personálu site_description: - desc_html: Úvodní odstavec v API. Popište, díky čemu je tento server Mastodon zvláštní, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <a> a <em>. + desc_html: Úvodní odstavec v API. Popište, čím se tento server Mastodon odlišuje od ostatních, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <a> a <em>. title: Popis serveru site_description_extended: desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky title: Vlastní rozšířené informace site_short_description: - desc_html: Zobrazen v postranním panelu a meta značkách. Popište, co je Mastodon a díky čemu je tento server zvláštní, v jediném odstavci. + desc_html: Zobrazeno v postranním panelu a meta značkách. V jednom odstavci popište, co je Mastodon a čím se tento server odlišuje od ostatních. title: Krátký popis serveru site_terms: - desc_html: Můžete si napsat vlastní zásady soukromí, podmínky používání či jiné legality. Můžete použít HTML značky + desc_html: Můžete si napsat vlastní zásady ochrany osobních údajů, podmínky používání či jiné právní dokumenty. Můžete použít HTML značky title: Vlastní podmínky používání site_title: Název serveru spam_check_enabled: desc_html: Mastodon může automaticky nahlašovat účty, které opakovaně odesílají nevyžádané zprávy. Mohou se najít špatné shody. title: Antispamová automatizace thumbnail: - desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučuje se rozlišení 1200x630px + desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučujeme rozlišení 1200x630px title: Miniatura serveru timeline_preview: - desc_html: Zobrazit na hlavní straně odkaz na veřejnou časovou osu a povolit přístup na veřejnou časovou osu pomocí API bez autentizace + desc_html: Zobrazit na hlavní stránce odkaz na veřejnou časovou osu a povolit přístup na veřejnou časovou osu pomocí API bez autentizace title: Povolit neautentizovaný přístup k časové ose title: Nastavení stránky trendable_by_default: desc_html: Ovlivňuje hashtagy, které nebyly dříve zakázány - title: Dovolit hashtagům zobrazit se na trendech bez předchozího posouzení + title: Povolit zobrazení hashtagů v trendech i bez předchozího posouzení trends: - desc_html: Veřejně zobrazit předtím schválené hashtagy, které jsou aktuálně populární + desc_html: Veřejně zobrazit populární hashtagy, které byly předtím schváleny title: Populární hashtagy statuses: back_to_account: Zpět na stránku účtu @@ -535,7 +551,7 @@ cs: title: Tooty účtu with_media: S médii tags: - accounts_today: Jedinečná použití dnes + accounts_today: Dnešní jedinečná použití accounts_week: Jedinečná použití tento týden breakdown: Přehled dnešního používání podle zdroje context: Kontext @@ -548,10 +564,10 @@ cs: review: Stav schválení reviewed: Schválen title: Hashtagy - trending_right_now: Aktuální trendy - unique_uses_today: "%{count} dnes píše" - unreviewed: Neposouzeno - updated_msg: Nastavení hashtagu bylo úspěšně aktualizováno + trending_right_now: Právě je trendy + unique_uses_today: Dnes použilo %{count} uživatelů + unreviewed: Nezkontrolováno + updated_msg: Nastavení hashtagů bylo úspěšně aktualizováno title: Administrace warning_presets: add_new: Přidat nové @@ -561,62 +577,66 @@ cs: title: Spravovat předlohy pro varování admin_mailer: new_pending_account: - body: Detaily nového účtu jsou uvedeny níže. Můžete tento požadavek schválit nebo zamítnout. - subject: Nový účet čekající na posouzení na %{instance} (%{username}) + body: Detaily nového účtu jsou uvedeny níže. Tuto žádost můžete schválit nebo zamítnout. + subject: Nový účet na serveru %{instance} čekající na posouzení (%{username}) new_report: - body: "%{reporter} nahlásil/a uživatele %{target}" - body_remote: Někdo z %{domain} nahlásil uživatele %{target} - subject: Nové nahlášení pro %{instance} (#%{id}) + body: Uživatel %{reporter} nahlásil uživatele %{target} + body_remote: Někdo z domény %{domain} nahlásil uživatele %{target} + subject: Nové hlášení pro %{instance} (#%{id}) new_trending_tag: - body: 'Hashtag #%{name} je dnes populární, nebyl však dříve schválen. Nebude zobrazen veřejně, pokud to nedovolíte. Můžete také pouze uložit formulář tak, jak je, a nikdy o něm opět neslyšet.' + body: 'Hashtag #%{name} je dnes populární, ale nebyl dříve schválen. Pokud to nedovolíte, nebude veřejně zobrazen. Pokud tento formulář uložíte jak je, už o něm opět neuslyšíte.' subject: Nový hashtag ke schválení na %{instance} (#%{name}) aliases: add_new: Vytvořit alias created_msg: Nový alias byl úspěšně vytvořen. Nyní můžete zahájit přesun ze starého účtu. - deleted_msg: Alias byl úspěšně odstraněn. Přesun z tamtoho účtu na tento již nebude možný. + deleted_msg: Alias byl úspěšně odstraněn. Přesun z jiného účtu na tento již nebude možný. hint_html: Chcete-li se přesunout z jiného účtu na tento, můžete si zde vytvořit alias, který je vyžadován předtím, než můžete pokračovat přesunem sledujících ze starého účtu na tento. Tato akce sama o sobě je neškodná a vratná. Přesun účtu se zahajuje ze starého účtu. remove: Odpojit alias appearance: advanced_web_interface: Pokročilé webové rozhraní - advanced_web_interface_hint: 'Chcete-li využít celé šířky vaší obrazovky, dovolí vám pokročilé webové rozhraní nastavit si mnoho různých sloupců, takže můžete vidět ve stejnou chvíli tolik informací, kolik chcete: domovskou časovou osu, oznámení, federovanou časovou osu a libovolný počet seznamů a hashtagů.' + advanced_web_interface_hint: 'Chcete-li využít celé šířky vaší obrazovky, dovolí vám pokročilé webové rozhraní nastavit si mnoho různých sloupců, takže ve stejnou chvíli uvidíte tolik informací, kolik chcete: domovskou časovou osu, oznámení, federovanou časovou osu a libovolný počet seznamů a hashtagů.' animations_and_accessibility: Animace a přístupnost confirmation_dialogs: Potvrzovací dialogy discovery: Objevování + localization: + body: Mastodon je přeložen do češtiny díky dobrovolníkům. + guide_link: https://cs.crowdin.com/project/mastodon + guide_link_text: Každý může pomoci. sensitive_content: Citlivý obsah toot_layout: Rozložení tootů application_mailer: - notification_preferences: Změnit volby e-mailu + notification_preferences: Změnit předvolby e-mailů salutation: "%{name}," - settings: 'Změnit volby e-mailu: %{link}' + settings: 'Změnit předvolby e-mailů: %{link}' view: 'Zobrazit:' view_profile: Zobrazit profil view_status: Zobrazit toot applications: created: Aplikace úspěšně vytvořena destroyed: Aplikace úspěšně smazána - invalid_url: Zadaná adresa URL je neplatná + invalid_url: Zadaná URL adresa je neplatná regenerate_token: Znovu vygenerovat přístupový token token_regenerated: Přístupový token byl úspěšně vygenerován - warning: Buďte s těmito daty velmi opatrní. Nikdy je s nikým nesdílejte! + warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte! your_token: Váš přístupový token auth: - apply_for_account: Vyžádat si pozvánku + apply_for_account: Požádat o pozvánku change_password: Heslo checkbox_agreement_html: Souhlasím s pravidly serveru a podmínkami používání checkbox_agreement_without_rules_html: Souhlasím s podmínkami používání delete_account: Odstranit účet - delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádán/a o potvrzení. + delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádáni o potvrzení. description: - prefix_invited_by_user: "@%{name} vás zve, abyste se přidal/a na tento server Mastodon!" + prefix_invited_by_user: "@%{name} vás zve na tento server Mastodon!" prefix_sign_up: Registrujte se na Mastodonu již dnes! suffix: S účtem budete moci sledovat lidi, psát příspěvky a vyměňovat si zprávy s uživateli z kteréhokoliv serveru Mastodon a dalších služeb! - didnt_get_confirmation: Neobdržel/a jste pokyny pro potvrzení? - forgot_password: Zapomněl/a jste heslo? - invalid_reset_password_token: Token pro obnovení hesla je buď neplatný, nebo vypršel. Prosím vyžádejte si nový. + didnt_get_confirmation: Neobdrželi jste pokyny pro potvrzení? + forgot_password: Zapomněli jste heslo? + invalid_reset_password_token: Token pro obnovení hesla je buď neplatný, nebo vypršel. Vyžádejte si prosím nový. login: Přihlásit logout: Odhlásit migrate_account: Přesunout se na jiný účet - migrate_account_html: Chcete-li přesměrovat tento účet na jiný, můžete to nastavit zde. + migrate_account_html: Zde můžete nastavit přesměrování tohoto účtu na jiný. or_log_in_with: Nebo se přihlaste pomocí providers: cas: CAS @@ -628,21 +648,21 @@ cs: security: Zabezpečení set_new_password: Nastavit nové heslo setup: - email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a obdržet nový potvrzovací e-mail. + email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a nechat si poslat nový potvrzovací e-mail. email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu. title: Nastavení status: account_status: Stav účtu - confirming: Čekám na dokončení potvrzení e-mailu. + confirming: Čeká na dokončení potvrzení e-mailu. functional: Váš účet je zcela funkční. - pending: Váš požadavek čeká na schválení naším personálem. To může nějakou dobu trvat. Pokud bude váš požadavek schválen, obdržíte e-mail. - redirecting_to: Váš účet je neaktivní, protože právě přesměrovává na účet %{acct}. - trouble_logging_in: Problémy s přihlašováním? + pending: Vaše žádost čeká na schválení naším personálem. To může nějakou dobu trvat. Pokud bude váš požadavek schválen, obdržíte e-mail. + redirecting_to: Váš účet je neaktivní, protože je právě přesměrován na účet %{acct}. + trouble_logging_in: Problémy s přihlášením? authorize_follow: already_following: Tento účet již sledujete error: Při hledání vzdáleného účtu bohužel nastala chyba follow: Sledovat - follow_request: 'Poslal/a jste požadavek o sledování uživateli:' + follow_request: 'Poslali jste žádost o sledování uživateli:' following: 'Podařilo se! Nyní sledujete uživatele:' post_follow: close: Nebo můžete toto okno klidně zavřít. @@ -651,7 +671,7 @@ cs: title: Sledovat uživatele %{acct} challenge: confirm: Pokračovat - hint_html: "Tip: Po dobu hodiny vás nebudeme znovu žádat o heslo." + hint_html: "Tip: Po dobu jedné hodiny vás o heslo nebudeme znovu žádat." invalid_password: Neplatné heslo prompt: Pokračujte potvrzením hesla datetime: @@ -669,22 +689,22 @@ cs: x_months: "%{count} mesíců" x_seconds: "%{count} s" deletes: - challenge_not_passed: Informace, které jste zadal/a, nejsou správné - confirm_password: Zadejte svoje současné heslo pro ověření vaší identity - confirm_username: Zadáním svého uživatelského jména potvrdíte proces + challenge_not_passed: Zadané informace nejsou správné + confirm_password: Pro ověření vaší identity zadejte své současné heslo + confirm_username: Zadáním svého uživatelského jména proces potvrdíte proceed: Odstranit účet success_msg: Váš účet byl úspěšně odstraněn warning: before: 'Před pokračováním si prosím pečlivě přečtěte tyto poznámky:' caches: Obsah, který byl uložen do cache jiných serverů, nemusí být smazán data_removal: Vaše příspěvky a další data budou trvale smazána - email_change_html: Můžete si změnit svou e-mailovou adresu bez smazání účtu + email_change_html: Svou e-mailovou adresu můžete změnit i bez mazání účtu email_contact_html: Pokud stále nepřijde, můžete požádat o pomoc zasláním e-mailu na %{email} email_reconfirmation_html: Pokud neobdržíte potvrzovací e-mail, můžete si ho vyžádat znovu - irreversible: Nebudete moci obnovit nebo znovu aktivovat váš účet - more_details_html: Více detailů najdete v zásadách soukromí. + irreversible: Váš účet nebude možné obnovit ani znovu aktivovat + more_details_html: Podrobnosti najdete v zásadách ochrany osobních údajů. username_available: Vaše uživatelské jméno bude opět dostupné - username_unavailable: Vaše uživatelské jméno zůstane nedostupným + username_unavailable: Vaše uživatelské jméno zůstane nedostupné directories: directory: Adresář profilů explanation: Objevujte uživatele podle jejich zájmů @@ -692,11 +712,11 @@ cs: domain_validator: invalid_domain: není platné doménové jméno errors: - '400': Požadavek, který jste odeslal/a, byl neplatný nebo poškozený. + '400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená. '403': Nemáte povolení zobrazit tuto stránku. '404': Stránka, kterou hledáte, tu není. - '406': Tato stránka není dostupná v požadovaném formátu. - '410': Stránka, kterou hledáte, tu již neexistuje. + '406': Tato stránka není v požadovaném formátu dostupná. + '410': Stránka, kterou hledáte, tu již není. '422': content: Bezpečnostní ověření selhalo. Neblokujete cookies? title: Bezpečnostní ověření selhalo @@ -712,22 +732,21 @@ cs: exports: archive_takeout: date: Datum - download: Stáhnout svůj archiv + download: Stáhnout váš archiv hint_html: Můžete si vyžádat archiv vašich tootů a nahraných médií. Exportovaná data budou ve formátu ActivityPub a budou čitelná kterýmkoliv kompatibilním softwarem. Archiv si můžete vyžádat každých 7 dní. in_progress: Kompiluji váš archiv… - request: Vyžádat svůj archiv + request: Vyžádat váš archiv size: Velikost blocks: Blokujete csv: CSV - domain_blocks: Blokace domén - follows: Sledujete + domain_blocks: Blokování domén lists: Seznamy - mutes: Skryl/a jste + mutes: Skryli jste storage: Paměť médií featured_tags: add_new: Přidat nový errors: - limit: Již jste zvýraznil/a maximální počet hashtagů + limit: Již jste zvýraznili maximální počet hashtagů hint_html: "Co jsou zvýrazněné hashtagy? Zobrazují se prominentně na vašem veřejném profilu a dovolují lidem prohlížet si vaše veřejné příspěvky konkrétně pod těmi hashtagy. Je to skvělý nástroj pro sledování kreativních děl nebo dlouhodobých projektů." filters: contexts: @@ -738,10 +757,11 @@ cs: edit: title: Upravit filtr errors: - invalid_context: Nebylo poskytnuto nic, nebo má neplatný kontext + invalid_context: Nebyl poskytnut žádný nebo jen neplatný kontext invalid_irreversible: Nezvratné filtrování funguje pouze v souvislosti s domovskou osou či oznámeními index: delete: Smazat + empty: Nemáte žádný filtr. title: Filtry new: title: Přidat nový filtr @@ -754,14 +774,14 @@ cs: all: Všechny changes_saved_msg: Změny byly úspěšně uloženy! copy: Kopírovat - no_batch_actions_available: Pro tuto stránku nejsou dostupny žádné souhrnné akce - order_by: Seřadit od + no_batch_actions_available: Pro tuto stránku nejsou dostupné žádné souhrnné akce + order_by: Seřadit podle save_changes: Uložit změny validation_errors: - few: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyby níže - many: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže - one: Něco ještě není úplně v pořádku! Prosím zkontrolujte chybu níže - other: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže + few: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyby uvedené níže + many: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyb uvedených níže + one: Něco ještě není úplně v pořádku! Zkontrolujte prosím chybu uvedenou níže + other: Něco ještě není úplně v pořádku! Zkontrolujte prosím %{count} chyb uvedených níže html_validator: invalid_markup: 'obsahuje neplatný HTML kód: %{error}' identity_proofs: @@ -769,11 +789,11 @@ cs: authorize: Ano, autorizovat authorize_connection_prompt: Autorizovat toto kryptografické spojení? errors: - failed: Kryptografické spojení selhalo. Prosím zkuste to znovu z %{provider}. + failed: Kryptografické spojení selhalo. Zkuste to prosím znovu z %{provider}. keybase: - invalid_token: Tokeny Keybase jsou hashe podpisů a musí být 66 znaků dlouhé - verification_failed: Keybase nerozpoznává tento token jako podpis uživatele %{kb_username} na Keybase. Prosím zkuste to znovu z Keybase. - wrong_user: Nelze vytvořit důkaz pro uživatele %{proving}, zatímco jste přihlášen/a jako %{current}. Přihlaste se jako %{proving} a zkuste to znovu. + invalid_token: Keybase tokeny jsou hashe podpisů a musí být dlouhé 66 hexadecimálních znaků + verification_failed: Keybase nerozpoznává tento token jako podpis uživatele %{kb_username} na Keybase. Zkuste to prosím znovu z Keybase. + wrong_user: Nelze vytvořit důkaz pro uživatele %{proving}, zatímco jste přihlášeni jako %{current}. Přihlaste se jako %{proving} a zkuste to znovu. explanation_html: Zde můžete kryptograficky připojit vaše ostatní identity, například profil Keybase. To dovolí jiným lidem vám posílat šifrované zprávy a důvěřovat obsahu, který jim pošlete. i_am_html: Na %{service} jsem %{username}. identity: Identita @@ -788,7 +808,7 @@ cs: merge_long: Ponechat existující záznamy a přidat nové overwrite: Přepsat overwrite_long: Nahradit aktuální záznamy novými - preface: Můžete importovat data, která jste exportoval/a z jiného serveru, jako například seznam lidí, které sledujete či blokujete. + preface: Můžete importovat data, která jste exportovali z jiného serveru, jako například seznam lidí, které sledujete či blokujete. success: Vaše data byla úspěšně nahrána a nyní budou zpracována v daný čas types: blocking: Seznam blokovaných @@ -796,26 +816,26 @@ cs: following: Seznam sledovaných muting: Seznam ignorovaných upload: Nahrát - in_memoriam_html: Navždy budeme vzpomínat. + in_memoriam_html: In Memoriam. invites: delete: Deaktivovat - expired: Vypršelé + expired: Expirováno expires_in: '1800': 30 minut '21600': 6 hodin - '3600': 1 hodinu + '3600': 1 hodina '43200': 12 hodin '604800': 1 týden '86400': 1 den expires_in_prompt: Nikdy generate: Vygenerovat pozvánku - invited_by: 'Byl/a jste pozván/a uživatelem:' + invited_by: 'Pozval váš uživatel:' max_uses: few: "%{count} použití" many: "%{count} použití" one: 1 použití other: "%{count} použití" - max_uses_prompt: Bez limitu + max_uses_prompt: Bez omezení prompt: Vygenerujte a sdílejte s ostatními odkazy a umožněte jim přístup na tento server table: expires_at: Vyprší @@ -823,7 +843,7 @@ cs: title: Pozvat lidi lists: errors: - limit: Dosáhl/a jste maximálního počtu seznamů + limit: Dosáhli jste maximálního počtu seznamů media_attachments: validations: images_and_video: K tootu, který již obsahuje obrázky, nelze připojit video @@ -834,42 +854,42 @@ cs: cancel_explanation: Zrušením přesměrování znovu aktivujete svůj aktuální účet, ale nevrátí se vám sledující, kteří byli přesměrováni na druhý účet. cancelled_msg: Přesměrování bylo úspěšně zrušeno. errors: - already_moved: je stejný účet, na který jste se již přesunul/a + already_moved: je stejný účet, na který jste se již přesunuli missing_also_known_as: neodkazuje na tento účet move_to_self: nemůže být aktuální účet - not_found: nemohl být nalezen + not_found: nebyl nalezen on_cooldown: Probíhá období odpočinku followers_count: Sledující v době přesunu incoming_migrations: Přesun z jiného účtu incoming_migrations_html: Chcete-li se přesunout z jiného účtu na tento, potřebujete si nejprve vytvořit alias účtu. - moved_msg: Váš účet nyní přesměrovává na účet %{acct} a vaši sledující se na něj přesouvají. - not_redirecting: Váš účet aktuálně nepřesměrovává na žádný jiný účet. - on_cooldown: Nedávno jste přesunul/a svůj účet. Tato funkce bude opět dostupná za %{count} dní. + moved_msg: Váš účet se nyní přesměrovává na účet %{acct} a vaši sledující se na něj přesouvají. + not_redirecting: Váš účet se aktuálně nepřesměrovává na žádný jiný účet. + on_cooldown: Nedávno jste svůj účet přesunuli. Tato funkce bude opět dostupná za %{count} dní. past_migrations: Předchozí přesuny proceed_with_move: Přesunout sledující - redirecting_to: Váš účet přesměrovává na účet %{acct}. + redirecting_to: Váš účet se přesměrovává na účet %{acct}. set_redirect: Nastavit přesměrování warning: backreference_required: Nový účet musí být nejprve nastaven, aby odkazoval zpátky na tento before: 'Před pokračováním si prosím pečlivě přečtěte tyto poznámky:' cooldown: Po přesunu nastane období odpočinku, kdy se nebudete moci opět přesunout disabled_account: Váš aktuální účet nebude poté zcela použitelný. Budete však mít přístup k datovým exportům a budete ho moci znovu aktivovat. - followers: Touto akcí přesunete všechny sledující z aktuálního účtu na nový účet + followers: Touto akcí přesunete všechny sledující z aktuálního účtu na nový only_redirect_html: Alternativně můžete nastavit pouze přesměrování na váš profil. other_data: Žádná další data nebudou přesunuta automaticky - redirect: Profil vašeho aktuálního účtu bude aktualizován s oznámením o přesměrování a bude vyloučen z hledání + redirect: Profil vašeho aktuálního účtu bude aktualizován s oznámením o přesměrování a bude vyloučen z výsledků hledání moderation: title: Moderování notification_mailer: digest: action: Zobrazit všechna oznámení - body: Zde najdete stručný souhrn zpráv, které jste zmeškal/a od vaší poslední návštěvy %{since} - mention: "%{name} vás zmínil/a v:" + body: Zde najdete stručný souhrn zpráv, které jste zmeškali od vaší poslední návštěvy %{since} + mention: 'Uživatel %{name} vás zmínil v:' new_followers_summary: - few: Navíc jste získal/a %{count} nové sledující, zatímco jste byl/a pryč! Skvělé! - many: Navíc jste získal/a %{count} nových sledujících, zatímco jste byl/a pryč! Úžasné! - one: Navíc jste získal/a jednoho nového sledujícího, zatímco jste byl/a pryč! Hurá! - other: Navíc jste získal/a %{count} nových sledujících, zatímco jste byl/a pryč! Úžasné! + few: Zatímco jste byli pryč jste navíc získali %{count} nové sledující! Skvělé! + many: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné! + one: Zatímco jste byli pryč jste navíc získali jednoho nového sledujícího! Hurá! + other: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné! subject: few: "%{count} nová oznámení od vaší poslední návštěvy \U0001F418" many: "%{count} nových oznámení od vaší poslední návštěvy \U0001F418" @@ -877,27 +897,31 @@ cs: other: "%{count} nových oznámení od vaší poslední návštěvy \U0001F418" title: Ve vaší nepřítomnosti… favourite: - body: 'Váš toot si oblíbil/a %{name}:' - subject: "%{name} si oblíbil/a váš toot" + body: 'Váš toot si oblíbil uživatel %{name}:' + subject: Uživatel %{name} si oblíbil váš toot title: Nové oblíbení follow: - body: "%{name} vás nyní sleduje!" - subject: "%{name} vás nyní sleduje" + body: Uživatel %{name} vás nyní sleduje! + subject: Uživatel %{name} vás nyní sleduje title: Nový sledující follow_request: - action: Spravovat požadavky o sledování - body: "%{name} požádal/a o povolení vás sledovat" + action: Spravovat žádosti o sledování + body: Uživatel %{name} požádal o povolení vás sledovat subject: 'Čekající sledující: %{name}' - title: Nový požadavek o sledování + title: Nová žádost o sledování mention: action: Odpovědět - body: 'Byl/a jste zmíněn/a uživatelem %{name} v:' - subject: Byl/a jste zmíněn/a uživatelem %{name} + body: 'Uživatel %{name} vás zmínil v:' + subject: Uživatel %{name} vás zmínil title: Nová zmínka reblog: - body: 'Váš toot byl boostnutý uživatelem %{name}:' - subject: "%{name} boostnul/a váš toot" + body: 'Uživatel %{name} boostnul váš toot:' + subject: Uživatel %{name} boostnul váš toot title: Nový boost + notifications: + email_events: Události pro e-mailová oznámení + email_events_hint: 'Vyberte události, pro které chcete dostávat oznámení:' + other_settings: Další nastavení oznámení number: human: decimal_units: @@ -912,18 +936,18 @@ cs: newer: Novější next: Další older: Starší - prev: Před + prev: Předchozí truncate: "…" polls: errors: - already_voted: V této anketě jste již hlasoval/a + already_voted: V této anketě jste již hlasovali duplicate_options: obsahuje duplicitní položky duration_too_long: je příliš daleko v budoucnosti duration_too_short: je příliš brzy expired: Anketa již skončila - over_character_limit: nesmí být každá delší než %{max} znaků + over_character_limit: nesmí být žádná delší než %{max} znaků too_few_options: musí mít více než jednu položku - too_many_options: nesmí obsahovat více než %{max} položky + too_many_options: nesmí obsahovat více než %{max} položek preferences: other: Ostatní posting_defaults: Výchozí možnosti psaní @@ -931,23 +955,25 @@ cs: relationships: activity: Aktivita účtu dormant: Nečinné - last_active: Naposledy aktivních - most_recent: Naposledy přidaných + followers: Sledující + following: Sledovaní + last_active: Naposledy aktivní + most_recent: Nejnovější moved: Přesunuté mutual: Vzájemné primary: Primární relationship: Vztah - remove_selected_domains: Odstranit všechny sledující ze zvolených domén - remove_selected_followers: Odstranit zvolené sledující - remove_selected_follows: Přestat sledovat zvolené uživatele + remove_selected_domains: Odstranit všechny sledující z vybraných domén + remove_selected_followers: Odstranit vybrané sledující + remove_selected_follows: Přestat sledovat vybrané uživatele status: Stav účtu remote_follow: acct: Napište svou přezdívku@doménu, ze které chcete jednat - missing_resource: Nemůžeme najít požadované přesměrovací URL pro váš účet - no_account_html: Ještě nemáte účet? Můžete se registrovat zde + missing_resource: Nemůžeme najít požadovanou přesměrovávací URL adresu pro váš účet + no_account_html: Ještě nemáte účet? Tady se můžete zaregistrovat proceed: Pokračovat ke sledování prompt: 'Budete sledovat:' - reason_html: "Proč je tento krok nutný? %{instance} nemusí být serverem, na kterém jste registrován/a, proto vás musíme nejdříve přesměrovat na váš domovský server." + reason_html: "Proč je tento krok nutný? %{instance} nemusí být serverem, na kterém jste registrováni, a proto vás musíme nejdříve přesměrovat na váš domovský server." remote_interaction: favourite: proceed: Pokračovat k oblíbení @@ -956,11 +982,11 @@ cs: proceed: Pokračovat k boostnutí prompt: 'Chcete boostnout tento toot:' reply: - proceed: Pokračovat k odpovězení + proceed: Pokračovat k odpovědi prompt: 'Chcete odpovědět na tento toot:' scheduled_statuses: - over_daily_limit: Překročil/a jste limit %{limit} plánovaných tootů pro tento den - over_total_limit: Překročil/a jste limit %{limit} plánovaných tootů + over_daily_limit: Překročili jste limit %{limit} tootů naplánovaných na tento den + over_total_limit: Překročili jste limit %{limit} naplánovaných tootů too_soon: Plánované datum musí být v budoucnosti sessions: activity: Nejnovější aktivita @@ -984,24 +1010,24 @@ cs: uc_browser: UCBrowser weibo: Weibo current_session: Aktuální relace - description: "%{browser} na %{platform}" + description: "%{browser} na systému %{platform}" explanation: Tohle jsou webové prohlížeče aktuálně přihlášené na váš účet Mastodon. ip: IP adresa platforms: adobe_air: Adobe Air - android: Androidu + android: Android blackberry: Blackberry chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS - linux: Linuxu - mac: Macu - other: neznámé platformě + linux: Linux + mac: Mac + other: neznámá platforma windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone - revoke: Zamítnout - revoke_success: Relace úspěšně zamítnuta + revoke: Zrušit + revoke_success: Relace úspěšně zrušena title: Relace settings: account: Účet @@ -1025,7 +1051,7 @@ cs: relationships: Sledovaní a sledující two_factor_authentication: Dvoufázové ověřování spam_check: - spam_detected: Tohle je automatizované nahlášení. Byl detekován spam. + spam_detected: Tohle je automatizované hlášení. Byl detekován spam. statuses: attached: description: 'Přiloženo: %{attached}' @@ -1048,12 +1074,12 @@ cs: other: 'obsahoval nepovolené hashtagy: %{tags}' language_detection: Zjistit jazyk automaticky open_in_web: Otevřít na webu - over_character_limit: limit %{max} znaků byl překročen + over_character_limit: byl překročen limit %{max} znaků pin_errors: - limit: Už jste si připnul/a maximální počet tootů + limit: Už jste si připnuli maximální počet tootů ownership: Nelze připnout toot někoho jiného - private: Nelze připnout neveřejné tooty - reblog: Nelze připnout boost + private: Neveřejné tooty nelze připnout + reblog: Boosty nelze připnout poll: total_people: few: "%{count} lidé" @@ -1067,15 +1093,15 @@ cs: other: "%{count} hlasů" vote: Hlasovat show_more: Zobrazit více - sign_in_to_participate: Chcete-li se účastnit této konverzace, přihlaste se + sign_in_to_participate: Chcete-li se zúčastnit této konverzace, přihlaste se title: "%{name}: „%{quote}“" visibilities: private: Pouze pro sledující private_long: Zobrazit pouze sledujícím public: Veřejné - public_long: Všichni mohou vidět + public_long: Uvidí kdokoliv unlisted: Neuvedené - unlisted_long: Všichni mohou vidět, ale nebudou zahrnuty ve veřejných časových osách + unlisted_long: Uvidí kdokoliv, ale nebude zahrnut ve veřejných časových osách stream_entries: pinned: Připnutý toot reblogged: boostnul/a @@ -1084,33 +1110,33 @@ cs: does_not_match_previous_name: se neshoduje s předchozím názvem terms: body_html: | -

Zásady soukromí

+

Zásady ochrany osobních údajů

Jaké informace sbíráme?

    -
  • Základní informace o účtu: Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno a krátký životopis, a nahrát si profilovou fotografii a obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy uvedeny veřejně.
  • -
  • Příspěvky, sledující a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro vaše sledující. Když sem nahrajete zprávu, bude uloženo datum a čas, společně s aplikací, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, je to také veřejně dostupná informace. Vaše příspěvky jsou doručeny vašim sledujícím, což v některých případech znamená, že budou doručeny na různé servery, na kterých budou ukládány kopie. Pokud příspěvky smažete, bude tohle taktéž doručeno vašim sledujícím. Akce znovusdílení nebo oblíbení jiného příspěvku je vždy veřejná.
  • -
  • Příspěvky přímé a pouze pro sledující: Všechny příspěvky jsou uloženy a zpracovány na serveru. Příspěvky pouze pro sledující jsou doručeny vašim sledujícím a uživatelům v nich zmíněným a přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech tohle znamená, že budou doručeny na různé servery, na kterých budou ukládány kopie. Upřímně se snažíme omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem jiné servery tak nemusejí učinit. Proto je důležité posoudit servery, ke kterým vaši sledující patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. Prosím mějte na paměti, že operátoři tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon jakékoliv nebezpečné informace.
  • -
  • IP adresy a další metadata: Když se přihlásíte, zaznamenáváme IP adresu, ze které se přihlašujete, jakožto i název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Nejpozdější IP adresa použita je uložena maximálně do 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.
  • +
  • Základní informace o účtu: Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno, krátký životopis, nebo si nahrát profilovou fotografii a obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy veřejně dostupné.
  • +
  • Příspěvky, sledující a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro uživatele sledující vás. Pro každou vámi napsanou zprávu, bude uloženo datum a čas a informace o aplikaci, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, bude také dostupný veřejně. Vaše příspěvky jsou doručeny uživatelům, kteří vás sledují, což v některých případech znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Pokud příspěvky smažete, bude tato akce taktéž doručeno vašim sledujícím. Akce opětovného sdílení nebo oblíbení jiného příspěvku je vždy veřejná.
  • +
  • Příspěvky přímé a pouze pro sledující: Všechny příspěvky jsou na serveru uloženy a zpracovány. Příspěvky pouze pro sledující jsou doručeny uživatelům, kteří vás sledují, a uživatelům v příspěvcích zmíněným. Přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech to znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Upřímně se snažíme omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem ostatní servery tak činit nemusí. Proto je důležité posoudit servery, ke kterým uživatelé, kteří vás sledují patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. Mějte prosím na paměti, že správci tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon žádné nebezpečné informace.
  • +
  • IP adresy a další metadata: Při vašem přihlášení zaznamenáváme IP adresu, ze které se přihlašujete, a název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Poslední použitá IP adresa je uložena maximálně po dobu 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.

-

Na co používáme vaše informace?

+

Na co vaše údaje používáme?

-

Jakékoliv informace, které sbíráme, mohou být použity následujícími způsoby:

+

Všechna data, která sbíráme, mohou být použita následujícími způsoby:

    -
  • K poskytnutí základních funkcí Mastodonu. Interagovat s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
  • -
  • Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro určení vyhýbání se zákazům či jiných přestupků.
  • -
  • E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách a k odpovědím na dotazy a/nebo další požadavky či otázky.
  • +
  • K poskytnutí základních funkcí Mastodonu. K interakci s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
  • +
  • Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro detekci obcházení zákazů či jiných přestupků.
  • +
  • E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách, a k odpovědím na dotazy a/nebo další požadavky či otázky.

-

Jak vaše informace chráníme?

+

Jak vaše data chráníme?

-

Implenentujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat, když zadáváte, odesíláte, či přistupujete k vašim osobním datům. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.

+

Když zadáváte, odesíláte, či přistupujete k vašim osobním datům, implementujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.


@@ -1119,19 +1145,19 @@ cs:

Budeme se upřímně snažit:

    -
  • Uchovávat serverové záznamy obsahující IP adresy všech požadavků pro tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
  • +
  • Uchovávat serverové záznamy obsahující IP adresy všech požadavků na tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
  • Uchovávat IP adresy související s registrovanými uživateli maximálně 12 měsíců.
-

Kdykoliv si můžete vyžádat a stáhnout archiv vašeho obsahu, včetně vašich příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.

+

Kdykoliv si můžete vyžádat a stáhnout archiv svého obsahu, včetně příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.

-

Kdykoliv můžete nenávratně smazat váš účet.

+

Kdykoliv můžete nenávratně smazat svůj účet.


Používáme cookies?

-

Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží na pevný disk vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.

+

Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží do vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.

Používáme cookies pro pochopení a ukládání vašich předvoleb pro budoucí návštěvy.

@@ -1139,32 +1165,32 @@ cs:

Zveřejňujeme jakékoliv informace třetím stranám?

-

Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Do tohoto se nepočítají důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Můžeme také uvolnit vaše informace, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.

+

Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Nepočítáme do toho důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Vaše informace můžete uvolnit, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.

-

Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery vašich sledujících a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.

+

Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery uživatelů, kteří vás sledují, a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.

-

Když autorizujete aplikaci, aby používala váš účet, může, v závislosti na rozsahu oprávnění, které jí udělíte, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu či heslo.

+

Při autorizaci aplikace k používání vašeho účtu může, v závislosti na rozsahu udělených oprávnění, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu ani heslo.


Používání stránky dětmi

-

Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou všechny směřovány na lidi, kterým je alespoň 16 let. Pokud je vám méně než 16, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů) tuto stránku nepoužívejte.

+

Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou určeny lidem, kterým je alespoň 16 let. Pokud je vám méně než 16 let, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů) tuto stránku nepoužívejte.

-

Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou všechny směřovány na lidi, kterým je alespoň 13 let. Pokud je vám méně než 13, dle požadavků zákona COPPA (Children's Online Privacy Protection Act) tuto stránku nepoužívejte.

+

Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou učeny lidem, kterým je alespoň 13 let. Pokud je vám méně než 13 let, dle požadavků zákona COPPA (Children's Online Privacy Protection Act) tuto stránku nepoužívejte.

Právní požadavky mohou být jiné, pokud se tento server nachází v jiné jurisdikci.


-

Změny v našich zásadách soukromí

+

Změny v našich zásadách ochrany osobních údajů

-

Rozhodneme-li se naše zásady soukromí změnit, zveřejníme tyto změny na této stránce.

+

Rozhodneme-li se naše zásady ochrany osobních údajů změnit, zveřejníme tyto změny na této stránce.

Tento dokument je dostupný pod licencí CC-BY-SA. Byl naposledy aktualizován 7. března 2018.

-

Původně adaptováno ze zásad soukromí Discourse.

- title: Podmínky používání a zásady soukromí %{instance} +

Původně adaptováno ze zásad ochrna osobních údajů projektem Discourse.

+ title: Podmínky používání a zásady ochrany osobních údajů na serveru %{instance} themes: contrast: Mastodon (vysoký kontrast) default: Mastodon (tmavý) @@ -1175,57 +1201,57 @@ cs: month: "%b %Y" two_factor_authentication: code_hint: Pro potvrzení zadejte kód vygenerovaný vaší ověřovací aplikací - description_html: Povolíte-li dvoufázové ověřování, budete při přihlášení potřebovat telefon, který vám vygeneruje přístupové tokeny, které musíte zadat. - disable: Zakázat - enable: Povolit - enabled: Dvoufázové ověřování je povoleno - enabled_success: Dvoufázové ověřování bylo úspěšně povoleno + description_html: Zapnete-li dvoufázové ověřování, budete pro přihlašování potřebovat telefon, který vám vygeneruje přístupové tokeny, které musíte zadat. + disable: Vypnout + enable: Zapnout + enabled: Dvoufázové ověřování je zapnuto + enabled_success: Dvoufázové ověřování bylo úspěšně zapnuto generate_recovery_codes: Vygenerovat záložní kódy - instructions_html: "Naskenujte tento QR kód Google Authenticatorem nebo jinou TOTP aplikací na vašem telefonu. Od teď bude tato aplikace generovat tokeny, které budete muset zadat při přihlášení." + instructions_html: "Naskenujte tento QR kód Google Authenticatorem nebo jinou TOTP aplikací na svém telefonu. Od teď bude tato aplikace generovat tokeny, které budete muset zadat při přihlášení." lost_recovery_codes: Záložní kódy vám dovolí dostat se k vašemu účtu, pokud ztratíte telefon. Ztratíte-li záložní kódy, můžete je zde znovu vygenerovat. Vaše staré záložní kódy budou zneplatněny. - manual_instructions: 'Nemůžete-li oskenovat QR kód a je potřeba ho zadat ručně, zde je tajemství v prostém textu:' + manual_instructions: 'Nemůžete-li QR kód naskenovat a je potřeba ho zadat ručně, zde je secret v prostém textu:' recovery_codes: Záložní kódy pro obnovu recovery_codes_regenerated: Záložní kódy byly úspěšně znovu vygenerovány - recovery_instructions_html: Ztratíte-li někdy přístup k vašemu telefonu, můžete k získání přístupu k účtu použít jeden ze záložních kódů. Uchovávejte tyto kódy v bezpečí. Můžete si je například vytisknout a uložit je mezi jiné důležité dokumenty. + recovery_instructions_html: Ztratíte-li někdy přístup ke svému telefonu, můžete k získání přístupu k účtu použít jeden ze záložních kódů. Uchovejte tyto kódy v bezpečí. Můžete si je například vytisknout a uložit je mezi jiné důležité dokumenty. setup: Nastavit wrong_code: Zadaný kód byl neplatný! Je čas na serveru a na zařízení správný? user_mailer: backup_ready: - explanation: Vyžádal/a jste si úplnou zálohu svého účtu Mastodon. Nyní je připravena ke stažení! + explanation: Vyžádali jste si úplnou zálohu svého účtu Mastodon. Nyní je připravena ke stažení! subject: Váš archiv je připraven ke stažení title: Stažení archivu warning: explanation: - disable: Zatímco je váš účet zmražen, zůstávají data vašeho účtu nedotčená, ale nemůžete vykonávat žádné akce, dokud nebude odemčen. - silence: Zatímco je váš účet omezen, mohou vaše tooty na tomto serveru vidět pouze lidé, kteří váš již sledují, a můžete být vyloučen/a z různých veřejných výpisů. Ostatní vás však pořád mohou manuálně sledovat. - suspend: Váš účet byl pozastaven a všechny vaše tooty a vaše nahrané mediální soubory byly nenávratně odstraněny z tohoto serveru a serverů, na kterých jste měl/a sledující. + disable: Zatímco je váš účet zmrazen, zůstávají data vašeho účtu nedotčena. Dokud ale nebude odemčen, nemůžete vykonávat žádné akce. + silence: Zatímco je váš účet omezen, mohou vaše tooty na tomto serveru vidět pouze lidé, kteří váš již sledují, a můžete být vyloučeni z různých veřejných seznamů. Ostatní vás však pořád mohou manuálně sledovat. + suspend: Váš účet byl pozastaven a všechny vaše tooty a nahrané mediální soubory byly nenávratně odstraněny z tohoto serveru a serverů, na kterých jste měli sledující. get_in_touch: Můžete odpovědět na tento e-mail a spojit se s personálem serveru %{instance}. - review_server_policies: Posoudit politiku serveru + review_server_policies: Zkontrolujte pravidla serveru statuses: 'Konkrétně kvůli:' subject: - disable: Váš účet %{acct} byl zmražen + disable: Váš účet %{acct} byl zmrazen none: Varování pro uživatele %{acct} silence: Váš účet %{acct} byl omezen suspend: Váš účet %{acct} byl pozastaven title: - disable: Účet zmražen + disable: Účet zmrazen none: Varování silence: Účet omezen suspend: Účet pozastaven welcome: edit_profile_action: Nastavit profil - edit_profile_step: Můžete si přizpůsobit svůj profil nahráním avataru a obrázku záhlaví, změnou zobrazovaného jména a dalších. Chcete-li posoudit nové sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout. - explanation: Zde je pár tipů na začátek + edit_profile_step: Svůj profil si můžete přizpůsobit nahráním avataru a obrázku záhlaví, změnou zobrazovaného jména a další. Chcete-li posoudit nové sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout. + explanation: Zde je pár tipů do začátku final_action: Začít psát final_step: 'Začněte psát! I když nemáte sledující, mohou vaše zprávy vidět jiní lidé, například na místní časové ose a v hashtazích. Můžete se ostatním představit pomocí hashtagu #introductions.' full_handle: Vaše celá adresa profilu - full_handle_hint: Tohle je, co byste řekl/a svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru. - review_preferences_action: Změnit nastavení - review_preferences_step: Nezapomeňte si nastavit své volby, například jaké e-maily chcete přijímat či jak soukromé mají být vaše příspěvky ve výchozím stavu. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF. + full_handle_hint: Tohle je, co byste řekli svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru. + review_preferences_action: Změnit předvolby + review_preferences_step: Nezapomeňte si nastavit například jaké e-maily chcete přijímat či jak soukromé mají ve výchozím stavu být vaše příspěvky. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF. subject: Vítejte na Mastodonu tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná. - tip_following: Administrátora/y serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se na místní a federované časové osy. - tip_local_timeline: Místní časová osa je náhled lidí na %{instance}. Tohle jsou vaši nejbližší sousedé! + tip_following: Administrátory serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se do místní a federované časové osy. + tip_local_timeline: Místní časová osa je náhled lidí na serveru %{instance}. Jsou to vaši nejbližší sousedé! tip_mobile_webapp: Pokud vám váš mobilní prohlížeč nabídne přidat si Mastodon na vaši domovskou obrazovku, můžete dostávat oznámení. V mnoha ohledech to funguje jako nativní aplikace! tips: Tipy title: Vítejte na palubě, %{name}! @@ -1233,9 +1259,9 @@ cs: follow_limit_reached: Nemůžete sledovat více než %{limit} lidí invalid_email: E-mailová adresa je neplatná invalid_otp_token: Neplatný kód pro dvoufázové ověřování - otp_lost_help_html: Pokud jste ztratil/a přístup k oběma, můžete se spojit %{email} - seamless_external_login: Jste přihlášen/a přes externí službu, nastavení hesla a e-mailu proto nejsou dostupná. - signed_in_as: 'Přihlášen/a jako:' + otp_lost_help_html: Pokud jste ztratili přístup k oběma, spojte se s %{email} + seamless_external_login: Jste přihlášeni přes externí službu, nastavení hesla a e-mailu proto nejsou dostupná. + signed_in_as: 'Přihlášeni jako:' verification: explanation_html: 'Můžete se ověřit jako vlastník odkazů v metadatech profilu. Pro tento účel musí stránka v odkazu obsahovat odkaz zpět na váš profil na Mastodonu. Odkaz zpět musí mít atribut rel="me". Na textu odkazu nezáleží. Zde je příklad:' verification: Ověření diff --git a/config/locales/cy.yml b/config/locales/cy.yml index fde22cc33..5e63f1702 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -11,6 +11,7 @@ cy: apps: Apiau symudol apps_platforms: Defnyddio Mastodon o iOS, Android a phlatfformau eraill browse_directory: Pori cyfeiriadur proffil a hidlo wrth diddordebau + browse_local_posts: Pori ffrwd byw o byst cyhoeddus o'r gweinydd hyn browse_public_posts: Pori ffrwd byw o byst cyhoeddus ar Fastodon contact: Cyswllt contact_missing: Heb ei osod @@ -93,6 +94,7 @@ cy: roles: admin: Gweinyddwr bot: Bot + group: Grŵp moderator: Safonwr unavailable: Proffil ddim ar gael unfollow: Dad-ddilyn @@ -213,10 +215,12 @@ cy: confirm_user: Cadarnhaodd %{name} gyfeiriad e-bost y defnyddiwr %{target} create_account_warning: Anfonwyd rhybudd i %{target} gan %{name} create_custom_emoji: Uwchlwythodd %{name} emoji newydd %{target} + create_domain_allow: Gwynrestrodd %{name} y parth %{target} create_domain_block: Blociodd %{name} y parth %{target} create_email_domain_block: Cosbrestrwyd parth e-bost %{target} gan %{name} demote_user: Diraddiodd %{name} y defnyddiwr %{target} destroy_custom_emoji: Dinistriodd %{name} emoji %{target} + destroy_domain_allow: Tynnodd %{name} parth %{target} o'r gwynrestr destroy_domain_block: Dadflociodd %{name} y parth %{target} destroy_email_domain_block: Gwynrestrodd %{name} parth e-bost %{target} destroy_status: Cafodd %{name} wared ar statws gan %{target} @@ -414,10 +418,26 @@ cy: created_msg: Llwyddwyd i greu nodyn adroddiad! destroyed_msg: Llwyddwyd i ddileu nodyn adroddiad! reports: + account: + notes: + few: "%{count} o nodiadau" + many: "%{count} o nodiadau" + one: "%{count} nodyn" + other: "%{count} o nodiadau" + two: "%{count} o nodiadau" + zero: "%{count} nodyn" + reports: + few: "%{count} o adroddiadau" + many: "%{count} o adroddiadau" + one: "%{count} adroddiad" + other: "%{count} o adroddiadau" + two: "%{count} o adroddiadau" + zero: "%{count} adroddiad" action_taken_by: Gwnaethpwyd hyn gan are_you_sure: Ydych chi'n sicr? assign_to_self: Aseinio i mi assigned: Arolygwr wedi'i aseinio + by_target_domain: Parth cyfrif a adroddir comment: none: Dim created_at: Adroddwyd @@ -463,6 +483,8 @@ cy: users: I ddefnyddwyr lleol mewngofnodadwy domain_blocks_rationale: title: Dangos rhesymwaith + enable_bootstrap_timeline_accounts: + title: Alluogi dilyn diofyn i ddefnyddwyr newydd hero: desc_html: Yn cael ei arddangos ar y dudadlen flaen. Awgrymir 600x100px oleia. Pan nad yw wedi ei osod, mae'n ymddangos fel mân-lun yr achos title: Delwedd arwr @@ -591,6 +613,10 @@ cy: animations_and_accessibility: Animeiddiau ac hygyrchedd confirmation_dialogs: Deialog cadarnhau discovery: Darganfyddiad + localization: + body: Caiff Mastodon ei gyfieithu gan wirfoddolwyr. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Gall pawb gyfrannu. sensitive_content: Cynnwys sensitif toot_layout: Gosodiad tŵt application_mailer: @@ -729,7 +755,6 @@ cy: blocks: Yr ydych yn blocio csv: CSV domain_blocks: Blociau parth - follows: Yr ydych yn dilyn lists: Rhestrau mutes: Yr ydych yn tawelu storage: Storio cyfryngau @@ -915,6 +940,10 @@ cy: body: 'Cafodd eich statws ei fŵstio gan %{name}:' subject: Bŵstiodd %{name} eich statws title: Hwb newydd + notifications: + email_events: Digwyddiadau ar gyfer hysbysiadau e-bost + email_events_hint: 'Dewis digwyddiadau hoffech derbyn hysbysiadau ar eu cyfer:' + other_settings: Gosodiadau hysbysiadau arall number: human: decimal_units: @@ -948,6 +977,8 @@ cy: relationships: activity: Gweithgareddau cyfrif dormant: Segur + followers: Dilynwyr + following: Yn dilyn last_active: Gweithred ddiwethaf most_recent: Yn diweddaraf moved: Wedi symud diff --git a/config/locales/da.yml b/config/locales/da.yml index 57f4ed879..e20496918 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -5,27 +5,44 @@ da: about_mastodon_html: Mastodon er et socialt netværk der er baseret på åbne web protokoller og frit, open-source source software. Der er decentraliseret ligesom e-mail tjenester. about_this: Om active_count_after: aktive + active_footnote: Månedligt Aktive Brugere (MAU) administered_by: 'Administreret af:' api: API apps: Apps til mobilen apps_platforms: Brug Mastodon på iOS, Android og andre platformer + browse_directory: Gennemse en profils indholdsfortegnelse og filtrer efter interesser + browse_local_posts: Gennemse en live stream af offentlige indlæg fra denne server + browse_public_posts: Gennemse en live stream af offentlige indlæg fra Mastodon contact: Kontakt contact_missing: Ikke sat contact_unavailable: Ikke tilgængeligt discover_users: Opdag brugere documentation: Dokumentation + federation_hint_html: Med en konto på %{instance} har du har mulighed for at følge andre på en hvilken som helst Mastodon server. get_apps: Prøv en mobil app hosted_on: Mostodon hostet på %{domain} + instance_actor_flash: | + Denne konto er en virtuel aktør, der bruges til at repræsentere selve serveren og ikke nogen individuel bruger. + Det bruges til Federation formål og bør ikke blokeres, medmindre du vil blokere hele Instance, i hvilket tilfælde du skal bruge en domæne blokering. learn_more: Lær mere privacy_policy: Privatlivspolitik see_whats_happening: Se hvad der sker + server_stats: 'Server statstik:' source_code: Kildekode status_count_after: one: status other: statusser status_count_before: Som har skrevet + tagline: Følg venner og find nye terms: Vilkår for service unavailable_content: Utilgængeligt indhold + unavailable_content_description: + domain: Server + reason: Årsag + rejecting_media: 'Medie filer fra disse servere vil ikke blive behandlet eller gemt, og ingen miniaturebilleder vil blive vist, som kræver tilgang til den originale fil:' + silenced: 'Posteringer fra disse servere vil være skjulte i den offentlige tidslinje feed eller beskeder og ingen notifikationer vil blive genereret fra brugere du ikke følger:' + suspended: 'Ingen date fra disse servere vil blive behandlet, gemt eller udvekslet, at interagere eller kommunikere med brugere fra disse servere er ikke muligt:' + unavailable_content_html: Mastodon tillader dig generelt at se indhold og interagere med brugere fra enhver anden server i fediverset. Dette er undtagelser der er foretaget på netop denne server. user_count_after: one: bruger other: brugere @@ -33,6 +50,7 @@ da: what_is_mastodon: Hvad er Mastodon? accounts: choices_html: "%{name}s valg:" + featured_tags_hint: Du kan tilføje specifikke hashtags der vil blive vist her. follow: Følg followers: one: Følger @@ -59,12 +77,14 @@ da: roles: admin: Administrator bot: Robot + group: Gruppe moderator: Moderator unavailable: Profil utilgængelig unfollow: Følg ikke længere admin: account_actions: action: Udfør handling + title: Udfør moderator handlinger på %{acct} account_moderation_notes: create: Læg en note created_msg: Moderator notat succesfuldt oprettet! @@ -94,10 +114,13 @@ da: display_name: Visningsnavn domain: Domæne edit: Rediger + email: Email + email_status: Email status enable: Aktiver enabled: Aktiveret followers: Følgere follows: Følger + header: Overskrift/billede inbox_url: Link til indbakke invited_by: Inviteret af ip: IP-adresse @@ -120,7 +143,10 @@ da: moderation_notes: Moderator notater most_recent_activity: Seneste aktivitet most_recent_ip: Senest IP + no_account_selected: Ingen konti blev ændret da ingen var valgt + no_limits_imposed: Ingen ændringer gennemført not_subscribed: Ikke abonneret + pending: Afventende anmeldelser perform_full_suspension: Udeluk promote: Forfrem protocol: Protokol @@ -130,6 +156,7 @@ da: reject: Afvis reject_all: Afvis alle remove_avatar: Fjern profilbillede + remove_header: Fjern overskrift/billede resend_confirmation: already_confirmed: Denne bruger er allerede blevet bekræftet send: Gensend bekræftelsesmail @@ -154,6 +181,7 @@ da: statuses: Statusser subscribe: Abonner suspended: Udelukket + time_in_queue: Venter i køen %{time} title: Konti unconfirmed_email: Ikke-bekræftet email undo_silenced: Fortryd dæmpning @@ -161,6 +189,7 @@ da: unsubscribe: Abonner ikke længere username: Brugernavn warn: Advar + web: Web whitelisted: Hvidlistet action_logs: actions: @@ -173,6 +202,7 @@ da: create_domain_block: "%{name} blokerede domænet %{target}" create_email_domain_block: "%{name} sortlistede email domænet %{target}" demote_user: "%{name} degraderede %{target}" + destroy_custom_emoji: "%{name} fjernede emoji %{target}" destroy_domain_allow: "%{name} fjernede godkendelsen af domænet %{target}" destroy_domain_block: "%{name} fjernede blokeringen af domænet %{target}" destroy_email_domain_block: "%{name} hvid-listede email domænet %{target}" @@ -198,6 +228,7 @@ da: deleted_status: "(slettet status)" title: Revisionslog custom_emojis: + assign_category: Vælg kategori by_domain: Domæne copied_msg: Succesfuldt oprettede en lokal kopi af humørikonet copy: Kopier @@ -214,6 +245,7 @@ da: enabled: Aktiveret enabled_msg: Succesfuldt aktiverede det humørikon image_hint: PNG op til 50KB + list: Listet listed: Listet new: title: Tilføj nyt brugerdefineret humørikon @@ -221,11 +253,14 @@ da: shortcode: Kortkode shortcode_hint: Mindst 2 tegn, kun alfabetiske tegn og understreger title: Brugerdefinerede humørikoner + uncategorized: Uden kategori + unlist: Ulistet unlisted: Ikke listet update_failed_msg: Kunne ikke opdatere det humørikon updated_msg: Humørikon succesfuldt opdateret! upload: Læg op dashboard: + authorized_fetch_mode: Sikker tilstand backlog: ophobede jobs config: Konfiguration feature_deletions: Konto sletninger @@ -233,12 +268,17 @@ da: feature_profile_directory: Profilliste feature_registrations: Registreringer feature_relay: Føderations relæ + feature_spam_check: Anti-spam + feature_timeline_preview: Tidslinje eksempelvisning features: Funktioner hidden_service: Føderation med skjulte tjenester open_reports: åbne anmeldelser + pending_tags: hastags der afventer gennemgang + pending_users: brugere der afventer gennemgang recent_users: Seneste brugere search: Søg på fuld tekst single_user_mode: Enkelt bruger mode + software: Software space: Brugt lagerplads title: Betjeningspanel total_users: samlede antal brugere @@ -246,13 +286,18 @@ da: week_interactions: interaktioner denne uge week_users_active: aktive denne uge week_users_new: brugere denne uge + whitelist_mode: Whitelist tilstand domain_allows: + add_new: Whitelist domæne + created_msg: Domænet er tilføjet whitelist + destroyed_msg: Domænet er fjernet fra whitelist undo: Fjern fra hvidliste domain_blocks: add_new: Tilføj ny domain block created_msg: Domæne blokade bliver nu behandlet destroyed_msg: Domæne blokade er blevet annulleret domain: Domæne + edit: Rediger domæne blokering new: create: Opret blokering hint: Domæne blokeringen vil ikke forhindre oprettelse af konto opslag i databasen, men vil retroaktivt og automatisk benytte specifikke moderator metoder på disse konti. @@ -267,6 +312,8 @@ da: reject_media: Afvis medie filer reject_media_hint: Fjerner lokalt lagrede multimedie filer og nægter at hente nogen i fremtiden. Irrelevant for udelukkelser reject_reports: Afvis anmeldelser + rejecting_media: afviser mediefiler + rejecting_reports: afviser anmeldelser show: affected_accounts: one: En konto i databasen påvirket @@ -277,6 +324,7 @@ da: title: Annuller domæne blokeringen for domænet %{domain} undo: Fortryd undo: Fortryd domain block + view: Vis domæne blokering email_domain_blocks: add_new: Tilføj ny created_msg: Tilføjede succesfuldt email domænet til sortliste @@ -292,6 +340,7 @@ da: title: "%{acct}'s følgere" instances: by_domain: Domæne + delivery_available: Levering er tilgængelig moderation: all: Alle limited: Begrænset @@ -370,6 +419,7 @@ da: domain_blocks: all: Til alle disabled: Til ingen + title: Vis domæne blokeringer hero: desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet fra serveren title: Billede af helt @@ -448,8 +498,15 @@ da: body: "%{reporter} har anmeldt %{target}" body_remote: Nogen fra %{domain} har anmeldt %{target} subject: Ny anmeldelse for %{instance} (#%{id}) + aliases: + add_new: Opret alias appearance: + animations_and_accessibility: Animationer og tilgængelighed discovery: Opdagelse + localization: + body: Mastodon oversættes af frivillige. + guide_link: https://da.crowdin.com/project/mastodon + guide_link_text: Alle kan bidrage. sensitive_content: Følsomt indhold application_mailer: notification_preferences: Ændre email præferencer @@ -525,6 +582,8 @@ da: directories: directory: Profilliste explore_mastodon: Uforsk %{title} + domain_validator: + invalid_domain: er ikke et gyldigt domænenavn errors: '400': The request you submitted was invalid or malformed. '403': Du har ikke tilladelse til at se denne side. @@ -553,7 +612,7 @@ da: size: Størrelse blocks: Du blokerer csv: CSV - follows: Du følger + domain_blocks: Domæne blokeringer lists: Lister mutes: Du dæmper storage: Medie lager @@ -694,6 +753,8 @@ da: public_timelines: Offentlige tidslinjer relationships: activity: Aktivitet for konto + followers: Følgere + following: Følger last_active: Sidst aktiv most_recent: Seneste moved: Flyttet @@ -833,7 +894,10 @@ da: title: Udpluk af arkiv warning: title: + disable: Konto frosset none: Advarsel + silence: Konto begrænset + suspend: Konto suspenderet welcome: edit_profile_action: Opsæt profil edit_profile_step: Du kan skræddersy din profil ved at uploade et profilbillede, overskrift, ændre dit visningsnavn og mere. Hvis du kunne tænke dig at gennemse nye følgere før de må følge dig, kan du låse din konto. @@ -852,6 +916,7 @@ da: tips: Råd title: Velkommen ombord, %{name}! users: + follow_limit_reached: Du kan ikke følge mere end %{limit} personer invalid_email: E-mail adressen er ugyldig invalid_otp_token: Ugyldig to-faktor kode otp_lost_help_html: Hvis du har mistet adgang til begge, kan du få kontakt via %{email} diff --git a/config/locales/de.yml b/config/locales/de.yml index 445205871..9361ad4f3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -78,6 +78,7 @@ de: roles: admin: Administrator bot: Bot + group: Gruppe moderator: Moderator unavailable: Profil nicht verfügbar unfollow: Entfolgen @@ -198,10 +199,12 @@ de: confirm_user: "%{name} hat die E-Mail-Adresse von %{target} bestätigt" create_account_warning: "%{name} hat eine Warnung an %{target} gesendet" create_custom_emoji: "%{name} hat neues Emoji %{target} hochgeladen" + create_domain_allow: "%{name} hat die Domain %{target} gewhitelistet" create_domain_block: "%{name} hat die Domain %{target} blockiert" create_email_domain_block: "%{name} hat die E-Mail-Domain %{target} geblacklistet" demote_user: "%{name} stufte Benutzer_in %{target} herunter" destroy_custom_emoji: "%{name} zerstörte Emoji %{target}" + destroy_domain_allow: "%{name} hat die Domain %{target} von der Whitelist entfernt" destroy_domain_block: "%{name} hat die Domain %{target} entblockt" destroy_email_domain_block: "%{name} hat die E-Mail-Domain %{target} gewhitelistet" destroy_status: "%{name} hat einen Beitrag von %{target} entfernt" @@ -336,6 +339,7 @@ de: delete: Löschen destroyed_msg: E-Mail-Domain-Blockade erfolgreich gelöscht domain: Domain + empty: Keine E-Mail-Domains sind momentan auf der Blacklist. new: create: Blockade erstellen title: Neue E-Mail-Domain-Blockade @@ -391,10 +395,18 @@ de: created_msg: Meldungs-Kommentar erfolgreich erstellt! destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht! reports: + account: + notes: + one: "%{count} Notiz" + other: "%{count} Notizen" + reports: + one: "%{count} Bericht" + other: "%{count} Berichte" action_taken_by: Maßnahme ergriffen durch are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen assigned: Zugewiesener Moderator + by_target_domain: Domain des gemeldeten Kontos comment: none: Kein created_at: Gemeldet @@ -440,6 +452,8 @@ de: users: Für angemeldete lokale Benutzer domain_blocks_rationale: title: Rationale anzeigen + enable_bootstrap_timeline_accounts: + title: Aktiviere die Option "Konten, denen Neu-Angemeldete automatisch folgen" hero: desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Server-Thumbnail dafür verwendet title: Bild für Einstiegsseite @@ -568,6 +582,10 @@ de: animations_and_accessibility: Animationen und Barrierefreiheit confirmation_dialogs: Bestätigungsfenster discovery: Entdecken + localization: + body: Mastodon wurde von Freiwilligen übersetzt. + guide_link: https://de.crowdin.com/project/mastodon + guide_link_text: Jeder kann etwas dazu beitragen. sensitive_content: Heikle Inhalte toot_layout: Beitragslayout application_mailer: @@ -706,7 +724,6 @@ de: blocks: Du hast blockiert csv: CSV domain_blocks: Domainblockaden - follows: Du folgst lists: Listen mutes: Du hast stummgeschaltet storage: Medienspeicher @@ -728,6 +745,7 @@ de: invalid_irreversible: Unwiderrufliche Filterung funktioniert nur mit Heim- oder Benachrichtigungskontext index: delete: Löschen + empty: Du hast keine Filter. title: Filter new: title: Neuen Filter hinzufügen @@ -876,6 +894,10 @@ de: body: "%{name} hat deinen Beitrag geteilt:" subject: "%{name} hat deinen Beitrag geteilt" title: Dein Beitrag wurde geteilt + notifications: + email_events: Ereignisse für E-Mail-Benachrichtigungen + email_events_hint: 'Wähle Ereignisse, für die du Benachrichtigungen erhalten möchtest:' + other_settings: Weitere Benachrichtigungseinstellungen number: human: decimal_units: @@ -909,6 +931,8 @@ de: relationships: activity: Kontoaktivität dormant: Inaktiv + followers: Folgende + following: Folgt last_active: Zuletzt aktiv most_recent: Neuste moved: Umgezogen diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml index 4662cd030..ca0b657e8 100644 --- a/config/locales/devise.ar.yml +++ b/config/locales/devise.ar.yml @@ -51,6 +51,9 @@ ar: two_factor_enabled: subject: 'ماستدون: تم تفعيل نظام المصادقة بخطوتين' title: إنّ 2FA نشِط + two_factor_recovery_codes_changed: + subject: 'ماستدون: تم إعادة توليد رموز استرجاع المصادقة بخطوتين' + title: تم استبدال رموز استرجاع 2FA unlock_instructions: subject: 'ماستدون: تعليمات فك القفل' omniauth_callbacks: diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml index 49b0c8daf..29fde3941 100644 --- a/config/locales/devise.ast.yml +++ b/config/locales/devise.ast.yml @@ -1,21 +1,45 @@ --- ast: devise: + confirmations: + confirmed: La direición de corréu confirmóse con ésitu. + send_instructions: Nunos minutos, vas recibir un corréu coles instrucciones pa cómo confirmar la direición de corréu. Comprueba la carpeta Puxarra si nun lu recibiesti, por favor. + send_paranoid_instructions: Si la direición de corréu esiste na nuesa base de datos, nunos minutos vas recibir un corréu coles instrucciones pa cómo confirmala. Comprueba la carpeta Puxarra si nun lu recibiesti. failure: already_authenticated: Yá aniciesti sesión. inactive: Entá nun s'activó la cuenta. last_attempt: Tienes un intentu más enantes de bloquiar la cuenta. locked: La cuenta ta bloquiada. + pending: La cuenta ta entá en revisión. timeout: La sesión caducó. Volvi aniciar sesión pa siguir, por favor. unauthenticated: Precises aniciar sesión o rexistrate enantes de siguir. mailer: confirmation_instructions: - explanation: Creesti una cuenta en %{host} con esta direición de corréu. Tas a un clic d'activala. Si nun fuisti tu, inora esti corréu. + explanation: Creesti una cuenta en %{host} con esta direición de corréu. Tas a un calcu d'activala. Si nun fuisti tu, inora esti corréu. email_changed: - title: Direición de corréu nueva + explanation: 'La direición de corréu de la cuenta camudó a:' + subject: 'Mastodón: Camudó la direición de corréu' + title: Direición nueva de corréu + password_change: + explanation: Camudó la contraseña de la cuenta. + subject: 'Mastodon: Camudó la contraseña' reset_password_instructions: explanation: Solicitesti una contraseña nueva pa la cuenta. extra: Si nun solicitesti esto, inora esti corréu. La contraseña nun va camudar hasta que nun accedas al enllaz d'enriba y crees una nueva. + subject: 'Mastodon: Instrucciones pa reafitar la contraseña' + two_factor_disabled: + subject: 'Mastodon: Desactivóse l''autenticación en dos pasos' + two_factor_enabled: + subject: 'Mastodon: Activóse l''autenticación en dos pasos' + two_factor_recovery_codes_changed: + subject: 'Mastodon: Rexeneráronse los códigos de l''autenticación en dos pasos' + unlock_instructions: + subject: 'Mastodon: Instrucciones de desbloquéu' + passwords: + send_instructions: Si la direición de corréu esiste na base de datos, nunos minutos vas recibir un enllaz pa recuperar la contraseña a esi corréu. Comprueba la carpeta Puxarra si nun lu recibiesti. + send_paranoid_instructions: Si la direición de corréu esiste na base de datos, nunos minutos vas recibir un enllaz pa recuperar la contraseña a esi corréu. Comprueba la carpeta Puxarra si nun lu recibiesti. + updated: La contraseña camudó con ésitu. Agora aniciesti sesión. + updated_not_active: La contraseña camudó con ésitu. registrations: signed_up: "¡Afáyate! Rexistréstite con ésitu." signed_up_but_unconfirmed: Unvióse un mensaxe de confirmación a la direición de corréu. Sigui l'enllaz p'activar la cuenta. Comprueba la carpeta Puxarra si nun recibiesti esti corréu, por favor. @@ -28,3 +52,6 @@ ast: messages: already_confirmed: yá se confirmó, volvi aniciar sesión not_found: nun s'alcontró + not_saved: + one: '1 fallu torgó que %{resource} se guardare:' + other: "%{count} fallos torgó que %{resource} se guardaren:" diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml index eb176c7bd..637edc2cd 100644 --- a/config/locales/devise.ca.yml +++ b/config/locales/devise.ca.yml @@ -3,15 +3,15 @@ ca: devise: confirmations: confirmed: L'adreça de correu s'ha confirmat correctament. - send_instructions: "En pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. \nSi us plau verifica la carpeta de corrreu brossa si no has rebut aquest correu." + send_instructions: "En pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. \nSi us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu." send_paranoid_instructions: |- Si l'adreça de correu electrònic existeix en la nostra base de dades, en pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. - Si us plau verifica la carpeta de corrreu brossa si no has rebut aquest correu. + Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu. failure: already_authenticated: Ja estàs registrat. inactive: El teu compte encara no s'ha activat. invalid: "%{authentication_keys} o contrasenya no són vàlids." - last_attempt: Tens un intent més, abans que es bloqueji el compte. + last_attempt: Tens un intent més, abans que es bloquegi el compte. locked: El compte s'ha bloquejat. not_found_in_database: "%{authentication_keys} o contrasenya no són vàlids." pending: El teu compte encara està en revisió. @@ -25,7 +25,7 @@ ca: explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic de l'activació. Si no fos així, ignora aquest correu electrònic. explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Un cop confirmis la teva adreça de correu electrònic revisarem la teva sol·licitud. No es pot iniciar la sessió fins llavors. Si la teva sol·licitud és rebutjada les teves dades s’eliminaran, de manera que no s’exigirà cap altra acció. Si no has estat tu qui ha fet aquest sol·licitud si us plau ignora aquest correu electrònic. extra_html: Si us plau consulta també les regles del servidor i les nostres condicions de servei. - subject: 'Mastodon: Instruccions de confirmació %{instance}' + subject: 'Mastodont: Instruccions de confirmació %{instance}' title: Verifica l'adreça de correu email_changed: explanation: 'L''adreça de correu del teu compte s''està canviant a:' @@ -46,7 +46,7 @@ ca: action: Canviar contrasenya explanation: Has sol·licitat una contrasenya nova per al teu compte. extra: Si no ho has sol·licitat, ignora aquest correu electrònic. La teva contrasenya no canviarà fins que accedeixis a l'enllaç de dalt i creis un de nou. - subject: 'Mastodon: Instruccions per a reiniciar contrassenya' + subject: 'Mastodon: Instruccions per a reiniciar contrasenya' title: Contrasenya restablerta two_factor_disabled: explanation: L´autenticació de dos factors pel teu compte ha estat desactivat. L'inici de sessió és ara possible utilitzant només l'adreça de correu electrònic i la contrasenya. @@ -61,16 +61,16 @@ ca: subject: 'Mastodon: codis de recuperació de Dos factors regenerats' title: 2FA codis de recuperació canviats unlock_instructions: - subject: 'Mastodon: Instruccions per a desblocar' + subject: 'Mastodon: Instruccions per a desbloquejar' omniauth_callbacks: - failure: No podem autentificar-te desde %{kind} degut a "%{reason}". + failure: No podem autentificar-te des de %{kind} degut a "%{reason}". success: Autentificat amb èxit des del compte %{kind}. passwords: no_token: No pots accedir a aquesta pàgina sense provenir des del correu de restabliment de la contrasenya. Si vens des del correu de restabliment de contrasenya, assegura't que estàs emprant l'adreça completa proporcionada. - send_instructions: Rebràs un correu electrònic amb instruccions sobre com reiniciar la contrasenya en pocs minuts. + send_instructions: Si el teu correu electrònic existeix en la nostra base de dades, rebràs en pocs minuts un enllaç de restabliment de contrasenya en l'adreça de correu. Si us plau verifica la teva carpeta de correu brossa if no rebut aquest correu. send_paranoid_instructions: Si el seu correu electrònic existeix en la nostra base de dades, rebràs un enllaç de restabliment de contrasenya en l'adreça de correu en pocs minuts. - updated: La contrassenya s'ha canviat correctament. Ara ja estàs registrat. - updated_not_active: La contrassenya s'ha canviat correctament. + updated: La contrasenya s'ha canviat correctament. Ara ja estàs registrat. + updated_not_active: La contrasenya s'ha canviat correctament. registrations: destroyed: Adéu! el compte s'ha cancel·lat amb èxit. Desitgem veure't de nou aviat. signed_up: Benvingut! T'has registrat amb èxit. @@ -85,8 +85,8 @@ ca: signed_in: T'has registrat amb èxit. signed_out: Has tancat la sessió amb èxit. unlocks: - send_instructions: Rebràs un correu electrònic amb instruccions sobre com desblocar el compte en pocs minuts. - send_paranoid_instructions: Si el compte existeix, rebràs un correu electrònic amb instruccions sobre com desblocar-lo en pocs minuts. + send_instructions: En pocs minuts rebràs un correu electrònic amb instruccions sobre com desbloquejar el teu compte. Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu. + send_paranoid_instructions: Si el compte existeix, rebràs en pocs minuts un correu electrònic amb instruccions sobre com desbloquejar-lo. Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu. unlocked: El compte s'ha blocat correctament. Inicia sessió per a continuar. errors: messages: @@ -94,7 +94,7 @@ ca: confirmation_period_expired: calia fer la confirmació dins de %{period}, torna a sol·licitar-la expired: ha expirat, demana'n una altra not_found: no s'ha trobat - not_locked: no està blocada + not_locked: no està bloquejada not_saved: one: '1 error ha impedit desar aquest %{resource}:' other: "%{count} errors hab impedit desar aquest %{resource}:" diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml index 25be731d0..743a1bfd5 100644 --- a/config/locales/devise.cs.yml +++ b/config/locales/devise.cs.yml @@ -3,10 +3,10 @@ cs: devise: confirmations: confirmed: Vaše e-mailová adresa byla úspěšně ověřena. - send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro potvrzení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. - send_paranoid_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut e-mail s instrukcemi pro potvrzení vaší e-mailové adresy. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. + send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro potvrzení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. + send_paranoid_instructions: Pokud je vaše e-mailová adresa v naší databázi, obdržíte za několik minut e-mail s instrukcemi pro potvrzení vaší e-mailové adresy. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. failure: - already_authenticated: Již jste přihlášen/a. + already_authenticated: Již jste přihlášeni. inactive: Váš účet ještě není aktivován. invalid: Neplatné %{authentication_keys} nebo heslo. last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen. @@ -14,46 +14,46 @@ cs: not_found_in_database: Neplatné %{authentication_keys} nebo heslo. pending: Váš účet je stále posuzován. timeout: Vaše relace vypršela. Pro pokračování se prosím přihlaste znovu. - unauthenticated: Před pokračováním se musíte přihlásit nebo registrovat. + unauthenticated: Před pokračováním se musíte přihlásit nebo zaregistrovat. unconfirmed: Před pokračováním musíte potvrdit svůj e-mail. mailer: confirmation_instructions: action: Potvrdit e-mailovou adresu - action_with_app: Potvrdit a navrátit se do %{app} - explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail. - explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Můžete se přihlásit, změnit si své detaily či smazat svůj účet, ale do schválení účtu nemáte přístup ke většině funkcí. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail. - extra_html: Prosím podívejte se také na pravidla tohoto serveru a naše podmínky používání. - subject: 'Mastodon: Potvrzovací instrukce pro %{instance}' + action_with_app: Potvrdit a vrátit se do %{app} + explanation: S touto e-mailovou adresou jste si již účet na serveru %{host} vytvořili. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný. + explanation_when_pending: S touto e-mailovou adresou jste si již pozvánku na server %{host} vyžádali. Jakmile svou e-mailovou adresu potvrdíte, vaši žádost posoudíme. Můžete se přihlásit, změnit podrobnosti svého účtu nebo ho smazat, ale do schválení účtu nebudete mít k většině funkcí přístup. Pokud bude vaše žádost zamítnuta, vaše data budou odstraněna, a nebude od vás vyžadována žádná další akce. Pokud jste to nebyli vy, považujte tento e-mail za bezpředmětný. + extra_html: Přečtěte si prosím také pravidla tohoto serveru a naše podmínky používání. + subject: 'Mastodon: Potvrzení účtu na serveru %{instance}' title: Potvrďte e-mailovou adresu email_changed: explanation: 'E-mailová adresa vašeho účtu byla změněna na:' - extra: Pokud jste si e-mail nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru. - subject: 'Mastodon: E-mail byl změněn' + extra: Pokud jste si e-mailovou adresu neměnili, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Změňte si prosím okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru. + subject: 'Mastodon: E-mailová adresa změněna' title: Nová e-mailová adresa password_change: explanation: Heslo k vašemu účtu bylo změněno. - extra: Pokud jste si heslo nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru. + extra: Pokud jste si heslo neměnili, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Změňte si prosím okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru. subject: 'Mastodon: Heslo bylo změněno' title: Heslo bylo změněno reconfirmation_instructions: explanation: Potvrďte novou adresu pro změnu e-mailu. - extra: Pokud jste tuto změnu nevyžádal/a vy, prosím ignorujte tento e-mail. E-mailová adresa nebude změněna, dokud nepřejdete na výše uvedenou adresu. + extra: Pokud jste si tuto změnu nevyžádali vy, považujte tento e-mail za bezpředmětný. Pokud výše uvedenou adresu nenavštívíte, e-mailová adresa změněna nebude. subject: 'Mastodon: Potvrďte e-mail pro %{instance}' title: Ověřit e-mailovou adresu reset_password_instructions: action: Změnit heslo - explanation: Vyžádal/a jste si pro svůj účet nové heslo. - extra: Pokud jste tohle nevyžádal/a, prosím ignorujte tento e-mail. Vaše heslo nebude změněno, dokud nepřejdete na výše uvedenou adresu a nevytvoříte si nové. + explanation: Pro svůj účet jste si vyžádali nové heslo. + extra: Pokud jste si tuto změnu nevyžádali vy, považujte tento e-mail za bezpředmětný. Pokud výše uvedenou adresu nenavštívíte, vaše heslo změněno nebude. subject: 'Mastodon: Instrukce pro obnovení hesla' title: Obnovení hesla two_factor_disabled: - explanation: Dvoufázové ověřování bylo pr váš účet zakázáno. Přihlašování je nyní možné pouze pomocí e-mailové adresy a hesla. - subject: 'Mastodon: Dvoufázové ověřování zakázáno' - title: 2FA zakázáno + explanation: Dvoufázové ověřování bylo pro váš účet vypnuto. Pro přihlášení je nyní stačí pouze e-mailová adresa a heslo. + subject: 'Mastodon: Dvoufázové ověřování vypnuto' + title: 2FA vypnuto two_factor_enabled: - explanation: Dvoufázové ověřování bylo pr váš účet povoleno. Pro přihlášení bude vyžadován token vygenerovaný spárovanou TOTP aplikací. - subject: 'Mastodon: Dvoufázové ověřování povoleno' - title: 2FA povoleno + explanation: Dvoufázové ověřování bylo pro váš účet zapnuto. Pro přihlášení bude vyžadován token vygenerovaný spárovanou TOTP aplikací. + subject: 'Mastodon: Dvoufázové ověřování zapnuto' + title: 2FA zapnuto two_factor_recovery_codes_changed: explanation: Předchozí záložní kódy byly zrušeny a byly vygenerovány nové. subject: 'Mastodon: Dvoufázové záložní kódy znovu vygenerovány' @@ -64,37 +64,37 @@ cs: failure: Nelze vás ověřit z %{kind}, protože „%{reason}“. success: Úspěšně ověřeno z účtu %{kind}. passwords: - no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovení hesla. Pokud z něj přicházíte, ujistěte se, že jste použil/a celé URL z e-mailu. - send_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut ve vašem e-mailu odkaz pro obnovení hesla. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. - send_paranoid_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut ve vašem e-mailu odkaz pro obnovení hesla. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. - updated: Vaše heslo bylo úspěšně změněno. Nyní jste přihlášen/a. + no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovení hesla. Pokud z něj přicházíte, ujistěte se, že jste použili celou URL adresu z e-mailu. + send_instructions: Pokud je vaše e-mailová adresa v naší databázi, obdržíte za několik minut e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. + send_paranoid_instructions: Pokud je vaše e-mailová adresa v naší databázi, obdržíte za několik minut e-mail s odkazem pro obnovení vašeho hesla. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. + updated: Vaše heslo bylo úspěšně změněno. Nyní jste přihlášeni. updated_not_active: Vaše heslo bylo úspěšně změněno. registrations: destroyed: Sbohem! Váš účet byl úspěšně zrušen. Doufáme, že vás opět brzy uvidíme. - signed_up: Vítejte! Registroval/a jste se úspěšně. - signed_up_but_inactive: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován. - signed_up_but_locked: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen. - signed_up_but_pending: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Poté, co kliknete na odkaz, posoudíme váš požadavek. Pokud bude schválen, budete informován/a. - signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Pro aktivaci účtu přejděte na danou adresu. Pokud jste tento e-mail neobdržel/a, prosím zkontrolujte si složku spam. - update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. + signed_up: Vítejte! Vaše registrace proběhla úspěšně. + signed_up_but_inactive: Vaše registrace proběhla úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován. + signed_up_but_locked: Vaše registrace proběhla úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen. + signed_up_but_pending: Na vaši e-mailovou adresu byla poslána zpráva s odkazem pro potvrzení. Poté, co na odkaz kliknete, vaši žádost posoudíme. Pokud bude schválena, budeme vás informovat. + signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s odkazem pro potvrzení. Pro aktivaci vašeho účtu prosím klepněte na v něm uvedený odkaz. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. + update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. updated: Váš účet byl úspěšně aktualizován. sessions: already_signed_out: Odhlášení proběhlo úspěšně. signed_in: Přihlášení proběhlo úspěšně. signed_out: Odhlášení proběhlo úspěšně. unlocks: - send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. - send_paranoid_instructions: Pokud váš účet existuje, obdržíte za několik minut e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. + send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. + send_paranoid_instructions: Pokud váš účet existuje, obdržíte za několik minut e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, podívejte se prosím také do složky „spam“. unlocked: Váš účet byl úspěšně odemčen. Pro pokračování se prosím přihlaste. errors: messages: - already_confirmed: byl již potvrzen, prosím zkuste se přihlásit - confirmation_period_expired: musí být potvrzen do %{period}, prosím vyžádejte si nový - expired: vypršel, prosím vyžádejte si nový + already_confirmed: byl již potvrzen, zkuste se prosím přihlásit + confirmation_period_expired: musí být potvrzen do %{period}, vyžádejte si prosím nový + expired: vypršel, vyžádejte si prosím nový not_found: nenalezen not_locked: nebyl uzamčen not_saved: few: "%{count} chyby zabránily uložení tohoto %{resource}:" many: "%{count} chyb zabránilo uložení tohoto %{resource}:" - one: '1 chyba zabránila uložení tohoto %{resource}:' + one: 'Jedna chyba zabránila uložení tohoto %{resource}:' other: "%{count} chyb zabránilo uložení tohoto %{resource}:" diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml index 5b21dbc61..2cfd24658 100644 --- a/config/locales/devise.da.yml +++ b/config/locales/devise.da.yml @@ -8,8 +8,8 @@ da: failure: already_authenticated: Du er allerede logget ind. inactive: Din konto er endnu ikke aktiveret. - invalid: Ugyldig %{authentication_keys} eller ugyldigt kodeord. - last_attempt: Du har et forsøg tilbage før din konto låses. + invalid: Ugyldig %{authentication_keys} eller adgangskode. + last_attempt: Du har ét forsøg mere, før din konto bliver låst. locked: Din konto er låst. not_found_in_database: Ugyldig %{authentication_keys} eller ugyldigt kodeord. pending: Din konto er stadig under bedømmelse. @@ -47,9 +47,17 @@ da: subject: 'Mastodon: Instrukser for nulstilling af adgangskode' title: Kodeordet er blevet nulstillet two_factor_disabled: + explanation: To-trins godkendelse for din konto er blevet deaktiveret. Det nu kun muligt at logge ind med email og kodeord. + subject: 'Mastodon: To-trins godkendelse er deaktiveret' title: 2FA deaktiveret two_factor_enabled: + explanation: To-trins godkendelse er blevet aktiveret for din konto. En token fra den parrede TOTP app vil være påkrævet for at logge ind. + subject: 'Mastodon: To-trins godkendelse er nu aktiveret' title: 2FA aktiveret + two_factor_recovery_codes_changed: + explanation: De tidligere gendannelseskoder er ugyldige og nye genereret. + subject: 'Mastodan: To-trins gendannelseskoder er fornyet' + title: 2FA gendannelseskoder er ændret unlock_instructions: subject: 'Mastodon: Instruktioner for oplåsning' omniauth_callbacks: diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index 372090515..c2eb057f5 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -20,7 +20,7 @@ de: confirmation_instructions: action: E-Mail-Adresse verifizieren action_with_app: Bestätigen und zu %{app} zurückkehren - explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nun einen Klick entfernt vor der Aktivierung. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. + explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nur noch einen Klick weit entfernt von der Aktivierung. Wenn du das nicht warst, kannst du diese E-Mail ignorieren. explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst kannst du diese E-Mail ignorieren. extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen. subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}' @@ -37,7 +37,7 @@ de: title: Passwort geändert reconfirmation_instructions: explanation: Bestätige deine neue E-Mail-Adresse, um sie zu ändern. - extra: Wenn diese Änderung nicht von dir angestoßen wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst. + extra: Wenn diese Änderung nicht von dir ausgeführt wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst. subject: 'Mastodon: Bestätige E-Mail-Adresse für %{instance}' title: Verifiziere E-Mail-Adresse reset_password_instructions: diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 80d438092..7cd806b05 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -23,43 +23,43 @@ es: explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico. explanation_when_pending: Usted ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su aplicación. No puede iniciar sesión hasta que su aplicación sea revisada. Si su solicitud está rechazada, sus datos serán eliminados, así que no será necesaria ninguna acción adicional por ti. Si no fuera usted, por favor ignore este correo electrónico. extra_html: Por favor revise las reglas de la instancia y nuestros términos de servicio. - subject: 'Mastodon: Instrucciones de confirmación para %{instance}' + subject: 'Mastodonte: Instrucciones de confirmación para %{instance}' title: Verificar dirección de correo electrónico email_changed: explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:' extra: Si usted no ha cambiado su correo electrónico, es probable que alguien haya conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte al administrador de la instancia si usted no puede iniciar sesión. - subject: 'Mastodon: Correo electrónico cambiado' + subject: 'Mastodonte: Correo electrónico cambiado' title: Nueva dirección de correo electrónico password_change: explanation: La contraseña de su cuenta a sido cambiada. extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta. - subject: 'Mastodon: Contraseña cambiada' + subject: 'Mastodonte: Contraseña cambiada' title: Contraseña cambiada reconfirmation_instructions: explanation: Confirme la nueva dirección para cambiar su coreo electrónico. - extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodon no cambiará hasta que accedas al vinculo arriba. - subject: 'Mastodon: Confirme correo electrónico para %{instance}' + extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodonte no cambiará hasta que accedas al vinculo arriba. + subject: 'Mastodonte: Confirme correo electrónico para %{instance}' title: Verifique dirección de correo electrónico reset_password_instructions: action: Cambiar contraseña explanation: Solicitaste una nueva contraseña para tu cuenta. extra: Si no solicitaste esto, por favor ignora este correo. Tu contraseña no cambiará hasta que tu accedas al vinculo arriba y crees una nueva. - subject: 'Mastodon: Instrucciones para reiniciar contraseña' + subject: 'Mastodonte: Instrucciones para reiniciar contraseña' title: Reiniciar contraseña two_factor_disabled: explanation: La autenticación de dos factores para tu cuenta ha sido deshabilitada. Ahora puedes conectarte solamente usando la dirección de correo electrónico y la contraseña. - subject: 'Mastodon: La autenticación de dos factores está deshabilitada' + subject: 'Mastodonte: La autenticación de dos factores está deshabilitada' title: 2FA desactivada two_factor_enabled: explanation: La autenticación de dos factores para tu cuenta ha sido habilitada. Se requiere un token generado por la aplicación TOTP emparejada para ingresar. - subject: 'Mastodon: La autenticación de dos factores está habilitada' + subject: 'Mastodonte: La autenticación de dos factores está habilitada' title: 2FA activada two_factor_recovery_codes_changed: explanation: Los códigos de recuperación previos han sido invalidados y se generaron códigos nuevos. - subject: 'Mastodon: Los códigos de recuperación de dos factores fueron regenerados' + subject: 'Mastodonte: Los códigos de recuperación de dos factores fueron regenerados' title: Códigos de recuperación 2FA cambiados unlock_instructions: - subject: 'Mastodon: Instrucciones para desbloquear' + subject: 'Mastodonte: Instrucciones para desbloquear' omniauth_callbacks: failure: No podemos autentificarle desde %{kind} debido a "%{reason}". success: Autentificado con éxito desde la cuenta %{kind} . diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml index 0ce335576..71439573b 100644 --- a/config/locales/devise.gl.yml +++ b/config/locales/devise.gl.yml @@ -2,97 +2,97 @@ gl: devise: confirmations: - confirmed: O seu enderezo de email foi confirmado con éxito. - send_instructions: Nuns minutos recibirá un correo electrónico con instruccións sobre como confirmar o seu enderezo de correo. Comprobe por favor o cartafol de spam se non recibe este correo. - send_paranoid_instructions: Si o seu enderezo existe na nosa base de datos, recibirá nuns minutos un correo con instruccións sobre como confirmar o enderezo de correo. Por favor comprobe o cartafol de spam si non recibe este correo. + confirmed: O teu enderezo de email foi confirmado. + send_instructions: Vas recibir un email coas instrucións para confirmar o teu enderezo de email dentro dalgúns minutos. Por favor, comproba o cartafol de spam se non recibiches o correo. + send_paranoid_instructions: Se o teu enderezo de email xa existira na nosa base de datos, vas recibir un correo coas instrucións de confirmación dentro dalgúns minutos. Por favor, comproba o cartafol de spam se non recibiches o correo. failure: - already_authenticated: Xa está conectada. - inactive: A súa conta aínda non foi activada. - invalid: Contrasinal ou %{authentication_keys} non válidos. - last_attempt: Quédalle un intento antes de que a conta sexa bloqueada. - locked: A súa conta foi bloqueada. - not_found_in_database: Contrasinal ou %{authentication_keys} non válidos. - pending: A súa conta está en proceso de revisión. - timeout: Caducou a sesión. Por favor conéctese de novo para seguir. - unauthenticated: Precisa rexistrarse ou conectarse para continuar. - unconfirmed: Debe confirmar o seu enderezo de correo antes de continuar. + already_authenticated: Xa estás rexistrado. + inactive: A túa conta aínda non está activada. + invalid: "%{authentication_keys} ou contrasinal non validos." + last_attempt: Tes máis dun intento antes de que a túa conta fique bloqueada. + locked: A túa conta está bloqueada. + not_found_in_database: "%{authentication_keys} ou contrasinal non válidos." + pending: A túa conta aínda está baixo revisión. + timeout: A túa sesión expirou. Por favor, entra de novo para continuares. + unauthenticated: Precisas de entrar na túa conta ou rexistrarte antes de continuar. + unconfirmed: Tes que confirmar o teu enderezo de email antes de continuar. mailer: confirmation_instructions: - action: Validar enderezo de correo-e + action: Verificar o enderezo de email action_with_app: Confirmar e voltar a %{app} - explanation: Creou unha conta en %{host} con este enderezo de correo. Está a punto de activalo, si non foi vostede quen fixo a petición, por favor ignore este correo. - explanation_when_pending: Vostede solicitou un convite para %{host} con este enderezo de correo. Unha vez confirme o enderezo de correo revisaremos a solicitude. Non pode conectarse ata entón. Si a solicitude fose rexeitada, os seus datos eliminaranse, así que non precisaría facer nada máis. Se non fixo vostede unha solicitude por favor ignore este correo. - extra_html: Por favor, lea tamén as normas do sevidor e os termos do servizo. - subject: 'Mastodon: Instruccións de confirmación para %{instance}' - title: Verificar enderezo de correo-e + explanation: Creaches unha conta en %{host} con este enderezo de email. Estás a un clic de activala. Se non foches ti o que fixeches este rexisto, por favor ignora esta mensaxe. + explanation_when_pending: Solicitaches un convite para %{host} com este enderezo de email. Logo de que confirmes o teu enderezo de email, imos revisar a túa inscrición. Podes iniciar sesión para mudar os teus datos ou eliminar a túa conta, mais non poderás aceder á meirande parte das funcións até que a túa conta sexa aprobada. Se a túa inscrición for rexeitada, os teus datos serán eliminados, polo que non será necesaria calquera acción adicional da túa parte. Se non solicitaches este convite, por favor, ignora este correo. + extra_html: Por favor, le as regras do servidor e os nosos termos do servizo. + subject: 'Mastodon: Instrucións de confirmación para %{instance}' + title: Verificar o enderezo de email email_changed: - explanation: 'O seu enderezo de correo para esta conta foi cambiado a:' - extra: Se non fixo a petición de cambio de correo-e é probable que alguén obtivese acceso a súa conta. Por favor, cambie o contrasinal inmediatamente ou contacte coa administración do servidor se non ten acceso a súa conta. - subject: 'Mastodon: email cambiado' - title: Novo enderezo de correo + explanation: 'O email asociado á túa conta será mudado a:' + extra: Se non mudaches o teu email é posíbel que alguén teña conseguido acceder á túa conta. Por favor muda o teu contrasinal de xeito imediato ou entra en contacto cun administrador do servidor se ficaste sen acceso á túa conta. + subject: 'Mastodon: Email mudado' + title: Novo enderezo de email password_change: - explanation: Cambiouse o contrasinal da súa conta. - extra: Se non cambiou o contrasinal, é probable que alguén obtivese acceso a súa conta. Por favor cambie o contrasinal inmediatamente ou contacte coa administración do servidor se non ten acceso a súa conta. - subject: 'Mastodon: contrasinal cambiado' - title: Contrainal cambiado + explanation: O contrasinal da túa conta foi mudado. + extra: Se non mudaches o teu contrasinal, é posíbel que alguén teña conseguido acceder á túa conta. Por favor muda o teu contrasinal de xeito imediato ou entra en contato cun administrador do servidor se ficaste sen acesso á túa conta. + subject: 'Mastodon: Contrasinal mudado' + title: Contrainal mudado reconfirmation_instructions: - explanation: Confirme o novo enderezo para cambiar o correo-e. - extra: Si vostede non fixo esta petición, ignore este correo por favor. Este enderezo de correo-e para a conta Mastodon non cambiará ate que acceda a ligazón superior. - subject: 'Mastodon: Confirme email para %{instance}' - title: Verificación do enderezo de correo-e + explanation: Confirma o teu novo enderezo para mudar o email. + extra: Se esta mudanza non foi comezada por ti, por favor ignora este email. O enderezo de email para a túa conta do Mastodon non mudará mentres non accedas á ligazón de enriba. + subject: 'Mastodon: Confirmar email para %{instance}' + title: Verificar o enderezo de email reset_password_instructions: - action: Cambiar contrasinal - explanation: Solicitou un novo contrasinal para a súa conta. - extra: Si non fixo esta solicitude, por favor ignore este correo. O seu contrasinal non cambiará ate que acceda a ligazón superior e cree unha nova. - subject: 'Mastodon: Instruccións para restablecer o contrasinal' - title: Restablecer contrasinal + action: Mudar contrasinal + explanation: Solicitaches un novo contrasinal para a túa conta. + extra: Se non fixeches esta solicitude, por favor ignora este email. O teu contrasinal non mudará se non accedes á ligazón de enriba e creas unha nova. + subject: 'Mastodon: Instrucións para restabelecer o contrasinal' + title: Restabelecer contrasinal two_factor_disabled: - explanation: Desactivouse o segundo factor de autenticación para túa conta. Agora xa podes conectarte utilizando só o correo-e e contrasinal. - subject: 'Mastodon: Autenticación con dobre factor desactivada' - title: 2FA desactivada + explanation: A autenticación de dobre factor para a túa conta foi desactivada. É agora posíbel acceder só co teu enderezo de email e contrasinal. + subject: 'Mastodon: Autenticación de dobre factor desactivada' + title: 2FA desactivado two_factor_enabled: - explanation: A autenticación con dobre factor foi activada para a túa conta. Pedirase o testemuño xerado pola aplicación TOTP emparellada. - subject: 'Mastodon: Activouse o dobre factor de autenticación' + explanation: A autenticación de dobre factor foi activada para a túa conta. Un token, xerado pola aplicación TOTP emparellada, será necesario para acceder. + subject: 'Mastodon: Activouse a autenticación de dobre factor' title: 2FA activado two_factor_recovery_codes_changed: - explanation: Os códigos de recuperación anteriores quedan anulados e os novos foron creados. - subject: 'Mastodon: Código de recuperación do dobre factor rexenerados' - title: Códigos de recuperación 2FA cambiados + explanation: Os códigos de recuperación anteriores fican anulados e os novos foron xerados. + subject: 'Mastodon: Xerados novos códigos de recuperación de dobre factor' + title: Códigos de recuperación 2FA mudados unlock_instructions: - subject: 'Mastodon: Instruccións para desbloquear' + subject: 'Mastodon: Instrucións para desbloquear' omniauth_callbacks: - failure: Non podemos autenticala desde %{kind} porque "%{reason}". - success: Autenticouse con éxito desde a conta %{kind}. + failure: Non foi posíbel autenticar %{kind} porque "%{reason}". + success: Autenticado con éxito na conta %{kind}. passwords: - no_token: Non pode acceder a esta páxina vindo desde un correo de restablecemento de contrasinal. Si vostede chega desde un correo de restablecemento de contrasinal, por favor asegúrese de que utiliza o URL completo proporcionado. - send_instructions: Si o seu enderezo de correo existe na nosa base de datos, nuns minutos recibirá unha ligazón para recuperar o contrasinal. Por favor comprobe o seu cartafol de spam si non recibe este correo. - send_paranoid_instructions: Si o seu enderezo de correo existe na nosa base de datos, recibirá nuns minutos unha ligazón para recuperar o contrasinal. Por favor comprobe o seu cartafol de spam si non recibe este correo. - updated: Cambiou o contrasinal con éxito. Agora xa está conectada. - updated_not_active: Cambiouse o seu contrasinal correctamente. + no_token: Non podes acceder a esta páxina se non vés a través da ligazón enviada por email para o mudado do teu contrasinal. Se empregaches esa ligazón para chegar aquí, por favor verifica que o enderezo URL actual é o mesmo do que foi enviado no email. + send_instructions: Se o teu enderezo de email existe na nosa base de datos, vas recibir un email coas instrucións para mudar o contrasinal dentro duns minutos. Por favor, comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o email. + send_paranoid_instructions: Se o teu enderezo de email existe na nosa base de datos, vas recibir unha ligazón para recuperar o contrasinal dentro duns minutos. Por favor, comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o email. + updated: O teu contrasinal foi mudado. Estás xa autenticado na túa conta. + updated_not_active: O teu contrasinal foi mudado de xeito correcto. registrations: - destroyed: Adeus! A súa conta cancelouse con éxito. Agardamos vela de novo. - signed_up: Ben vida! Rexistrouse con éxito. - signed_up_but_inactive: Rexistrouse correctamente. Porén, aínda non podemos conectala porque a súa conta aínda non foi activada. - signed_up_but_locked: Rexistrouse correctamente. Porén, non podemos conectala porque a conta está bloqueada. - signed_up_but_pending: Enviouselle unha mensaxe de correo que contén unha ligazón de confirmación. Tras pulsar na ligazón, revisaremos a súa solicitude. Notificarémoslle se está aprobada. - signed_up_but_unconfirmed: Foi enviada unha mensaxe con unha ligazón de confirmación ao seu enderezo electrónico. Por favor siga a ligazón para activar a súa conta. Por favor comprobe o cartafol de spam si non recibe este correo. - update_needs_confirmation: Actualizou a súa conta correctamente, pero precisamos verificar o seu enderezo. Por favor comprobe o seu email e siga a ligazón de confirmación para confirmar o seu novo enderezo. Por favor comprobe o cartafol de spam si non recibe este correo. - updated: A súa conta foi actualizada correctamente. + destroyed: Adeus! A túa conta foi cancelada de xeito correcto. Agardamos verte de novo. + signed_up: Benvido! Rexistrácheste de xeito correcto. + signed_up_but_inactive: A túa conta foi rexistada. Porén aínda non está activada. + signed_up_but_locked: A túa conta foi rexistada. Porén está bloqueada. + signed_up_but_pending: Unha mensaxe cunha ligazón de confirmación foi enviada ó teu enderezo de email. Após premer na ligazón, revisaremos a túa aplicación. Serás notificado se a túa conta é aprobada. + signed_up_but_unconfirmed: Unha mensaxe cunha ligazón de confirmación foi enviada ó teu email. Por favor, segue esa ligazón para activar a túa conta. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. + update_needs_confirmation: Actualizaches a túa conta de xeito correcto, pero precisamos verificar o teu novo enderezo de email. Por favor, revisa o teu email e segue a ligazón para confirmar o teu novo enderezo de email. Comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. + updated: A túa conta foi actualizada de xeito correcto. sessions: - already_signed_out: Desconectouse con éxito. - signed_in: Conectouse correctamente. - signed_out: Desconectouse correctamente. + already_signed_out: Pechouse a sesión de xeito correcto. + signed_in: Iniciouse a sesión de xeito correcto. + signed_out: Pechouse a sesión de xeito correcto. unlocks: - send_instructions: Recibirá nuns minutos un correo con instrucións sobre como desbloquear a súa conta. Por favor comprobe o cartafol de spam si non recibe este correo. - send_paranoid_instructions: Si a conta existe, recibirá un correo nuns minutos sobre como desbloquear a súa conta. Por favor comprobe o cartafol de spam si non recibe este correo. - unlocked: A súa conta foi desbloqueada correctamente. Por favor, conéctese para continuar. + send_instructions: Vas recibir un email coas instrucións para desbloquear a túa conta dentro duns minutos. Por favor, comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. + send_paranoid_instructions: Se a túa conta existe, vas recibir un email coas instrucións detalladas de como desbloqueala dentro duns minutos. Por favor, comproba o teu cartafol de correo lixo (spam) se ves que non recibiches o correo. + unlocked: A túa conta foi desbloqueada. Por favor, inicia a sesión para continuar. errors: messages: - already_confirmed: xa foi confirmada, por favor intente conectarse - confirmation_period_expired: precisa ser confirmada en %{period}, por favor solicite unha nova - expired: caducou, por favor solicite unha nova - not_found: non se atopou + already_confirmed: xa confirmado, tenta iniciar a sesión + confirmation_period_expired: ten que ser confirmado dentro de %{period}, solicita unha nova + expired: expirou, solicita unha nova + not_found: non atopado not_locked: non foi bloqueada not_saved: - one: '1 erro evitou que %{resource} fose gardada:' - other: "%{count} erros evitaron que %{resource} fose gardada:" + one: '1 erro impediu este %{resource} de ser gardado:' + other: "%{count} erros impediron este %{resource} de ser gardado:" diff --git a/config/locales/devise.is.yml b/config/locales/devise.is.yml new file mode 100644 index 000000000..288617be8 --- /dev/null +++ b/config/locales/devise.is.yml @@ -0,0 +1,98 @@ +--- +is: + devise: + confirmations: + confirmed: Tölvupóstfang þitt hefur verið staðfest. + send_instructions: Þú munt innan nokkurra mínútna fá tölvupóst með leiðbeiningunum um hvernig eigi að staðfesta tölvupóstfangið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + send_paranoid_instructions: Ef tölvupóstfangið þitt fyrirfinnst í gagnagrunninum okkar, munt þú innan nokkurra mínútna fá tölvupóst með leiðbeiningunum um hvernig eigi að staðfesta tölvupóstfangið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + failure: + already_authenticated: Þú ert nú þegar skráð(ur) inn. + inactive: Aðgangur þinn hefur ekki enn verið virkjaður. + invalid: Ógildur %{authentication_keys} eða lykilorð. + last_attempt: Þú getur reynt einu sinni í viðbót áður en aðgangnum þínum verður læst. + locked: Notandaaðgangurinn þinn er læstur. + not_found_in_database: Ógildur %{authentication_keys} eða lykilorð. + pending: Notandaaðgangurinn þinn er enn til yfirferðar. + timeout: Setan þín er útrunnin. Skráðu þig aftur inn til að halda áfram. + unauthenticated: Þú þarft að skrá þig inn eða nýskrá þig áður en lengra er haldið. + unconfirmed: Þú verður að staðfesta tölvupóstfangið þitt áður en lengra er haldið. + mailer: + confirmation_instructions: + action: Staðfestu tölvupóstfang + action_with_app: Staðfestu og snúðu aftur í %{app} + explanation: Þú hefur búið til notandaaðgang á %{host} með þessu tölvupóstfangi. Þú ert einn smell frá því að virkja hann. Ef það varst ekki þú sem baðst um þetta, geturðu hunsað þennan tölvupóst. + explanation_when_pending: Þú sóttir um að vera boðinn á %{host} með þessu tölvupóstfangi. Þegar þú hefur staðfest tölvupóstfangið, munum við fara yfir umsóknina þína. Þú getur skrá þig inn og breytt ýmsum upplýsingum um þig eða jafnvel eytt aðgangnum þínum, en þú getur hinsvegar ekki nýtt þér flesta eiginleika hans fyrr en búið er að samþykkja aðganginn. Ef umsókninni er hafnað, verður öllum gögnum um þig eytt, þannig að ekki verður krafist frekari aðgerða af þinni hálfu. Ef það varst ekki þú sem baðst um þetta, geturðu hunsað þennan tölvupóst. + extra_html: Skoðaðu líka gildandi reglur vefþjónsins og þjónustuskilmálana okkar. + subject: 'Mastodon: Leiðbeiningar vegna staðfestingar á %{instance}' + title: Staðfestu tölvupóstfang + email_changed: + explanation: 'Tölvupóstfanginu fyrir notandaaðganginn þinn verður breytt í:' + extra: Ef það varst ekki þú sem breyttir tölvupóstfanginu þínu, þá er líklegt að einhver hafi komist inn í notandaaðganginn þinn. Skiptu núna strax um lykilorð eða hafðu samband við kerfisstjóra netþjónsins ef þú hefur verið læst/ur úti af notandaaðgangnum þínum. + subject: 'Mastodon: Tölvupóstfang breyttist' + title: Nýtt tölvupóstfang + password_change: + explanation: Lykilorðinu á notandaaðgangnum þínum hefur verið breytt. + extra: Ef það varst ekki þú sem breyttir lykilorðinu þínu, þá er líklegt að einhver hafi komist inn í notandaaðganginn þinn. Skiptu núna strax um lykilorð eða hafðu samband við kerfisstjóra netþjónsins ef þú hefur verið læst/ur úti af notandaaðgangnum þínum. + subject: 'Mastodon: Lykilorð breyttist' + title: Lykilorð breyttist + reconfirmation_instructions: + explanation: Staðfestu nýja vistfangið til að skipta um tölvupóstfang. + extra: Ef það varst ekki þú sem baðst um þessa breytingu, geturðu hunsað þennan tölvupóst. Tölvupóstfangið fyrir Mastodon-aðganginn mun ekki breytast fyrr en þú hefur fylgt tenglinum hér fyrir ofan. + subject: 'Mastodon: Staðfestu tölvupóst fyrir %{instance}' + title: Staðfestu tölvupóstfang + reset_password_instructions: + action: Breyta lykilorði + explanation: Þú baðst um nýtt lykilorð fyrir notandaaðganginn þinn. + extra: Ef það varst ekki þú sem baðst um þetta, geturðu hunsað þennan tölvupóst. Lykilorðið þitt mun ekki breytast fyrr en þú hefur fylgt tenglinum hér fyrir ofan og búið til nýtt lykilorð. + subject: 'Mastodon: Leiðbeiningar til að endurstilla lykilorð' + title: Endurstilling lykilorðs + two_factor_disabled: + explanation: Tveggja-þátta auðkenning fyrir aðganginn þinn hefur verið gerð óvirk. Núna er einungis hægt að skrá inn með tölvupóstfangi og lykilorði. + subject: 'Mastodon: Tveggja-þátta auðkenning er óvirk' + title: 2FA tveggja-þátta auðkenning er óvirk + two_factor_enabled: + explanation: Tveggja-þátta auðkenning hefur verið gerð virk fyrir aðganginn þinn. Krafist er teikns útbúnu af paraða TOTP-forritinu til að skrá inn. + subject: 'Mastodon: Tveggja-þátta auðkenning er virk' + title: 2FA tveggja-þátta auðkenning er virk + two_factor_recovery_codes_changed: + explanation: Fyrri endurheimtukóðar tveggja-þátta auðkenningar voru ógiltir og nýir útbúnir í staðinn. + subject: 'Mastodon: Endurheimtukóðar tveggja-þátta auðkenningar voru endurnýjaðir' + title: Endurheimtukóðar tveggja-þátta auðkenningar breyttust + unlock_instructions: + subject: 'Mastodon: Leiðbeiningar til að aflæsa' + omniauth_callbacks: + failure: Gat ekki auðkennt þig frá %{kind} vegna "%{reason}". + success: Tókst að auðkenna frá %{kind} notandaaðgangnum. + passwords: + no_token: Þú getur ekki séð þessa síðu án þess að koma á slóð úr tölvupósti fyrir endurstillingu lykilorðs. Ef svo er skaltu ganga úr skugga um að að þú hafir notað alla slóðina sem var gefin. + send_instructions: Ef tölvupóstfangið þitt fyrirfinnst í gagnagrunninum okkar, munt þú innan nokkurra mínútna fá tölvupóst með tengli til að endurheimta lykilorðið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + send_paranoid_instructions: Ef tölvupóstfangið þitt fyrirfinnst í gagnagrunninum okkar, munt þú innan nokkurra mínútna fá tölvupóst með tengli til að endurheimta lykilorðið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + updated: Það tókst að breyta lykilorðinu þínu. Þú ert núna skráð/ur inn. + updated_not_active: Það tókst að breyta lykilorðinu þínu. + registrations: + destroyed: Bless! Hætt hefur verið við notandaaðganginn þinn. Við vonumst samt eftir að sjá þig fljótt aftur. + signed_up: Velkonin/n! Það tókst að nýskrá þig. + signed_up_but_inactive: Þér hefur tekist að nýskrá þig. Hinsvegar gátum við ekki skráð þig inn því notandaaðgangurinn þinn hefur ekki enn verið virkjaður. + signed_up_but_locked: Þér hefur tekist að nýskrá þig. Hinsvegar gátum við ekki skráð þig inn því notandaaðgangurinn þinn er læstur. + signed_up_but_pending: Skilaboð með staðfestingartengli hafa verið send á tölvupóstfangið þitt. Þegar þú smellir á þennan tengil munum við yfirfara og staðfesta umsóknina þína. Þú færð svo að vita hvort hún verður samþykkt. + signed_up_but_unconfirmed: Skilaboð með staðfestingartengli hafa verið send á tölvupóstfangið þitt. Smelltu á þennan tengil til að virkja notandaaðganginn þinn. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þessi skilaboð. + update_needs_confirmation: Þú uppfærðir notandaaðganginn þinn, en við þurfum að sannreyna nýja tölvupóstfangið þitt. Skoðaðu tölvupóstinn þinn og fylgdu tenglinum sem þangað á að berast til að staðfesta tölvupóstfangið þitt. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + updated: Það tókst að uppfæra notandaaðganginn þinn. + sessions: + already_signed_out: Tókst að skrá út. + signed_in: Tókst að skrá inn. + signed_out: Tókst að skrá út. + unlocks: + send_instructions: Þú munt innan nokkurra mínútna fá tölvupóst með leiðbeiningunum um hvernig eigi að aflæsa notandaaðgangnum þínum. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + send_paranoid_instructions: Ef notandaaðgangurinn þinn er til, munt þú innan nokkurra mínútna fá tölvupóst með leiðbeiningunum um hvernig eigi að aflæsa honum. Skoðaðu í ruslpóstmöppuna þína ef þú færð ekki þennan tölvupóst. + unlocked: Það tókst að aflæsa notandaaðgangnum þínum. Skráðu þig inn til að halda áfram. + errors: + messages: + already_confirmed: var þegar staðfest, prófaðu að skrá þig inn + confirmation_period_expired: þarf að staðfesta inna %{period}, biddu um nýtt + expired: er útrunnið, biddu um nýtt + not_found: fannst ekki + not_locked: var ekki læst + not_saved: + one: '1 villa kom í veg fyrir að þessi %{resource} væri vistað:' + other: "%{count} villur komu í veg fyrir að þessi %{resource} væri vistað:" diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml new file mode 100644 index 000000000..ccfd78ca9 --- /dev/null +++ b/config/locales/devise.kab.yml @@ -0,0 +1,58 @@ +--- +kab: + devise: + confirmations: + confirmed: Tansa-ik imayl tettwasentem. + send_instructions: Deg kra n tesdatin, ad n-teṭṭfeḍ imayl deg-s iwellihen i ilaqen i usentem n umiḍan-ik. Ma yella ur tufiḍ ara izen-agi, ttxil-k ẓer deg ukaram spam. + send_paranoid_instructions: Ma yella tansa-ik imayl tella deg uzadur-nneɣ n yisefka, ad n-teṭṭfeḍ imayl deg tesdatin i d-iteddun, deg-s iwellihen i ilaqen i usentem n umiḍan-ik. Ma yella ur tufiḍ ara izen-agi, ttxil-k ẓer deg ukaram spam. + failure: + already_authenticated: Aqla-k teqqneḍ yakan. + inactive: Amiḍan-inek mazal ur yermed ara. + invalid: Tella tuccḍa deg %{authentication_keys} neɣ deg wawal uffir. + last_attempt: Ɣur-k yiwen n uɛraḍ-nniḍen kan qbel ad yettucekkel umiḍan-ik. + locked: Amiḍan-ik yewḥel. + not_found_in_database: Tella tuccḍa deg %{authentication_keys} neɣ deg wawal uffir. + pending: Amiḍan-inek mazal-it deg ɛiwed n tmuɣli. + timeout: Tiɣimit n tuqqna tezri. Ma ulac aɣilif ɛiwed tuqqna akken ad tkemmleḍ. + unauthenticated: Ilaq ad teqqneḍ neɣ ad tjerrḍeḍ akken ad tkemmelḍ. + unconfirmed: Ilaq ad wekdeḍ tansa-inek imayl akken ad tkemmelḍ. + mailer: + confirmation_instructions: + action: Senqed tansa-inek imayl + action_with_app: Wekked sakkin uɣal ɣer %{app} + explanation: Aqla-k terniḍ amiḍan deg %{host} s tansa imayl-agi. Mazal-ak yiwen utekki akken ad t-tremdeḍ. Ma mačči d kečč i yessutren ay-agi, ttxil-k ssinef izen-a. + explanation_when_pending: Tsutreḍ-d ajerred deg %{host} s tansa-agi imayl. Ad nɣeṛ asuter-ik ticki tsentmeḍ tansa-ik imayl. Send asentem, ur tezmireḍ ara ad teqqneḍ ɣer umiḍan-ik. Ma yella nugi asuter-ik, isefka-ik ad ttwakksen seg uqeddac, ihi ulac tigawt-nniḍen ara k-d-yettuqeblen. Ma mačči d kečč i yellan deffir n usuter-agi, ttxil-k ssinef izen-agi. + extra_html: Ttxil-k ẓer daɣen ilugan n uqeddac akked twetlin n useqdec. + subject: 'Mastudun: Asentem n ujerred deg uqeddac %{instance}' + title: Senqed tansa-inek imayl + email_changed: + extra: Ma mačči d kečč i ibeddlen tansa imayl, ihi yezmer d alebɛaḍ i ikecmen ɣer umiḍan-ik. Ttxil-k beddel awal-ik uffir tura neɣ siwel i unedbal n uqeddac ma tḥesleḍ berra n umiḍan-ik. + subject: 'Masṭudun: Imayl-ik yettubeddel' + title: Tansa imayl tamaynut + password_change: + explanation: Awal uffir n umiḍan-ik yettubeddel. + extra: Ma mačči d kečč i ibeddlen awal uffir, ihi yezmer d alebɛaḍ i ikecmen ɣer umiḍan-ik. Ttxil-k beddel awal-ik uffir tura neɣ siwel i unedbal n uqeddac ma tḥesleḍ berra n umiḍan-ik. + subject: 'Masṭudun: Yettubeddel wawal-ik uffir' + title: Awal uffir yettubeddel + reconfirmation_instructions: + explanation: Sentem tansa imayl tamaynut akken ad tbeddleḍ imayl-inek. + subject: 'Mastudun: Sentem tansa imayl n %{instance}' + title: Senqed tansa-inek imayl + reset_password_instructions: + action: Beddel awal uffir + explanation: Tessutreḍ awal uffir amaynut i umiḍan-ik. + title: Aɛiwed n wawal uffir + passwords: + send_paranoid_instructions: Ma nufa tansa-inek imayl tella deg uzadur-nneɣ n yisefka, ad n-teṭṭfeḍ izen deg kra n tesdatin, deg-s assaɣ i uɛawed n wawal uffir. Ma ur k-in-yewwiḍ ara yizen, ttxil-k ẓer deg ukaram spam. + updated: Awal-ik uffir yettwabeddel mebla ugur. Aqla-k tura tjerrḍeḍ. + updated_not_active: Awal-ik uffir yettwabeddel mebla ugur. + registrations: + destroyed: Ar timlilit! Amiḍan-ik yettwakkes mebla ugur. Nessaram ad k-nwali tikelt-nniḍen. + signed_up: Anṣuf! Aqla-k tkecmeḍ. + sessions: + signed_in: Aqla-k teqqneḍ. + signed_out: Aqla-k teffɣeḍ. + errors: + messages: + not_found: ulac-it + not_locked: ur yettucekkel ara diff --git a/config/locales/devise.kn.yml b/config/locales/devise.kn.yml index d094088d8..323889e42 100644 --- a/config/locales/devise.kn.yml +++ b/config/locales/devise.kn.yml @@ -1 +1,5 @@ +--- kn: + devise: + confirmations: + confirmed: '"ಸಂದರ್ಭ"' diff --git a/config/locales/devise.ml.yml b/config/locales/devise.ml.yml index 3d4cea716..08db40224 100644 --- a/config/locales/devise.ml.yml +++ b/config/locales/devise.ml.yml @@ -1,8 +1,32 @@ --- ml: devise: + confirmations: + confirmed: നിങ്ങളുടെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം വിജയകരമായി സ്ഥിരീകരിക്കപ്പെട്ടിരിക്കുന്നു. + send_instructions: ഏതാനും നിമിഷങ്ങൾക്കുള്ളിൽ നിങ്ങൾക്ക് നിങ്ങളുടെ ഇലക്ട്രോണിക് കത്തിന്റെ വിലാസം എങ്ങനെ സ്ഥിരീകരിക്കാം എന്നുള്ള നിർദ്ദേശങ്ങൾ അതെ വിലാസത്തിൽ ലഭിക്കുന്നതാണ്. അത് ലഭിച്ചില്ലെങ്കിൽ അസംബന്ധമായ കത്തുകൾ ശേഖരിക്കപ്പെടുന്ന സ്ഥലത്ത് എത്തപ്പെട്ടോ എന്ന് പരിശോധിക്കുക. + send_paranoid_instructions: ഞങ്ങളുടെ വിവരശേഖരണത്തിൽ നിങ്ങളുടെ ഇലക്ട്രോണിക് കത്തിന്റെ വിലാസം ഉൾപെട്ടിട്ടുണ്ടെങ്കിൽ ഏതാനും നിമിഷങ്ങൾക്കുള്ളിൽ നിങ്ങൾക്ക് അത് എങ്ങനെ സ്ഥിരീകരിക്കാം എന്നുള്ള നിർദ്ദേശങ്ങൾ അതെ വിലാസത്തിൽ ലഭിക്കുന്നതാണ്. കത്ത് ലഭിച്ചില്ലെങ്കിൽ അസംബന്ധമായ കത്തുകൾ ശേഖരിക്കപ്പെടുന്ന സ്ഥലത്ത് എത്തപ്പെട്ടോ എന്ന് പരിശോധിക്കുക. + failure: + already_authenticated: നിങ്ങൾ മുൻപേതന്നെ പ്രവേശിച്ചിരുന്നു. + inactive: നിങ്ങളുടെ അംഗത്വം ഇതുവരെ സജീവമാക്കപ്പെട്ടിട്ടില്ല. + invalid: "%{authentication_keys} അല്ലെങ്കിൽ സൂത്രവാക്യം പ്രാബല്യത്തിലില്ല." + last_attempt: നിങ്ങളുടെ അംഗത്വം ബന്ധിക്കപ്പെടുന്നതിന് മുൻപ് ഒരു അവസരം കൂടി ബാക്കിയുണ്ട്. + locked: നിങ്ങളുടെ അംഗത്വം ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു. + not_found_in_database: "%{authentication_keys} അല്ലെങ്കിൽ സൂത്രവാക്യം പ്രാബല്യത്തിലില്ല." + pending: നിങ്ങളുടെ അംഗത്വം ഇപ്പോഴും അവലോകനയിലാണ്. + timeout: നിങ്ങളുടെ വിഹരണസമയം കാലഹരണപ്പെട്ടിരിക്കുന്നു. തുടരാൻ ദയവായി വീണ്ടും പ്രവേശിക്കുക. + unauthenticated: തുടരുന്നതിന് മുൻപ് നിങ്ങൾ അംഗത്വത്തോടെ പ്രവേശിക്കുകയോ അംഗത്വം എടുക്കുകയോ ചെയ്യേണ്ടതാണ്. + unconfirmed: തുടരുന്നതിന് മുൻപ് നിങ്ങൾ നിങ്ങളുടെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം സ്ഥിരീകരിക്കേണ്ടതാണ്. mailer: + confirmation_instructions: + action: ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം നേരാണെന്നു തെളിയിക്കുക + action_with_app: സ്ഥിരീകരിക്കുകയും, %{app} ലേക്ക് തിരികെ പോകുകയും ചെയ്യുക + title: ഇമെയിൽ മേൽവിലാസം നേരാണെന്നു തെളിയിക്കുക + email_changed: + explanation: 'നിങ്ങളുടെ അംഗത്വത്തിനായുള്ള ഇമെയിൽ വിലാസം ഇതിലേക്ക് മാറ്റുകയാണ്:' + subject: 'മാസ്റ്റോഡോൺ: ഇമെയിൽ മാറ്റം വരുത്തി' + title: പുതിയ ഇ-മെയിൽ വിലാസം password_change: + explanation: താങ്കളുടെ അംഗത്വത്തിന്റെ പാസ്സ് വേഡ് മാറ്റം വരുത്തി. title: പാസ് വേഡ് മാറ്റി reset_password_instructions: action: പാസ്‌വേഡ് മാറ്റുക diff --git a/config/locales/devise.nn.yml b/config/locales/devise.nn.yml index 777f4e600..d578b8dc5 100644 --- a/config/locales/devise.nn.yml +++ b/config/locales/devise.nn.yml @@ -1 +1,94 @@ +--- nn: + devise: + confirmations: + confirmed: E-posten din er stadefesta. + send_instructions: Om nokre få minutt får du ein e-post som fortel deg korleis du skal stadfesta e-postadressa di. Sjekk søppelpostmappa di om du ikkje fekk e-posten. + send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ein e-post som fortel deg korleis du skal stadfesta e-postadressa om nokre få minutt. Ver venleg og sjekk søppelpostmappa di om du ikkje fekk denne e-posten. + failure: + already_authenticated: Du er allereie logga inn. + inactive: Kontoen din er ikkje aktiv enno. + invalid: Ugyldig %{authentication_keys} eller passord. + last_attempt: Du har eitt forsøk igjen før kontoen din vert låst. + locked: Kontoen din er låst. + not_found_in_database: Ugyldig %{authentication_keys} eller passord. + pending: Kontoen din er fortsatt under gjennomgang. + timeout: Økten din løp ut på tid. Logg inn på nytt for å fortsette. + unauthenticated: Du må logge inn eller registrere deg før du kan fortsette. + unconfirmed: Du må stadfesta e-postadressa di før du kan gå vidare. + mailer: + confirmation_instructions: + action: Stadfest e-postadresse + action_with_app: Stadfest og gå tilbake til %{app} + explanation: Du har laget en konto på %{host} med denne e-postadressen. Du er ett klikk unna å aktivere den. Hvis dette ikke var deg, vennligst se bort fra denne e-posten. + extra_html: Vennligst også sjekk ut instansens regler og våre bruksvilkår. + subject: 'Mastodon: Instruksjoner for å bekrefte e-postadresse %{instance}' + title: Stadfest e-postadresse + email_changed: + explanation: 'E-postadressa til kontoen din vert endra til:' + extra: Hvis du ikke endret din e-postadresse, er det sannsynlig at noen har fått tilgang til din konto. Vennligst endre ditt passord umiddelbart eller kontakt instansens administrator dersom du er utestengt fra kontoen din. + subject: 'Mastodon: E-postadressa er endra' + title: Ny e-postadresse + password_change: + explanation: Passordet til kontoen din er endra. + extra: Om du ikkje har endra passordet er det sannsynleg at nokon har fått tilgang til kontoen din. Ver venleg og skift passordet ditt med det same eller tak kontakt med tenaradministratoren om du er sperra ute av kontoen din. + subject: 'Mastodon: Passord endra' + title: Passord endra + reconfirmation_instructions: + explanation: Stadfest den nye adressa for å byta e-postadressa di. + extra: Se bort fra denne e-posten dersom du ikke gjorde denne endringen. E-postadressen for Mastadon-kontoen blir ikke endret før du trykker på lenken over. + subject: 'Mastodon: Bekreft e-postadresse for %{instance}' + title: Stadfest e-postadresse + reset_password_instructions: + action: Endr passord + explanation: Du har bedt om eit nytt passord til kontoen din. + extra: Om du ikkje bad om dette, ignorer denne e-posten. Passordet ditt vert ikkje endra før du går inn på lenkja ovanfor og lagar eit nytt. + subject: 'Mastodon: Instuksjonar for å endra passord' + title: Attstilling av passord + two_factor_disabled: + subject: 'Mastodon: To-faktor autentisering deaktivert' + title: 2FA deaktivert + two_factor_enabled: + explanation: To-faktor autentisering er aktivert for kontoen din. Et symbol som er generert av den sammenkoblede TOTP-appen vil være påkrevd for innlogging. + subject: 'Mastodon: To-faktor autentisering aktivert' + title: 2FA aktivert + two_factor_recovery_codes_changed: + explanation: De forrige gjenopprettingskodene er ugyldig og nye generert. + unlock_instructions: + subject: 'Mastodon: Instruksjoner for å gjenåpne konto' + omniauth_callbacks: + failure: Kunne ikke autentisere deg fra %{kind} fordi "%{reason}". + success: Vellykket autentisering fra %{kind}. + passwords: + no_token: Du har ingen tilgang til denne siden hvis ikke klikket på en e-post om nullstilling av passord. Hvis du kommer fra en sådan bør du dobbelsjekke at du limte inn hele URLen. + send_instructions: Du vil motta en e-post med instruksjoner om nullstilling av passord om noen få minutter. + send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ei lenkje til å endra passordet om nokre få minutt. Ver venleg og sjekk søppelpostmappa om du ikkje fekk denne e-posten. + updated: Passordet ditt er endra. No er du logga inn. + updated_not_active: Passordet ditt er endra. + registrations: + destroyed: Ha det! Kontoen din er sletta. Vi vonar å sjå deg igjen snart. + signed_up: Velkomen! No er du registrert. + signed_up_but_inactive: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno. + signed_up_but_locked: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er låst. + signed_up_but_pending: Ei melding med ei stadfestingslenkje er vorten send til e-postadressa di. Når du klikkar på lenkja skal vi sjå gjennom søknaden din. Du får ei melding om han vert godkjend. + signed_up_but_unconfirmed: En e-post med en bekreftelseslenke har blitt sendt til din innboks. Klikk på lenken i e-posten for å aktivere kontoen din. + update_needs_confirmation: Du har oppdatert kontoen din, men vi må bekrefte din nye e-postadresse. Sjekk e-posten din og følg bekreftelseslenken for å bekrefte din nye e-postadresse. + updated: Kontoen din ble oppdatert. + sessions: + already_signed_out: Logga ut. + signed_in: Logga inn. + signed_out: Logga ut. + unlocks: + send_instructions: Du vil motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter. + send_paranoid_instructions: Hvis kontoen din eksisterer vil du motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter. + unlocked: Kontoen din ble åpnet uten problemer. Logg på for å fortsette. + errors: + messages: + already_confirmed: har allerede blitt bekreftet, prøv å logge på istedet + confirmation_period_expired: må bekreftes innen %{period}. Spør om en ny e-post for bekreftelse istedet + expired: er utgått, ver venleg å beda om ein ny ein + not_found: ikkje funne + not_locked: var ikkje låst + not_saved: + one: '1 feil hindret denne %{resource} i å bli lagret:' + other: "%{count} feil hindret denne %{resource} i å bli lagret:" diff --git a/config/locales/devise.no.yml b/config/locales/devise.no.yml index e4fc33f01..de651f6ca 100644 --- a/config/locales/devise.no.yml +++ b/config/locales/devise.no.yml @@ -21,6 +21,7 @@ action: Bekreft e-postadresse action_with_app: Bekreft og gå tilbake til %{app} explanation: Du har laget en konto på %{host} med denne e-postadressen. Du er ett klikk unna å aktivere den. Hvis dette ikke var deg, vennligst se bort fra denne e-posten. + explanation_when_pending: Du søkte om en invitasjon til %{host} med denne E-postadressen. Når du har bekreftet E-postadressen din, vil vi gå gjennom søknaden din. Du kan logge på for å endre dine detaljer eller slette kontoen din, men du har ikke tilgang til de fleste funksjoner før kontoen din er akseptert. Dersom søknaden din blir avslått, vil dataene dine bli fjernet, så ingen ytterligere handlinger fra deg vil være nødvendige. Dersom dette ikke var deg, vennligst ignorer denne E-posten. extra_html: Vennligst også sjekk ut instansens regler og våre bruksvilkår. subject: 'Mastodon: Instruksjoner for å bekrefte e-postadresse %{instance}' title: Bekreft e-postadresse @@ -46,6 +47,7 @@ subject: 'Mastodon: Hvordan nullstille passord' title: Nullstill passord two_factor_disabled: + explanation: 2-trinnsinnlogging for kontoen din har blitt skrudd av. Pålogging er mulig gjennom kun E-postadresse og passord. subject: 'Mastodon: To-faktor autentisering deaktivert' title: 2FA deaktivert two_factor_enabled: @@ -54,6 +56,8 @@ title: 2FA aktivert two_factor_recovery_codes_changed: explanation: De forrige gjenopprettingskodene er ugyldig og nye generert. + subject: 'Mastodon: 2-trinnsgjenopprettingskoder har blitt generert på nytt' + title: 2FA-gjenopprettingskodene ble endret unlock_instructions: subject: 'Mastodon: Instruksjoner for å gjenåpne konto' omniauth_callbacks: diff --git a/config/locales/devise.pt-PT.yml b/config/locales/devise.pt-PT.yml index 7d3f8fc55..9689b01f5 100644 --- a/config/locales/devise.pt-PT.yml +++ b/config/locales/devise.pt-PT.yml @@ -12,6 +12,7 @@ pt-PT: last_attempt: Tens mais uma tentativa antes de a tua conta ficar bloqueada. locked: A tua conta está bloqueada. not_found_in_database: "%{authentication_keys} ou palavra-passe inválida." + pending: A sua conta está ainda a aguardar revisão. timeout: A tua sessão expirou. Por favor, entra de novo para continuares. unauthenticated: Precisas de entrar na tua conta ou de te registares antes de continuar. unconfirmed: Tens de confirmar o teu endereço de email antes de continuar. @@ -20,6 +21,7 @@ pt-PT: action: Verificar o endereço de e-mail action_with_app: Confirmar e regressar a %{app} explanation: Criaste uma conta em %{host} com este endereço de e-mail. Estás a um clique de activá-la. Se não foste tu que fizeste este registo, por favor ignora esta mensagem. + explanation_when_pending: Você solicitou um convite para %{host} com este endereço de e-mail. Logo que confirme o seu endereço de e-mail, iremos rever a sua inscrição. Pode iniciar sessão para alterar os seus dados ou eliminar a sua conta, mas não poderá aceder à maioria das funções até que a sua conta seja aprovada. Se a sua inscrição for rejeitada, os seus dados serão removidos, pelo que não será necessária qualquer acção adicional da sua parte. Se não solicitou este convite, por favor, ignore este e-mail. extra_html: Por favor lê as regras da instância e os nossos termos de serviço. subject: 'Mastodon: Instruções de confirmação %{instance}' title: Verificar o endereço de e-mail @@ -44,6 +46,18 @@ pt-PT: extra: Se não fizeste este pedido, por favor ignora este e-mail. A tua palavra-passe não irá mudar se não acederes ao link acima e criares uma nova. subject: 'Mastodon: Instruções para alterar a palavra-passe' title: Solicitar nova palavra-passe + two_factor_disabled: + explanation: A autenticação de dois fatores para sua conta foi desativada. É agora possível aceder apenas com seu endereço de e-mail e senha. + subject: 'Mastodon: Autenticação de dois fatores desativada' + title: 2FA desativado + two_factor_enabled: + explanation: A autenticação de dois fatores foi ativada para sua conta. Um token, gerado pela aplicação TOTP emparelhada, será necessário para aceder. + subject: 'Mastodon: Autenticação de dois fatores ativada' + title: 2FA ativado + two_factor_recovery_codes_changed: + explanation: Os códigos de recuperação anteriores foram invalidados e novos foram gerados. + subject: 'Mastodonte: Gerados novos códigos de recuperação de dois fatores' + title: Códigos de recuperação 2FA alterados unlock_instructions: subject: 'Mastodon: Instruções para desbloquear a tua conta' omniauth_callbacks: @@ -60,6 +74,7 @@ pt-PT: signed_up: Bem-vindo! A tua conta foi registada com sucesso. signed_up_but_inactive: A tua conta foi registada. No entanto ainda não está activa. signed_up_but_locked: A tua conta foi registada. No entanto está bloqueada. + signed_up_but_pending: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Depois de clicar no link, iremos rever a sua inscrição. Será notificado se a sua conta é aprovada. signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o teu email. Por favor segue esse link para activar a tua conta. update_needs_confirmation: Alteraste o teu endereço de email ou palavra-passe, mas é necessário confirmar essa alteração. Por favor vai ao teu email e segue link que te enviámos. updated: A tua conta foi actualizada com sucesso. diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml index 950c9630e..5d7e33422 100644 --- a/config/locales/devise.ru.yml +++ b/config/locales/devise.ru.yml @@ -7,10 +7,10 @@ ru: send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению вашего адреса в течение нескольких минут. failure: already_authenticated: Вы уже авторизованы. - inactive: Ваш аккаунт еще не активирован. + inactive: Ваша учётная запись ещё не активирована. invalid: Неверно введены %{authentication_keys} или пароль. last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован. - locked: Ваш аккаунт заблокирован. + locked: Ваша учётная запись заблокирована. not_found_in_database: Неверно введены %{authentication_keys} или пароль. pending: Ваша заявка на вступление всё ещё рассматривается. timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить. @@ -27,12 +27,12 @@ ru: title: Подтвердите e-mail адрес email_changed: explanation: 'E-mail адрес вашей учётной записи будет изменён на:' - extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи. - subject: 'Mastodon: Адрес e-mail изменён' + extra: Если вы не меняли e-mail адрес, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором узла, если вы уже потеряли доступ к ней. + subject: 'Mastodon: изменён e-mail адрес' title: Новый адрес e-mail password_change: explanation: Пароль Вашей учётной записи был изменён. - extra: Если Вы не меняли пароль, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи. + extra: Если вы не меняли пароль, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором узла, если вы уже потеряли доступ к ней. subject: 'Mastodon: Пароль изменен' title: Пароль изменён reconfirmation_instructions: @@ -47,22 +47,22 @@ ru: subject: 'Mastodon: инструкция по смене пароля' title: Сброс пароля two_factor_disabled: - explanation: Двуфакторная авторизация вашего аккаунта отключена. Войти теперь можно используя только e-mail и пароль. - subject: 'Mastodon: двуфакторная авторизация убрана' - title: 2ФА отключена + explanation: Для вашей учётной записи была отключена двухфакторная авторизация. Выполнить вход теперь можно используя лишь e-mail и пароль. + subject: 'Mastodon: двухфакторная авторизация отключена' + title: Двухфакторная авторизация отключена two_factor_enabled: - explanation: Двуфакторная авторизация включена для вашего аккаунта. Отныне для входа потребуется также временный код из привязанного приложения. - subject: 'Mastodon: двуфакторная авторизация установлена' - title: 2ФА включена + explanation: Для вашей учётной записи была настроена двухфакторная авторизация. Отныне для входа потребуется также временный код из приложения-аутентификатора. + subject: 'Mastodon: настроена двухфакторная авторизация' + title: Двухфакторная авторизация включена two_factor_recovery_codes_changed: explanation: Предыдущие резервные коды были аннулированы и созданы новые. subject: 'Mastodon: резервные коды двуфакторной авторизации обновлены' - title: Резервные коды 2ФА изменены + title: Резервные коды двухфакторной авторизации изменены unlock_instructions: subject: 'Mastodon: Инструкция по разблокировке' omniauth_callbacks: failure: Не получилось аутентифицировать вас с помощью %{kind} по следующей причине - "%{reason}". - success: Аутентификация с помощью аккаунта %{kind} прошла успешно. + success: Аутентификация с помощью учётной записи %{kind} прошла успешно. passwords: no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений. send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут. @@ -70,22 +70,22 @@ ru: updated: Ваш пароль был успешно изменен. Вход выполнен. updated_not_active: Ваш пароль был успешно изменен. registrations: - destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть вас снова. + destroyed: До свидания! Ваша учётная запись была успешно удалена. Мы надеемся скоро увидеть вас снова. signed_up: Добро пожаловать! Вы успешно зарегистрировались. - signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт еще не активирован. - signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт заблокирован. + signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваша учётная запись еще не активирована. + signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваша учётная запись заблокирована. signed_up_but_pending: На ваш e-mail адрес было отправлено письмо с ссылкой для подтверждения. После перехода по ней, мы начнём рассматривать вашу заявку. В случае подтверждения, мы вас оповестим. - signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации вашего аккаунта. - update_needs_confirmation: Вы успешно обновили данные учётной записи, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и перейдите по ссылке из письма для подтверждения вашего нового адреса. - updated: Ваш аккаунт был успешно обновлен. + signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации вашей учётной записи. + update_needs_confirmation: Данные учётной записи обновлены, но нам необходимо подтвердить ваш новый e-mail адрес. Проверьте почту и перейдите по ссылке из письма. Если оно не приходит, проверьте папку «спам». + updated: Ваша учётная запись успешно обновлена. sessions: already_signed_out: Выход прошел успешно. signed_in: Вход прошел успешно. signed_out: Выход прошел успешно. unlocks: - send_instructions: Вы получите e-mail с инструкцией по разблокировке вашего аккаунта в течение нескольких минут. - send_paranoid_instructions: Если Ваш аккаунт существует, вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут. - unlocked: Ваш аккаунт был успешно разблокирован. пожалуйста, войдите для продолжения. + send_instructions: Вы получите e-mail с инструкцией по разблокировке вашей учётной записи в течение нескольких минут. + send_paranoid_instructions: Если ваша учётная запись существует, вы получите e-mail с инструкцией по её разблокировке в течение нескольких минут. + unlocked: Ваша учётная запись был успешно разблокирована. Пожалуйста, войдите для продолжения. errors: messages: already_confirmed: уже подтвержден, пожалуйста, попробуйте войти diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml index b61eca54e..ba2a64ed0 100644 --- a/config/locales/devise.sk.yml +++ b/config/locales/devise.sk.yml @@ -46,9 +46,11 @@ sk: subject: 'Mastodon: Pokyny pre obnovu hesla' title: Nastav nové heslo two_factor_disabled: + explanation: Dvojfázové overovanie tvojho účtu bolo vypnuté. Teraz sa môžeš prihlásiť len pomocou emailu a hesla. subject: 'Mastodon: Dvojfázové overovanie vypnuté' title: 2FA vypnuté two_factor_enabled: + explanation: Dvojfázové overovanie bolo zapnuté pre tvoj účet. Pre prihlásenie budeš potrebovať token vygenerovaný pre TOTP aplikáciu, ktorá je spárovaná. subject: 'Mastodon: Dvojfázové overovanie zapnuté' title: 2FA zapnuté two_factor_recovery_codes_changed: diff --git a/config/locales/devise.sv.yml b/config/locales/devise.sv.yml index 456e38581..9dfdde8e5 100644 --- a/config/locales/devise.sv.yml +++ b/config/locales/devise.sv.yml @@ -12,12 +12,14 @@ sv: last_attempt: Du har ytterligare ett försök innan ditt konto blir låst. locked: Ditt konto är låst. not_found_in_database: Ogiltigt %{authentication_keys} eller lösenord. + pending: Ditt konto granskas fortfarande. timeout: Din session löpte ut. Vänligen logga in igen för att fortsätta. unauthenticated: Du måste logga in eller registrera dig innan du fortsätter. unconfirmed: Du måste bekräfta din e-postadress innan du fortsätter. mailer: confirmation_instructions: action: Verifiera e-postadress + action_with_app: Bekräfta och återgå till %{app} explanation: Du har skapat ett konto på %{host} med den här e-postadressen. Du är ett klick bort från att aktivera det. Om det inte var du ignorerar det här e-postmeddelandet. extra_html: Kolla gärna också instansens regler och våra användarvillkor. subject: 'Mastodon: Bekräftelsesinstruktioner för %{instance}' @@ -36,13 +38,25 @@ sv: explanation: Bekräfta den nya adressen för att ändra din e-postadress. extra: Om den här ändringen inte initierades av dig kan du ignorerar det här e-postmeddelandet. E-postadressen för Mastodon-kontot ändras inte förrän du kommer åt länken ovan. subject: 'Mastodon: Bekräfta e-post för %{instance}' - title: Verifiera e-postadressen + title: Verifiera e-postadress reset_password_instructions: action: Ändra lösenord explanation: Du begärde ett nytt lösenord för ditt konto. extra: Om du inte begärt detta kan du ignorerar det här e-postmeddelandet. Ditt lösenord ändras inte förrän du öppnar länken ovan och skapar ett nytt. subject: 'Mastodon: Instruktioner för återställning av lösenord' title: Lösenordsåterställning + two_factor_disabled: + explanation: Tvåfaktorsautentisering för ditt konto har inaktiverats. Det är nu möjligt att logga in med enbart e-postadress och lösenord. + subject: 'Mastodon: Tvåfaktorsautentisering inaktiverad' + title: 2FA inaktiverad + two_factor_enabled: + explanation: Tvåfaktorsautentisering har aktiverats för ditt konto. En token som genereras av en kopplad TOTP-app kommer att krävas vid inloggning. + subject: 'Mastodon: Tvåfaktorsautentisering aktiverad' + title: 2FA aktiverad + two_factor_recovery_codes_changed: + explanation: De tidigare återställningskoderna har ogiltigförklarats och nya har genererats. + subject: Mastodon Tvåfaktors-återställningskoder genererades på nytt + title: 2FA-återställningskoder ändrades unlock_instructions: subject: 'Mastodon: Lås upp instruktioner' omniauth_callbacks: @@ -59,7 +73,7 @@ sv: signed_up: Välkommen! Du har nu registrerat dig. signed_up_but_inactive: Du har nu registrerat dig. Vi kunde dock inte logga in dig eftersom ditt konto ännu inte är aktiverat. signed_up_but_locked: Du har nu registrerat dig. Vi kunde dock inte logga in eftersom ditt konto är låst. - signed_up_but_unconfirmed: Ett meddelande med en bekräftelse länk har skickats till din e-postadress. Vänligen följ länken för att aktivera ditt konto. Kontrollera din spammapp om du inte fick det här e-postmeddelandet. + signed_up_but_unconfirmed: Ett meddelande med en bekräftelselänk har skickats till din e-postadress. Vänligen följ länken för att aktivera ditt konto. Kontrollera din skräppostmapp om du inte fick det här e-postmeddelandet. update_needs_confirmation: Du har uppdaterat ditt konto med framgång, men vi måste verifiera din nya e-postadress. Vänligen kolla din email och följ bekräfta länken för att bekräfta din nya e-postadress. Kontrollera din spammapp om du inte fick det här e-postmeddelandet. updated: Ditt konto har uppdaterats utan problem. sessions: diff --git a/config/locales/devise.ta.yml b/config/locales/devise.ta.yml index 9c1edfe43..e653f0581 100644 --- a/config/locales/devise.ta.yml +++ b/config/locales/devise.ta.yml @@ -2,7 +2,7 @@ ta: devise: confirmations: - confirmed: உங்கள் இணைய முகவரி வெற்றிகரமாக உறுதி செய்யப்பட்டது. + confirmed: தங்கள் மின்னஞ்சல் முகவரி வெற்றிகரமாக உறுதி செய்யப்பட்டது. send_instructions: இன்னும் சற்று நேரத்தில் உங்கள் இணைய முகவரியை உறுதி செய்வது எப்படி என்று விளக்கும் இணைய செய்தி ஒன்று வந்தடையும். வரவில்லை எனில், தயவு செய்து உங்கள் ஸ்பாம் பெட்டியைப் பார்க்கவும். send_paranoid_instructions: உங்கள் இணைய முகவரி எங்கள் தகவல்ப் பெட்டகத்தில் இருந்தால், இன்னும் சற்று நேரத்தில் உங்கள் இணைய முகவரியை உறுதி செய்வது எப்படி என்று விளக்கும் இணைய செய்தி ஒன்று வந்தடையும். வரவில்லை எனில், தயவு செய்து உங்கள் ஸ்பாம் பெட்டியைப் பார்க்கவும். failure: @@ -23,14 +23,26 @@ ta: explanation: இந்த இணைய முகவரி கொண்டு %{host}-இல் நீங்கள் ஒரு கணக்கை உருவாக்கியுள்ளீர்கள். அதை செயல்படுத்துவதில் இருந்து ஒரு சொடக்கு தூரத்தில் உள்ளீர்கள். நீங்கள் அதை செய்யவில்லை என்றால், இந்த செய்தியை கண்டுகொள்ள வேண்டாம். title: மின்னஞ்சல் முகவரியை உறுதிபடுத்தவும் email_changed: + subject: 'மாஸ்டோடான்: மின்னஞ்சல் மாற்றப்பட்டது' title: புதிய மின்னஞ்சல் முகவரி password_change: + explanation: உங்கள் கணக்கிற்கான கடவுச்சொல் மாற்றப்பட்டது. + subject: 'மாஸ்டோடான்: கடவுச்சொல் மாற்றப்பட்டது' title: கடவுச்சொல் மாற்றப்பட்டது reconfirmation_instructions: explanation: உங்கள் மின்னஞ்சல் முகவரியை மாற்ற மீண்டும் ஒரு முறை உறுதி செய்யவும். + subject: 'மாஸ்டோடான்: %{instance}-கான மின்னஞ்சலை உறுதிசெய்யவும்' title: மின்னஞ்சல் முகவரியை உறுதிபடுத்தவும் reset_password_instructions: action: கடவுச்சொல்லை மாற்றவும் + explanation: உங்கள் கணக்கிற்குப் புதிய கடவுச்சொல்லைக் கோரியிருக்கிறீர்கள். + subject: 'மாஸ்டோடான்: கடவுச்சொல்லை மீட்டமைப்பதற்கான வழிமுறைகள்' + title: கடவுச்சொல் மீட்டமைப்பு + two_factor_disabled: + title: 2FA உபயோகத்தில் இல்லை + registrations: + destroyed: நன்றி! தங்கள் கணக்கு வெற்றிகரமாக ரத்து செய்யப்பட்டது. தங்கள் வருகையை மீண்டும் எதிர்நோக்கியிருக்கிறோம். + signed_up: வருக! நீங்கள் வெற்றிகரமாகப் பதிவுசெய்துவிட்டீர்கள். unlocks: send_instructions: இன்னும் சற்று நேரத்தில் மின்னஞ்சல் முகவரியை உறுதி செய்வதற்கான விளக்கம், உங்கள் மின்னஞ்சலை வந்தடையும். வரவில்லை எனில், தயவு செய்து உங்கள் Spam பெட்டியைப் பார்க்கவும். errors: diff --git a/config/locales/devise.th.yml b/config/locales/devise.th.yml index e24fc187f..c88577a97 100644 --- a/config/locales/devise.th.yml +++ b/config/locales/devise.th.yml @@ -3,12 +3,13 @@ th: devise: confirmations: confirmed: ยืนยันที่อยู่อีเมลของคุณสำเร็จ - send_instructions: คุณจะได้รับอีเมลพร้อมวิธีการยืนยันที่อยู่อีเมลของคุณในไม่กี่นาที หากคุณไม่ได้รับอีเมล กรุณาตรวจสอบโฟลเดอร์สแปมของคุณ - send_paranoid_instructions: หากที่อยู่อีเมลของคุณอยู่ในระบบของเรา คุณจะได้รับอีเมลพร้อมวิธีการยืนยันที่อยู่อีเมลของคุณในไม่กี่นาที หากคุณไม่ได้รับอีเมล กรุณาตรวจสอบโฟลเดอร์สแปมของคุณ + send_instructions: คุณจะได้รับอีเมลพร้อมคำแนะนำวิธีการยืนยันที่อยู่อีเมลของคุณในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ + send_paranoid_instructions: หากมีที่อยู่อีเมลของคุณอยู่ในฐานข้อมูลของเรา คุณจะได้รับอีเมลพร้อมคำแนะนำวิธีการยืนยันที่อยู่อีเมลของคุณในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ failure: already_authenticated: คุณได้ลงชื่อเข้าอยู่แล้ว inactive: ยังไม่ได้เปิดใช้งานบัญชีของคุณ invalid: "%{authentication_keys} หรือรหัสผ่านไม่ถูกต้อง" + last_attempt: คุณลองได้อีกหนึ่งครั้งก่อนที่บัญชีของคุณจะถูกล็อค locked: มีการล็อคบัญชีของคุณอยู่ not_found_in_database: "%{authentication_keys} หรือรหัสผ่านไม่ถูกต้อง" pending: บัญชีของคุณยังอยู่ระหว่างการตรวจทาน @@ -19,36 +20,53 @@ th: confirmation_instructions: action: ยืนยันที่อยู่อีเมล action_with_app: ยืนยันแล้วกลับไปยัง %{app} - explanation: คุณได้สร้างบัญชีใหม่บน %{host} ด้วยที่อยู่อีเมลนี้ เหลืออีกเพียงคลิกเดียวก็สามารถเปิดใช้งานบัญชีได้แล้ว หากไม่ใช่คุณ กรุณาปฏิเสธอีเมลนี้ - extra_html: นอกจากนี้ กรุณาอ่านกฎของเซิร์ฟเวอร์และเงื่อนไขการให้บริการ + explanation: คุณได้สร้างบัญชีใน %{host} ด้วยที่อยู่อีเมลนี้ คุณเหลืออีกคลิกเดียวเพื่อเปิดใช้งานบัญชี หากนี่ไม่ใช่คุณ โปรดเพิกเฉยต่ออีเมลนี้ + explanation_when_pending: คุณได้สมัครเพื่อขอคำเชิญสู่ %{host} ด้วยที่อยู่อีเมลนี้ เมื่อคุณยืนยันที่อยู่อีเมลของคุณ เราจะตรวจทานใบสมัครของคุณ คุณสามารถเข้าสู่ระบบเพื่อเปลี่ยนรายละเอียดของคุณหรือลบบัญชีของคุณ แต่คุณไม่สามารถเข้าถึงฟังก์ชันส่วนใหญ่ได้จนกว่าจะมีการอนุมัติบัญชีของคุณ หากมีการปฏิเสธใบสมัครของคุณ จะเอาข้อมูลของคุณออก ดังนั้นจึงไม่ต้องมีการกระทำเพิ่มเติมจากคุณ หากนี่ไม่ใช่คุณ โปรดเพิกเฉยต่ออีเมลนี้ + extra_html: นอกจากนี้โปรดตรวจสอบ กฎของเซิร์ฟเวอร์ และ เงื่อนไขการให้บริการของเรา subject: 'Mastodon: คำแนะนำการยืนยันสำหรับ %{instance}' title: ยืนยันที่อยู่อีเมล email_changed: explanation: 'กำลังเปลี่ยนที่อยู่อีเมลสำหรับบัญชีของคุณเป็น:' + extra: หากคุณไม่ได้เปลี่ยนอีเมลของคุณ อาจเป็นไปได้ว่ามีใครสักคนได้รับสิทธิเข้าถึงบัญชีของคุณ โปรดเปลี่ยนรหัสผ่านของคุณทันทีหรือติดต่อผู้ดูแลเซิร์ฟเวอร์หากคุณถูกล็อคออกจากบัญชีของคุณ subject: 'Mastodon: เปลี่ยนอีเมลแล้ว' title: ที่อยู่อีเมลใหม่ password_change: explanation: เปลี่ยนรหัสผ่านสำหรับบัญชีของคุณแล้ว + extra: หากคุณไม่ได้เปลี่ยนรหัสผ่านของคุณ อาจเป็นไปได้ว่ามีใครสักคนได้รับสิทธิเข้าถึงบัญชีของคุณ โปรดเปลี่ยนรหัสผ่านของคุณทันทีหรือติดต่อผู้ดูแลเซิร์ฟเวอร์หากคุณถูกล็อคออกจากบัญชีของคุณ subject: 'Mastodon: เปลี่ยนรหัสผ่านแล้ว' title: เปลี่ยนรหัสผ่านแล้ว reconfirmation_instructions: explanation: ยืนยันที่อยู่ใหม่เพื่อเปลี่ยนอีเมลของคุณ + extra: หากการเปลี่ยนแปลงนี้ไม่ได้ทำโดยคุณ โปรดเพิกเฉยต่ออีเมลนี้ ที่อยู่อีเมลสำหรับบัญชี Mastodon จะไม่เปลี่ยนแปลงจนกว่าคุณจะเข้าถึงลิงก์ด้านบน subject: 'Mastodon: ยืนยันอีเมลสำหรับ %{instance}' title: ยืนยันที่อยู่อีเมล reset_password_instructions: action: เปลี่ยนรหัสผ่าน explanation: คุณได้ขอรหัสผ่านใหม่สำหรับบัญชีของคุณ + extra: หากคุณไม่ได้ขอสิ่งนี้ โปรดเพิกเฉยต่ออีเมลนี้ รหัสผ่านของคุณจะไม่เปลี่ยนแปลงจนกว่าคุณจะเข้าถึงลิงก์ด้านบนและสร้างรหัสผ่านใหม่ subject: 'Mastodon: คำแนะนำการตั้งรหัสผ่านใหม่' - title: ตั้งรหัสผ่านใหม่ + title: การตั้งรหัสผ่านใหม่ two_factor_disabled: - subject: 'Mastodon: ปิดการยืนยันสองขั้นตอนแล้ว' + explanation: ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำหรับบัญชีของคุณแล้ว การเข้าสู่ระบบสามารถทำได้โดยใช้ที่อยู่อีเมลและรหัสผ่านเท่านั้น + subject: 'Mastodon: ปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว' title: ปิดใช้งาน 2FA แล้ว two_factor_enabled: - subject: 'Mastodon: เปิดการยืนยันสองขั้นตอนแล้ว' + explanation: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำหรับบัญชีของคุณแล้ว จะต้องใช้โทเคนที่สร้างโดยแอป TOTP ที่จับคู่สำหรับการเข้าสู่ระบบ + subject: 'Mastodon: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว' title: เปิดใช้งาน 2FA แล้ว two_factor_recovery_codes_changed: + explanation: ยกเลิกรหัสกู้คืนก่อนหน้าและสร้างรหัสใหม่แล้ว + subject: 'Mastodon: สร้างรหัสกู้คืนสองปัจจัยใหม่แล้ว' title: เปลี่ยนรหัสกู้คืน 2FA แล้ว + unlock_instructions: + subject: 'Mastodon: คำแนะนำการปลดล็อค' + omniauth_callbacks: + failure: ไม่สามารถรับรองความถูกต้องของคุณจาก %{kind} เนื่องจาก "%{reason}" + success: รับรองความถูกต้องจากบัญชี %{kind} สำเร็จ passwords: + no_token: คุณไม่สามารถเข้าถึงหน้านี้โดยไม่ได้มาจากอีเมลการตั้งรหัสผ่านใหม่ หากคุณมาจากอีเมลการตั้งรหัสผ่านใหม่ โปรดตรวจสอบให้แน่ใจว่าคุณได้ใช้ URL แบบเต็มที่ให้มา + send_instructions: หากมีที่อยู่อีเมลของคุณอยู่ในฐานข้อมูลของเรา คุณจะได้รับลิงก์กู้คืนรหัสผ่านที่ที่อยู่อีเมลของคุณในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ + send_paranoid_instructions: หากมีที่อยู่อีเมลของคุณอยู่ในฐานข้อมูลของเรา คุณจะได้รับลิงก์กู้คืนรหัสผ่านที่ที่อยู่อีเมลของคุณในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ updated: เปลี่ยนรหัสผ่านของคุณสำเร็จ ตอนนี้คุณได้ลงชื่อเข้าแล้ว updated_not_active: เปลี่ยนรหัสผ่านของคุณสำเร็จ registrations: @@ -56,17 +74,24 @@ th: signed_up: ยินดีต้อนรับ! คุณได้ลงทะเบียนสำเร็จ signed_up_but_inactive: คุณได้ลงทะเบียนสำเร็จ อย่างไรก็ตามเราไม่สามารถลงชื่อคุณเข้าเนื่องจากยังไม่ได้เปิดใช้งานบัญชีของคุณ signed_up_but_locked: คุณได้ลงทะเบียนสำเร็จ อย่างไรก็ตามเราไม่สามารถลงชื่อคุณเข้าเนื่องจากมีการล็อคบัญชีของคุณอยู่ - signed_up_but_pending: ส่งข้อความพร้อมลิงก์ยืนยันไปยังที่อยู่อีเมลของคุณแล้ว หลังจากคุณคลิกลิงก์ เราจะตรวจทานใบสมัครของคุณ คุณจะได้รับการแจ้งเตือนหากใบสมัครได้รับการอนุมัติ + signed_up_but_pending: ส่งข้อความพร้อมลิงก์ยืนยันไปยังที่อยู่อีเมลของคุณแล้ว หลังจากคุณคลิกลิงก์ เราจะตรวจทานใบสมัครของคุณ คุณจะได้รับการแจ้งเตือนหากมีการอนุมัติใบสมัคร signed_up_but_unconfirmed: ส่งข้อความพร้อมลิงก์ยืนยันไปยังที่อยู่อีเมลของคุณแล้ว โปรดไปตามลิงก์เพื่อเปิดใช้งานบัญชีของคุณ โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ + update_needs_confirmation: คุณได้อัปเดตบัญชีของคุณสำเร็จ แต่เราจำเป็นต้องยืนยันที่อยู่อีเมลใหม่ของคุณ โปรดตรวจสอบอีเมลของคุณแล้วไปตามลิงก์ยืนยันเพื่อยืนยันที่อยู่อีเมลใหม่ของคุณ โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ updated: อัปเดตบัญชีของคุณสำเร็จ sessions: already_signed_out: ลงชื่อออกสำเร็จ signed_in: ลงชื่อเข้าสำเร็จ signed_out: ลงชื่อออกสำเร็จ unlocks: - send_instructions: คุณจะได้รับอีเมลพร้อมวิธีการปลดล็อคบัญชีของคุณในไม่กี่นาที หากคุณไม่ได้รับอีเมล กรุณาตรวจสอบโฟลเดอร์สแปมของคุณ + send_instructions: คุณจะได้รับอีเมลพร้อมคำแนะนำวิธีการปลดล็อคบัญชีของคุณในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ + send_paranoid_instructions: หากมีบัญชีของคุณอยู่ คุณจะได้รับอีเมลพร้อมคำแนะนำวิธีการปลดล็อคบัญชีในไม่กี่นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณหากคุณไม่ได้รับอีเมลนี้ unlocked: ปลดล็อคบัญชีของคุณสำเร็จ โปรดลงชื่อเข้าเพื่อดำเนินการต่อ errors: messages: + already_confirmed: ยืนยันอยู่แล้ว โปรดลองลงชื่อเข้า + confirmation_period_expired: ต้องได้รับการยืนยันภายใน %{period} โปรดขออีเมลใหม่ + expired: หมดอายุแล้ว โปรดขออีเมลใหม่ not_found: ไม่พบ not_locked: ไม่ได้ล็อคอยู่ + not_saved: + other: "%{count} ข้อผิดพลาดได้ห้ามไม่ให้บันทึก %{resource} นี้:" diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml index 85b3d14cd..eebeb106c 100644 --- a/config/locales/devise.uk.yml +++ b/config/locales/devise.uk.yml @@ -21,6 +21,7 @@ uk: action: Підтвердити адресу електронної пошти action_with_app: Підтвердити та повернутися до %{app} explanation: Ви створили обліковий запис на %{host} з цією адресою електронної пошти, і зараз на відстані одного кліку від його активації. Якщо це були не ви, проігноруйте цього листа, будь ласка. + explanation_when_pending: Ви подали заявку на запрошення до %{host} з цією адресою електронної пошти. Після підтвердження адреси ми розглянемо вашу заявку. Ви можете увійти, щоб змінити ваші дані або видалити свій обліковий запис, але Ви не зможете отримати доступ до більшості функцій, поки Ваш обліковий запис не буде схвалено. Якщо вашу заявку буде відхилено, ваші дані будуть видалені, тож вам не потрібно буде нічого робити. Якщо це були не ви, просто проігноруйте цей лист. extra_html: Також перегляньте правила серверу та умови використання. subject: 'Mastodon: Інструкції для підтвердження %{instance}' title: Підтвердити адресу електронної пошти diff --git a/config/locales/devise.ur.yml b/config/locales/devise.ur.yml index 2cace5883..5edf8e9b9 100644 --- a/config/locales/devise.ur.yml +++ b/config/locales/devise.ur.yml @@ -1 +1,5 @@ +--- ur: + devise: + confirmations: + confirmed: آپکے ایمیل اڈرش (email address) کی تصدیق کر لی گئی ہے. diff --git a/config/locales/devise.vi.yml b/config/locales/devise.vi.yml new file mode 100644 index 000000000..b01fa066e --- /dev/null +++ b/config/locales/devise.vi.yml @@ -0,0 +1,97 @@ +--- +vi: + devise: + confirmations: + confirmed: Địa chỉ email của bạn đã được xác nhận thành công. + send_instructions: Bạn sẽ nhận được một email với các hướng dẫn về cách xác nhận địa chỉ email của bạn trong vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + send_paranoid_instructions: Nếu địa chỉ email của bạn tồn tại trong cơ sở dữ liệu của chúng tôi, bạn sẽ nhận được email có hướng dẫn cách xác nhận địa chỉ email của bạn trong vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + failure: + already_authenticated: Bạn đã đăng nhập. + inactive: Tài khoản của bạn chưa được kich hoạt. + invalid: "%{authentication_keys} hoặc mật khẩu không hợp lệ." + last_attempt: Bạn có thêm một lần thử trước khi tài khoản của bạn bị khóa. + locked: Tài khoản của bạn bị khóa. + not_found_in_database: "%{authentication_keys} hoặc mật khẩu không hợp lệ." + pending: Tài khoản của bạn vẫn đang được xem xét. + timeout: Phiên của bạn đã hết hạn. Vui lòng đăng nhập lại để tiếp tục. + unauthenticated: Bạn cần đăng nhập hoặc đăng ký trước khi tiếp tục. + unconfirmed: Bạn phải xác nhận địa chỉ email của bạn trước khi tiếp tục. + mailer: + confirmation_instructions: + action: Xác nhận địa chỉ email + action_with_app: Xác nhận và quay lại %{app} + explanation: Bạn đã tạo một tài khoản trên %{host} với địa chỉ email này. Bạn chỉ cần một cú nhấp chuột để kích hoạt nó. Nếu đây không phải là bạn, xin vui lòng bỏ qua email này. + explanation_when_pending: Bạn đã đăng ký lời mời đến %{host} với địa chỉ email này. Khi bạn xác nhận địa chỉ e-mail của mình, chúng tôi sẽ xem xét đơn đăng ký của bạn. Bạn có thể đăng nhập để thay đổi chi tiết hoặc xóa tài khoản của mình, nhưng bạn không thể truy cập hầu hết các chức năng cho đến khi tài khoản của bạn được chấp thuận. Nếu ứng dụng của bạn bị từ chối, dữ liệu của bạn sẽ bị xóa, do đó bạn sẽ không cần phải thực hiện thêm hành động nào nữa. Nếu đây không phải là bạn, xin vui lòng bỏ qua email này. + extra_html: Vui lòng kiểm tra các quy tắc của máy chủđiều khoản dịch vụ của chúng tôi . + subject: 'Mastodon: Hướng dẫn xác nhận cho %{instance}' + title: Xác nhận địa chỉ email + email_changed: + explanation: 'Địa chỉ email cho tài khoản của bạn đang được thay đổi thành:' + extra: Nếu bạn không thay đổi email của mình, có khả năng ai đó đã truy cập được vào tài khoản của bạn. Vui lòng thay đổi mật khẩu của bạn ngay lập tức hoặc liên hệ với quản trị viên máy chủ nếu bạn bị khóa khỏi tài khoản của bạn. + subject: 'Mastodon: Email đã thay đổi' + title: Địa chỉ thư điện tử mới + password_change: + explanation: Mật khẩu cho tài khoản của bạn đã được thay đổi. + extra: Nếu bạn không thay đổi mật khẩu, có khả năng ai đó đã truy cập được vào tài khoản của bạn. Vui lòng thay đổi mật khẩu của bạn ngay lập tức hoặc liên hệ với quản trị viên máy chủ nếu bạn bị khóa khỏi tài khoản của bạn. + subject: 'Mastodon: Mật khẩu đã thay đổi' + title: mật khẩu đã được thay đổi + reconfirmation_instructions: + explanation: Xác nhận địa chỉ mới để thay đổi email của bạn. + extra: Nếu thay đổi này không phải do bạn khởi xướng, vui lòng bỏ qua email này. Địa chỉ email cho tài khoản Mastodon sẽ không thay đổi cho đến khi bạn truy cập vào liên kết ở trên. + subject: 'Mastodon: Xác nhận email cho %{instance}' + title: Xác nhận địa chỉ email + reset_password_instructions: + action: Đổi mật khẩu + explanation: Bạn đã yêu cầu một mật khẩu mới cho tài khoản của bạn. + extra: Nếu bạn không yêu cầu điều này, xin vui lòng bỏ qua email này. Mật khẩu của bạn sẽ không thay đổi cho đến khi bạn truy cập vào liên kết ở trên và tạo một mật khẩu mới. + subject: 'Mastodon: Đặt lại hướng dẫn mật khẩu' + title: Đặt lại mật khẩu + two_factor_disabled: + explanation: Xác thực hai yếu tố cho tài khoản của bạn đã bị vô hiệu hóa. Đăng nhập bây giờ có thể chỉ bằng địa chỉ e-mail và mật khẩu. + subject: 'Mastodon: Xác thực hai yếu tố bị vô hiệu hóa' + title: Vô hiệu hóa 2FA + two_factor_enabled: + explanation: Xác thực hai yếu tố đã được kích hoạt cho tài khoản của bạn. Mã thông báo được tạo bởi ứng dụng TOTP được ghép nối sẽ được yêu cầu để đăng nhập. + subject: 'Mastodon: Kích hoạt xác thực hai yếu tố' + title: Đã bật 2FA + two_factor_recovery_codes_changed: + explanation: Các mã khôi phục trước đó đã bị vô hiệu và các mã mới được tạo. + subject: 'Mastodon: Mã phục hồi hai yếu tố được tạo lại' + title: Mã khôi phục 2FA đã thay đổi + unlock_instructions: + subject: 'Mastodon: Hướng dẫn mở khóa' + omniauth_callbacks: + failure: Không thể xác thực bạn từ %{kind} vì "%{reason}". + success: Xác thực thành công từ tài khoản %{kind}. + passwords: + no_token: Bạn không thể truy cập trang này mà không đến từ email đặt lại mật khẩu. Nếu bạn đến từ một email đặt lại mật khẩu, vui lòng đảm bảo rằng bạn đã sử dụng URL đầy đủ được cung cấp. + send_instructions: Nếu địa chỉ email của bạn tồn tại trong cơ sở dữ liệu của chúng tôi, bạn sẽ nhận được liên kết khôi phục mật khẩu tại địa chỉ email của bạn sau vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + send_paranoid_instructions: Nếu địa chỉ email của bạn tồn tại trong cơ sở dữ liệu của chúng tôi, bạn sẽ nhận được liên kết khôi phục mật khẩu tại địa chỉ email của bạn sau vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + updated: Mật khẩu của bạn đã được thay đổi thành công. Bây giờ bạn đã đăng nhập. + updated_not_active: Mật khẩu của bạn đã được thay đổi thành công. + registrations: + destroyed: Tạm biệt! Tài khoản của bạn đã bị hủy thành công. Mong rằng chúng tôi sẽ sớm gặp lại bạn. + signed_up: Chào mừng bạn Bạn đã đăng ký thành công. + signed_up_but_inactive: Bạn đã đăng ký thành công. Tuy nhiên, chúng tôi không thể đăng nhập cho bạn vì tài khoản của bạn chưa được kích hoạt. + signed_up_but_locked: Bạn đã đăng ký thành công. Tuy nhiên, chúng tôi không thể đăng nhập cho bạn vì tài khoản của bạn bị khóa. + signed_up_but_pending: Một tin nhắn với một liên kết xác nhận đã được gửi đến địa chỉ email của bạn. Sau khi bạn nhấp vào liên kết, chúng tôi sẽ xem xét ứng dụng của bạn. Bạn sẽ được thông báo nếu nó được chấp thuận. + signed_up_but_unconfirmed: Một tin nhắn với một liên kết xác nhận đã được gửi đến địa chỉ email của bạn. Vui lòng theo liên kết để kích hoạt tài khoản của bạn. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + update_needs_confirmation: Bạn đã cập nhật tài khoản thành công, nhưng chúng tôi cần xác minh địa chỉ email mới của bạn. Vui lòng kiểm tra email của bạn và theo liên kết xác nhận để xác nhận địa chỉ email mới của bạn. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + updated: Tài khoản của bạn đã được cập nhật thành công. + sessions: + already_signed_out: Đăng xuất thành công. + signed_in: Đã đăng nhập thành công. + signed_out: Đăng xuất thành công. + unlocks: + send_instructions: Bạn sẽ nhận được một email với các hướng dẫn về cách mở khóa tài khoản của bạn trong vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + send_paranoid_instructions: Nếu tài khoản của bạn tồn tại, bạn sẽ nhận được email có hướng dẫn cách mở khóa trong vài phút. Vui lòng kiểm tra thư mục thư rác nếu bạn không nhận được email này. + unlocked: Tài khoản của bạn đã được mở khóa thành công. Vui lòng đăng nhập để tiếp tục. + errors: + messages: + already_confirmed: đã được xác nhận, vui lòng thử đăng nhập + confirmation_period_expired: cần được xác nhận trong vòng %{period}, vui lòng yêu cầu một cái mới + expired: đã hết hạn, vui lòng yêu cầu một cái mới + not_found: không tìm thấy + not_locked: không bị khóa + not_saved: + other: "%{count} lỗi đã cấm %{resource} này được lưu:" diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml index 65c0a5c9d..4c75a8816 100644 --- a/config/locales/devise.zh-CN.yml +++ b/config/locales/devise.zh-CN.yml @@ -12,7 +12,7 @@ zh-CN: last_attempt: 你还有最后一次尝试机会,再次失败你的帐户将被锁定。 locked: 你的帐户已被锁定。 not_found_in_database: "%{authentication_keys}或密码错误。" - pending: 你的账户仍在审核中。 + pending: 你的帐号仍在审核中。 timeout: 你已登录超时,请重新登录。 unauthenticated: 继续操作前请注册或者登录。 unconfirmed: 继续操作前请先确认你的帐户。 @@ -47,12 +47,12 @@ zh-CN: subject: Mastodon:重置密码信息 title: 重置密码 two_factor_disabled: - explanation: 账户的双重认证已禁用。现在仅使用邮箱和密码登录即可登录。 + explanation: 帐号的双重认证已禁用。现在仅使用邮箱和密码登录即可登录。 subject: Mastodon:双重认证已禁用。 - title: 双重认证禁用 + title: 双重认证已禁用 two_factor_enabled: - explanation: 账户双重认证已启用。登录时将需要来自已配对的 TOTP 应用生成的验证码。 - subject: 'Mastodon: 双重验证已开启' + explanation: 账号双重认证已启用。登录时将需要来自已配对的 TOTP 应用生成的验证码。 + subject: Mastodon:双重验证已开启 title: 已启用双重认证 two_factor_recovery_codes_changed: explanation: 之前的恢复码已失效,现已生成了新的恢复码。 diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml index 895405f4a..77472042d 100644 --- a/config/locales/devise.zh-TW.yml +++ b/config/locales/devise.zh-TW.yml @@ -4,17 +4,17 @@ zh-TW: confirmations: confirmed: 您的電子信箱位址已確認成功。 send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。 - send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。 + send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,您將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。 failure: already_authenticated: 您已登入。 inactive: 您的帳戶尚未啟用。 invalid: 無效的 %{authentication_keys} 或密碼。 - last_attempt: 在帳號遭封鎖前您還有最後一次嘗試機會。 - locked: 您的帳戶已被鎖定。 + last_attempt: 在帳號鎖定前,您還有最後一次嘗試機會。 + locked: 已鎖定您的帳戶。 not_found_in_database: 無效的 %{authentication_keys} 或密碼。 pending: 您的帳戶仍在審核中。 timeout: 登入階段逾時。請重新登入以繼續。 - unauthenticated: 您必須先登入或註冊以繼續使用。 + unauthenticated: 您必須先登入或註冊才能繼續使用。 unconfirmed: 您必須先確認電子信箱才能繼續使用。 mailer: confirmation_instructions: @@ -22,7 +22,7 @@ zh-TW: action_with_app: 確認並返回 %{app} explanation: 您已經在 %{host} 上以此電子信箱位址建立了一支帳戶。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 explanation_when_pending: 您使用此電子信箱位址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請,而直到核准前您都無法登入。當您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。 - extra_html: 同時也請看看該伺服器的規則服務條款。 + extra_html: 同時也請看看伺服器規則服務條款。 subject: Mastodon:%{instance} 確認說明 title: 驗證電子信箱位址 email_changed: @@ -42,7 +42,7 @@ zh-TW: title: 驗證電子信箱位址 reset_password_instructions: action: 變更密碼 - explanation: 您已請求設定帳號的新密碼。 + explanation: 您已請求帳戶的新密碼。 extra: 若您並未請求,請忽略此信件。您的密碼在存取上方連結並建立新連結前不會變更。 subject: Mastodon:重設密碼指引 title: 重設密碼 @@ -55,14 +55,14 @@ zh-TW: subject: Mastodon:已啟用兩步驟驗證 title: 已啟用 2FA two_factor_recovery_codes_changed: - explanation: 上一次的復原碼已經失效,且已產生新的復原碼。 + explanation: 上一次的復原碼已經失效,且已產生新的。 subject: Mastodon:兩步驟驗證復原碼已經重新產生 title: 2FA 復原碼已變更 unlock_instructions: - subject: Mastodon:帳戶解鎖指引 + subject: Mastodon:解鎖指引 omniauth_callbacks: failure: 無法透過 %{kind} 認證是否為您,因為「%{reason}」。 - success: 成功透過 %{kind} 登入帳戶。 + success: 成功透過 %{kind} 帳戶登入。 passwords: no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。 send_instructions: 若電子信箱位址存在於資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 @@ -92,6 +92,6 @@ zh-TW: confirmation_period_expired: 需要在 %{period} 內完成驗證。請重新申請 expired: 已經過期,請重新請求 not_found: 找不到 - not_locked: 並未被鎖定 + not_locked: 並未鎖定 not_saved: other: 因 %{count} 錯誤導致 %{resource} 無法儲存: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 51d8b76b4..49c7cade9 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -38,6 +38,7 @@ ar: application: تطبيق callback_url: رابط رد النداء delete: حذف + empty: ليس لديك أية تطبيقات. name: التسمية new: تطبيق جديد scopes: المجالات @@ -123,6 +124,7 @@ ar: read: قراءة كافة بيانات حسابك read:accounts: معاينة معلومات الحساب read:blocks: رؤية الحسابات التي قمت بحجبها + read:bookmarks: اطّلع على فواصلك المرجعية read:favourites: رؤية مفضلاتك read:filters: رؤية عوامل التصفية الخاصة بك read:follows: رؤية متابِعيك @@ -135,6 +137,7 @@ ar: write: تغيير كافة بيانات حسابك write:accounts: تعديل صفحتك التعريفية write:blocks: حجب الحسابات و النطاقات + write:bookmarks: الإحتفاظ بالمنشورات في الفواصل المرجعية write:favourites: الإعجاب بمنشورات write:filters: إنشاء عوامل تصفية write:follows: متابَعة الأشخاص diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index ce88af797..db6eb1e51 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -4,6 +4,7 @@ ast: attributes: doorkeeper/application: name: Nome de l'aplicación + scopes: Ámbitos website: Sitiu web de l'aplicación errors: models: @@ -19,10 +20,21 @@ ast: destroy: Destruyir edit: Editar submit: Unviar + confirmations: + destroy: "¿De xuru?" + form: + error: "¡Meca! Comprueba los fallos posibles del formulariu" + help: + native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales index: name: Nome + new: Aplicación nueva + scopes: Ámbitos + new: + title: Aplicación nueva show: actions: Aiciones + scopes: Ámbitos title: 'Aplicación: %{name}' authorizations: error: @@ -31,19 +43,27 @@ ast: able_to: Va ser a prompt: L'aplicación %{client_name} solicitó l'accesu a la to cuenta show: - title: Copia esti códigu d'autorización y apégalu na aplicación. + title: Copia esti códigu d'autorización y apiégalu na aplicación. authorized_applications: buttons: revoke: Revocar + confirmations: + revoke: "¿De xuru?" index: + application: Aplicación + created_at: Data d'autorización date_format: "%H:%M:%S %d-%m-%Y" + scopes: Ámbitos title: Les aplicaciones qu'autoricesti errors: messages: + access_denied: El dueñu del recursu o'l sirvidor d'autorización ñegó la solicitú. invalid_token: expired: Caducó'l pase d'accesu revoked: Revocóse'l pase d'accesu unknown: El pase d'accesu nun ye válidu + server_error: El sirvidor d'autorizaciones alcontró una condición inesperada qu'evitó que cumpliera la solicitú. + temporarily_unavailable: Anguaño'l sirvidor d'autorizaciones nun ye a remanar la solicitú pola mor d'una sobrecarga temporal o caltenimientu del sirvidor. unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú usando esti métodu. unsupported_response_type: El sirvidor d'autorización nun sofita esta triba de rempuesta. layouts: @@ -52,13 +72,21 @@ ast: applications: Aplicaciones oauth2_provider: Fornidor d'OAuth2 scopes: + admin:read: lleer tolos datos del sirvidor + admin:read:accounts: lleer la información sensible de toles cuentes + admin:read:reports: lleer la información sensible de tolos informe y cuentes informaes + admin:write: modificar tolos datos del sirvidor + read: lleer tolos datos de la to cuenta read:accounts: ver información de cuentes read:blocks: ver quién bloquies + read:bookmarks: ver los tos marcadores + read:favourites: ver los tos favoritos read:filters: ver les tos peñeres read:follows: ver quién sigues read:lists: ver les tos llistes read:mutes: ver quién silencies read:notifications: ver los tos avisos + read:reports: ver los tos informes read:statuses: ver tolos estaos write: modificar los datos de la to cuenta write:accounts: modificar el to perfil @@ -66,7 +94,7 @@ ast: write:filters: crear peñeres write:follows: siguir a xente write:lists: crear llistes - write:media: xubir ficheros de medios + write:media: xubir ficheros multimedia write:mutes: silenciar xente y conversaciones write:notifications: llimpiar los tos avisos write:statuses: espublizar estaos diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index dde70f47a..728780406 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -38,6 +38,7 @@ ca: application: Aplicació callback_url: URL de retorn delete: Suprimeix + empty: No tens cap aplicació. name: Nom new: Aplicació nova scopes: Àmbits @@ -63,7 +64,7 @@ ca: prompt: L'aplicació %{client_name} sol⋅licita tenir accés al teu compte title: Cal autorizació show: - title: Copia aquest coddi d'autorització i enganxa'l en l'aplicació. + title: Copia aquest codi d'autorització i enganxa'l en l'aplicació. authorized_applications: buttons: revoke: Revoca @@ -124,7 +125,8 @@ ca: push: rebre notificacions push del teu compte read: llegir les dades del teu compte read:accounts: veure informació dels comptes - read:blocks: veure els teus bloqueijos + read:blocks: veure els teus bloqueigs + read:bookmarks: veure els teus marcadors read:favourites: veure els teus favorits read:filters: veure els teus filtres read:follows: veure els teus seguiments @@ -133,11 +135,12 @@ ca: read:notifications: veure les teves notificacions read:reports: veure els teus informes read:search: cerca en nom teu - read:statuses: veure tots els toots + read:statuses: veure tots els tuts write: publicar en el teu nom write:accounts: modifica el teu perfil write:blocks: bloqueja comptes i dominis - write:favourites: afavoreix toots + write:bookmarks: publicacions a marcadors + write:favourites: afavoreix tuts write:filters: crear filtres write:follows: seguir usuaris write:lists: crear llistes @@ -145,4 +148,4 @@ ca: write:mutes: silencia usuaris i converses write:notifications: esborra les teves notificacions write:reports: informe d’altres persones - write:statuses: publicar toots + write:statuses: publicar tuts diff --git a/config/locales/doorkeeper.co.yml b/config/locales/doorkeeper.co.yml index d45041a4e..4f03c0c32 100644 --- a/config/locales/doorkeeper.co.yml +++ b/config/locales/doorkeeper.co.yml @@ -38,6 +38,7 @@ co: application: Applicazione callback_url: URL di richjama delete: Toglie + empty: Ùn avete micca d'applicazione. name: Nome new: Applicazione nova scopes: Scopi @@ -125,6 +126,7 @@ co: read: leghje tutte l’infurmazioni di u vostru contu read:accounts: Vede l'infurmazione di i conti read:blocks: vede i vostri blucchimi + read:bookmarks: vede i vostri segnalibri read:favourites: vede i vostri favuriti read:filters: vede i vostri filtri read:follows: vede i vostri abbunamenti @@ -137,6 +139,7 @@ co: write: mudificà i dati di u vostru contu write:accounts: mudificà u prufile write:blocks: bluccà conti è dumini + write:bookmarks: segnà statuti write:favourites: aghjustà statuti à i favuriti write:filters: creà filtri write:follows: siguità conti diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index cb5cd147c..00345db76 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -14,8 +14,8 @@ cs: redirect_uri: fragment_present: nesmí obsahovat fragment. invalid_uri: musí být platné URI. - relative_uri: musí být apsolutní URI. - secured_uri: musí být URI HTTPS/SSL. + relative_uri: musí být absolutní URI. + secured_uri: musí být HTTPS/SSL URI. doorkeeper: applications: buttons: @@ -25,19 +25,20 @@ cs: edit: Upravit submit: Odeslat confirmations: - destroy: Jste si jistý/á? + destroy: Opravdu? edit: title: Upravit aplikaci form: - error: A jéje! Zkontrolujte svůj formulář kvůli případným chybám + error: A jéje! Zkontrolujte ve formuláři případné chyby help: native_redirect_uri: Pro místní testy použijte %{native_redirect_uri} redirect_uri: Jedno URI na každý řádek - scopes: Oddělujte rozsahy mezerami. Pro použití výchozích rozsahů zanechte prázdné. + scopes: Oddělujte rozsahy mezerami. Pro použití výchozích rozsahů ponechte prázdné. index: application: Aplikace callback_url: Zpáteční URL delete: Smazat + empty: Nemáte žádné aplikace. name: Název new: Nová aplikace scopes: Rozsahy @@ -50,7 +51,7 @@ cs: application_id: Klientský klíč callback_urls: Zpáteční URL scopes: Rozsahy - secret: Klientské tajemství + secret: Klientský secret title: 'Aplikace: %{name}' authorizations: buttons: @@ -68,7 +69,7 @@ cs: buttons: revoke: Zamítnout confirmations: - revoke: Jste si jistý/á? + revoke: Opravdu? index: application: Aplikace created_at: Autorizováno @@ -77,14 +78,14 @@ cs: title: Vaše autorizované aplikace errors: messages: - access_denied: Vlastník zdroje či autorizační server zamítl požadavek. + access_denied: Vlastník zdroje či autorizační server žádost zamítl. credential_flow_not_configured: Proud Resource Owner Password Credentials selhal, protože Doorkeeper.configure.resource_owner_from_credentials nebylo nakonfigurováno. invalid_client: Ověření klienta selhalo kvůli neznámému klientovi, chybějící klientské autentizaci či nepodporované autentizační metodě. - invalid_grant: Poskytnuté oprávnění je neplatné, vypršelé, zamítnuté, neshoduje se s URI přesměrování použitým v požadavku o autorizaci, nebo bylo uděleno jinému klientu. - invalid_redirect_uri: Přesměrovací URI není platné. - invalid_request: Požadavku chybí pžadovaný parametr, obsahuje nepodporovanou hodnotu parametru, či je jinak malformovaný. + invalid_grant: Poskytnuté oprávnění je neplatné, vypršela jeho platnost, bylo zamítnuto, neshoduje se s URI přesměrování použitým v požadavku o autorizaci, nebo bylo uděleno jinému klientu. + invalid_redirect_uri: URI pro přesměrování není platné. + invalid_request: Požadavku chybí povinný parametr, obsahuje nepodporovanou hodnotu parametru, či je jinak špatné formulovaný. invalid_resource_owner: Poskytnuté přihlašovací údaje vlastníka zdroje nejsou platné, nebo vlastník zdroje nemůže být nalezen - invalid_scope: Požadovaný rozsah je neplatný, neznámý, nebo malformovaný. + invalid_scope: Požadovaný rozsah je neplatný, neznámý, nebo špatně formulovaný. invalid_token: expired: Přístupový token vypršel revoked: Přístupový token byl zamítnut @@ -93,8 +94,8 @@ cs: server_error: Autorizační server se setkal s neočekávanou chybou, která mu zabránila ve vykonání požadavku. temporarily_unavailable: Autorizační server vás nyní nemůže obsloužit kvůli dočasnému přetížení či údržbě serveru. unauthorized_client: Klient není autorizován k vykonání tohoto požadavku touto metodou. - unsupported_grant_type: Tento typ oprávnění není podporován autorizačním serverem. - unsupported_response_type: Autorizační server nepodporuje tento typ odpovědi. + unsupported_grant_type: Tento typ oprávnění není autorizačním serverem podporován. + unsupported_response_type: Autorizační server tento typ odpovědi nepodporuje. flash: applications: create: @@ -119,30 +120,32 @@ cs: admin:read:reports: číst citlivé informace všech nahlášení a nahlášených účtů admin:write: měnit všechna data na serveru admin:write:accounts: provádět moderátorské akce s účty - admin:write:reports: provádět moderátorské akce s nahlášeními + admin:write:reports: provádět moderátorské akce s hlášeními follow: upravovat vztahy mezi profily push: přijímat vaše push oznámení read: vidět všechna data vašeho účtu read:accounts: vidět informace o účtech read:blocks: vidět vaše blokace - read:favourites: vidět vaše oblíbení + read:bookmarks: vidět vaše záložky + read:favourites: vidět vaše oblíbené příspěvky read:filters: vidět vaše filtry read:follows: vidět vaše sledování read:lists: vidět vaše seznamy read:mutes: vidět vaše skrytí read:notifications: vidět vaše oznámení - read:reports: vidět vaše nahlášení + read:reports: vidět vaše hlášení read:search: vyhledávat za vás read:statuses: vidět všechny tooty write: měnit všechna data vašeho účtu write:accounts: měnit váš profil write:blocks: blokovat účty a domény - write:favourites: oblibovat si tooty + write:bookmarks: přidávat tooty do záložek + write:favourites: označovat tooty jako oblíbené write:filters: vytvářet filtry write:follows: sledovat lidi write:lists: vytvářet seznamy write:media: nahrávat mediální soubory write:mutes: skrývat lidi a konverzace - write:notifications: vymazávat vaše oznámení + write:notifications: mazat vaše oznámení write:reports: nahlašovat jiné uživatele - write:statuses: publikovat tooty + write:statuses: zvařejňovat tooty diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml index e29043e86..08e4baaff 100644 --- a/config/locales/doorkeeper.cy.yml +++ b/config/locales/doorkeeper.cy.yml @@ -125,6 +125,7 @@ cy: read: darllen holl ddata eich cyfrif read:accounts: gweld gwybodaeth y cyfrif read:blocks: gweld eich blociau + read:bookmarks: gweld eich tudalnodau read:favourites: gweld eich ffefrynnau read:filters: gweld eich hidlwyr read:follows: gweld eich dilynwyr @@ -137,6 +138,7 @@ cy: write: addasu holl ddata eich cyfri write:accounts: addasu eich proffil write:blocks: blocio cyfrifon a parthau + write:bookmarks: statwsau tudalnod write:favourites: hoff dŵtiau write:filters: creu hidlwyr write:follows: dilyn pobl diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml index 4d2c95aff..04f524c0a 100644 --- a/config/locales/doorkeeper.da.yml +++ b/config/locales/doorkeeper.da.yml @@ -61,7 +61,7 @@ da: new: able_to: Den vil være i stand til prompt: Applikationen %{client_name} anmoder om adgang til din konto - title: Godkendelse påkræves + title: Godkendelse påkrævet show: title: Kopiere denne godkendelseskode og indsæt den i applikationen. authorized_applications: @@ -125,6 +125,7 @@ da: read: læse alle din kontos data read:accounts: se konto oplysninger read:blocks: se dine blokeringer + read:bookmarks: se dine bogmærker read:favourites: se dine favoritter read:filters: se dine filtre read:follows: se hvem du følger @@ -137,6 +138,7 @@ da: write: ændre din kontos data write:accounts: ændre din profil write:blocks: bloker konti og domæner + write:bookmarks: bogmærk statusser write:favourites: favoriser statusser write:filters: opret filtre write:follows: følg folk diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index c41a847b2..8b850b56a 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -38,6 +38,7 @@ de: application: Anwendung callback_url: Callback-URL delete: Löschen + empty: Du hast keine Anwendungen. name: Name new: Neue Anwendung scopes: Befugnisse @@ -125,6 +126,7 @@ de: read: all deine Daten lesen read:accounts: deine Konteninformationen einsehen read:blocks: deine Blockaden einsehen + read:bookmarks: deine Lesezeichen lesen read:favourites: deine Favoriten ansehen read:filters: deine Filter ansehen read:follows: sehen, wem du folgst @@ -137,6 +139,7 @@ de: write: all deine Benutzerdaten verändern write:accounts: dein Profil bearbeiten write:blocks: Domains und Konten blockieren + write:bookmarks: Lesezeichen hinzufügen write:favourites: Beiträge favorisieren write:filters: Filter erstellen write:follows: Leuten folgen diff --git a/config/locales/doorkeeper.el.yml b/config/locales/doorkeeper.el.yml index 66bee0b0d..7423606d4 100644 --- a/config/locales/doorkeeper.el.yml +++ b/config/locales/doorkeeper.el.yml @@ -38,6 +38,7 @@ el: application: Εφαρμογή callback_url: URL επιστροφής (Callback) delete: Διαγραφή + empty: Δεν έχετε αιτήσεις. name: Όνομα new: Νέα εφαρμογή scopes: Εύρος εφαρμογής @@ -125,6 +126,7 @@ el: read: να διαβάζει όλα τα στοιχεία του λογαριασμού σου read:accounts: να βλέπει τα στοιχεία λογαριασμών read:blocks: να βλέπει τους αποκλεισμένους σου + read:bookmarks: εμφάνιση των σελιδοδεικτών σας read:favourites: να βλέπει τα αγαπημένα σου read:filters: να βλέπει τα φίλτρα σου read:follows: να βλέπει ποιους ακολουθείς @@ -137,6 +139,7 @@ el: write: να αλλάζει όλα τα στοιχεία του λογαριασμού σου write:accounts: να αλλάζει το προφίλ σου write:blocks: να μπλοκάρει λογαριασμούς και τομείς + write:bookmarks: προσθήκη σελιδοδεικτών write:favourites: να σημειώνει δημοσιεύσεις ως αγαπημένες write:filters: να δημιουργεί φίλτρα write:follows: να ακολουθεί ανθρώπους diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index 2be2ef036..4e9c83a8f 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -38,7 +38,6 @@ en: application: Application callback_url: Callback URL delete: Delete - empty: You have no applications. name: Name new: New application scopes: Scopes diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml index 171e7d404..5f54f1a5f 100644 --- a/config/locales/doorkeeper.eo.yml +++ b/config/locales/doorkeeper.eo.yml @@ -38,6 +38,7 @@ eo: application: Aplikaĵo callback_url: Revena URL delete: Forigi + empty: Vi havas neniun aplikaĵon. name: Nomo new: Nova aplikaĵo scopes: Ampleksoj @@ -116,13 +117,14 @@ eo: scopes: admin:read: legu ĉiujn datumojn en la servilo admin:read:accounts: legas senteman informacion de ĉiuj kontoj - admin:read:reports: legas senteman informacion de ĉiuj raportoj kun raportis kontojn + admin:read:reports: legas konfidencajn informojn de ĉiuj signaloj kaj signalitaj kontoj admin:write: modifu ĉiujn datumojn en la servilo follow: ŝanĝi rilatojn al aliaj kontoj push: ricevi viajn puŝ-sciigojn read: legi ĉiujn datumojn de via konto read:accounts: vidi la informojn de la konto read:blocks: vidi viajn blokojn + read:bookmarks: vidi viajn legosignojn read:favourites: vidi viajn stelumojn read:filters: vidi viajn filtrilojn read:follows: vidi viajn sekvatojn @@ -135,6 +137,7 @@ eo: write: ŝanĝi ĉiujn datumojn de via konto write:accounts: ŝanĝi vian profilon write:blocks: bloki kontojn kaj domajnojn + write:bookmarks: aldoni mesaĝojn al la legosignoj write:favourites: stelumitaj mesaĝoj write:filters: krei filtrilojn write:follows: sekvi homojn diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index 14ac59521..85ab7729d 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -38,6 +38,7 @@ es-AR: application: Aplicación callback_url: Dirección web de respuesta ("callback") delete: Eliminar + empty: No tenés aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos @@ -125,6 +126,7 @@ es-AR: read: leer todos los datos de tu cuenta read:accounts: ver información de cuentas read:blocks: ver qué cuentas bloqueaste + read:bookmarks: mirá tus marcadores read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver qué cuentas seguís @@ -137,6 +139,7 @@ es-AR: write: modificar todos los datos de tu cuenta write:accounts: modificar tu perfil write:blocks: bloquear cuentas y dominios + write:bookmarks: estados del marcador write:favourites: toots favoritos write:filters: crear filtros write:follows: seguir cuentas diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 1b03e33f2..ba437ca9b 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -38,6 +38,7 @@ es: application: Aplicación callback_url: URL de callback delete: Eliminar + empty: No tienes aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos @@ -125,6 +126,7 @@ es: read: leer los datos de tu cuenta read:accounts: ver información de cuentas read:blocks: ver a quién has bloqueado + read:bookmarks: ver tus marcadores read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver a quién sigues @@ -137,7 +139,8 @@ es: write: publicar en tu nombre write:accounts: modifica tu perfil write:blocks: bloquear cuentas y dominios - write:favourites: toots favoritos + write:bookmarks: guardar estados como marcadores + write:favourites: estados favoritos write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml index f2a33ad0a..d3b011a67 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -38,6 +38,7 @@ et: application: Rakendus callback_url: Ümbersuunamise URL delete: Kustuta + empty: Teil pole rakendusi. name: Nimi new: Uus rakendus scopes: Ulatused @@ -125,6 +126,7 @@ et: read: lugeda kogu Teie konto andmeid read:accounts: näha konto informatsiooni read:blocks: näha Teie blokeeringuid + read:bookmarks: näha järjehoidjaid read:favourites: näha Teie lemmikuid read:filters: näha Teie filtreid read:follows: näha Teie jälgimisi @@ -137,6 +139,7 @@ et: write: redigeerida kogu Teie konto andmeid write:accounts: redigeerida Teie profiili write:blocks: blokeerida kontosid ja domeene + write:bookmarks: lisada staatusele järjehoidjaid write:favourites: lisada staatuseid lemmikuks write:filters: luua filtreid write:follows: jälgida inimesi diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml index 70e52e8ad..10ef75dc4 100644 --- a/config/locales/doorkeeper.eu.yml +++ b/config/locales/doorkeeper.eu.yml @@ -38,6 +38,7 @@ eu: application: Aplikazioa callback_url: Itzulera URLa delete: Ezabatu + empty: Ez duzu eskaerarik. name: Izena new: Aplikazio berria scopes: Irismena @@ -125,6 +126,7 @@ eu: read: irakurri zure kontuko datu guztiak read:accounts: ikusi kontuaren informazioa read:blocks: ikusi zure blokeoak + read:bookmarks: ikusi zure laster-markak read:favourites: ikusi zure gogokoak read:filters: ikusi zure iragazkiak read:follows: ikusi zuk jarraitutakoak @@ -137,6 +139,7 @@ eu: write: kontuaren datu guztiak aldatzea write:accounts: zure profila aldatzea write:blocks: kontuak eta domeinuak blokeatzea + write:bookmarks: mezuen laster-marka write:favourites: gogoko mezuak write:filters: sortu iragazkiak write:follows: jarraitu jendea diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml index b677c3346..c9ca1895e 100644 --- a/config/locales/doorkeeper.fa.yml +++ b/config/locales/doorkeeper.fa.yml @@ -5,8 +5,8 @@ fa: doorkeeper/application: name: نام برنامه redirect_uri: نشانی تغییرمسیر - scopes: محدوده - website: وبگاه برنامه + scopes: حوزه‌ها + website: پایگاه وب برنامه errors: models: doorkeeper/application: @@ -23,6 +23,7 @@ fa: cancel: لغو destroy: پاک کردن edit: ویرایش + submit: ثبت confirmations: destroy: آیا مطمئن هستید؟ edit: @@ -37,6 +38,7 @@ fa: application: برنامه callback_url: نشانی Callback delete: حذف + empty: شما هیچ برنامه‌ای ندارید. name: نام new: برنامهٔ تازه scopes: دامنه‌ها @@ -45,6 +47,7 @@ fa: new: title: برنامهٔ تازه show: + actions: کنش‌ها application_id: کلید کلاینت callback_urls: نشانی‌های Callabck scopes: دامنه‌ها @@ -70,17 +73,29 @@ fa: index: application: برنامه created_at: مجازشده از + date_format: "%Y-%m-%d%H:%M:%S" scopes: اجازه‌ها title: برنامه‌های مجاز errors: messages: access_denied: دارندهٔ منبع یا سرور اجازه دهنده درخواست را نپذیرفت. + credential_flow_not_configured: جریان اعتبارنامهٔ گذرواژهٔ مالک منبع به دلیل پیکربندی نشده بودن Doorkeeper.configure.resource_owner_from_credentials شکست خورد. + invalid_client: تأیید هویت کارخواه به دلیل کارخواه ناشناخته، عدم وجود تأیید هویت کاره یا روش تأیید هویت پشتیبانی‌نشده شکست خورد. + invalid_grant: اعطای دسترسی فراهم ‌شده نامعتبر، منقضی یا نامطابق با نشانی بازگشت استفاده‌شده در درخواست تأیید هویت بوده و یا برای کارخواهی دیگر صادر شده است. + invalid_redirect_uri: نشانی بازگشت موجود، معتبر نیست. + invalid_request: درخواست فاقد یک پارامتر ضروری، شامل یک پارامتر پشتیبانی‌نشده یا به‌هم ریخته است. + invalid_resource_owner: اعتبارنامهٔ مالک منبع فراهم‌شده نامعتبر بوده یا مالک منبع نتوانست پیدا شود + invalid_scope: حوزهٔ درخواستی نامعتبر، ناشناخته یا دستکاری‌شده است. invalid_token: expired: کد دسترسی منقضی شده است revoked: کد دسترسی فسخ شده است unknown: کد دسترسی معتبر نیست + resource_owner_authenticator_not_configured: یافتن مالک منبع به دلیل پیکربندی‌نشده بودن Doorkeeper.configure.resource_owner_authenticator شکست خورد. server_error: خطای پیش‌بینی‌نشده‌ای برای سرور اجازه‌دهنده رخ داد که جلوی اجرای این درخواست را گرفت. temporarily_unavailable: سرور اجازه‌دهنده به دلیل بار زیاد یا تعمیرات سرور هم‌اینک نمی‌تواند درخواست شما را بررسی کند. + unauthorized_client: کارخواه مجاز نیست این درخواست را با استفاده از این روش انجام دهد. + unsupported_grant_type: گونهٔ اعطای تأیید هویت توسّط کارساز تأیید هویتپشتیبانی نمی‌شود. + unsupported_response_type: کارساز تأیید هویت این گونه از پاسخ را پشتیبانی نمی‌کند. flash: applications: create: @@ -100,7 +115,37 @@ fa: application: title: درخواست اجازهٔ OAuth scopes: + admin:read: خواندن تمام داده‌ها روی کارساز + admin:read:accounts: خواندن اطّلاعات حساس از همهٔ حساب‌ها + admin:read:reports: خواندن اطّلاعات حساس از همهٔ گزارش‌ها و حساب‌های گزارش‌شده + admin:write: تغییر تمام داده‌ها روی کارساز + admin:write:accounts: انجام کنش مدیریتی روی حساب‌ها + admin:write:reports: انجام کنش مدیریتی روی گزارش‌ها follow: پیگیری، مسدودسازی، لغو مسدودسازی، و لغو پیگیری حساب‌ها push: برای حساب خود اعلان‌های لحظه‌ای دریافت کنید read: خواندن اطلاعات حساب شما + read:accounts: دیدن اطّلاعات حساب + read:blocks: دیدن انسدادهایتان + read:bookmarks: دیدن نشانک‌هایتان + read:favourites: دیدن برگزیده‌هایتان + read:filters: دیدن پالایه‌هایتان + read:follows: دیدن پی‌گیری‌هایتان + read:lists: دیدن فهرست‌هایتان + read:mutes: دیدن خموشی‌هایتان + read:notifications: دیدن آگاهی‌هایتان + read:reports: دیدن گزارش‌هایتان + read:search: حست‌وجو از سمت خودتان + read:statuses: دیدن همهٔ وضعیت‌ها write: انتشار مطالب از طرف شما + write:accounts: تغییر نمایه‌تان + write:blocks: انسداد حساب‌ها و دامنه‌ها + write:bookmarks: نشانک‌گذاری وضعیت‌ها + write:favourites: برگزیدن وضعیت‌ها + write:filters: ایحاد پالایش‌ها + write:follows: پی‌گیری افراد + write:lists: ایجاد فهرست‌ها + write:media: بارگذاری پرونده‌های رسانه + write:mutes: خموش کردن افراد و گفت‌وگوها + write:notifications: پام‌سازی آگاهی‌هایتان + write:reports: گزارش دیگر افراد + write:statuses: انتشار وضعیت‌ها diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 5dc13af87..11bbe8cf1 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -33,14 +33,14 @@ fr: help: native_redirect_uri: Utiliser %{native_redirect_uri} pour les tests locaux redirect_uri: Utiliser une ligne par URL - scopes: Séparer les portées avec des espaces. Laisser vide pour utiliser les portées par défaut. + scopes: Séparer les permissions avec des espaces. Laisser vide pour utiliser les portées par défaut. index: application: Application callback_url: URL de retour d’appel delete: Effacer name: Nom new: Nouvelle application - scopes: Portées + scopes: Permissions show: Voir title: Vos applications new: @@ -49,7 +49,7 @@ fr: actions: Actions application_id: ID de l’application callback_urls: URL du retour d’appel - scopes: Portées + scopes: Permissions secret: Secret title: 'Application : %{name}' authorizations: @@ -73,7 +73,7 @@ fr: application: Application created_at: Créé le date_format: "%d-%m-%Y %H:%M:%S" - scopes: permissions + scopes: Permissions title: Vos applications autorisées errors: messages: @@ -84,7 +84,7 @@ fr: invalid_redirect_uri: L’URL de redirection n’est pas valide. invalid_request: La requête omet un paramètre requis, inclut une valeur de paramètre non prise en charge ou est autrement mal formée. invalid_resource_owner: Les identifiants fournis par le propriétaire de la ressource ne sont pas valides ou le propriétaire de la ressource ne peut être trouvé - invalid_scope: La portée demandée n’est pas valide, est inconnue ou mal formée. + invalid_scope: La permission demandée est invalide, inconnue ou mal formée. invalid_token: expired: Le jeton d’accès a expiré revoked: Le jeton d’accès a été révoqué @@ -119,30 +119,32 @@ fr: admin:read:reports: lire les informations sensibles de tous les signalements et des comptes signalés admin:write: modifier toutes les données sur le serveur admin:write:accounts: effectuer des actions de modération sur les comptes - admin:write:reports: effectuer des actions de modération sur les singnalements - follow: modifier les relations avec les comptes + admin:write:reports: effectuer des actions de modération sur les signalements + follow: modifier les relations du compte push: recevoir vos notifications poussées read: lire toutes les données de votre compte - read:accounts: voir les informations du compte - read:blocks: voir vos bloquages + read:accounts: voir les informations des comptes + read:blocks: voir vos blocages + read:bookmarks: voir vos marque-pages read:favourites: voir vos favoris read:filters: voir vos filtres - read:follows: voir vos suivis + read:follows: voir vos abonnements read:lists: voir vos listes read:mutes: voir vos masquages read:notifications: voir vos notifications - read:reports: voir vos rapports + read:reports: voir vos signalements read:search: rechercher en votre nom read:statuses: voir tous les statuts write: modifier toutes les données de votre compte write:accounts: modifier votre profil write:blocks: bloquer des comptes et des domaines - write:favourites: statuts favoris + write:bookmarks: statuts des marque-pages + write:favourites: mettre des statuts en favori write:filters: créer des filtres - write:follows: suivre les gens + write:follows: suivre des personnes write:lists: créer des listes - write:media: téléverser des fichiers-média + write:media: téléverser des fichiers média write:mutes: masquer des gens et des conversations write:notifications: nettoyer vos notifications - write:reports: rapporter d’autres personnes + write:reports: signaler d’autres personnes write:statuses: publier des statuts diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 90cbd9b38..71547b984 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -38,6 +38,7 @@ gl: application: Aplicativo callback_url: URL de chamada delete: Eliminar + empty: Non tes aplicacións. name: Nome new: Novo aplicativo scopes: Permisos @@ -125,6 +126,7 @@ gl: read: ler todos os datos da súa conta read:accounts: ver información das contas read:blocks: ver a quen bloquea + read:bookmarks: aquí tes os marcadores read:favourites: ver as súas favoritas read:filters: ver os seus filtros read:follows: ver a quen segue @@ -137,6 +139,7 @@ gl: write: modificar todos os datos da súa conta write:accounts: modificar o seu perfil write:blocks: bloquear contas e dominios + write:bookmarks: marca os estados write:favourites: estados favoritos write:filters: crear filtros write:follows: seguir usuarias diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index 92b4e6839..61e7dd5f1 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -125,6 +125,7 @@ hu: read: fiókod adatainak olvasása read:accounts: fiók adatainak megtekintése read:blocks: letiltások megtekintése + read:bookmarks: könyvjelzőid megtekintése read:favourites: kedvencek megtekintése read:filters: szűrök megtekintése read:follows: követések megtekintése @@ -137,6 +138,7 @@ hu: write: fiókod adatainak megváltoztatása write:accounts: profilod megváltoztatása write:blocks: fiókok és domainek letiltása + write:bookmarks: könyvjelzők állapota write:favourites: tülkök kedvencnek jelölése write:filters: szűrők létrehozása write:follows: mások követése diff --git a/config/locales/doorkeeper.id.yml b/config/locales/doorkeeper.id.yml index 08d2470f0..b461a77b6 100644 --- a/config/locales/doorkeeper.id.yml +++ b/config/locales/doorkeeper.id.yml @@ -38,6 +38,7 @@ id: application: Aplikasi callback_url: URL Callback delete: Hapus + empty: Anda tidak punya aplikasi. name: Nama new: Aplikasi baru scopes: Cakupan @@ -125,6 +126,7 @@ id: read: membaca data pada akun anda read:accounts: lihat informasi akun read:blocks: lihat blokiran Anda + read:bookmarks: lihat markah Anda read:favourites: lihat favorit Anda read:filters: lihat saringan Anda read:follows: lihat yang Anda ikuti @@ -137,6 +139,7 @@ id: write: memposting sebagai anda write:accounts: ubah profil Anda write:blocks: blokir akun dan domain + write:bookmarks: status markah write:favourites: status favorit write:filters: buat saringan write:follows: ikuti orang diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml new file mode 100644 index 000000000..31c4bca9f --- /dev/null +++ b/config/locales/doorkeeper.is.yml @@ -0,0 +1,140 @@ +--- +is: + activerecord: + attributes: + doorkeeper/application: + name: Heiti forrits + redirect_uri: Slóð endurbeiningar + scopes: Gildissvið + website: Vefsvæði forrits + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: má ekki innihalda brot. + invalid_uri: verður að vera gild URI-slóð. + relative_uri: verður að vera algild URI-slóð. + secured_uri: verður að vera HTTPS/SSL URI-slóð. + doorkeeper: + applications: + buttons: + authorize: Heimila + cancel: Hætta við + destroy: Eyðileggja + edit: Breyta + submit: Senda inn + confirmations: + destroy: Ertu viss? + edit: + title: Breyta forriti + form: + error: Úbbs! Athugaðu með mögulegar villur í útfyllingarreitum + help: + native_redirect_uri: Notaðu %{native_redirect_uri} fyrir staðværar prófanir + redirect_uri: Nota eina línu á hverja URI-slóð + scopes: Aðgreindu gildissviðin með bilum. Skildu þetta eftir autt til að nota sjálfgefin gildissvið. + index: + application: Forrit + callback_url: URL-slóð baksvörunar (callback) + delete: Eyða + name: Heiti + new: Nýtt forrit + scopes: Gildissvið + show: Sýna + title: Forritin þín + new: + title: Nýtt forrit + show: + actions: Aðgerðir + application_id: Lykill biðlara + callback_urls: URL-slóðir baksvörunar (callback) + scopes: Gildissvið + secret: Leynilykill biðlara + title: 'Forrit: %{name}' + authorizations: + buttons: + authorize: Heimila + deny: Neita + error: + title: Villa kom upp + new: + able_to: Það mun geta + prompt: Forritið %{client_name} biður um aðgang að notandaaðgangnum þínum + title: Auðkenning er nauðsynleg + show: + title: Afritaðu þennan auðkenningarkóða og límdu hann inn hjá forritinu. + authorized_applications: + buttons: + revoke: Afturkalla + confirmations: + revoke: Ertu viss? + index: + application: Forrit + created_at: Heimilað + date_format: "%Y-%m-%d %H:%M:%S" + scopes: Gildissvið + title: Heimiluðu forritin þín + errors: + messages: + access_denied: Eigandi tilfangs eða auðkenningarþjónn höfnuðu beininni. + invalid_redirect_uri: Endurbeiningarslóðin sem fylgdi er ekki gild. + invalid_scope: Umbeðið gildissvið er ógilt, óþekkt eða rangt uppsett. + invalid_token: + expired: Auðkenningarteiknið er útrunnið + revoked: Auðkenningarteiknið var aturkallað + unknown: Auðkenningarteiknið er ógilt + unsupported_response_type: Auðkenningarþjónninn styður ekki þessa tegund svars. + flash: + applications: + create: + notice: Forrit útbúið. + destroy: + notice: Forriti eytt. + update: + notice: Forrit uppfært. + authorized_applications: + destroy: + notice: Forrit afturkallað. + layouts: + admin: + nav: + applications: Forrit + oauth2_provider: OAuth þjónusta + application: + title: Krafist er OAuth auðkenningar við að + scopes: + admin:read: lesa öll gögn á netþjóninum + admin:read:accounts: lesa viðkvæmar upplýsingar á öllum notendaaðgöngum + admin:read:reports: lesa viðkvæmar upplýsingar í öllum skýrslum og kærðum notendaaðgöngum + admin:write: breyta öllum gögnum á netþjóninum + admin:write:accounts: framkvæma umsjónaraðgerðir á notendaaðganga + admin:write:reports: framkvæma umsjónaraðgerðir á kærur + follow: breyta venslum aðgangs + push: taka á móti ýti-tilkynningum til þín + read: lesa öll gögn á notandaaðgangnum þínum + read:accounts: sjá upplýsingar í notendaaðgöngum + read:blocks: skoða útilokanirnar þínar + read:bookmarks: skoða bókamerki + read:favourites: skoða eftirlætin þín + read:filters: skoða síurnar þínar + read:follows: sjá hverjum þú fylgist með + read:lists: skoða listana þína + read:mutes: skoða hverja þú þaggar + read:notifications: sjá tilkynningarnar þínar + read:reports: skoða skýrslurnar þína + read:search: leita fyrir þína hönd + read:statuses: sjá allar stöðufærslur + write: breyta öllum gögnum á notandaaðgangnum þínum + write:accounts: breyta notandasniðinu þínu + write:blocks: útiloka notandaaðganga og lén + write:bookmarks: bókamerkja stöðufærslur + write:favourites: setja stöðufærslur í eftirlæti + write:filters: útbúa síur + write:follows: fylgjast með fólki + write:lists: búa til lista + write:media: senda inn myndefnisskrár + write:mutes: þagga niður í fólki og samtölum + write:notifications: hreinsa tilkynningarnar þínar + write:reports: kæra annað fólk + write:statuses: gefa út stöður diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml index 361d0bd75..68e2b57f3 100644 --- a/config/locales/doorkeeper.it.yml +++ b/config/locales/doorkeeper.it.yml @@ -38,6 +38,7 @@ it: application: Applicazione callback_url: URL di callback delete: Elimina + empty: Non hai applicazioni. name: Nome new: Nuova applicazione scopes: Visibilità @@ -125,6 +126,7 @@ it: read: leggere tutte le informazioni del tuo account read:accounts: vedere informazioni sull'account read:blocks: vedere i tuoi blocchi + read:bookmarks: vedi i tuoi preferiti read:favourites: vedere i tuoi preferiti read:filters: vedere i tuoi filtri read:follows: vedere i tuoi seguiti @@ -137,6 +139,7 @@ it: write: modificare tutti i dati del tuo account write:accounts: modificare il tuo profilo write:blocks: bloccare account e domini + write:bookmarks: aggiungi post ai preferiti write:favourites: segnare status come preferiti write:filters: creare filtri write:follows: seguire persone diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml index d80212f82..72c98c00c 100644 --- a/config/locales/doorkeeper.ja.yml +++ b/config/locales/doorkeeper.ja.yml @@ -38,6 +38,7 @@ ja: application: アプリ callback_url: コールバックURL delete: 削除 + empty: アプリがありません name: 名前 new: 新規アプリ scopes: アクセス権 @@ -125,6 +126,7 @@ ja: read: アカウントのすべてのデータの読み取り read:accounts: アカウント情報の読み取り read:blocks: ブロックの読み取り + read:bookmarks: ブックマークを見る read:favourites: お気に入りの読み取り read:filters: フィルターの読み取り read:follows: フォローの読み取り @@ -137,6 +139,7 @@ ja: write: アカウントのすべてのデータの変更 write:accounts: プロフィールの変更 write:blocks: ユーザーのブロックやドメインの非表示 + write:bookmarks: トゥートのブックマーク登録 write:favourites: トゥートのお気に入り登録 write:filters: フィルターの変更 write:follows: あなたの代わりにフォロー、アンフォロー diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml new file mode 100644 index 000000000..376c86d81 --- /dev/null +++ b/config/locales/doorkeeper.kab.yml @@ -0,0 +1,104 @@ +--- +kab: + activerecord: + attributes: + doorkeeper/application: + name: Isem n usnas + redirect_uri: URI n uwelleh + website: Asmel web n usnas + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: ur yezmir ad yegber afrur. + invalid_uri: ilaq ad tili d tansa URL tameɣtut. + relative_uri: ilaq ad yili d URI amagdaz. + secured_uri: ilaq URI ad yili HTTPS/SSL. + doorkeeper: + applications: + buttons: + authorize: Ssireg + cancel: Sefsex + destroy: Hudd + edit: Ẓreg + submit: Azen + confirmations: + destroy: Tetḥeqqeḍ? + edit: + title: Ẓreg asnas + form: + error: Ay ay! Senqed tiferkit-inek ma ulac deg-s tuccḍiwin + help: + native_redirect_uri: Seqdec %{native_redirect_uri} i yisekyaden idiganen + redirect_uri: Seqdec yiwen n ujerrid i yal URI + index: + application: Asnas + callback_url: URL n tririt n wawal + delete: Kkes + name: Isem + new: Asnas amaynut + show: Ẓer + title: Isnasen-ik + new: + title: Asnas amaynut + show: + actions: Tigawin + application_id: ID n usnas + callback_urls: URL n tririt n wawal + title: 'Asnas: %{name}' + authorizations: + buttons: + authorize: Ssireg + deny: Ggami + error: + title: Tella-d tuccḍa + new: + able_to: Asnas-agi yezmer + prompt: Eǧǧ i %{client_name} ad yekcem ɣer umiḍan-ik + show: + title: Nɣel tangalt n wurag sakkin senteḍ-itt deg usnas. + authorized_applications: + confirmations: + revoke: Tetḥeqqeḍ? + index: + application: Asnas + created_at: Yettussireg + date_format: "%d-%m-%Y %H:%M:%S" + errors: + messages: + invalid_redirect_uri: URI n uwelleh mačči d ameɣtu. + flash: + applications: + create: + notice: Asnas yettwarna-d. + destroy: + notice: Asnan yettwakkes. + update: + notice: Asnan yettwalqem. + layouts: + admin: + nav: + applications: Isnasen + scopes: + admin:read: ɣeṛ akk isefka ɣef uqeddac + admin:write: ẓreg akk isefka ɣef uqeddac + follow: beddel assaɣen n umiḍan + push: ṭṭef-d tilɣa-ik yettwademren + read: ɣeṛ akk isefka n umiḍan-ik + read:accounts: ẓer isallen n yimiḍanen + read:blocks: ẓer imiḍanen i tesḥebseḍ + read:bookmarks: ẓer ticraḍ-ik + read:favourites: ẓer ismenyifen-ik + read:filters: ẓer imsizedgen-ik + read:follows: ẓer imeḍfaṛen-ik + read:lists: ẓer tibdarin-ik + read:mutes: ẓer wid i tesgugmeḍ + read:notifications: ẓer tilɣa-ik + read:statuses: ẓer meṛṛa tisuffaɣ + write: beddel meṛṛa isefka n umiḍan-ik + write:accounts: ẓreg amaɣnu-ik + write:blocks: seḥbes imiḍanen d tɣula + write:filters: rnu-d imsizedgen + write:follows: ḍfeṛ imdanen + write:lists: rnu-d tibdarin diff --git a/config/locales/doorkeeper.kk.yml b/config/locales/doorkeeper.kk.yml index cdbc89636..75f8de542 100644 --- a/config/locales/doorkeeper.kk.yml +++ b/config/locales/doorkeeper.kk.yml @@ -38,6 +38,7 @@ kk: application: Қосымша callback_url: Callbаck URL delete: Өшіру + empty: Сізде ешқандай қосымша жоқ. name: Аты new: Жаңа қосымша scopes: Scopеs @@ -125,6 +126,7 @@ kk: read: read all your accоunt's data read:accounts: see accounts infоrmation read:blocks: see your blоcks + read:bookmarks: белгілегендерді қарау read:favourites: see your favоurites read:filters: see yоur filters read:follows: see your follоws @@ -137,6 +139,7 @@ kk: write: modify all your accоunt's data write:accounts: modify your prоfile write:blocks: block accounts and dоmains + write:bookmarks: белгілер статусы write:favourites: favourite stаtuses write:filters: creаte filters write:follows: follow peоple diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 8337325e2..3d4cb4441 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -38,6 +38,7 @@ ko: application: 애플리케이션 callback_url: 콜백 URL delete: 삭제 + empty: 어플리케이션이 없습니다 name: 이름 new: 새 애플리케이션 scopes: 범위 @@ -125,6 +126,7 @@ ko: read: 계정의 모든 데이터를 읽기 read:accounts: 계정의 정보를 보기 read:blocks: 차단을 보기 + read:bookmarks: 내 갈무리 보기 read:favourites: 관심글을 보기 read:filters: 필터를 보기 read:follows: 팔로우를 보기 @@ -137,6 +139,7 @@ ko: write: 계정 정보 수정 write:accounts: 프로필 수정 write:blocks: 계정이나 도메인 차단 + write:bookmarks: 게시글을 갈무리하기 write:favourites: 관심글 지정 write:filters: 필터 만들기 write:follows: 사람을 팔로우 diff --git a/config/locales/doorkeeper.ml.yml b/config/locales/doorkeeper.ml.yml index 6931a683d..80a749b04 100644 --- a/config/locales/doorkeeper.ml.yml +++ b/config/locales/doorkeeper.ml.yml @@ -1 +1,29 @@ +--- ml: + activerecord: + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + invalid_uri: URI സാധുവായിരിക്കണം. + relative_uri: URI വിപുലീകരിച്ചതായിരിക്കണം. + secured_uri: URI HTTPS/SSL ആയിരിക്കണം. + doorkeeper: + applications: + buttons: + authorize: ചുമതലപ്പെടുത്തുക + cancel: റദ്ദാക്കുക + destroy: നശിപ്പിക്കുക + edit: തിരുത്തുക + submit: സമർപ്പിക്കുക + confirmations: + destroy: നിങ്ങൾക്ക് ഉറപ്പാണോ? + index: + delete: മായ്ക്കുക + name: പേര് + authorized_applications: + buttons: + revoke: പിൻവലിക്കുക + confirmations: + revoke: നിങ്ങൾക്ക് ഉറപ്പാണോ? diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index 1fabfc123..3b1d10d1f 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -114,29 +114,31 @@ nl: application: title: OAuth-autorisatie vereist scopes: - admin:read: lees alle gegevens op de server - admin:read:accounts: lees gevoelige informatie van alle accounts - admin:read:reports: lees gevoelige informatie van alle rapportages en gerapporteerde accounts + admin:read: alle gegevens op de server lezen + admin:read:accounts: gevoelige informatie van alle accounts lezen + admin:read:reports: gevoelige informatie van alle rapportages en gerapporteerde accounts lezen admin:write: wijzig alle gegevens op de server admin:write:accounts: moderatieacties op accounts uitvoeren admin:write:reports: moderatieacties op rapportages uitvoeren follow: relaties tussen accounts bewerken - push: ontvang jouw pushmeldingen + push: jouw pushmeldingen ontvangen read: alle gegevens van jouw account lezen - read:accounts: zie informatie accounts - read:blocks: zie jouw geblokkeerde gebruikers - read:favourites: zie jouw favorieten - read:filters: zie jouw filters - read:follows: zie de accounts die jij volgt - read:lists: zie jouw lijsten - read:mutes: zie jouw genegeerde gebruikers - read:notifications: zie jouw meldingen - read:reports: zie jouw gerapporteerde toots + read:accounts: informatie accounts bekijken + read:blocks: jouw geblokkeerde gebruikers bekijken + read:bookmarks: jouw bladwijzers bekijken + read:favourites: jouw favorieten bekijken + read:filters: jouw filters bekijken + read:follows: de accounts die jij volgt bekijken + read:lists: jouw lijsten bekijken + read:mutes: jouw genegeerde gebruikers bekijken + read:notifications: jouw meldingen bekijken + read:reports: jouw gerapporteerde toots bekijken read:search: namens jou zoeken - read:statuses: zie alle toots + read:statuses: alle toots bekijken write: alle gegevens van jouw account bewerken write:accounts: jouw profiel bewerken write:blocks: accounts en domeinen blokkeren + write:bookmarks: toots aan bladwijzers toevoegen write:favourites: toots als favoriet markeren write:filters: filters aanmaken write:follows: mensen volgen diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 777f4e600..b31e69b3b 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -1 +1,150 @@ +--- nn: + activerecord: + attributes: + doorkeeper/application: + name: Applikasjonsnamn + redirect_uri: Omdirigerings-URI + scopes: Omfang + website: Applikasjonsnettside + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: kan ikkje innehalde eit fragment. + invalid_uri: må vere ein gyldig URI. + relative_uri: må vere ein absolutt URI. + secured_uri: må vere ein HTTPS/SSL URI. + doorkeeper: + applications: + buttons: + authorize: Autoriser + cancel: Avbryt + destroy: Utslett + edit: Rediger + submit: Send inn + confirmations: + destroy: Er du sikker? + edit: + title: Rediger søknad + form: + error: Oi sann! Sjekk skjemaet for eventuelle mistak + help: + native_redirect_uri: Bruk %{native_redirect_uri} for lokale testar + redirect_uri: Bruk ei linjer per URI + scopes: Adskill omfang med mellomrom. La det være blankt for å bruke standard omfang. + index: + application: Applikasjon + callback_url: Callback-URL + delete: Slett + name: Namn + new: Ny applikasjon + scopes: Omfang + show: Vis + title: Dine applikasjonar + new: + title: Ny applikasjon + show: + actions: Handlingar + application_id: Klientnøkkel + callback_urls: Callback-URLer + scopes: Omfang + secret: Klienthemmelegheit + title: 'Applikasjon: %{name}' + authorizations: + buttons: + authorize: Autoriser + deny: Avslå + error: + title: Ein feil har oppstått + new: + able_to: Den vil ha mulighet til + prompt: Applikasjon %{client_name} spør om tilgang til din konto + title: Autorisasjon nødvendig + show: + title: Kopier denne autorisasjonskoden og lim den inn i applikasjonen. + authorized_applications: + buttons: + revoke: Opphev + confirmations: + revoke: Er du sikker? + index: + application: Applikasjon + created_at: Autorisert + date_format: "%Y-%m-%d %H:%M:%S" + scopes: Omfang + title: Dine autoriserte applikasjonar + errors: + messages: + access_denied: Ressurseieren eller autoriseringstjeneren avviste forespørslen. + credential_flow_not_configured: Ressurseiers passordflyt feilet fordi Doorkeeper.configure.resource_owner_from_credentials ikke var konfigurert. + invalid_client: Klientautentisering feilet på grunn av ukjent klient, ingen autentisering inkludert, eller autentiseringsmetode er ikke støttet. + invalid_grant: Autoriseringen er ugyldig, utløpt, opphevet, stemmer ikke overens med omdirigerings-URIen eller var utstedt til en annen klient. + invalid_redirect_uri: Den inkluderte omdirigerings-URLen er ikke gyldig. + invalid_request: Forespørslen mangler en eller flere parametere, inkluderte en parameter som ikke støttes eller har feil struktur. + invalid_resource_owner: Ressurseierens detaljer er ikke gyldige, eller så er det ikke mulig å finne eieren + invalid_scope: Det etterspurte omfanget er ugyldig, ukjent eller har feil struktur. + invalid_token: + expired: Tilgangsbeviset har utløpt + revoked: Tilgangsbeviset har blitt opphevet + unknown: Tilgangsbeviset er ugyldig + resource_owner_authenticator_not_configured: Ressurseier kunne ikke finnes fordi Doorkeeper.configure.resource_owner_authenticator ikke er konfigurert. + server_error: Autoriseringstjeneren støtte på en uventet hendelse som hindret den i å svare på forespørslen. + temporarily_unavailable: Autoriseringstjeneren kan ikke håndtere forespørslen grunnet en midlertidig overbelastning eller tjenervedlikehold. + unauthorized_client: Klienten har ikke autorisasjon for å utføre denne forespørslen med denne metoden. + unsupported_grant_type: Autorisasjonstildelingstypen er ikke støttet av denne autoriseringstjeneren. + unsupported_response_type: Autorisasjonsserveren støtter ikke denne typen av forespørsler. + flash: + applications: + create: + notice: App laga. + destroy: + notice: Appen er sletta. + update: + notice: App oppdatert. + authorized_applications: + destroy: + notice: App avvist. + layouts: + admin: + nav: + applications: Appar + oauth2_provider: OAuth2-tilbyder + application: + title: OAuth-autorisering påkrevet + scopes: + admin:read: lese alle data på tjeneren + admin:read:accounts: lese sensitiv informasjon om alle kontoer + admin:read:reports: lese sensitiv informasjon om alle rapporter og rapporterte kontoer + admin:write: modifisere alle data på tjeneren + admin:write:accounts: utføre moderatorhandlinger på kontoer + admin:write:reports: utføre moderatorhandlinger på rapporter + follow: følg, blokkér, avblokkér, avfølg brukere + push: motta dine varsler + read: lese dine data + read:accounts: se informasjon om kontoer + read:blocks: se dine blokkeringer + read:bookmarks: sjå bokmerka dine + read:favourites: sjå favorittane dine + read:filters: sjå filtera dine + read:follows: sjå fylgjarane dine + read:lists: sjå listene dine + read:mutes: sjå kven du har målbunde + read:notifications: sjå varsla dine + read:reports: sjå rapportane dine + read:search: søke på dine vegne + read:statuses: sjå alle statusar + write: poste på dine vegne + write:accounts: rediger profilen din + write:blocks: blokker kontoar og domene + write:bookmarks: bokmerk statusar + write:favourites: merk statusar som favoritt + write:filters: lag filter + write:follows: fylg folk + write:lists: lag lister + write:media: last opp mediefiler + write:mutes: målbind folk og samtalar + write:notifications: tøm varsla dine + write:reports: rapporter andre folk + write:statuses: legg ut statusar diff --git a/config/locales/doorkeeper.no.yml b/config/locales/doorkeeper.no.yml index 263fef15e..a1970f3ea 100644 --- a/config/locales/doorkeeper.no.yml +++ b/config/locales/doorkeeper.no.yml @@ -72,6 +72,7 @@ index: application: Applikasjon created_at: Autorisert + date_format: "%Y-%m-%d %H:%M:%S" scopes: Omfang title: Dine autoriserte applikasjoner errors: @@ -113,6 +114,37 @@ application: title: OAuth-autorisering påkrevet scopes: + admin:read: lese alle data på tjeneren + admin:read:accounts: lese sensitiv informasjon om alle kontoer + admin:read:reports: lese sensitiv informasjon om alle rapporter og rapporterte kontoer + admin:write: modifisere alle data på tjeneren + admin:write:accounts: utføre moderatorhandlinger på kontoer + admin:write:reports: utføre moderatorhandlinger på rapporter follow: følg, blokkér, avblokkér, avfølg brukere + push: motta dine varsler read: lese dine data + read:accounts: se informasjon om kontoer + read:blocks: se dine blokkeringer + read:bookmarks: se dine bokmerker + read:favourites: se dine likinger + read:filters: se dine filtre + read:follows: se dine følginger + read:lists: se listene dine + read:mutes: se dine dempinger + read:notifications: se dine varslinger + read:reports: se dine rapporter + read:search: søke på dine vegne + read:statuses: se alle statuser write: poste på dine vegne + write:accounts: endre på profilen din + write:blocks: blokkere kontoer og domener + write:bookmarks: bokmerke statuser + write:favourites: like statuser + write:filters: opprett filtre + write:follows: følg personer + write:lists: opprett lister + write:media: last opp mediafiler + write:mutes: dempe folk og samtaler + write:notifications: tømme dine varsler + write:reports: rapportere andre folk + write:statuses: legg ut statuser diff --git a/config/locales/doorkeeper.oc.yml b/config/locales/doorkeeper.oc.yml index e715cc7d5..749a49a4c 100644 --- a/config/locales/doorkeeper.oc.yml +++ b/config/locales/doorkeeper.oc.yml @@ -125,6 +125,7 @@ oc: read: legir totas las donadas de vòstre compte read:accounts: veire las informacions del compte read:blocks: veire vòstres blocatges + read:bookmarks: veire vòstres marcadors read:favourites: veire vòstres favorits read:filters: veire vòstres filtres read:follows: veire vòstres abonaments @@ -137,6 +138,7 @@ oc: write: modificar totas las donadas de vòstre compte write:accounts: modificar vòstre perfil write:blocks: blocar de comptes e de domenis + write:bookmarks: ajustar als marcadors write:favourites: metre en favorit write:filters: crear de filtres write:follows: sègre de monde diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml index dfab853c6..90d8f9358 100644 --- a/config/locales/doorkeeper.pt-BR.yml +++ b/config/locales/doorkeeper.pt-BR.yml @@ -4,18 +4,18 @@ pt-BR: attributes: doorkeeper/application: name: Nome do aplicativo - redirect_uri: URI de redirecionamento + redirect_uri: Link de redirecionamento scopes: Autorizações - website: Website do aplicativo + website: Site do aplicativo errors: models: doorkeeper/application: attributes: redirect_uri: fragment_present: não pode conter um fragmento. - invalid_uri: precisa ser uma URI válida. - relative_uri: precisa ser uma URI absoluta. - secured_uri: precisa ser uma URI HTTPS/SSL. + invalid_uri: precisa ser um link válido. + relative_uri: precisa ser um link absoluto. + secured_uri: precisa ser um link HTTPS/SSL. doorkeeper: applications: buttons: @@ -29,26 +29,27 @@ pt-BR: edit: title: Editar aplicativo form: - error: Oops! Verifique o seu formulário para saber de possíveis erros + error: Eita! Verifique o seu formulário para saber de possíveis erros help: native_redirect_uri: Use %{native_redirect_uri} para testes locais - redirect_uri: Use uma linha para cada URI + redirect_uri: Use uma linha para cada link scopes: Separe autorizações com espaços. Deixe em branco para usar autorizações padrões. index: application: Aplicativos - callback_url: URL de retorno + callback_url: Link de retorno delete: Excluir + empty: Não tem aplicações. name: Nome new: Novo aplicativo scopes: Autorizações show: Mostrar title: Seus aplicativos new: - title: Novos aplicativos + title: Novo aplicativo show: actions: Ações application_id: Chave do cliente - callback_urls: URLs de retorno + callback_urls: Links de retorno scopes: Autorizações secret: Segredo do cliente title: 'Aplicativo: %{name}' @@ -59,7 +60,7 @@ pt-BR: error: title: Ocorreu um erro new: - able_to: Será capaz de + able_to: Poderá prompt: O aplicativo %{client_name} solicita acesso à sua conta title: Autorização necessária show: @@ -79,28 +80,28 @@ pt-BR: messages: access_denied: O proprietário ou servidor de autorização negou a solicitação. credential_flow_not_configured: Cadeira de Credenciais de Senha do Proprietário falhou porque Doorkeeper.configure.resource_owner_from_credentials não foram configuradas. - invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação incluído ou método de autenticação não suportado. - invalid_grant: A garantia de autorização é inválida, expirou, foi revogada, não é equivalente à URI de redirecionamento usada da solicitação de autorização ou foi emitida por outro cliente. - invalid_redirect_uri: A URI de redirecionamento incluída não é válida. - invalid_request: A solicitação não possui um parâmetro obrigatório, inclui um valor não suportado ou está mal formatada. + invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação foi incluído ou o método de autenticação não é suportado. + invalid_grant: A garantia de autorização está inválida, expirou ou foi revogada, não é equivalente ao link de redirecionamento usado na solicitação de autorização ou foi emitido por outro cliente. + invalid_redirect_uri: O link de redirecionamento não é válido. + invalid_request: A solicitação não possui um parâmetro obrigatório, inclui um valor não suportado ou está mal formatado. invalid_resource_owner: As credenciais do proprietário informadas não são válidas ou o proprietário não pôde ser encontrado invalid_scope: A autorização requirida é inválida, desconhecida ou está mal formatada. invalid_token: - expired: O token de acesso expirou - revoked: O token de acesso foi revogado - unknown: O token de acesso é inválido - resource_owner_authenticator_not_configured: Procura pelo proprietário falhou porque Doorkeeper.configure.resource_owner_authenticator não foi configurado. + expired: O código de acesso expirou + revoked: O código de acesso foi revogado + unknown: O código de acesso é inválido + resource_owner_authenticator_not_configured: A procura pelo Proprietário do Recurso falhou porque Doorkeeper.configure.resource_owner_authenticator não foi configurado. server_error: O servidor de autorização encontrou uma condição inesperada que preveniu a solicitação de ser respondida. - temporarily_unavailable: O servidor de autorização é incapaz de lidar com a solicitação no momento por causa d múltiplas requisições ou manutenção programada. - unauthorized_client: O cliente não possui autorização para performar esta solicitação usando este método. - unsupported_grant_type: O tipo de garantia de autorização não é suportada pelo servidor de autorização. + temporarily_unavailable: O servidor de autorização é incapaz de lidar com a solicitação no momento devido à múltiplas requisições ou manutenção programada. + unauthorized_client: O cliente não possui autorização para executar esta solicitação usando este método. + unsupported_grant_type: O tipo de garantia de autorização não é suportado pelo servidor de autorização. unsupported_response_type: O servidor de autorização não suporta este tipo de resposta. flash: applications: create: notice: Aplicativo criado. destroy: - notice: Aplicativo deletado. + notice: Aplicativo excluído. update: notice: Aplicativo atualizado. authorized_applications: @@ -109,34 +110,42 @@ pt-BR: layouts: admin: nav: - applications: Aplicativo + applications: Aplicativos oauth2_provider: Provedor de OAuth2 application: title: Autorização OAuth obrigatória scopes: - follow: modificar as relações com outras contas - push: receber suas notificações push + admin:read: ler todos os dados no servidor + admin:read:accounts: ler informações sensíveis de todas as contas + admin:read:reports: ler informações sensíveis de todas as denúncias e contas denunciadas + admin:write: alterar todos os dados no servidor + admin:write:accounts: executar ações de moderação em contas + admin:write:reports: executar ações de moderação em denúncias + follow: alterar o relacionamento das contas + push: receber notificações push read: ler todos os dados da sua conta - read:accounts: ver as informações da conta + read:accounts: ver informações das contas read:blocks: ver seus bloqueios + read:bookmarks: ver seus salvos read:favourites: ver seus favoritos read:filters: ver seus filtros read:follows: ver quem você segue read:lists: ver suas listas - read:mutes: ver seus usuários silenciados + read:mutes: ver seus silenciamentos read:notifications: ver suas notificações read:reports: ver suas denúncias - read:search: buscar em seu nome - read:statuses: ver todos os status - write: modificar todos os dados da sua conta - write:accounts: modificar seu perfil + read:search: pesquisar em seu nome + read:statuses: ver todos os toots + write: alterar todos os dados da sua conta + write:accounts: alterar seu perfil write:blocks: bloquear contas e domínios - write:favourites: status favoritos + write:bookmarks: salvar toots + write:favourites: favoritar toots write:filters: criar filtros write:follows: seguir pessoas write:lists: criar listas write:media: enviar arquivos de mídia write:mutes: silenciar pessoas e conversas - write:notifications: limpar suas notificações - write:reports: reportar outras pessoas - write:statuses: publicar status + write:notifications: limpar notificações + write:reports: denunciar outras pessoas + write:statuses: postar toots diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml index 42068e0a0..2433f23e9 100644 --- a/config/locales/doorkeeper.pt-PT.yml +++ b/config/locales/doorkeeper.pt-PT.yml @@ -38,6 +38,7 @@ pt-PT: application: Aplicações callback_url: URL de retorno delete: Eliminar + empty: Não tem aplicações. name: Nome new: Nova Aplicação scopes: Autorizações @@ -72,6 +73,7 @@ pt-PT: index: application: Aplicação created_at: Criada em + date_format: "%d-%m-%Y %H:%M:%S" scopes: Autorizações title: As tuas aplicações autorizadas errors: @@ -113,6 +115,37 @@ pt-PT: application: title: Autorização OAuth necessária scopes: + admin:read: ler todos os dados no servidor + admin:read:accounts: ler informações sensíveis de todas as contas + admin:read:reports: ler informações sensíveis de todos os relatórios e contas reportadas + admin:write: modificar todos os dados no servidor + admin:write:accounts: executar ações de moderação em contas + admin:write:reports: executar ações de moderação em relatórios follow: siga, bloqueie, desbloqueie, e deixa de seguir contas + push: receber as suas notificações push read: tenha acesso aos dados da tua conta + read:accounts: ver as informações da conta + read:blocks: ver os seus bloqueios + read:bookmarks: ver os seus favoritos + read:favourites: ver os seus favoritos + read:filters: ver os seus filtros + read:follows: ver quem você segue + read:lists: ver as suas listas + read:mutes: ver os utilizadores que silenciou + read:notifications: ver as suas notificações + read:reports: ver as suas denúncias + read:search: pesquisar em seu nome + read:statuses: ver todos os estados write: publique por ti + write:accounts: modificar o seu perfil + write:blocks: bloquear contas e domínios + write:bookmarks: estado dos favoritos + write:favourites: estado dos favoritos + write:filters: criar filtros + write:follows: seguir pessoas + write:lists: criar listas + write:media: carregar arquivos de média + write:mutes: silenciar pessoas e conversas + write:notifications: limpar as suas notificações + write:reports: reportar outras pessoas + write:statuses: publicar estado diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index 1682205a5..532e2c9ac 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -5,7 +5,7 @@ ru: doorkeeper/application: name: Название redirect_uri: URI перенаправления - scopes: Права + scopes: Разрешения website: Веб-сайт приложения errors: models: @@ -38,13 +38,14 @@ ru: application: Приложение callback_url: Callback URL delete: Удалить + empty: У вас нет созданных приложений. name: Название new: Новое приложение - scopes: Права + scopes: Разрешения show: Показывать title: Ваши приложения new: - title: Новое Приложение + title: Создание приложения show: actions: Действия application_id: Id приложения @@ -122,27 +123,29 @@ ru: admin:write:reports: производить модерацию жалоб follow: управлять подписками и списком блокировок push: получать push-уведомления - read: читать данные Вашей учётной записи + read: просматривать данные вашей учётной записи read:accounts: видеть информацию об учётных записях - read:blocks: видеть ваших заблокированных + read:blocks: видеть ваши блокировки + read:bookmarks: видеть ваши закладки read:favourites: видеть ваше избранное read:filters: видеть ваши фильтры - read:follows: видеть, на кого вы подписаны + read:follows: видеть ваши подписки read:lists: видеть ваши списки - read:mutes: видеть список заглушенных - read:notifications: видеть ваши уведомления + read:mutes: видеть список игнорируемых + read:notifications: получать уведомления read:reports: видеть ваши жалобы read:search: использовать поиск - read:statuses: видеть все статусы + read:statuses: видеть все ваши посты write: изменять все данные вашей учётной записи write:accounts: редактировать ваш профиль write:blocks: блокировать учётные записи и домены - write:favourites: отмечать статусы как избранные + write:bookmarks: добавлять посты в закладки + write:favourites: отмечать посты как избранные write:filters: создавать фильтры write:follows: подписываться на людей write:lists: создавать списки - write:media: выкладывать медиаконтент - write:mutes: заглушать людей и обсуждения + write:media: загружать файлы + write:mutes: добавлять в игнорируемое людей и обсуждения write:notifications: очищать список уведомлений write:reports: отправлять жалобы на других - write:statuses: публиковать статусы + write:statuses: публиковать посты diff --git a/config/locales/doorkeeper.sk.yml b/config/locales/doorkeeper.sk.yml index be52a3db2..4cd80a4e0 100644 --- a/config/locales/doorkeeper.sk.yml +++ b/config/locales/doorkeeper.sk.yml @@ -124,6 +124,7 @@ sk: read: prezri si všetky dáta ohľadom svojho účetu read:accounts: prezri si informácie o účte read:blocks: prezri svoje bloky + read:bookmarks: pozri svoje záložky read:favourites: prezri svoje obľúbené read:filters: prezri svoje filtrovanie read:follows: prezri si svoje sledovania @@ -136,6 +137,7 @@ sk: write: upraviť všetky dáta tvojho účtu write:accounts: uprav svoj profil write:blocks: blokuj účty a domény + write:bookmarks: pridaj si príspevky k záložkám write:favourites: obľúbené príspevky write:filters: vytvor roztriedenie write:follows: následuj ľudí diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 47b11b7fd..d9367ce5e 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -25,7 +25,7 @@ sv: edit: Redigera submit: Skicka confirmations: - destroy: Äre du säker? + destroy: Är du säker? edit: title: Redigera applikation form: @@ -38,6 +38,7 @@ sv: application: Applikation callback_url: Återkalls URL delete: Ta bort + empty: Du har inga program. name: Namn new: Ny applikation scopes: Omfattning @@ -120,16 +121,16 @@ sv: admin:write:accounts: utför alla aktiviteter för moderering på konton admin:write:reports: utför alla aktiviteter för moderering i rapporter follow: följa, blockera, ta bort blockerade och sluta följa konton - push: ta emot push aviseringar för ditt konto + push: ta emot push-aviseringar för ditt konto read: läsa dina kontodata read:accounts: se kontoinformation - read:blocks: se dina block + read:blocks: se dina blockeringar read:favourites: se dina favoriter read:filters: se dina filter read:follows: se vem du följer read:lists: se dina listor read:mutes: se dina tystningar - read:notifications: se dina notifieringar + read:notifications: se dina aviseringar read:reports: se dina rapporter read:search: sök å dina vägnar read:statuses: se alla statusar @@ -142,6 +143,6 @@ sv: write:lists: skapa listor write:media: ladda upp mediafiler write:mutes: tysta människor och konversationer - write:notifications: rensa dina notifieringar + write:notifications: rensa dina aviseringar write:reports: rapportera andra människor write:statuses: publicera statusar diff --git a/config/locales/doorkeeper.ta.yml b/config/locales/doorkeeper.ta.yml index 879b6ab21..2f266a754 100644 --- a/config/locales/doorkeeper.ta.yml +++ b/config/locales/doorkeeper.ta.yml @@ -16,6 +16,7 @@ ta: error: அய்யோ! உள்ளீடுகளில் உள்ள தவறுகளைச் சரி செய்யுங்கள் index: application: பயன்பாடு + empty: செயலிகள் எதுவும் இல்லை. title: உங்களது பயன்பாடுகள் new: title: புதிய பயன்பாடு diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index 2b4f08385..597a65038 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -36,6 +36,7 @@ th: application: แอปพลิเคชัน callback_url: URL เรียกกลับ delete: ลบ + empty: คุณไม่มีแอปพลิเคชัน name: ชื่อ new: แอปพลิเคชันใหม่ scopes: ขอบเขต @@ -77,6 +78,8 @@ th: messages: access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ invalid_token: + expired: โทเคนการเข้าถึงหมดอายุแล้ว + revoked: เพิกถอนโทเคนการเข้าถึงแล้ว unknown: โทเคนการเข้าถึงไม่ถูกต้อง flash: applications: @@ -98,12 +101,15 @@ th: title: ต้องมีการอนุญาต OAuth scopes: admin:read: อ่านข้อมูลทั้งหมดในเซิร์ฟเวอร์ - admin:write: แก้ไขข้อมูลทั้งหมดในเซิร์ฟเวอร์ + admin:read:accounts: อ่านข้อมูลที่ละเอียดอ่อนของบัญชีทั้งหมด + admin:read:reports: อ่านข้อมูลที่ละเอียดอ่อนของรายงานและบัญชีที่ได้รับการรายงานทั้งหมด + admin:write: ปรับเปลี่ยนข้อมูลทั้งหมดในเซิร์ฟเวอร์ follow: ปรับเปลี่ยนความสัมพันธ์ของบัญชี push: รับการแจ้งเตือนแบบผลักของคุณ read: อ่านข้อมูลบัญชีทั้งหมดของคุณ read:accounts: ดูข้อมูลบัญชี read:blocks: ดูการปิดกั้นของคุณ + read:bookmarks: ดูที่คั่นหน้าของคุณ read:favourites: ดูรายการโปรดของคุณ read:filters: ดูตัวกรองของคุณ read:follows: ดูการติดตามของคุณ @@ -116,6 +122,7 @@ th: write: ปรับเปลี่ยนข้อมูลบัญชีทั้งหมดของคุณ write:accounts: ปรับเปลี่ยนโปรไฟล์ของคุณ write:blocks: ปิดกั้นบัญชีและโดเมน + write:bookmarks: เพิ่มที่คั่นหน้าสถานะ write:favourites: ชื่นชอบสถานะ write:filters: สร้างตัวกรอง write:follows: ติดตามผู้คน diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index 120689a3a..a218e3157 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -38,6 +38,7 @@ tr: application: Uygulama callback_url: Geri Dönüş URL delete: Sil + empty: Hiç uygulamanız yok. name: İsim new: Yeni uygulama scopes: Kapsam @@ -125,6 +126,7 @@ tr: read: hesabınızın tüm verilerini okuyun read:accounts: hesap bilgilerini gör read:blocks: engellemelerinizi görün + read:bookmarks: yer imlerinizi görün read:favourites: favorilerini gör read:filters: filtrelerinizi görün read:follows: izlerini gör @@ -137,6 +139,7 @@ tr: write: hesabınızın tüm verilerini değiştirin write:accounts: profilini değiştir write:blocks: hesapları ve alan adlarını engelleyin + write:bookmarks: durumları yer imlerine ekle write:favourites: favori durumlar write:filters: filtre oluştur write:follows: insanları takip et diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml new file mode 100644 index 000000000..7df1d0892 --- /dev/null +++ b/config/locales/doorkeeper.vi.yml @@ -0,0 +1,150 @@ +--- +vi: + activerecord: + attributes: + doorkeeper/application: + name: Tên ứng dụng + redirect_uri: Chuyển hướng URI + scopes: Phạm vi + website: Trang web ứng dụng + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: không thể chứa một mảnh. + invalid_uri: phải là một URI hợp lệ. + relative_uri: phải là một URI tuyệt đối. + secured_uri: phải là URI HTTPS / SSL. + doorkeeper: + applications: + buttons: + authorize: Ủy quyền + cancel: Hủy bỏ + destroy: Xoá bỏ + edit: Sửa + submit: Gửi đi + confirmations: + destroy: Bạn có chắc không? + edit: + title: Chỉnh sửa ứng dụng + form: + error: Rất tiếc! Hãy kiểm tra thông tin của bạn vì có thể nó có lỗi + help: + native_redirect_uri: Sử dụng %{native_redirect_uri} khi kiểm thử ở máy nội bộ + redirect_uri: Sử dụng một dòng trên mỗi URI + scopes: Phạm vi riêng biệt với không gian. Để trống để sử dụng phạm vi mặc định. + index: + application: Ứng dụng + callback_url: gọi lại URL + delete: Xóa bỏ + name: Tên + new: Ứng dụng mới + scopes: Phạm vi + show: Xem + title: Ứng dụng của bạn + new: + title: Ứng dụng mới + show: + actions: Hành động + application_id: Khóa khách + callback_urls: URL gọi lại + scopes: Phạm vi + secret: Bí mật khách hàng + title: 'Ứng dụng: %{name}' + authorizations: + buttons: + authorize: Ủy quyền + deny: Từ chối + error: + title: một lỗi đã xảy ra + new: + able_to: Nó sẽ có thể + prompt: Ứng dụng %{client_name} yêu cầu quyền truy cập vào tài khoản của bạn + title: Cần được ủy quyền + show: + title: Sao chép mã ủy quyền này và dán nó vào ứng dụng. + authorized_applications: + buttons: + revoke: Thu hồi + confirmations: + revoke: Bạn có chắc không? + index: + application: Ứng dụng + created_at: Được ủy quyền + date_format: "% Y-% m-%d% H:% M:% S" + scopes: Phạm vi + title: Các ứng dụng đã được cấp phép + errors: + messages: + access_denied: Chủ sở hữu tài nguyên hoặc máy chủ ủy quyền từ chối yêu cầu. + credential_flow_not_configured: Resource Owner Password Credentials không thành công do Doorkeeper.configure.resource_owner_from_credentials không được định cấu hình. + invalid_client: Xác thực ứng dụng khách không thành công do máy khách không xác định, không bao gồm xác thực ứng dụng khách hoặc phương thức xác thực không được hỗ trợ. + invalid_grant: Cấp quyền được cung cấp không hợp lệ, hết hạn, bị thu hồi, không khớp với URI chuyển hướng được sử dụng trong yêu cầu ủy quyền hoặc được cấp cho một khách hàng khác. + invalid_redirect_uri: Uri chuyển hướng bao gồm không hợp lệ. + invalid_request: Yêu cầu thiếu tham số bắt buộc, bao gồm giá trị tham số không được hỗ trợ hoặc không đúng định dạng. + invalid_resource_owner: Thông tin xác thực chủ sở hữu tài nguyên được cung cấp không hợp lệ hoặc không thể tìm thấy chủ sở hữu tài nguyên + invalid_scope: Phạm vi yêu cầu không hợp lệ, không xác định hoặc không đúng định dạng. + invalid_token: + expired: Mã thông báo truy cập đã hết hạn + revoked: Mã thông báo truy cập đã bị thu hồi + unknown: Mã thông báo truy cập không hợp lệ + resource_owner_authenticator_not_configured: Chủ sở hữu tài nguyên tìm thấy thất bại do Doorkeeper.configure.resource_owner_authenticator không được định cấu hình. + server_error: Máy chủ ủy quyền đã gặp phải một điều kiện không mong muốn khiến nó không thể thực hiện yêu cầu. + temporarily_unavailable: Máy chủ ủy quyền hiện không thể xử lý yêu cầu do quá tải tạm thời hoặc bảo trì máy chủ. + unauthorized_client: Khách hàng không được phép thực hiện yêu cầu này bằng phương pháp này. + unsupported_grant_type: Loại cấp quyền không được hỗ trợ bởi máy chủ ủy quyền. + unsupported_response_type: Máy chủ ủy quyền không hỗ trợ loại phản hồi này. + flash: + applications: + create: + notice: Ứng dụng được tạo. + destroy: + notice: Ứng dụng đã bị xóa. + update: + notice: Ứng dụng cập nhật. + authorized_applications: + destroy: + notice: Ứng dụng bị thu hồi. + layouts: + admin: + nav: + applications: Các ứng dụng + oauth2_provider: Nhà cung cấp OAuth2 + application: + title: Yêu cầu ủy quyền OAuth + scopes: + admin:read: đọc tất cả dữ liệu trên máy chủ + admin:read:accounts: đọc thông tin nhạy cảm của tất cả các tài khoản + admin:read:reports: đọc thông tin nhạy cảm của tất cả các báo cáo và tài khoản báo cáo + admin:write: sửa đổi tất cả dữ liệu trên máy chủ + admin:write:accounts: thực hiện các hành động kiểm duyệt trên tài khoản + admin:write:reports: thực hiện các hành động kiểm duyệt trên các báo cáo + follow: sửa đổi các mối quan hệ tài khoản + push: nhận thông báo đẩy của bạn + read: đọc tất cả dữ liệu tài khoản của bạn + read:accounts: xem thông tin tài khoản + read:blocks: xem khối của bạn + read:bookmarks: xem các mục đã lưu + read:favourites: xem yêu thích của bạn + read:filters: xem bộ lọc của bạn + read:follows: xem sau của bạn + read:lists: xem danh sách của bạn + read:mutes: xem những người bạn của bạn + read:notifications: xem thông báo của bạn + read:reports: xem báo cáo của bạn + read:search: thay mặt bạn tìm kiếm + read:statuses: xem tất cả các trạng thái + write: sửa đổi tất cả dữ liệu tài khoản của bạn + write:accounts: sửa đổi hồ sơ của bạn + write:blocks: chặn tài khoản và tên miền + write:bookmarks: những trạng thái đã lưu + write:favourites: trạng thái yêu thích + write:filters: tạo bộ lọc + write:follows: theo dõi mọi người + write:lists: tạo danh sách + write:media: tải lên tập tin phương tiện truyền thông + write:mutes: người câm và nói chuyện + write:notifications: xóa thông báo của bạn + write:reports: báo cáo người khác + write:statuses: xuất bản trạng thái diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml index 0d3c6d57e..f186a954a 100644 --- a/config/locales/doorkeeper.zh-CN.yml +++ b/config/locales/doorkeeper.zh-CN.yml @@ -4,7 +4,7 @@ zh-CN: attributes: doorkeeper/application: name: 应用名称 - redirect_uri: 重定向 URI + redirect_uri: 跳转 URI scopes: 权限范围 website: 应用网站 errors: @@ -115,16 +115,17 @@ zh-CN: title: 需要 OAuth 认证 scopes: admin:read: 读取服务器上的所有数据 - admin:read:accounts: 读取所有账户的敏感信息 - admin:read:reports: 读取所有举报和被举报账户的敏感信息 + admin:read:accounts: 读取所有帐号的敏感信息 + admin:read:reports: 读取所有举报和被举报帐号的敏感信息 admin:write: 修改服务器上的所有数据 - admin:write:accounts: 对账户执行管理操作 + admin:write:accounts: 对帐号执行管理操作 admin:write:reports: 对举报执行管理操作 follow: 关注或屏蔽用户 push: 接收你的帐户的推送通知 read: 读取你的帐户数据 - read:accounts: 查看账户信息 + read:accounts: 查看账号信息 read:blocks: 查看你的屏蔽列表 + read:bookmarks: 查看您的书签 read:favourites: 查看喜欢的嘟文 read:filters: 查看你的过滤器 read:follows: 查看你的关注 @@ -134,9 +135,10 @@ zh-CN: read:reports: 查看你的举报 read:search: 以你的身份搜索 read:statuses: 查看所有嘟文 - write: 修改你的账户数据 + write: 修改你的账号数据 write:accounts: 修改你的个人资料 - write:blocks: 屏蔽账户和域名 + write:blocks: 屏蔽账号和域名 + write:bookmarks: 为嘟文添加书签 write:favourites: 喜欢的嘟文 write:filters: 创建过滤器 write:follows: 关注其他人 diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml index d9c91caf0..30971f29f 100644 --- a/config/locales/doorkeeper.zh-HK.yml +++ b/config/locales/doorkeeper.zh-HK.yml @@ -72,6 +72,7 @@ zh-HK: index: application: 應用程式 created_at: 授權日期 + date_format: "%Y-%m-%d %H:%M:%S" scopes: 權限範圍 title: 已獲你授權的程用程式 errors: @@ -113,7 +114,37 @@ zh-HK: application: title: 需要 OAuth 授權 scopes: + admin:read: 讀取伺服器的所有資料 + admin:read:accounts: 讀取所有帳戶的敏感資訊 + admin:read:reports: 讀取所有回報 / 被回報之帳戶的敏感資訊 + admin:write: 修改伺服器的所有資料 + admin:write:accounts: 對帳戶進行仲裁管理動作 + admin:write:reports: 對報告進行仲裁管理動作 follow: 關注、封鎖、解除封鎖及取消關注用戶 push: 接收你的帳號的推送通知 read: 閱讀你的用戶資料 + read:accounts: 檢視帳戶資訊 + read:blocks: 檢視您的封鎖名單 + read:bookmarks: 檢視您的書籤 + read:favourites: 檢視您的收藏項目 + read:filters: 檢視您的過濾條件 + read:follows: 檢視您關注的人 + read:lists: 檢視您的名單 + read:mutes: 檢視您靜音的人 + read:notifications: 檢視您的通知 + read:reports: 檢視您的檢舉 + read:search: 以你的身份搜尋 + read:statuses: 檢視所有嘟文 write: 以你的名義發佈文章 + write:accounts: 修改您的個人檔案 + write:blocks: 封鎖帳戶及站台 + write:bookmarks: 書籤狀態 + write:favourites: 收藏嘟文 + write:filters: 建立過濾條件 + write:follows: 關注其他人 + write:lists: 建立名單 + write:media: 上傳媒體檔案 + write:mutes: 靜音使用者及對話 + write:notifications: 清除您的通知 + write:reports: 檢舉其他人 + write:statuses: 發布嘟文 diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index 0b2624aa9..536dd704c 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -125,6 +125,7 @@ zh-TW: read: 讀取您所有的帳號資料 read:accounts: 檢視帳戶資訊 read:blocks: 檢視您的封鎖名單 + read:bookmarks: 檢視您的書籤 read:favourites: 檢視您的收藏項目 read:filters: 檢視您的過濾條件 read:follows: 檢視您關注的人 @@ -137,6 +138,7 @@ zh-TW: write: 修改您帳號的所有資料 write:accounts: 修改您的個人檔案 write:blocks: 封鎖帳戶及站台 + write:bookmarks: 書籤狀態 write:favourites: 收藏嘟文 write:filters: 建立過濾條件 write:follows: 關注其他人 diff --git a/config/locales/el.yml b/config/locales/el.yml index 585eefab4..97ae2bd6c 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -2,7 +2,7 @@ el: about: about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με #%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse. - about_mastodon_html: Το Mastodon είναι ένα κοινωνικό δίκτυο που βασίζεται σε ανοιχτά δικτυακά πρωτόκολλα και ελεύθερο λογισμικό ανοιχτού κώδικα. Είναι αποκεντρωμένο όπως το e-mail. + about_mastodon_html: 'Το κοινωνικό δίκτυο του μέλλοντος: Χωρίς διαφημίσεις, χωρίς εταιρίες να σε κατασκοπεύουν, ηθικά σχεδιασμένο και αποκεντρωμένο! Με το Mastodon τα δεδομένα σου είναι πραγματικά δικά σου!' about_this: Σχετικά active_count_after: ενεργοί active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ) @@ -15,14 +15,14 @@ el: browse_public_posts: Ξεφύλλισε τη ζωντανή ροή του Mastodon contact: Επικοινωνία contact_missing: Δεν έχει οριστεί - contact_unavailable: Μ/Δ + contact_unavailable: Μη διαθέσιμο discover_users: Ανακάλυψε χρήστες documentation: Τεκμηρίωση - federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο στο Mastodon αλλά και αλλού. + federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο Mastodon αλλά και παραπέρα. get_apps: Δοκίμασε μια εφαρμογή κινητού hosted_on: Το Mastodon φιλοξενείται στο %{domain} instance_actor_flash: | - Αυτός ο λογαριασμός είναι εικονικός και απεικονίζει τον κόμβο, όχι κάποιο συγκεκριμένο χρήστη. + Αυτός ο λογαριασμός είναι εικονικός και απεικονίζει ολόκληρο τον κόμβο, όχι κάποιο συγκεκριμένο χρήστη. Χρησιμεύει στη λειτουργία της ομοσπονδίας και δε θα πρέπει να αποκλειστεί, εκτός κι αν είναι επιθυμητός ο αποκλεισμός ολόκληρου του κόμβου. Σε αυτή την περίπτωση θα πρέπει να χρησιμοποιηθεί η λειτουργία αποκλεισμού τομέα. learn_more: Μάθε περισσότερα privacy_policy: Πολιτική απορρήτου @@ -78,6 +78,7 @@ el: roles: admin: Διαχειριστής bot: Μποτ (αυτόματος λογαριασμός) + group: Ομάδα moderator: Μεσολαβητής unavailable: Το προφίλ δεν είναι διαθέσιμο unfollow: Διακοπή παρακολούθησης @@ -393,10 +394,18 @@ el: created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας! destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας! reports: + account: + notes: + one: "%{count} σημείωση" + other: "%{count} σημειώσεις" + reports: + one: "%{count} αναφορά" + other: "%{count} αναφορές" action_taken_by: Ενέργεια από τον/την are_you_sure: Σίγουρα; assign_to_self: Ανάθεση σε μένα assigned: Αρμόδιος συντονιστής + by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία comment: none: Κανένα created_at: Καταγγέλθηκε @@ -442,6 +451,8 @@ el: users: Προς συνδεδεμένους τοπικούς χρήστες domain_blocks_rationale: title: Εμφάνιση σκεπτικού + enable_bootstrap_timeline_accounts: + title: Προεπιλογή παρακολούθησης για τους νέους χρήστες hero: desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου title: Εικόνα ήρωα @@ -570,6 +581,10 @@ el: animations_and_accessibility: Κίνηση και προσβασιμότητα confirmation_dialogs: Ερωτήσεις επιβεβαίωσης discovery: Εξερεύνηση + localization: + body: Το Mastodon μεταφράζεται από εθελοντές. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Μπορεί να συνεισφέρει ο οποιοσδήποτε. sensitive_content: Ευαίσθητο περιεχόμενο toot_layout: Διαρρύθμιση τουτ application_mailer: @@ -592,7 +607,7 @@ el: change_password: Συνθηματικό checkbox_agreement_html: Συμφωνώ με τους κανονισμούς του κόμβου και τους όρους χρήσης checkbox_agreement_without_rules_html: Συμφωνώ με τους όρους χρήσης - delete_account: Διαγραφή email + delete_account: Διαγραφή λογαριασμού delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. description: prefix_invited_by_user: Ο/Η @%{name} σε προσκαλεί να συνδεθείς με αυτό τον διακομιστή του Mastodon! @@ -603,7 +618,7 @@ el: invalid_reset_password_token: Το διακριτικό επαναφοράς συνθηματικού είναι άκυρο ή ληγμένο. Παρακαλώ αιτήσου νέο. login: Σύνδεση logout: Αποσύνδεση - migrate_account: Μετακόμισε σε διαφορετικό λογαριασμό + migrate_account: Μετακόμιση σε διαφορετικό λογαριασμό migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το διαμορφώσεις εδώ. or_log_in_with: Ή συνδέσου με providers: @@ -701,14 +716,13 @@ el: archive_takeout: date: Ημερομηνία download: Κατέβασε το αρχείο σου - hint_html: Μπορείς να αιτηθείς ένα αρχείο των τουτ και των ανεβασμένων πολυμέσων σου. Τα δεδομένα θα είναι σε μορφή ActivityPub, προσιτά από οποιοδήποτε συμβατό πρόγραμμα. Μπορείς να αιτηθείς αρχείο κάθε 7 μέρες. + hint_html: Μπορείς να αιτηθείς ένα αρχείο των τουτ και των ανεβασμένων πολυμέσων σου. Τα δεδομένα θα είναι σε μορφή ActivityPub, προσπελάσιμα από οποιοδήποτε συμβατό πρόγραμμα. Μπορείς να αιτηθείς αρχείο κάθε 7 μέρες. in_progress: Συγκεντρώνουμε το αρχείο σου... request: Αιτήσου το αρχείο σου size: Μέγεθος blocks: Μπλοκάρεις csv: CSV domain_blocks: Μπλοκαρίσματα κόμβων - follows: Ακολουθείς lists: Λίστες mutes: Αποσιωπήσεις storage: Αποθήκευση πολυμέσων @@ -730,6 +744,7 @@ el: invalid_irreversible: Τα μη αντιστρέψιμα φίλτρα δουλεύουν μόνο στα πλαίσια της αρχικής ροής και των ειδοποιήσεων index: delete: Διαγραφή + empty: Δεν έχεις φίλτρα. title: Φίλτρα new: title: Πρόσθεσε νέο φίλτρο @@ -878,6 +893,10 @@ el: body: 'Η κατάστασή σου προωθήθηκε από τον/την %{name}:' subject: Ο/Η %{name} προώθησε την κατάστασή σου title: Νέα προώθηση + notifications: + email_events: Συμβάντα για ειδοποιήσεις μέσω email + email_events_hint: 'Επέλεξε συμβάντα για τα οποία θέλεις να λαμβάνεις ειδοποιήσεις μέσω email:' + other_settings: Άλλες ρυθμίσεις ειδοποιήσεων number: human: decimal_units: @@ -910,11 +929,13 @@ el: public_timelines: Δημόσιες ροές relationships: activity: Δραστηριότητα λογαριασμού - dormant: Αδρανής + dormant: Αδρανείς + followers: Σε ακολουθούν + following: Ακολουθείς last_active: Τελευταία δραστηριότητα most_recent: Πιο πρόσφατα moved: Μετακόμισε - mutual: Αμοιβαίος + mutual: Αμοιβαίοι primary: Βασικός relationship: Σχέση remove_selected_domains: Αφαίρεση ακόλουθων που βρίσκονται στους επιλεγμένους κόμβους @@ -1002,7 +1023,7 @@ el: notifications: Ειδοποιήσεις preferences: Προτιμήσεις profile: Προφίλ - relationships: Ακολουθεί και ακολουθείται + relationships: Ακολουθείς και σε ακολουθούν two_factor_authentication: Πιστοποίηση 2 παραγόντων (2FA) spam_check: spam_detected: Αυτή είναι μια αυτόματη αναφορά. Εντοπίστηκε ανεπιθύμητο υλικό (spam). @@ -1025,7 +1046,7 @@ el: over_character_limit: υπέρβαση μέγιστου ορίου %{max} χαρακτήρων pin_errors: limit: Έχεις ήδη καρφιτσώσει το μέγιστο αριθμό επιτρεπτών τουτ - ownership: Δεν μπορείς να καρφιτσώσεις μη δικό σου τουτ + ownership: Δεν μπορείς να καρφιτσώσεις τουτ κάποιου άλλου private: Τα μη δημόσια τουτ δεν καρφιτσώνονται reblog: Οι προωθήσεις δεν καρφιτσώνονται poll: @@ -1037,7 +1058,7 @@ el: other: "%{count} ψήφοι" vote: Ψήφισε show_more: Δείξε περισσότερα - sign_in_to_participate: Εγγράφου για να συμμετάσχεις στη συζήτηση + sign_in_to_participate: Συνδέσου για να συμμετάσχεις στη συζήτηση title: '%{name}: "%{quote}"' visibilities: private: Μόνο ακόλουθοι @@ -1161,7 +1182,7 @@ el: wrong_code: Ο κωδικός που έβαλες ήταν άκυρος! Τα ρολόγια στον διακομιστή και τη συσκευή είναι σωστά; user_mailer: backup_ready: - explanation: Ζήτησες ένα εφεδρικό αντίγραφο του λογαριασμού σου στο Mastodon. Είναι έτοιμο για κατέβασμα! + explanation: Είχες ζητήσει εφεδρικό αντίγραφο του λογαριασμού σου στο Mastodon. Είναι έτοιμο για κατέβασμα! subject: Το εφεδρικό αντίγραφό σου είναι έτοιμο για κατέβασμα title: Λήψη εφεδρικού αρχείου warning: @@ -1181,7 +1202,7 @@ el: disable: Παγωμένος λογαριασμός none: Προειδοποίηση silence: Περιορισμένος λογαριασμός - suspend: Ανασταλμένος λογαριασμός + suspend: Λογαριασμός σε αναστολή welcome: edit_profile_action: Στήσιμο προφίλ edit_profile_step: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου. diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 939dfe0c1..0742559ed 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -343,6 +343,9 @@ en_GB: created_msg: Report note successfully created! destroyed_msg: Report note successfully deleted! reports: + account: + note: note + report: report action_taken_by: Action taken by are_you_sure: Are you sure? assign_to_self: Assign to me diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 78ea19af5..3c640074d 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -71,6 +71,7 @@ eo: roles: admin: Administranto bot: Roboto + group: Grupo moderator: Kontrolanto unavailable: Profilo ne disponebla unfollow: Ne plu sekvi @@ -164,6 +165,7 @@ eo: staff: Teamo user: Uzanto search: Serĉi + search_same_ip: Aliaj uzantoj kun la sama IP shared_inbox_url: URL de kunhavigita leterkesto show: created_reports: Kreitaj signaloj @@ -190,12 +192,14 @@ eo: confirm_user: "%{name} konfirmis retadreson de uzanto %{target}" create_account_warning: "%{name} sendis averton al %{target}" create_custom_emoji: "%{name} alŝutis novan emoĝion %{target}" + create_domain_allow: "%{name} aldonis domajnon %{target} al la blanka listo" create_domain_block: "%{name} blokis domajnon %{target}" create_email_domain_block: "%{name} metis en nigran liston domajnon %{target}" demote_user: "%{name} degradis uzanton %{target}" destroy_custom_emoji: "%{name} neniigis la emoĝion %{target}" + destroy_domain_allow: "%{name} forigis domajnon %{target} el la blanka listo" destroy_domain_block: "%{name} malblokis domajnon %{target}" - destroy_email_domain_block: "%{name} metis en blankan liston domajnon %{target}" + destroy_email_domain_block: "%{name} aldonis retadresan domajnon %{target} al la blanka listo" destroy_status: "%{name} forigis mesaĝojn de %{target}" disable_2fa_user: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}" disable_custom_emoji: "%{name} malebligis emoĝion %{target}" @@ -218,10 +222,12 @@ eo: deleted_status: "(forigita mesaĝo)" title: Kontrola protokolo custom_emojis: + assign_category: Atribui kategorion by_domain: Domajno copied_msg: Loka kopio de la emoĝio sukcese kreita copy: Kopii copy_failed_msg: Fari lokan kopion de ĉi tiu emoĝio ne eblis + create_new_category: Krei novan kategorion created_msg: Emoĝio sukcese kreita! delete: Forigi destroyed_msg: Emoĝio sukcese forigita! @@ -241,6 +247,7 @@ eo: shortcode: Mallonga kodo shortcode_hint: Almenaŭ 2 signoj, nur literoj, ciferoj kaj substrekoj title: Propraj emoĝioj + uncategorized: Nekategoriigita unlist: Nelistigi unlisted: Nelistigita update_failed_msg: Ĝisdatigi tiun emoĝion ne eblis @@ -259,7 +266,8 @@ eo: feature_timeline_preview: Templinio antaŭvidi features: Funkcioj hidden_service: Federacio kun kaŝitaj servoj - open_reports: nefermitaj raportoj + open_reports: nesolvitaj signaloj + pending_users: uzantoj atendantaj revizion recent_users: Lastatempaj uzantoj search: Tutteksta serĉado single_user_mode: Unuuzanta reĝimo @@ -273,10 +281,10 @@ eo: week_users_new: uzantoj tiusemajne whitelist_mode: En la blanka listo domain_allows: - add_new: En la blanka listo domajno - created_msg: Domajno sukcese blanklistigita - destroyed_msg: Domajno estis forigita de la blanklisto - undo: Forigi de la blanklisto + add_new: Aldoni domajnon al la blanka listo + created_msg: Domajno estis sukcese aldonita al la blanka listo + destroyed_msg: Domajno estis forigita el la blanka listo + undo: Forigi el la blanka listo domain_blocks: add_new: Aldoni novan created_msg: Domajna blokado en traktado @@ -296,11 +304,11 @@ eo: private_comment: Privata komento public_comment: Publika komento reject_media: Malakcepti aŭdovidajn dosierojn - reject_media_hint: Forigas aŭdovidaĵojn loke konservitajn kaj rifuzas alŝuti ajnan estonte. Senzorge pri haltigoj - reject_reports: Malakcepti raportojn - reject_reports_hint: Ignori ĉiujn raportojn el tiu domajno. Nur gravas por silentigoj + reject_media_hint: Forigas aŭdovidaĵojn loke konservitajn kaj rifuzas alŝuti ajnan estonte. Ne koncernas haltigojn + reject_reports: Malakcepti signalojn + reject_reports_hint: Ignori ĉiujn signalojn el tiu domajno. Ne koncernas haltigojn rejecting_media: aŭdovidaj dosieroj malakceptiĝas - rejecting_reports: raportoj malakceptiĝas + rejecting_reports: malakceptas signalojn severity: silence: silentigita suspend: haltigita @@ -344,7 +352,7 @@ eo: total_blocked_by_us: Blokitaj de ni total_followed_by_them: Sekvataj de ili total_followed_by_us: Sekvataj de ni - total_reported: Raportoj pri ili + total_reported: Signaloj pri ili total_storage: Aŭdovidaj kunsendaĵoj invites: deactivate_all: Malaktivigi ĉion @@ -375,10 +383,18 @@ eo: created_msg: Signala noto sukcese kreita! destroyed_msg: Signala noto sukcese forigita! reports: + account: + notes: + one: "%{count} noto" + other: "%{count} notoj" + reports: + one: "%{count} signalo" + other: "%{count} signaloj" action_taken_by: Ago farita de are_you_sure: Ĉu vi certas? assign_to_self: Asigni al mi assigned: Asignita kontrolanto + by_target_domain: Domajno de la signalita konto comment: none: Nenio created_at: Signalita @@ -419,6 +435,10 @@ eo: disabled: Al neniu title: Vidi domajna blokado users: Al ensalutintaj lokaj uzantoj + domain_blocks_rationale: + title: Montri la kialon + enable_bootstrap_timeline_accounts: + title: Ebligi dekomencajn sekvantojn por novaj uzantoj hero: desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata title: Kapbildo @@ -496,6 +516,8 @@ eo: title: Mesaĝoj de la konto with_media: Kun aŭdovidaĵoj tags: + accounts_today: Unikaj uzoj hodiaŭ + accounts_week: Unikaj uzoj je ĉi tiu semajno context: Kunteksto directory: En la adresaro in_directory: "%{count} en adresaro" @@ -539,6 +561,10 @@ eo: animations_and_accessibility: Animacioj kaj alirebleco confirmation_dialogs: Konfirmaj fenestroj discovery: Eltrovo + localization: + body: Mastodon estas tradukita per volontuloj. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Ĉiu povas kontribui. sensitive_content: Tikla enhavo toot_layout: Mesaĝo aranĝo application_mailer: @@ -619,10 +645,15 @@ eo: x_months: "%{count}mo" x_seconds: "%{count}s" deletes: + challenge_not_passed: La informaĵo ke vi enigis estis malĝusta confirm_password: Enmetu vian nunan pasvorton por konfirmi vian identecon confirm_username: Enigi vian uzantnomon por konfirmi la procedo proceed: Forigi konton success_msg: Via konto estis sukcese forigita + warning: + email_change_html: Vi povas ŝanĝi vian retadreson sen forigi vian konton + username_available: Via uzantnomo iĝos denove disponebla + username_unavailable: Via uzantnomo restos nedisponebla directories: directory: Profilujo explanation: Malkovru uzantojn per iliaj interesoj @@ -660,7 +691,6 @@ eo: blocks: Vi blokas csv: CSV domain_blocks: Blokoj de domajnoj - follows: Vi sekvas lists: Listoj mutes: Vi silentigas storage: Aŭdovidaĵa konservado @@ -682,6 +712,7 @@ eo: invalid_irreversible: Nemalfarebla filtrado funkcias nur por hejma aŭ sciiga kuntekstoj index: delete: Forigi + empty: Vi ne havas filtriloj. title: Filtriloj new: title: Aldoni novan filtrilon @@ -766,15 +797,21 @@ eo: migrations: acct: uzantnomo@domajno de la nova konto cancel: Nuligi alidirekton + cancelled_msg: Sukcese forigis la alidirekton. errors: already_moved: estas la saman konton vi jam translokiĝis al + move_to_self: ne povas esti nuna konto not_found: ne povis trovi on_cooldown: Vi estas ĉe malvarmiĝi followers_count: Sekvantoj en la momento de moviĝo - incoming_migrations: Movi el alian konton + incoming_migrations: Moviĝi el alia konto + incoming_migrations_html: Por moviĝi el alia konto al ĉi tiu, vi unue devas krei kromnomo de konto. past_migrations: Pasintaj translokaj proceed_with_move: Translokigi sekvantoj + redirecting_to: Via konto alidirektas al %{acct}. set_redirect: Agordi alidirekton + warning: + only_redirect_html: Alie, vi povas nur aldoni alidirekton en via profilo. moderation: title: Kontrolado notification_mailer: @@ -811,6 +848,9 @@ eo: body: "%{name} diskonigis vian mesaĝon:" subject: "%{name} diskonigis vian mesaĝon" title: Nova diskonigo + notifications: + email_events: Eventoj por retpoŝtaj sciigoj + other_settings: Aliaj agordoj de sciigoj number: human: decimal_units: @@ -844,6 +884,8 @@ eo: relationships: activity: Konta aktiveco dormant: Dormanta + followers: Sekvantoj + following: Sekvatoj last_active: Laste aktiva most_recent: Plej lasta moved: Moviĝita diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index c52615139..20c0aff03 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -78,6 +78,7 @@ es-AR: roles: admin: Administrador bot: Bot + group: Grupo moderator: Moderador unavailable: Perfil no disponible unfollow: Dejar de seguir @@ -181,6 +182,7 @@ es-AR: statuses: Estados subscribe: Suscribirse suspended: Suspendidas + time_in_queue: Esperando en cola %{time} title: Cuentas unconfirmed_email: Correo electrónico sin confirmar undo_silenced: Deshacer silenciado @@ -212,6 +214,7 @@ es-AR: enable_custom_emoji: "%{name} habilitó el emoji %{target}" enable_user: "%{name} habilitó el inicio de sesión para el usuario %{target}" memorialize_account: "%{name} convirtió la cuenta de %{target} en una página de recordatorio" + promote_user: "%{name} promovió al usuario %{target}" remove_avatar_user: "%{name} quitó el avatar de %{target}" reopen_report: "%{name} reabrió la denuncia %{target}" reset_password_user: "%{name} cambió la contraseña del usuario %{target}" @@ -336,6 +339,7 @@ es-AR: delete: Eliminar destroyed_msg: Se aprobó dominio de correo electrónico exitosamente domain: Dominio + empty: Actualmente no hay dominios de correo electrónico desaprobados. new: create: Agregar dominio title: Nueva desaprobación de correo electrónico @@ -391,10 +395,18 @@ es-AR: created_msg: "¡La nota de denuncia fue creada exitosamente!" destroyed_msg: "¡La nota de denuncia fue eliminada exitosamente!" reports: + account: + notes: + one: "%{count} nota" + other: "%{count} notas" + reports: + one: "%{count} denuncia" + other: "%{count} denuncias" action_taken_by: Acción tomada por are_you_sure: "¿Estás seguro?" assign_to_self: Asignármela a mí assigned: Moderador asignado + by_target_domain: Dominio de la cuenta denunciada comment: none: Ninguno created_at: Denunciado @@ -438,6 +450,10 @@ es-AR: disabled: A nadie title: Mostrar dominios bloqueados users: A usuarios locales con sesiones abiertas + domain_blocks_rationale: + title: Mostrar razonamiento + enable_bootstrap_timeline_accounts: + title: Habilitar seguimientos predeterminados para nuevas cuentas hero: desc_html: Mostrado en la página principal. Se recomienda un tamaño mínimo de 600x100 píxeles. Predeterminadamente se establece a la miniatura del servidor. title: Imagen de portada @@ -566,6 +582,10 @@ es-AR: animations_and_accessibility: Animaciones y accesibilidad confirmation_dialogs: Diálogos de confirmación discovery: Descubrimiento + localization: + body: Mastodon es localizado por voluntarios. + guide_link: https://es.crowdin.com/project/mastodon + guide_link_text: Todos pueden contribuir. sensitive_content: Contenido sensible toot_layout: Diseño del toot application_mailer: @@ -704,7 +724,6 @@ es-AR: blocks: Tus bloqueos csv: CSV domain_blocks: Dominios bloqueados - follows: Quienes seguís lists: Listas mutes: Quienes silenciaste storage: Almacenamiento de medios @@ -726,6 +745,7 @@ es-AR: invalid_irreversible: El filtrado irreversible sólo funciona con los contextos de "Principal" o de notificaciones index: delete: Eliminar + empty: No tenés filtros. title: Filtros new: title: Agregar nuevo filtro @@ -874,6 +894,10 @@ es-AR: body: "%{name} retooteó tu estado:" subject: "%{name} retooteó tu estado" title: Nuevo retoot + notifications: + email_events: Eventos para notificaciones por correo electrónico + email_events_hint: 'Seleccioná los eventos para los que querés recibir notificaciones:' + other_settings: Configuración de otras notificaciones number: human: decimal_units: @@ -907,6 +931,8 @@ es-AR: relationships: activity: Actividad de la cuenta dormant: Inactivas + followers: Seguidores + following: Siguiendo last_active: Última actividad most_recent: Más reciente moved: Mudada @@ -1189,7 +1215,9 @@ es-AR: review_preferences_action: Cambiar configuración review_preferences_step: Asegurate de establecer tu configuración, como qué tipo de correos electrónicos te gustaría recibir, o qué nivel de privacidad te gustaría que sea el predeterminado para tus toots. Si no tenés mareos, podrías elegir habilitar la reproducción automática de GIFs. subject: Bienvenido a Mastodon + tip_federated_timeline: La línea temporal federada es una línea contínua global de la red de Mastodon. Pero sólo incluye gente que tus vecinos están siguiendo, así que no es completa. tip_following: Predeterminadamente seguís al / a los administrador/es de tu servidor. Para encontrar más gente interesante, revisá las lineas temporales local y federada. + tip_local_timeline: La línea temporal local es una línea contínua global de cuentas en %{instance}. ¡Estos son tus vecinos inmediatos! tip_mobile_webapp: Si tu navegador web móvil te ofrece agregar Mastodon a tu página de inicio, podés recibir notificaciones PuSH. ¡Actúa como una aplicación nativa de muchas maneras! tips: Consejos title: "¡Bienvenido a bordo, %{name}!" diff --git a/config/locales/es.yml b/config/locales/es.yml index 1826331b3..1c56cff6a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,32 +1,32 @@ --- es: about: - about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag}. Puedes interactuar con ellos si tienes una cuenta en el fediverso. - about_mastodon_html: Mastodon es una red social basada en protocolos web abiertos y software libre y de código abierto. Está descentralizado como correo electrónico. + about_hashtag_html: Estos son barritadas públicas etiquetadas con #%{hashtag}. Puedes interactuar con ellas si tienes una cuenta en el fediverso. + about_mastodon_html: Mastodonte es una red social basada en protocolos web abiertos y Programas Libres y de Código Abierto - Plica/Foss -. Está descentralizado como el correo electrónico! about_this: Información active_count_after: activo active_footnote: Usuarios Activos Mensuales (UAM) administered_by: 'Administrado por:' api: API apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas + apps_platforms: Utiliza Mastodonte desde iOS, Android y otras plataformas browse_directory: Navega por el directorio de perfiles y filtra por intereses browse_local_posts: Explora en vivo los posts públicos de este servidor browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon contact: Contacto contact_missing: No especificado - contact_unavailable: N/A + contact_unavailable: No disponible discover_users: Descubrir usuarios documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. + federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodonte y más allá. get_apps: Probar una aplicación móvil - hosted_on: Mastodon hosteado en %{domain} + hosted_on: Mastodonte huesped en %{domain} instance_actor_flash: | Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprende más + learn_more: Aprenda más privacy_policy: Política de privacidad - see_whats_happening: Ver lo que está pasando + see_whats_happening: Vea lo que está pasando server_stats: 'Datos del servidor:' source_code: Código fuente status_count_after: @@ -42,16 +42,16 @@ es: rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. + unavailable_content_html: Mastodonte generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. user_count_after: one: usuario other: usuarios - user_count_before: Tenemos - what_is_mastodon: "¿Qué es Mastodon?" + user_count_before: Inicio de + what_is_mastodon: "¿Qué es Mastodonte?" accounts: choices_html: 'Elecciones de %{name}:' endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. + featured_tags_hint: Puede presentar etiquetas específicas que se mostrarán aquí. follow: Seguir followers: one: Seguidor @@ -70,14 +70,15 @@ es: pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: - one: Toot + one: Barritar other: Toots - posts_tab_heading: Toots - posts_with_replies: Toots con respuestas + posts_tab_heading: Bramidos + posts_with_replies: Bramidos con respuestas reserved_username: El nombre de usuario está reservado roles: admin: Administrador bot: Bot + group: Grupo moderator: Moderador unavailable: Perfil no disponible unfollow: Dejar de seguir @@ -180,7 +181,7 @@ es: silenced: Silenciado statuses: Estados subscribe: Suscribir - suspended: Susependido + suspended: Suspendido time_in_queue: Esperando en cola %{time} title: Cuentas unconfirmed_email: Correo electrónico sin confirmar @@ -269,11 +270,11 @@ es: feature_registrations: Registros feature_relay: Relés de federación feature_spam_check: Contra-spam - feature_timeline_preview: Vista previa de la línea de tiempo + feature_timeline_preview: Vista previa de la cronología features: Características hidden_service: Federación con servicios ocultos open_reports: informes abiertos - pending_tags: hashtags esperando revisión + pending_tags: etiquetas esperando revisión pending_users: usuarios esperando por revisión recent_users: Usuarios recientes search: Búsqueda por texto completo @@ -320,7 +321,7 @@ es: rejecting_reports: rechazando informes severity: silence: silenciado - suspend: susependido + suspend: suspendido show: affected_accounts: one: Una cuenta en la base de datos afectada @@ -338,6 +339,7 @@ es: delete: Borrar destroyed_msg: Dominio de correo borrado de la lista negra con éxito domain: Dominio + empty: Actualmente no hay dominios de correo electrónico en la lista negra. new: create: Añadir dominio title: Nueva entrada en la lista negra de correo @@ -380,7 +382,7 @@ es: disable: Deshabilitar disabled: Deshabilitado enable: Hablitar - enable_hint: Una vez conectado, tu servidor se suscribirá a todos los toots públicos de este relés, y comenzará a enviar los toots públicos de este servidor hacia él. + enable_hint: Una vez conectado, tu servidor se suscribirá a todos los bramidos públicos de este relés, y comenzará a enviar los bramidos públicos de este servidor hacia él. enabled: Habilitado inbox_url: URL del relés pending: Esperando la aprobación del relés @@ -393,10 +395,18 @@ es: created_msg: "¡El registro de la denuncia se ha creado correctamente!" destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!" reports: + account: + notes: + one: "%{count} nota" + other: "%{count} notas" + reports: + one: "%{count} informe" + other: "%{count} informes" action_taken_by: Acción tomada por are_you_sure: "¿Estás seguro?" assign_to_self: Asignármela a mí assigned: Moderador asignado + by_target_domain: Dominio de la cuenta reportada comment: none: Ninguno created_at: Denunciado @@ -424,8 +434,8 @@ es: desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales title: Publicar estadísticas locales acerca de actividad de usuario bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. - title: Seguimientos predeterminados para usuarios nuevos + desc_html: Separa con comas los nombres de usuaria. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacia, se tomará como valor por defecto a todas las administradoras locales. + title: Seguimientos predeterminados para usuarias nuevas contact_information: email: Correo de trabajo username: Nombre de usuario @@ -442,6 +452,8 @@ es: users: Para los usuarios locales que han iniciado sesión domain_blocks_rationale: title: Mostrar la razón de ser + enable_bootstrap_timeline_accounts: + title: Habilitar seguimientos predeterminados para nuevas usuarias hero: desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia title: Imagen de portada @@ -474,8 +486,8 @@ es: open: Cualquiera puede registrarse title: Modo de registros show_known_fediverse_at_about_page: - desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales. - title: Mostrar fediverso conocido en la vista previa de la historia + desc_html: Cuando esté desactivado, mostrará solamente la cronología local, y no la federada + title: Mostrar fediverso conocido en la vista previa de la cronología show_staff_badge: desc_html: Mostrar un parche de staff en la página de un usuario title: Mostrar parche de staff @@ -486,28 +498,28 @@ es: desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML title: Información extendida personalizada site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. + desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodonte y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. title: Descripción corta de la instancia site_terms: desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML title: Términos de servicio personalizados site_title: Nombre de instancia spam_check_enabled: - desc_html: Mastodon puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos. + desc_html: Mastodonte puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos. title: Contra-spam thumbnail: desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px title: Portada de instancia timeline_preview: - desc_html: Mostrar línea de tiempo pública en la portada - title: Previsualización + desc_html: Mostrar cronología pública en la portada + title: Permita acceso no autentificado a la cronología pública title: Ajustes del sitio trendable_by_default: desc_html: Afecta a etiquetas que no han sido previamente rechazadas title: Permitir que las etiquetas sean tendencia sin revisión previa trends: - desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia - title: Hashtags de tendencia + desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia + title: Etiquetas que son tendencia statuses: back_to_account: Volver a la cuenta batch: @@ -532,14 +544,14 @@ es: last_active: Última actividad most_popular: Más popular most_recent: Más reciente - name: Hashtag + name: Etiqueta review: Estado de revisión reviewed: Revisado title: Etiquetas trending_right_now: En tendencia ahora mismo unique_uses_today: "%{count} publicando hoy" unreviewed: No revisado - updated_msg: Hashtags actualizados exitosamente + updated_msg: Etiquetas actualizadas con éxito title: Administración warning_presets: add_new: Añadir nuevo @@ -556,7 +568,7 @@ es: body_remote: Alguien de %{domain} a reportado a %{target} subject: Nuevo reporte para la %{instance} (#%{id}) new_trending_tag: - body: 'El hashtag #%{name} está en tendencia hoy, pero no ha sido revisado previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario como para no volver a ver esto.' + body: 'La etiqueta #%{name} es tendencia hoy, pero no ha sido revisada previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario evitando volver a ver este mensaje.' subject: Nuevo hashtag para revisión en %{instance} (#%{name}) aliases: add_new: Crear alias @@ -566,12 +578,16 @@ es: remove: Desvincular alias appearance: advanced_web_interface: Interfaz web avanzada - advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.' + advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.' animations_and_accessibility: Animaciones y accesibilidad confirmation_dialogs: Diálogos de confirmación discovery: Descubrir + localization: + body: Mastodon es traducido con la ayuda de voluntarios. + guide_link: https://es.crowdin.com/project/mastodon + guide_link_text: Todos pueden contribuir. sensitive_content: Contenido sensible - toot_layout: Diseño de los toots + toot_layout: Diseño para barritar application_mailer: notification_preferences: Cambiar preferencias de correo electrónico salutation: "%{name}," @@ -595,9 +611,9 @@ es: delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: - prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!" - prefix_sign_up: "¡Únete a Mastodon hoy!" - suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodon y más!" + prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodonte!" + prefix_sign_up: "¡Únete a Mastodonte hoy!" + suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodonte y más!" didnt_get_confirmation: "¿No recibió el correo de confirmación?" forgot_password: "¿Olvidaste tu contraseña?" invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo. @@ -693,7 +709,7 @@ es: content: Lo sentimos, algo ha funcionado mal por nuestra parte. title: Esta página no es correcta '503': La página no se ha podido cargar debido a un fallo temporal del servidor. - noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las aplicaciones nativas para Mastodon para tu plataforma. + noscript_html: Para usar la aplicación web de Mastodonte, por favor activa Javascript. Alternativamente, prueba alguna de las aplicaciones nativas para Mastodonte para tu plataforma. existing_username_validator: not_found: no pudo encontrar un usuario local con ese nombre de usuario not_found_multiple: no pudo encontrar %{usernames} @@ -701,27 +717,26 @@ es: archive_takeout: date: Fecha download: Descargar tu archivo - hint_html: Puedes solicitar un archivo de tus toots y materiales subidos. Los datos exportados estarán en formato ActivityPub, legibles por cualquier software compatible. + hint_html: Puedes solicitar un archivo de tus bramidos y materiales subidos. Los datos exportados estarán en formato ActivityPub, legibles por cualquier programa compatible. in_progress: Recopilando tu archivo... request: Solicitar tu archivo size: Tamaño blocks: Personas que has bloqueado csv: CSV domain_blocks: Bloqueos de dominios - follows: Personas que sigues lists: Listas mutes: Tienes en silencio storage: Almacenamiento featured_tags: add_new: Añadir nuevo errors: - limit: Ya has alcanzado la cantidad máxima de hashtags - hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." + limit: Alcanzaste el máximo de etiquetados + hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a las personas usuarias navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de obras creativas o proyectos a largo plazo." filters: contexts: - home: Timeline propio + home: Cronología propia notifications: Notificaciones - public: Timeline público + public: Cronología pública thread: Conversaciones edit: title: Editar filtro @@ -730,6 +745,7 @@ es: invalid_irreversible: El filtrado irreversible solo funciona con los contextos propios o de notificaciones index: delete: Borrar + empty: No tienes filtros. title: Filtros new: title: Añadir un nuevo filtro @@ -739,7 +755,7 @@ es: resources: Recursos trending_now: Tendencia ahora generic: - all: Todos + all: Todas changes_saved_msg: "¡Cambios guardados con éxito!" copy: Copiar no_batch_actions_available: No hay acciones por lotes disponibles en esta página @@ -764,7 +780,7 @@ es: i_am_html: Soy %{username} en %{service}. identity: Identidad inactive: Inactivo - publicize_checkbox: 'Y tootee esto:' + publicize_checkbox: 'Y barrite esto:' publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}" status: Estado de la verificación view_proof: Ver prueba @@ -875,9 +891,13 @@ es: subject: Fuiste mencionado por %{name} title: Nueva mención reblog: - body: "%{name} ha retooteado tu estado:" - subject: "%{name} ha retooteado tu estado" + body: "%{name} ha rebarritado tu estado:" + subject: "%{name} ha rebarritado tu estado" title: Nueva difusión + notifications: + email_events: Eventos para notificaciones por correo electrónico + email_events_hint: 'Selecciona los eventos para los que deseas recibir notificaciones:' + other_settings: Otros ajustes de notificaciones number: human: decimal_units: @@ -901,16 +921,19 @@ es: duration_too_long: está demasiado lejos en el futuro duration_too_short: es demasiado pronto expired: La encuesta ya ha terminado + invalid_choice: La opción de voto seleccionada no existe over_character_limit: no puede exceder %{max} caracteres cada uno too_few_options: debe tener más de un elemento too_many_options: no puede contener más de %{max} elementos preferences: other: Otros posting_defaults: Configuración por defecto de publicaciones - public_timelines: Líneas de tiempo públicas + public_timelines: Cronologías públicas relationships: activity: Actividad de la cuenta dormant: Inactivo + followers: Seguidores + following: Siguiendo last_active: Última actividad most_recent: Más reciente moved: Movido @@ -931,16 +954,16 @@ es: remote_interaction: favourite: proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorito este toot:' + prompt: 'Quieres marcar como favorito este bramido:' reblog: - proceed: Proceder a retootear - prompt: 'Quieres retootear este toot:' + proceed: Proceder a rebarritar + prompt: 'Quieres rebarritar este bramido:' reply: proceed: Proceder a responder - prompt: 'Quieres responder a este toot:' + prompt: 'Quieres responder a este bramido:' scheduled_statuses: - over_daily_limit: Ha superado el límite de %{limit} toots programados para ese día - over_total_limit: Ha superado el límite de %{limit} toots programados + over_daily_limit: Ha superado el límite de %{limit} bramidos programados para ese día + over_total_limit: Ha superado el límite de %{limit} bramidos programados too_soon: La fecha programada debe estar en el futuro sessions: activity: Última actividad @@ -965,7 +988,7 @@ es: weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" - explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodon. + explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodonte. ip: IP platforms: adobe_air: Adobe Air @@ -994,7 +1017,7 @@ es: development: Desarrollo edit_profile: Editar perfil export: Exportar información - featured_tags: Hashtags destacados + featured_tags: Etiquetas destacadas identity_proofs: Pruebas de identidad import: Importar import_and_export: Importar y exportar @@ -1018,15 +1041,15 @@ es: boosted_from_html: Impulsado desde %{acct_link} content_warning: 'Alerta de contenido: %{warning}' disallowed_hashtags: - one: 'contenía un hashtag no permitido: %{tags}' - other: 'contenía los hashtags no permitidos: %{tags}' + one: 'contenía una etiqueta no permitida: %{tags}' + other: 'contenía las etiquetas no permitidas: %{tags}' language_detection: Detección automática de idioma open_in_web: Abrir en web over_character_limit: Límite de caracteres de %{max} superado pin_errors: - limit: Ya has fijado el número máximo de publicaciones - ownership: El toot de alguien más no puede fijarse - private: Los toots no-públicos no pueden fijarse + limit: Ya has fijado el número máximo de bramidos + ownership: El bramido de alguien más no puede fijarse + private: Los bramidos no-públicos no pueden fijarse reblog: Un boost no puede fijarse poll: total_people: @@ -1045,10 +1068,10 @@ es: public: Público public_long: Todos pueden ver unlisted: Público, pero no mostrar en la historia federada - unlisted_long: Todos pueden ver, pero no está listado en las líneas de tiempo públicas + unlisted_long: Todos pueden ver, pero no está listado en las cronologías públicas stream_entries: - pinned: Toot fijado - reblogged: retooteado + pinned: Bramido fijado + reblogged: rebramido sensitive_content: Contenido sensible tags: does_not_match_previous_name: no coincide con el nombre anterior @@ -1058,9 +1081,9 @@ es:

¿Qué información recogemos?

    -
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • -
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
  • -
  • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodon.
  • +
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de persona usuaria, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuaria, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • +
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de reenviar o marcar como favorito otra publicación es siempre pública.
  • +
  • Publicaciones directas y sólo para seguidoras: Todos los mensajes se almacenan y procesan en el servidor. Las publicaciones sólo para seguidoras se entregan a las seguidoras y usuarias que se mencionan en ellas, y los mensajes directos se entregan sólo a las usuarias que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidoras. Puede cambiar una opción para aprobar y rechazar nuevas seguidoras manualmente en la configuración Por favor, tenga en cuenta que las operadoras del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que las destinatarias pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodonte.
  • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
@@ -1071,7 +1094,7 @@ es:

Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

    -
  • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • +
  • Para proporcionar la funcionalidad principal de Mastodonte. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
  • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
@@ -1111,9 +1134,9 @@ es:

No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

-

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

+

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidoras se envían a los servidores donde residen tus seguidoras, y los mensajes directos se envían a los servidores de las destinatarias, en la medida en que dichas seguidoras o destinatarias residan en un servidor diferente.

-

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

+

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidoras, sus listas, todos sus mensajes y sus favoritas. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.


@@ -1136,9 +1159,9 @@ es:

Adaptado originalmente desde la política de privacidad de Discourse.

title: Términos del Servicio y Políticas de Privacidad de %{instance} themes: - contrast: Alto contraste - default: Mastodon - mastodon-light: Mastodon (claro) + contrast: Mastodonte (Alto contraste) + default: Mastodonte (Oscuro) + mastodon-light: Mastodonte (claro) time: formats: default: "%d de %b del %Y, %H:%M" @@ -1161,14 +1184,14 @@ es: wrong_code: "¡El código ingresado es inválido! ¿El dispositivo y tiempo del servidor están correctos?" user_mailer: backup_ready: - explanation: Has solicitado una copia completa de tu cuenta de Mastodon. ¡Ya está preparada para descargar! + explanation: Has solicitado una copia completa de tu cuenta de Mastodonte. ¡Ya está preparada para descargar! subject: Tu archivo está preparado para descargar title: Descargar archivo warning: explanation: disable: Mientras su cuenta esté congelada, la información de su cuenta permanecerá intacta, pero no puede realizar ninguna acción hasta que se desbloquee. - silence: Mientras su cuenta está limitada, sólo las personas que ya le están siguiendo verán sus toots en este servidor, y puede que se le excluya de varios listados públicos. Sin embargo, otros pueden seguirle manualmente. - suspend: Su cuenta ha sido suspendida, y todos tus toots y tus archivos multimedia subidos han sido irreversiblemente eliminados de este servidor, y de los servidores donde tenías seguidores. + silence: Mientras su cuenta está limitada, sólo las personas que ya le están siguiendo verán sus bramidos en este servidor, y puede que se le excluya de varios listados públicos. Sin embargo, otros pueden seguirle manualmente. + suspend: Su cuenta ha sido suspendida, y todos tus bramidos y tus archivos multimedia subidos han sido irreversiblemente eliminados de este servidor, y de los servidores donde tenías seguidores. get_in_touch: Puede responder a esta dirección de correo electrónico para ponerse en contacto con el personal de %{instance}. review_server_policies: Revisar las políticas del servidor statuses: 'Específicamente, para:' @@ -1187,15 +1210,15 @@ es: edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' + final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la ristra teporal local y con "etiquetas". Podrías querer presentarte con la "etiqueta" #presentaciones o #nuevascuentas.' full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. review_preferences_action: Cambiar preferencias review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". - subject: Bienvenido a Mastodon - tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. - tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! + subject: Bienvenido a Mastodonte + tip_federated_timeline: La cronología federada es una vista de la red de Mastodonte. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. + tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las cronologías local y federada. + tip_local_timeline: La cronología local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! tips: Consejos title: Te damos la bienvenida a bordo, %{name}! @@ -1207,5 +1230,5 @@ es: seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles. signed_in_as: 'Sesión iniciada como:' verification: - explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodon. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' + explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodonte. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' verification: Verificación diff --git a/config/locales/et.yml b/config/locales/et.yml index 36a2931af..02bfb636c 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -78,6 +78,7 @@ et: roles: admin: Administraator bot: Robot + group: Grupp moderator: Moderaator unavailable: Profiil pole saadaval unfollow: Lõpeta jälgimine @@ -341,6 +342,7 @@ et: delete: Kustuta destroyed_msg: E-posti aadressi keelunimekirjast kustutamine õnnestus domain: Domeen + empty: Ühtegi e-postidomeeni pole blokeeritud. new: create: Lisa domeen title: Uus e-posti keelunimekirja sisend @@ -383,7 +385,7 @@ et: disable: Keela disabled: Keelatud enable: Luba - enable_hint: Kui lubatud, siis sinu server tellib kõik avalikud tuututused sellelt releelt, ning hakkab ka enda avalikke tuututusi sellele saatma. + enable_hint: Kui lubatud, siis Teie server tellib kõik avalikud tuututused sellelt releelt ning hakkab ka enda avalikke tuututusi sellele saatma. enabled: Lubatud inbox_url: Relee URL pending: Ootab relee nõusolekut @@ -396,10 +398,18 @@ et: created_msg: Teade edukalt koostatud! destroyed_msg: Teade edukalt kustutatud! reports: + account: + notes: + one: "%{count} märkus" + other: "%{count} märkust" + reports: + one: "%{count} teavitus" + other: "%{count} teavitust" action_taken_by: Meetmeid kasutanud are_you_sure: Olete kindel? assign_to_self: Määra mulle assigned: Määratud moderaator + by_target_domain: Teavitatud konto domeen comment: none: Pole created_at: Teavitatud @@ -445,6 +455,8 @@ et: users: Sisseloginud kohalikele kasutajatele domain_blocks_rationale: title: Näita põhjendust + enable_bootstrap_timeline_accounts: + title: Luba vaikimisi jälgimisi uutele kasutajatele hero: desc_html: Kuvatud kodulehel. Vähemalt 600x100px soovitatud. Kui pole seadistatud, kuvatakse serveri pisililt title: Maskotipilt @@ -573,6 +585,10 @@ et: animations_and_accessibility: Animatsioonid ja ligipääs confirmation_dialogs: Kinnitusdialoogid discovery: Avastus + localization: + body: Mastodon on tõlgitud vabatahtlike poolt. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Igaüks võib panustada. sensitive_content: Tundlik sisu toot_layout: Tuututuse kujundus application_mailer: @@ -589,7 +605,7 @@ et: regenerate_token: Loo uus access token token_regenerated: Access tokeni loomine õnnestus warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi! - your_token: Sinu access token + your_token: Teie access token auth: apply_for_account: Taotle kutse change_password: Salasõna @@ -711,7 +727,6 @@ et: blocks: Teie blokeerite csv: CSV domain_blocks: Domeeni blokeeringud - follows: Teie jälgite lists: Nimistud mutes: Teie vaigistate storage: Meedia hoidla @@ -733,6 +748,7 @@ et: invalid_irreversible: Taastamatu filter töötab ainult kodu või teavituste kontekstis index: delete: Kustuta + empty: Teil pole filtreid. title: Filterid new: title: Lisa uus filter @@ -851,7 +867,7 @@ et: digest: action: Vaata kõiki teateid body: Siin on kiire ülevaade sellest, mis sõnumeid Te ei näinud pärast Teie viimast külastust %{since} - mention: "%{name} mainis sind postituses:" + mention: "%{name} mainis Teid postituses:" new_followers_summary: one: Ja veel, Te saite ühe uue jälgija kui Te olite eemal! Jee! other: Ja veel, Te saite %{count} uut jälgijat kui Te olite eemal! Hämmastav! @@ -881,6 +897,10 @@ et: body: "%{name} upitas Teie staatust:" subject: "%{name} upitas su staatust" title: Uus upitus + notifications: + email_events: E-posti teadete sündmused + email_events_hint: 'Valige sündmused, millest soovite teavitusi:' + other_settings: Muud teadete sätted number: human: decimal_units: @@ -914,6 +934,8 @@ et: relationships: activity: Konto tegevus dormant: Seisev + followers: Jälgijad + following: Jälgib last_active: Viimati aktiivne most_recent: Viimased moved: Kolinud @@ -970,7 +992,7 @@ et: weibo: Weibo current_session: Praegune seanss description: "%{browser} platvormil %{platform}" - explanation: Need on praegused veebilehitsejad, mis on sisse logitud sinu Mastodoni kontosse. + explanation: Need on praegused veebilehitsejad, mis on sisse logitud Teie Mastodoni kontosse. ip: IP platforms: adobe_air: Adobe Air @@ -1112,7 +1134,7 @@ et: explanation: Siin on mõned nõuanded, mis aitavad sul alustada final_action: Alusa postitamist final_step: 'Alusta postitamist! Isegi ilma jälgijateta näevad teised Teie avalikke postitusi, näiteks kohalikul ajajoonel ning siltidest. Te võite ennast tutvustada kasutades silti #introductions.' - full_handle: Sinu täisnimi + full_handle: Teie täisnimi full_handle_hint: See on mida oma sõpradega jagada, et nad saaksid Teile sõnumeid saata ning Teid jälgida teiselt serverilt. review_preferences_action: Muuda eelistusi review_preferences_step: Kindlasti seadistage oma sätted Teie maitse järgi, näiteks e-kirju, mida soovite saada, või millist privaatsustaset Te soovite vaikimisi. Kui Teil pole merehaigust, võite Te näiteks lubada GIFide automaatse mängimise. diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 9dfe5e9d3..bfa91beb8 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -78,6 +78,7 @@ eu: roles: admin: Administratzailea bot: Bot-a + group: Taldea moderator: Moderatzailea unavailable: Profila ez dago eskuragarri unfollow: Utzi jarraitzeari @@ -338,6 +339,7 @@ eu: delete: Ezabatu destroyed_msg: Ongi ezabatu da e-mail domeinua zerrenda beltzetik domain: Domeinua + empty: Ez dago e-mail domeinurik zerrenda beltzean. new: create: Gehitu domeinua title: Sarrera berria e-mail zerrenda beltzean @@ -393,10 +395,18 @@ eu: created_msg: Salaketa oharra ongi sortu da! destroyed_msg: Salaketa oharra ongi ezabatu da! reports: + account: + notes: + one: Ohar %{count} + other: "%{count} ohar" + reports: + one: Txosten %{count} + other: "%{count} txosten" action_taken_by: Neurrien hartzailea are_you_sure: Ziur zaude? assign_to_self: Esleitu niri assigned: Esleitutako moderatzailea + by_target_domain: Jakinarazitako kontuaren domeinua comment: none: Bat ere ez created_at: Salatua @@ -442,6 +452,8 @@ eu: users: Saioa hasita duten erabiltzaile lokalei domain_blocks_rationale: title: Erakutsi arrazoia + enable_bootstrap_timeline_accounts: + title: Gaitu lehenetsitako jarraipena erabiltzaile berrientzat hero: desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du title: Azaleko irudia @@ -570,6 +582,10 @@ eu: animations_and_accessibility: Animazioak eta irisgarritasuna confirmation_dialogs: Berrespen dialogoak discovery: Aurkitzea + localization: + body: Mastodon boluntarioek itzultzen dute. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Edonork lagundu dezake. sensitive_content: Eduki hunkigarria toot_layout: Toot disposizioa application_mailer: @@ -644,7 +660,7 @@ eu: prompt: Berretsi pasahitza jarraitzeko datetime: distance_in_words: - about_x_hours: "%{count}o" + about_x_hours: "%{count}h" about_x_months: "%{count} hilabete" about_x_years: "%{count} urte" almost_x_years: "%{count} urte" @@ -708,7 +724,6 @@ eu: blocks: Zuk blokeatutakoak csv: CSV domain_blocks: Domeinuen blokeoak - follows: Zuk jarraitutakoak lists: Zerrendak mutes: Zuk mututukoak storage: Multimedia biltegiratzea @@ -730,6 +745,7 @@ eu: invalid_irreversible: Behin betiko iragazketa hasiera edo jakinarazpenen testuinguruan besterik ez dabil index: delete: Ezabatu + empty: Ez duzu iragazkirik. title: Iragazkiak new: title: Gehitu iragazki berria @@ -878,6 +894,10 @@ eu: body: "%{name}(e)k bultzada eman dio zure mezuari:" subject: "%{name}(e)k bultzada eman dio zure mezuari" title: Bultzada berria + notifications: + email_events: Gertaerak helbide elektronikoko jakinarazpenentzat + email_events_hint: 'Hautatu jaso nahi dituzun gertaeren jakinarazpenak:' + other_settings: Bezte jakinarazpen konfigurazioak number: human: decimal_units: @@ -911,6 +931,8 @@ eu: relationships: activity: Kontuaren aktibitatea dormant: Ez aktiboa + followers: Jarraitzaileak + following: Jarraitzen last_active: Azkenekoz aktiboa most_recent: Azkenak moved: Lekuz aldatua diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 02a990a40..1a24275ee 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -2,46 +2,48 @@ fa: about: about_hashtag_html: این‌ها نوشته‌های عمومی هستند که برچسب (هشتگ) #%{hashtag} را دارند. اگر شما روی هر سروری حساب داشته باشید می‌توانید به این نوشته‌ها واکنش نشان دهید. - about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستدون صاحب داده‌های خودتان باشید!' + about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستودون صاحب داده‌های خودتان باشید!' about_this: درباره - active_count_after: فعال + active_count_after: فعّال active_footnote: کاربران فعال در ماه گذشته administered_by: 'با مدیریت:' api: رابط برنامه‌نویسی کاربردی - apps: اپ‌های موبایل + apps: کاره‌های همراه apps_platforms: ماستدون را در iOS، اندروید، و سایر سیستم‌ها داشته باشید browse_directory: کاربران این سرور را بر اساس علاقه‌مندی‌هایشان پیدا کنید browse_local_posts: فهرست لحظه‌ای نوشته‌های عمومی در ماستدون را ببینید browse_public_posts: فهرست لحظه‌ای نوشته‌های عمومی در ماستدون را ببینید contact: تماس - contact_missing: تعیین نشده + contact_missing: تنظیم نشده contact_unavailable: موجود نیست discover_users: یافتن کاربران documentation: مستندات - federation_hint_html: با داشتن حساب روی %{instance} می‌توانید کاربران همهٔ سرورهای دیگر ماستدون (و سایر شبکه‌های سازگار با آن) را پی بگیرید. - get_apps: یک اپ موبایل را امتحان کنید - hosted_on: ماستدون، میزبانی‌شده روی %{domain} + federation_hint_html: با حسابی روی %{instance} می‌توانید افراد روی هر کارساز ماستودون و بیش از آن را پی بگیرید. + get_apps: یک کاارهٔ همراه را بیازمایید + hosted_on: ماستودون، میزبانی‌شده روی %{domain} instance_actor_flash: | این حساب یک بازیگر مجازی برای نمایندگی از این سرور است و متعلق به هیچ کاربری نیست. این حساب برای ارتباط میان‌سروری به کار می‌رود و نباید مسدود شود، مگر این که شما بخواهید کل سرور را مسدود کنید، که در آن صورت باید از راه مسدودسازی دامین پیش بروید. learn_more: بیشتر بدانید - privacy_policy: سیاست رازداری + privacy_policy: سیاست محرمانگی see_whats_happening: ببینید چه خبر است - server_stats: 'آمار سرور:' + server_stats: 'آمار کارساز:' source_code: کدهای منبع status_count_after: one: چیز نوشته‌اند other: چیز نوشته‌اند status_count_before: که در کنار هم - tagline: با دوستان خود در ارتباط باشید و دوستان تازه پیدا کنید - terms: شرایط کاربری + tagline: پی‌گیری و یافتن دوستان جدید + terms: شرایط خدمت unavailable_content: محتوای ناموجود unavailable_content_description: - domain: سرور - reason: 'دلیل:' - rejecting_media: تصاویر فرستاده شده از سمت این سرور پردازش نخواهد شد و هیچ تصویر کوچکی از آن‌ها در این‌جا نمایش نخواهد یافت، و آن‌ها را باید مستقیماً در آن سرور ببینید. - silenced: هیچ کدام از نوشته‌ها از طرف این سرور این‌جا نمایش نخواهند یافت مگر در فهرست پیگیری‌ها شما، اگر نویسنده‌اش را پی بگیرید. - suspended: شما نمی‌توانید هیچ کدام از کاربرهای این سرور را پی بگیرید، و هیچ داده‌ای از طرف این سرور پردازش یا ذخیره یا مبادله نخواهد شد. + domain: کارساز + reason: دلیل + rejecting_media: 'پرونده‌های رسانه از این کارسازها پردازش یا ذخیره نخواهند شد و هیچ بندانگشتی‌ای نمایش نخواهد یافت. نیازمند کلیک دستی برای رسیدن به پروندهٔ اصلی:' + silenced: |- + هیچ کدام از نوشته‌ها از طرف این سرور این‌جا نمایش نخواهند یافت مگر در فهرست پیگیری‌ها شما، اگر نویسنده‌اش را پی بگیرید. + فرسته‌ها از این کارسازها در گفت‌وگوها و خط زمانی عمومی نهفته خواهند بود و تا وقتی پی‌گیرشان نشوید، هیچ آگاهی‌ای از برهم‌کنش‌های کاربرانشان تولید نخواهد شد: + suspended: 'هیچ داده‌ای از این کارسازها پردازش، ذخیره یا مبادله نخواهد شد که هرگونه برهم‌کنش یا ارتباط با کاربران این کارسازها را غیرممکن خواهد کرد:' unavailable_content_html: ماستدون در حالت کلی اجازه می‌دهد که شما همهٔ مطالب و کاربران در سرورهای دیگر را نیز ببینید و با آن‌ها برهم‌کنش داشته باشید. فهرست زیر ولی استثناهای این ارتباط است که به طور خاص روی این سرور اعمال شده‌اند. user_count_after: one: کاربر @@ -78,6 +80,7 @@ fa: roles: admin: مدیر bot: ربات + group: گروه moderator: ناظم unavailable: نمایهٔ ناموجود unfollow: پایان پیگیری @@ -97,38 +100,38 @@ fa: avatar: تصویر نمایه by_domain: دامین change_email: - changed_msg: نشانی ایمیل این حساب با موفقیت تغییر کرد! - current_email: ایمیل کنونی - label: تغییر نشانی ایمیل - new_email: ایمیل تازه - submit: تغییر ایمیل - title: تغییر ایمیل برای %{username} + changed_msg: رایانامهٔ حساب با موفقیت تغییر کرد! + current_email: رایانامهٔ کنونی + label: تغییر رایانامه + new_email: رایانامهٔ جدید + submit: تغییر رایانامه + title: تغییر رایانامه برای %{username} confirm: تأیید confirmed: تأیید شد confirming: تأیید - deleted: پاک‌شده + deleted: حذف شده demote: تنزل‌دادن - disable: غیرفعال - disable_two_factor_authentication: غیرفعال‌سازی ورود دومرحله‌ای - disabled: غیرفعال - display_name: نمایش به نام - domain: دامین + disable: از کار انداختن + disable_two_factor_authentication: از کار انداختن 2FA + disabled: از کار افتاده + display_name: نام نمایشی + domain: دامنه edit: ویرایش - email: ایمیل - email_status: وضعیت ایمیل - enable: فعال - enabled: فعال + email: رایانامه + email_status: وضعیت رایانامه + enable: به کار انداختن + enabled: به کار افتاده followers: پیگیران follows: پی می‌گیرد - header: زمینه + header: سرآیند inbox_url: نشانی صندوق ورودی invited_by: دعوت‌شده از طرف ip: IP - joined: عضویت از + joined: پیوسته در location: all: همه - local: محلی - remote: غیرمستقیم + local: محلّی + remote: دوردست title: مکان login_status: وضعیت ورود media_attachments: ضمیمه‌های تصویری @@ -198,10 +201,12 @@ fa: confirm_user: "%{name} نشانی ایمیل کاربر %{target} را تأیید کرد" create_account_warning: "%{name} هشداری برای %{target} فرستاد" create_custom_emoji: "%{name} شکلک تازهٔ %{target} را بارگذاشت" + create_domain_allow: "%{name} دامنهٔ %{target} را مجاز کرد" create_domain_block: "%{name} دامین %{target} را مسدود کرد" create_email_domain_block: "%{name} دامین ایمیل %{target} را مسدود کرد" demote_user: "%{name} مقام کاربر %{target} را تنزل داد" destroy_custom_emoji: "%{name} شکلک %{target} را حذف کرد" + destroy_domain_allow: "%{name} دامنهٔ %{target} را فهرست مجاز برداشت" destroy_domain_block: "%{name} دامین %{target} را باز کرد" destroy_email_domain_block: "%{name} دامین ایمیل %{target} را باز کرد" destroy_status: "%{name} نوشته‌ای از %{target} را پاک کرد" @@ -336,6 +341,7 @@ fa: delete: پاک‌کردن destroyed_msg: مسدودسازی دامین ایمیل با موفقیت پاک شد domain: دامین + empty: هیچ دامنه ایمیلی در حال حاضر در لیست‌سیاه قرار نگرفته است. new: create: ساختن مسدودسازی title: مسدودسازی دامین ایمیل تازه @@ -391,10 +397,18 @@ fa: created_msg: یادداشت گزارش با موفقیت ساخته شد! destroyed_msg: یادداشت گزارش با موفقیت حذف شد! reports: + account: + notes: + one: "%{count} یادداشت" + other: "%{count} یادداشت" + reports: + one: "%{count} گزارش" + other: "%{count} گزارش" action_taken_by: انجام‌دهنده are_you_sure: آیا مطمئن هستید؟ assign_to_self: به عهدهٔ من بگذار assigned: مدیر عهده‌دار + by_target_domain: دامنهٔ حساب گزارش‌شده comment: none: خالی created_at: گزارش‌شده @@ -440,6 +454,8 @@ fa: users: برای کاربران محلی واردشده domain_blocks_rationale: title: دیدن دلیل + enable_bootstrap_timeline_accounts: + title: به کار انداختن پیگیری‌های پیش‌گزیده برای کاربران تازه hero: desc_html: در صفحهٔ آغازین نمایش می‌یابد. دست‌کم ۶۰۰×۱۰۰ پیکسل توصیه می‌شود. اگر تعیین نشود، با تصویر بندانگشتی سرور جایگزین خواهد شد title: تصویر سربرگ @@ -568,6 +584,10 @@ fa: animations_and_accessibility: پویانمایی‌های و دسترسی‌پذیری confirmation_dialogs: پیغام‌های تأیید discovery: کاوش + localization: + body: ماستودون توسط داوطلبان ترجمه شده است. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: همه می‌توانند کمک کنند. sensitive_content: محتوای حساس toot_layout: آرایش بوق application_mailer: @@ -706,7 +726,6 @@ fa: blocks: حساب‌های مسدودشده csv: CSV domain_blocks: دامین‌های مسدودشده - follows: حساب‌های پی‌گرفته lists: فهرست‌ها mutes: حساب‌های بی‌صداشده storage: تصویرهای ذخیره‌شده @@ -728,6 +747,7 @@ fa: invalid_irreversible: فیلترهای برگشت‌ناپذیر تنها در زمینهٔ پیگیری‌ها یا اعلان‌ها کار می‌کنند index: delete: پاک‌کردن + empty: شما هیچ فیلتری ندارید. title: فیلترها new: title: افزودن فیلتر تازه @@ -876,6 +896,10 @@ fa: body: "%{name} نوشتهٔ شما را بازبوقید:" subject: "%{name} نوشتهٔ شما را بازبوقید" title: بازبوق تازه + notifications: + email_events: رویدادها برای آگاهی‌های رایانامه‌ای + email_events_hint: 'گزینش رویدادهایی که می‌خواهید برایشان آگاهی بگیرید:' + other_settings: تنظیمات دیگر آگاهی‌ها number: human: decimal_units: @@ -909,6 +933,8 @@ fa: relationships: activity: فعالیت حساب dormant: غیرفعال + followers: پی‌گیران + following: پی‌گیری‌شدگان last_active: آخرین فعالیت most_recent: تازه‌ترین moved: منتقل‌شده diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 3ab1a590e..063e3bb91 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -299,6 +299,8 @@ fi: contact_information: email: Työsähköposti username: Yhteyshenkilön käyttäjänimi + enable_bootstrap_timeline_accounts: + title: Uudet käyttäjät seuraavat oletuksena tilejä hero: desc_html: Näytetään etusivulla. Suosituskoko vähintään 600x100 pikseliä. Jos kuvaa ei aseteta, käytetään instanssin pikkukuvaa title: Sankarin kuva @@ -438,7 +440,6 @@ fi: request: Pyydä arkisto size: Koko blocks: Estot - follows: Seurattavat mutes: Mykistetyt storage: Media-arkisto generic: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 06b2916fe..705236e7d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -10,7 +10,7 @@ fr: api: API apps: Applications mobiles apps_platforms: Utilisez Mastodon depuis iOS, Android et d’autres plates-formes - browse_directory: Parcourir l’annuaire des profils et filtrer par centres d’intérêt + browse_directory: Parcourir l’annuaire des profils et filtrer par centres d’intérêts browse_local_posts: Parcourir un flux en direct de messages publics depuis ce serveur browse_public_posts: Parcourir un flux en direct de messages publics sur Mastodon contact: Contact @@ -78,6 +78,7 @@ fr: roles: admin: Admin bot: Robot + group: Groupe moderator: Modérateur·trice unavailable: Profil non disponible unfollow: Ne plus suivre @@ -393,10 +394,18 @@ fr: created_msg: Note de signalement créée avec succès ! destroyed_msg: Note de signalement effacée avec succès ! reports: + account: + notes: + one: "%{count} note" + other: "%{count} notes" + reports: + one: "%{count} signalement" + other: "%{count} signalements" action_taken_by: Intervention de are_you_sure: Êtes vous certain⋅e ? assign_to_self: Me l’assigner assigned: Modérateur assigné + by_target_domain: Domaine du compte signalé comment: none: Aucun created_at: Signalé @@ -442,6 +451,8 @@ fr: users: Pour les utilisateurs locaux connectés domain_blocks_rationale: title: Montrer la raison + enable_bootstrap_timeline_accounts: + title: Activer le suivi par défaut pour les nouveaux·elles utilisateur·ice·s hero: desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur title: Image d’en-tête @@ -570,6 +581,10 @@ fr: animations_and_accessibility: Animations et accessibilité confirmation_dialogs: Dialogues de confirmation discovery: Découverte + localization: + body: Mastodon est traduit par des volontaires. + guide_link: https://fr.crowdin.com/project/mastodon + guide_link_text: Tout le monde peut y contribuer. sensitive_content: Contenu sensible toot_layout: Agencement du pouet application_mailer: @@ -708,7 +723,6 @@ fr: blocks: Vous bloquez csv: CSV domain_blocks: Bloqueurs de domaine - follows: Vous suivez lists: Listes mutes: Vous masquez storage: Médias stockés @@ -730,6 +744,7 @@ fr: invalid_irreversible: Le filtrage irréversible ne fonctionne que pour l’accueil et les notifications index: delete: Effacer + empty: Vous n'avez aucun filtre. title: Filtres new: title: Ajouter un nouveau filtre @@ -834,7 +849,7 @@ fr: redirecting_to: Votre compte est redirigé vers %{acct}. set_redirect: Définir la redirection warning: - backreference_required: Le nouveau compte doit d'abord être configuré pour faire référence à celui-ci + backreference_required: Le nouveau compte doit d'abord être configuré pour faire référence à celui-ci en définissant un alias before: 'Avant de procéder, veuillez lire attentivement ces notes :' cooldown: Après le déménagement, il y a une période de gel pendant laquelle vous ne pourrez plus re-déménager disabled_account: Votre compte actuel ne sera pas entièrement utilisable par la suite. Cependant, vous aurez accès à l'exportation de données et à la ré-activation. @@ -878,6 +893,10 @@ fr: body: "%{name} a partagé votre statut :" subject: "%{name} a partagé votre statut" title: Nouveau partage + notifications: + email_events: Événements pour les notifications par courriel + email_events_hint: 'Sélectionnez les événements pour lesquels vous souhaitez recevoir des notifications :' + other_settings: Autres paramètres de notifications number: human: decimal_units: @@ -901,6 +920,7 @@ fr: duration_too_long: est trop loin dans le futur duration_too_short: est trop tôt expired: Ce sondage est déjà terminé + invalid_choice: L'option de vote choisie n'existe pas over_character_limit: ne peuvent être plus long que %{max} caractères chacun too_few_options: doit avoir plus qu’une proposition too_many_options: ne peut contenir plus de %{max} propositions @@ -911,6 +931,8 @@ fr: relationships: activity: Activité du compte dormant: Dormant + followers: Abonné·e·s + following: Abonnements last_active: Dernière activité most_recent: Plus récent moved: Déménagé @@ -933,8 +955,8 @@ fr: proceed: Confirmer l’ajout aux favoris prompt: 'Vous souhaitez mettre ce pouet en favori :' reblog: - proceed: Confirmer le repartage - prompt: 'Vous souhaitez repartager ce pouet :' + proceed: Confirmer le partage + prompt: 'Vous souhaitez partager ce pouet :' reply: proceed: Confirmer la réponse prompt: 'Vous souhaitez répondre à ce pouet :' @@ -1015,7 +1037,7 @@ fr: video: one: "%{count} vidéo" other: "%{count} vidéos" - boosted_from_html: Repartagé depuis %{acct_link} + boosted_from_html: Partagé depuis %{acct_link} content_warning: 'Avertissement sur le contenu : %{warning}' disallowed_hashtags: one: 'contient un hashtag désactivé : %{tags}' @@ -1207,5 +1229,5 @@ fr: seamless_external_login: Vous êtes connecté via un service externe, donc les paramètres concernant le mot de passe et le courriel ne sont pas disponibles. signed_in_as: 'Connecté·e en tant que :' verification: - explanation_html: 'Vous pouvez vérifier vous-même que vous êtes le propriétaire des liens dans les métadonnées de votre profil. Pour cela, le site Web lié doit contenir un lien vers votre profil Mastodon. Le lien de retour doitavoir un attribut rel="me". Le contenu textuel du lien n’a pas d’importance. En voici un exemple :' + explanation_html: 'Vous pouvez vous vérifier en tant que propriétaire des liens dans les métadonnées de votre profil. Pour cela, le site web lié doit contenir un lien vers votre profil Mastodon. Le lien de retour doit avoir un attribut rel="me" . Le texte du lien n’a pas d’importance. Voici un exemple :' verification: Vérification diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 057b21566..7e8776a5b 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1,351 +1,355 @@ --- gl: about: - about_hashtag_html: Estas son mensaxes públicas etiquetadas con #%{hashtag}. Podes interactuar con elas se tes unha conta nalgures do fediverso. - about_mastodon_html: Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada como o correo electrónico. + about_hashtag_html: Estes son toots públicos etiquetados con #%{hashtag}. Podes interactuar con eles se tes unha conta nalgures do fediverso. + about_mastodon_html: O Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada coma o correo electrónico! about_this: Acerca de - active_count_after: activas - active_footnote: Usuarias Activas no Mes (UAM) - administered_by: 'Administrada por:' + active_count_after: activo + active_footnote: Usuarios Activos Mensuais (UAM) + administered_by: 'Administrado por:' api: API - apps: Apps móbiles - apps_platforms: Utiliza Mastodon desde iOS, Android e outras plataformas - browse_directory: Olla o directorio de perfís e filtra por intereses - browse_local_posts: Ler en directo o fluxo das publicacións públicas deste servidor - browse_public_posts: Vexa o fluxo de comentarios públicos en Mastodon + apps: Aplicacións móbiles + apps_platforms: Emprega o Mastodon dende iOS, Android e outras plataformas + browse_directory: Navega polo directorio de perfís e filtra por intereses + browse_local_posts: Navega polas publicacións públicas deste servidor en tempo real + browse_public_posts: Navega polas publicacións públicas do Mastodon en tempo real contact: Contacto - contact_missing: Non establecido - contact_unavailable: N/A - discover_users: Descubre usuarias + contact_missing: Non estabelecido + contact_unavailable: Non dispoñíbel + discover_users: Descobrir usuarios documentation: Documentación - federation_hint_html: Con unha conta en %{instance} poderás seguir a outras persoas en calquera dos servidores Mastodon e incluso máis. - get_apps: Proba cunha app móbil - hosted_on: Mastodon aloxado en %{domain} - instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queira bloquear a toda a instancia, en tal caso debería utilizar o bloqueo do dominio. + federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alén. + get_apps: Probar unha aplicación móbil + hosted_on: O Mastodon está aloxado en %{domain} + instance_actor_flash: 'Esta conta é un actor virtual empregado para representar ó servidor e non a un usuario individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías empregar o bloqueo de dominio. ' learn_more: Saber máis - privacy_policy: Política de intimidade - see_whats_happening: Mira o que acontece - server_stats: 'Estatísticas:' + privacy_policy: Política de privacidade + see_whats_happening: Ver o que está a acontecer + server_stats: 'Estatísticas do servidor:' source_code: Código fonte status_count_after: one: estado other: estados - status_count_before: Que publicaron - tagline: Conecta coas amizades e fai outras novas + status_count_before: Que escribiron + tagline: Segue ás túas amizades e coñece novas terms: Termos do servizo - unavailable_content: Contido non dispoñible + unavailable_content: Contido non dispoñíbel unavailable_content_description: domain: Servidor - reason: 'Razón:' - rejecting_media: Os ficheiros de medios de este servidor non se procesarán e non se mostrarán miniaturas, precisando solicitarse manualmente ao outro servidor. - silenced: As publicacións desde este servidor non se mostrarán en ningún lugar excepto no Inicio se segues ao autor. - suspended: Non poderás seguir a ninguén desde este servidor, e non se procesarán nin se gardarán datos que procedan del, e non se intercambiarán datos. - unavailable_content_html: Normalmente Mastodon permíteche ver contidos de outros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estableceron en este servidor particular. + reason: Razón + rejecting_media: 'Os ficheiros multimedia deste servidor non serán procesados e non se amosarán miniaturas, o que require un clic manual no ficheiro orixinal:' + silenced: 'As publicacións deste servidor non se amosarán en ningún lugar agás que as sigas:' + suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación cos usuarios dende estes servidores:' + unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar cos seus usuarios. Estas son as excepcións que se estabeleceron neste servidor en particular. user_count_after: - one: usuaria - other: usuarias + one: usuario + other: usuarios user_count_before: Fogar de - what_is_mastodon: Qué é Mastodon? + what_is_mastodon: Que é o Mastodon? accounts: - choices_html: 'Eleccións de %{name}:' - endorsements_hint: Desde a interface web pode recomendar xente que segue, e aparecerán aquí. - featured_tags_hint: Pode destacar determinadas etiquetas que se mostrarán aquí. + choices_html: 'Suxestións de %{name}:' + endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí. + featured_tags_hint: Podes destacar determinados cancelos (hashtags) que se amosarán aquí. follow: Seguir followers: - one: Seguidora - other: Seguidoras + one: Seguidor + other: Seguidores following: Seguindo - joined: Uneuse %{date} + joined: Uniuse en %{date} last_active: última actividade - link_verified_on: A propiedade de esta ligazón foi comprobada en %{date} - media: Medios + link_verified_on: A propiedade desta ligazón foi verificada en %{date} + media: Multimedia moved_html: "%{name} mudouse a %{new_profile_link}:" - network_hidden: A información non está dispoñible + network_hidden: Esta información non está dispoñíbel never_active: Nunca - nothing_here: Nada por aquí! - people_followed_by: Personas que segue %{name} - people_who_follow: Personas que seguen a %{name} + nothing_here: Non hai nada aquí! + people_followed_by: Persoas que segue %{name} + people_who_follow: Persoas que seguen a %{name} pin_errors: - following: Debe seguir a persoa que intenta recomendar + following: Tes que seguir á persoa que queres engadir posts: one: Toot other: Toots posts_tab_heading: Toots posts_with_replies: Toots e respostas - reserved_username: O nome de usuaria está reservado + reserved_username: O nome de usuario está reservado roles: - admin: Admin + admin: Administrador bot: Bot - moderator: Mod - unavailable: Perfil non dispoñible + group: Grupo + moderator: Moderador + unavailable: Perfil non dispoñíbel unfollow: Deixar de seguir admin: account_actions: - action: Realizar acción - title: Realizar acción de moderación sobre %{acct} + action: Executar acción + title: Executar acción de moderación en %{acct} account_moderation_notes: create: Deixar nota - created_msg: Nota a moderación creada con éxito! + created_msg: Nota de moderación creada de xeito correcto! delete: Eliminar - destroyed_msg: Nota a moderación destruída con éxito! + destroyed_msg: Nota de moderación eliminada de xeito correcto! accounts: approve: Aprobar - approve_all: Aprobar todo - are_you_sure: Está segura? - avatar: Avatar + approve_all: Aprobar todos + are_you_sure: Estás seguro? + avatar: Imaxe de perfil by_domain: Dominio change_email: - changed_msg: Cambiouse correctamente o correo-e da conta! - current_email: Correo actual - label: Cambiar correo - new_email: Novo correo - submit: Cambiar correo - title: Cambiar o correo de %{username} + changed_msg: Email da conta mudado de xeito correcto! + current_email: Email actual + label: Mudar email + new_email: Novo email + submit: Mudar email + title: Mudar email de %{username} confirm: Confirmar confirmed: Confirmado - confirming: Confirmar + confirming: Estase a confirmar deleted: Eliminado - demote: Degradar - disable: Deshabilitar - disable_two_factor_authentication: Deshabilitar 2FA - disabled: Deshabilitado - display_name: Mostrar nome + demote: Rebaixar + disable: Desactivar + disable_two_factor_authentication: Desactivar dobre factor + disabled: Desactivado + display_name: Nome a amosar domain: Dominio edit: Editar - email: Correo-e - email_status: Estado do correo - enable: Habilitar - enabled: Habilitado - followers: Seguidoras - follows: Segue + email: Email + email_status: Estado do email + enable: Activar + enabled: Activado + followers: Seguidores + follows: Seguindo header: Cabeceira - inbox_url: URL da Caixa de entrada - invited_by: Convidada por + inbox_url: URL da caixa de entrada + invited_by: Convidado por ip: IP - joined: Uniuse + joined: Unido location: all: Todo local: Local remote: Remoto - title: Lugar - login_status: Estado da conexión - media_attachments: Anexos de medios - memorialize: Convertir a lembranza + title: Localización + login_status: Estado da sesión + media_attachments: Multimedia adxunta + memorialize: Converter en lembranza moderation: - active: Activa + active: Activo all: Todo pending: Pendente - silenced: Acalado - suspended: Suspendido + silenced: Silenciados + suspended: Suspendidos title: Moderación moderation_notes: Notas de moderación most_recent_activity: Actividade máis recente most_recent_ip: IP máis recente - no_account_selected: Non cambiou nada xa que non tiña nada seleccionado + no_account_selected: Ningunha conta mudou porque ningunha foi seleccionada no_limits_imposed: Sen límites impostos - not_subscribed: Non suscrita - pending: Pendente revisión + not_subscribed: Non subscrito + pending: Revisión pendente perform_full_suspension: Suspender promote: Promocionar protocol: Protocolo public: Público - push_subscription_expires: A suscrición PuSH caduca + push_subscription_expires: A subscrición PuSH expira redownload: Actualizar perfil reject: Rexeitar reject_all: Rexeitar todo - remove_avatar: Eliminar avatar + remove_avatar: Eliminar imaxe de perfil remove_header: Eliminar cabeceira resend_confirmation: - already_confirmed: Este usuario ya está confirmado - send: Reenviar el correo electrónico de confirmación - success: "¡Correo electrónico de confirmación enviado con éxito!" - reset: Restablecer - reset_password: Restablecer contrasinal - resubscribe: Voltar a suscribir + already_confirmed: Este usuario xa está confirmado + send: Reenviar o email de confirmación + success: Email de confirmación enviado de xeito correcto! + reset: Restabelecer + reset_password: Restabelecer contrasinal + resubscribe: Resubscribir role: Permisos roles: admin: Administrador moderator: Moderador - staff: Membresía - user: Usuaria - search: Busca + staff: Persoal (staff) + user: Usuario + search: Procurar search_same_ip: Outros usuarios co mesmo IP shared_inbox_url: URL da caixa de entrada compartida show: - created_reports: Informes creados - targeted_reports: Informes feitos por outros - silence: Acalar - silenced: Acalada + created_reports: Denuncias feitas + targeted_reports: Denuncias feitas por outros + silence: Silenciar + silenced: Silenciado statuses: Estados - subscribe: Subscribir - suspended: Suspendida - time_in_queue: Agardando en cola %{time} + subscribe: Subscribirse + suspended: Suspendido + time_in_queue: Agardando na cola %{time} title: Contas - unconfirmed_email: Correo non confirmado - undo_silenced: Desfacer acalar + unconfirmed_email: Email non confirmado + undo_silenced: Desfacer silencio undo_suspension: Desfacer suspensión - unsubscribe: Non subscribir - username: Nome de usuaria + unsubscribe: Desbotar a subscrición + username: Nome de usuario warn: Aviso web: Web - whitelisted: Lista branca + whitelisted: Listaxe branca action_logs: actions: - assigned_to_self_report: "%{name} asignou o informe %{target} a ela misma" - change_email_user: "%{name} cambiou o enderezo de correo-e da usuaria %{target}" - confirm_user: "%{name} comfirmou o enderezo de correo da usuaria %{target}" - create_account_warning: "%{name} enviou un aviso sobre %{target}" - create_custom_emoji: "%{name} subeu un novo emoji %{target}" + assigned_to_self_report: "%{name} atribuíu a denuncia %{target} a el mesmo" + change_email_user: "%{name} mudou o enderezo de email do usuario %{target}" + confirm_user: "%{name} confirmou o enderezo de email do usuario %{target}" + create_account_warning: "%{name} enviou un aviso a %{target}" + create_custom_emoji: "%{name} subiu unha nova emoticona %{target}" + create_domain_allow: "%{name} engadiu á listaxe branca o dominio %{target}" create_domain_block: "%{name} bloqueou o dominio %{target}" - create_email_domain_block: "%{name} engadeu a lista negra o dominio de correo %{target}" - demote_user: "%{name} degradou a usuaria %{target}" - destroy_custom_emoji: "%{name} destruíu emoji %{target}" + create_email_domain_block: "%{name} engadiu á listaxe negra o dominio de email %{target}" + demote_user: "%{name} rebaixou ó usuario %{target}" + destroy_custom_emoji: "%{name} eliminou a emoticona %{target}" + destroy_domain_allow: "%{name} eliminou o dominio %{target} da listaxe branca" destroy_domain_block: "%{name} desbloqueou o dominio %{target}" - destroy_email_domain_block: "%{name} meteu na lista blanca de correo o dominio %{target}" + destroy_email_domain_block: "%{name} engadiu á lista branca o dominio de email %{target}" destroy_status: "%{name} eliminou o estado de %{target}" - disable_2fa_user: "%{name} deshabilitou o requerimento 2FA para usuaria %{target}" - disable_custom_emoji: "%{name} deshabilitou emoji %{target}" - disable_user: "%{name} deshabilitou a conexión para a usuaria %{target}" - enable_custom_emoji: "%{name} habilitou emoji %{target}" - enable_user: "%{name} habilitou a conexión para a usuaria %{target}" - memorialize_account: "%{name} converteu a conta de %{target} nunha páxina para a lembranza" - promote_user: "%{name} promoveu a usuaria %{target}" - remove_avatar_user: "%{name} eliminou o avatar de %{target}" - reopen_report: "%{name} voltou abrir informe %{target}" - reset_password_user: "%{name} restableceu o contrasinal da usuaria %{target}" - resolve_report: "%{name} solucionou o informe %{target}" - silence_account: "%{name} acalou a conta de %{target}" + disable_2fa_user: "%{name} desactivou o requirimento de dobre factor para o usuario %{target}" + disable_custom_emoji: "%{name} desactivou a emoticona %{target}" + disable_user: "%{name} desactivou o acceso á conta para o usuario %{target}" + enable_custom_emoji: "%{name} activou a emoticona %{target}" + enable_user: "%{name} activou o acceso á conta para o usuario %{target}" + memorialize_account: "%{name} converteu a conta de %{target} nunha páxina para a lembranza" + promote_user: "%{name} promocionou o usuario %{target}" + remove_avatar_user: "%{name} eliminou a imaxe de perfil de %{target}" + reopen_report: "%{name} reabriu a denuncia %{target}" + reset_password_user: "%{name} restabeleceu o contrasinal do usuario %{target}" + resolve_report: "%{name} resolveu a denuncia %{target}" + silence_account: "%{name} silenciou a conta de %{target}" suspend_account: "%{name} suspendeu a conta de %{target}" - unassigned_report: "%{name} non asignou informe %{target}" - unsilence_account: "%{name} deulle voz a conta de %{target}" - unsuspend_account: "%{name} activou a conta de %{target}" - update_custom_emoji: "%{name} actualizou emoji %{target}" - update_status: "%{name} actualizou un estado de %{target}" + unassigned_report: "%{name} deixou de atribuír a denuncia %{target}" + unsilence_account: "%{name} deixou de silenciar a conta de %{target}" + unsuspend_account: "%{name} desactivou a suspensión da conta de %{target}" + update_custom_emoji: "%{name} actualizou a emoticona %{target}" + update_status: "%{name} actualizou o estado de %{target}" deleted_status: "(estado eliminado)" title: Rexistro de auditoría custom_emojis: - assign_category: Asignar categoría + assign_category: Atribuír categoría by_domain: Dominio - copied_msg: Creouse con éxito unha copia local dos emoji + copied_msg: Creouse unha copia local das emoticonas de xeito correcto copy: Copiar copy_failed_msg: Non se puido facer copia local de ese emoji create_new_category: Crear nova categoría created_msg: Creou o emoji con satisfactoriamente! delete: Eliminar - destroyed_msg: Emojo destruído satisfactoriamente! - disable: Deshabilitar + destroyed_msg: Emoticona eliminada de xeito correcto! + disable: Desactivar disabled: Desactivado - disabled_msg: Deshabilitouse correctamente ese emoji - emoji: Emoji - enable: Habilitar + disabled_msg: Desactivouse a emoticona de xeito correcto + emoji: Emoticona + enable: Activar enabled: Activado - enabled_msg: Habilitouse correctamente ese emoji - image_hint: PNG ate 50KB - list: A lista + enabled_msg: Activouse a emoticona de xeito correcto + image_hint: PNG de até 50KB + list: Listar listed: Listado new: - title: Engadir novo emoji persoalizado + title: Engadir nova emoticona personalizado overwrite: Sobrescribir - shortcode: Código corto - shortcode_hint: Cando menos 2 caracteres, só caracteres alfanuméricos e subliñados - title: Emojis persoalizados - uncategorized: Sen categorizar - unlist: Sacar da lista - unlisted: Non listado - update_failed_msg: Non se puido actualizar ese emoji - updated_msg: Actualizouse correctamente o emoji! + shortcode: Código curto + shortcode_hint: Polo menos 2 caracteres, só caracteres alfanuméricos e guións baixos + title: Emoticonas personalizadas + uncategorized: Sen categoría + unlist: Non listar + unlisted: Sen listar + update_failed_msg: Non foi posíbel actualizar a emoticona + updated_msg: Actualizouse a emoticona de xeito correcto! upload: Subir dashboard: - authorized_fetch_mode: Modo de obtención autorizado - backlog: traballos respaldados + authorized_fetch_mode: Modo seguro + backlog: traballos en espera config: Axustes - feature_deletions: Borrado de contas + feature_deletions: Eliminacións da conta feature_invites: Ligazóns de convite feature_profile_directory: Directorio do perfil feature_registrations: Rexistros - feature_relay: Repetidores de federación + feature_relay: Repetidor da federación feature_spam_check: Anti-spam - feature_timeline_preview: Vista previa da TL - features: Características - hidden_service: Federación con servizos ocultos - open_reports: informes abertos - pending_tags: etiquetas agardando revisión - pending_users: usuarias agardando revisión - recent_users: Usuarias recentes - search: Busca de texto completo - single_user_mode: Modo de usuario individual + feature_timeline_preview: Vista previa da cronoloxía + features: Funcións + hidden_service: Federación con servizos agochados + open_reports: denuncias abertas + pending_tags: cancelos agardando revisión + pending_users: usuarios agardando revisión + recent_users: Usuarios recentes + search: Procura por texto completo + single_user_mode: Modo de usuario único software: Software - space: Uso de espazo + space: Uso de almacenamento title: Taboleiro - total_users: total de usuarias + total_users: usuarios en total trends: Tendencias - week_interactions: interaccións en esta semana - week_users_active: activas estas semana - week_users_new: usuarias esta semana - whitelist_mode: Modo de lista branca + week_interactions: interaccións desta semana + week_users_active: activos desta semana + week_users_new: usuarios desta semana + whitelist_mode: Modo de listaxe branca domain_allows: - add_new: Dominio en lista branca + add_new: Engadir dominio á listaxe branca created_msg: Engadeu o dominio a lista branca destroyed_msg: Quitou o dominio da lista branca - undo: Eliminar da lista branca + undo: Eliminar da listaxe branca domain_blocks: add_new: Engadir novo bloqueo de dominio created_msg: Estase a procesar o bloqueo do dominio - destroyed_msg: Desfixose a acción de bloqueo de dominio + destroyed_msg: Desfíxose o bloqueo de dominio domain: Dominio edit: Editar bloqueo de dominio - existing_domain_block_html: Xa estableceu límites estrictos para %{name}, precisa desbloqueala primeiro. + existing_domain_block_html: Xa impuxeches límites máis estrictos a %{name}, precisas desbloquealo primeiro. new: - create: Crear bloque + create: Crear bloqueo hint: O bloqueo do dominio non previrá a creación de entradas de contas na base de datos, pero aplicará de xeito retroactivo e automático regras específicas de moderación sobre esas contas. severity: - desc_html: "Silenciar fará invisibles as mensaxes das contas para calquera que non os siga. Suspender eliminará todo o contido das contas, ficheiros de medios, e datos de perfil. Utilice Ningún si só quere rexeitar ficheiros de medios." + desc_html: "Silenciar fará invisíbeis as mensaxes das contas para calquera que non os siga. Suspender eliminará todo o contido das contas, ficheiros multimedia, e datos de perfil. Emprega a opción de Ningún se só queres rexeitar ficheiros multimedia." noop: Ningún silence: Silenciar suspend: Suspender title: Novo bloqueo de dominio private_comment: Comentario privado - private_comment_hint: Comentar entre moderadores para uso interno as limitacións de este dominio. + private_comment_hint: Comentar sobre esta limitación de dominio para uso interno polos moderadores. public_comment: Comentario público - public_comment_hint: Comentar sobre as limitacións de este dominio para o interese público, se o aviso da lista de dominios limitados está activado. - reject_media: Rexeitar ficheiros de medios - reject_media_hint: Eliminar ficheiros de medios almacenados localmente e rexeita descargalos no futuro. Irrelevante para as suspensións - reject_reports: Rexeitar informes - reject_reports_hint: Ignorar todos os informes procedentes de este dominio. Irrelevante para as suspensións - rejecting_media: rexeitando ficheiros de medios - rejecting_reports: rexeitando informes + public_comment_hint: Comentar sobre esta limitación de dominio para o público xeral, se está activado o aviso da listaxe de limitacións de dominio. + reject_media: Rexeitar ficheiros multimedia + reject_media_hint: Eliminar ficheiros multimedia almacenados de xeito local e rexeita descargalos no futuro. Irrelevante para as suspensións + reject_reports: Rexeitar denuncias + reject_reports_hint: Ignorar todas as denuncias procedentes deste dominio. Irrelevante para as suspensións + rejecting_media: rexeitando ficheiros multimedia + rejecting_reports: rexeitando denuncias severity: - silence: acalado + silence: silenciado suspend: suspendido show: affected_accounts: - one: Afectoulle a unha conta na base de datos - other: Afectoulle a %{count} contas na base de datos + one: Unha conta na base de datos afectada + other: "%{count} contas na base de datos afectadas" retroactive: - silence: Non silenciar todas as contas existentes de este dominio - suspend: Non suspender todas as contas existentes de este dominio + silence: Deixar de silenciar todas as contas existentes deste dominio + suspend: Desbotar suspenso de todas as contas existentes deste dominio title: Desfacer o bloqueo de dominio para %{domain} undo: Desfacer undo: Desfacer bloqueo de dominio - view: Ver dominios bloqueados + view: Ollar dominios bloqueados email_domain_blocks: add_new: Engadir novo - created_msg: Engadeuse correctamente o dominio de email a lista negra + created_msg: Engadiuse de xeito correcto o dominio de email á listaxe negra delete: Eliminar - destroyed_msg: Eliminouse correctamente o dominio de e-mail da lista negra + destroyed_msg: Eliminouse de xeito correcto o dominio de email da listaxe negra domain: Dominio + empty: Actualmente non hai dominios de email na listaxe negra. new: create: Engadir dominio - title: Nova entrada la lista negra de e-mail - title: Lista negra de E-mail + title: Nova entrada na listaxe negra de email + title: Listaxe negra de email followers: - back_to_account: Voltar a Conta - title: Seguidoras de %{acct} + back_to_account: Voltar á conta + title: Seguidores de %{acct} instances: by_domain: Dominio - delivery_available: A entrega está dispoñible + delivery_available: Entrega dispoñíbel known_accounts: one: "%{count} conta coñecida" other: "%{count} contas coñecidas" @@ -357,18 +361,18 @@ gl: public_comment: Comentario público title: Federación total_blocked_by_us: Bloqueado por nós - total_followed_by_them: Seguidas por eles - total_followed_by_us: Seguidas por nós - total_reported: Informes sobre elas - total_storage: Anexos de medios + total_followed_by_them: Seguidos por eles + total_followed_by_us: Seguidos por nós + total_reported: Denuncias sobre eles + total_storage: Adxuntos multimedia invites: deactivate_all: Desactivar todo filter: all: Todo - available: Dispoñible - expired: Cadudado + available: Dispoñíbel + expired: Expirado title: Filtro - title: Convida + title: Convites pending_accounts: title: Contas pendentes (%{count}) relays: @@ -391,10 +395,18 @@ gl: created_msg: Creouse correctamente a nota do informe! destroyed_msg: Nota do informe eliminouse con éxito! reports: + account: + notes: + one: "%{count} nota" + other: "%{count} notas" + reports: + one: "%{count} informe" + other: "%{count} informes" action_taken_by: Acción tomada por are_you_sure: Está segura? assign_to_self: Asignarmo assigned: Moderador asignado + by_target_domain: Dominio da conta sobre a que informa comment: none: Nada created_at: Reportado @@ -429,7 +441,7 @@ gl: username: Nome de usuaria de contacto custom_css: desc_html: Modificar o aspecto con CSS cargado en cada páxina - title: CSS persoalizado + title: CSS personalizado default_noindex: desc_html: Aféctalle a todas as usuarias que non cambiaron os axustes elas mesmas title: Por omisión exclúe as usuarias do indexado por servidores de busca @@ -440,6 +452,8 @@ gl: users: Para usuarias locais conectadas domain_blocks_rationale: title: Mostrar razón + enable_bootstrap_timeline_accounts: + title: Activar seguimentos por omisión para novas usuarias hero: desc_html: Mostrado na portada. Recoméndase 600x100px como mínimo. Se non se establece, mostrará a imaxe por omisión do servidor title: Imáxe Heróe @@ -482,13 +496,13 @@ gl: title: Descrición do servidor site_description_extended: desc_html: Un bo lugar para o seu código de conducta, regras, guías e outras cousas que distingan ao seu servidor. Pode utilizar etiquetas HTML - title: Información extendida da persoalización + title: Información extendida da personalización site_short_description: - desc_html: Mostrado na barra lateral e nas etiquetas meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Si está baldeiro, mostrará a descrición do servidor. + desc_html: Mostrado na barra lateral e nas etiquetas meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baldeiro, mostrará a descrición do servidor. title: Descrición curta do servidor site_terms: desc_html: Pode escribir a súa propia política de intimidade, termos de servizo ou aclaracións legais. Pode utilizar etiquetas HTML - title: Termos de servizo persoalizados + title: Termos de servizo personalizados site_title: Nome do servidor spam_check_enabled: desc_html: Mastodon pode silenciar e informar automáticamente sobre contas baseándose en medidas como detectar contas que envían mensaxes non solicitadas de xeito repetido. Podería haber falsos positivos. @@ -554,7 +568,7 @@ gl: body_remote: Alguén desde %{domain} informou sobre %{target} subject: Novo informe sobre %{instance} (#%{id}) new_trending_tag: - body: 'A etiqueta #%{name} é tendencia hoxe, pero non foi previamente revisada. Non se mostrará publicamente a menos que vostede o permita, ou garde o formulario para facer que non se lle consulte de novo.' + body: 'A etiqueta #%{name} é tendencia hoxe, pero non foi previamente revisada. Non se mostrará publicamente a menos que ti o permitas, ou gardes o formulario para facer que non se che consulte de novo.' subject: Unha nova etiqueta que revisar en %{instance} (#%{name}) aliases: add_new: Crear alcume @@ -568,6 +582,10 @@ gl: animations_and_accessibility: Animacións e accesibilidade confirmation_dialogs: Diálogos de confirmación discovery: Descubrir + localization: + body: Mastodon tradúceno persoas voluntarias. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Todas podemos contribuír. sensitive_content: Contido sensible toot_layout: Disposición do toot application_mailer: @@ -591,7 +609,7 @@ gl: checkbox_agreement_html: Acepto as regras do servidor e os termos do servizo checkbox_agreement_without_rules_html: Acepto os termos do servizo delete_account: Eliminar conta - delete_account_html: Se desexa eliminar a súa conta, pode facelo aquí. Pediráselle confirmación. + delete_account_html: Se queres eliminar a túa conta, podes facelo aquí. Deberás confirmar a acción. description: prefix_invited_by_user: "@%{name} convídate a que te unas a este servidor Mastodon!" prefix_sign_up: Rexístrate agora en Mastodon! @@ -602,7 +620,7 @@ gl: login: Conectar logout: Desconectar migrate_account: Mover a unha conta diferente - migrate_account_html: Se desexa redirixir esta conta hacia outra diferente, pode configuralo aquí. + migrate_account_html: Se queres redirixir esta conta hacia outra diferente, pode configuralo aquí. or_log_in_with: ou conectar con providers: cas: CAS @@ -669,8 +687,8 @@ gl: email_reconfirmation_html: Se non recibes o correo de confirmación, podes solicitalo de novo irreversible: Non poderás restaurar ou reactivar a conta more_details_html: Para máis detalles, mira a política de intimidade. - username_available: O nome de usuario estará dispoñible novamente - username_unavailable: O nome de usuario non estará dispoñible + username_available: O nome de usuaria estará dispoñible novamente + username_unavailable: O nome de usuaria non estará dispoñible directories: directory: Directorio de perfil explanation: Descubre usuarias según o teu interese @@ -706,7 +724,6 @@ gl: blocks: A bloquear csv: CSV domain_blocks: Bloqueos de dominio - follows: A seguir lists: Listas mutes: Acalou storage: Almacenamento de medios @@ -728,6 +745,7 @@ gl: invalid_irreversible: O filtrado non reversible só funciona con contexto de avisos ou Inicio index: delete: Eliminar + empty: Non tes filtros. title: Filtros new: title: Engadir novo filtro @@ -758,7 +776,7 @@ gl: invalid_token: Os testemuños Keybase son hashes de firma e deben ter 66 caracteres hexadecimais verification_failed: Keybase non recoñece este testemuño como firma da usuaria de Keybase %{kb_username}. Por favor inténteo desde Keybase. wrong_user: Non se puido crear a proba para %{proving} mentras está conectada como %{current}. Conéctate como %{proving} e inténtao de novo. - explanation_html: Aquí pódese conectar criptográficamente as suas outras identidades, como a un perfil Keybase. Esto permitelle a outras persoas enviarlle mensaxes cifradas e confiar no contido que vostede lle envía. + explanation_html: Aquí podes conectar criptográficamente as tuas outras identidades, como a un perfil Keybase. Esto permítelle a outras persoas enviarche mensaxes cifradas e confiar no contido que ti lles envías. i_am_html: Eu son %{username} en %{service}. identity: Identidade inactive: Inactiva @@ -793,7 +811,7 @@ gl: '86400': 1 día expires_in_prompt: Nunca generate: Xerar - invited_by: 'Vostede foi convidada por:' + invited_by: 'Convidoute:' max_uses: one: 1 uso other: "%{count} usos" @@ -856,11 +874,11 @@ gl: title: Na súa ausencia... favourite: body: 'O seu estado foi marcado favorito por %{name}:' - subject: "%{name} marcou favorito o seu estado" + subject: "%{name} marcou favorito o teu estado" title: Nova favorita follow: - body: "%{name} agora está a seguila!" - subject: "%{name} agora está a seguila" + body: Agora %{name} séguete! + subject: Agora %{name} séguete title: Nova seguidora follow_request: action: Xestionar peticións de seguimento @@ -870,12 +888,16 @@ gl: mention: action: Respostar body: 'Foi mencionada por %{name} en:' - subject: Vostede foi mencionada por %{name} + subject: Foches mencionada por %{name} title: Nova mención reblog: body: 'O seu estado foi promocionado por %{name}:' - subject: "%{name} promoveu o seu estado" + subject: "%{name} promoveu o teu estado" title: Nova promoción + notifications: + email_events: Eventos para os correos de notificación + email_events_hint: 'Escolle os eventos sobre os que queres recibir notificacións:' + other_settings: Outros axustes das notificacións number: human: decimal_units: @@ -899,6 +921,7 @@ gl: duration_too_long: está moi lonxe no futuro duration_too_short: é demasiado cedo expired: A sondaxe rematou + invalid_choice: A opción de voto escollida non existe over_character_limit: non poden ter máis de %{max} caracteres cada unha too_few_options: debe ter máis de unha opción too_many_options: non pode haber máis de %{max} opcións @@ -909,6 +932,8 @@ gl: relationships: activity: Actividade da conta dormant: En repouso + followers: Seguidoras + following: Seguindo last_active: Último activo most_recent: Máis recente moved: Movida @@ -924,18 +949,18 @@ gl: missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta no_account_html: Non ten unha conta? Pode rexistrarse aquí proceed: Proceda para seguir - prompt: 'Vostede vai seguir:' + prompt: 'Vas seguir a:' reason_html: "Por que é necesario este paso?%{instance} podería non ser o servidor onde se rexistrou, así que precisamo redirixila primeiro ao seu servidor de orixe." remote_interaction: favourite: proceed: Darlle a favorito - prompt: 'Vostede quere favorecer este toot:' + prompt: 'Vas marcar favorito este toot:' reblog: proceed: Darlle a promocionar - prompt: 'Vostede quere promocionar este toot:' + prompt: 'Vas promocionar este toot:' reply: proceed: Respostar - prompt: 'Vostede quere respostar a este toot:' + prompt: 'Vas responder a este toot:' scheduled_statuses: over_daily_limit: Excedeu o límite de %{limit} toots programados para ese día over_total_limit: Excedeu o límite de %{limit} toots programados @@ -1056,9 +1081,9 @@ gl:

Qué información recollemos?

    -
  • Información básica da conta: Si se rexistra en este servidor, pediráselle un nome de usuaria, un enderezo de correo electrónico e un contrasinal. De xeito adicional tamén poderá introducir información como un nome público e biografía, tamén subir unha fotografía de perfil e unha imaxe para a cabeceira. O nome de usuaria, o nome público, a biografía e as imaxes de perfil e cabeceira sempre se mostran publicamente.
  • +
  • Información básica da conta: Se se rexistra en este servidor, pediráselle un nome de usuaria, un enderezo de correo electrónico e un contrasinal. De xeito adicional tamén poderá introducir información como un nome público e biografía, tamén subir unha fotografía de perfil e unha imaxe para a cabeceira. O nome de usuaria, o nome público, a biografía e as imaxes de perfil e cabeceira sempre se mostran publicamente.
  • Publicacións, seguimento e outra información pública: O listado das persoas que segue é un listado público, o mesmo acontece coas súas seguidoras. Cando evía unha mensaxe, a data e hora gárdanse así como o aplicativo que utilizou para enviar a mensaxe. As publicacións poderían conter ficheiros de medios anexos, como fotografías e vídeos. As publicacións públicas e as non listadas están dispoñibles de xeito público. Cando destaca unha publicación no seu perfil tamén é pública. As publicacións son enviadas as súas seguidoras, en algúns casos pode acontecer que estén en diferentes servidores e gárdanse copias neles. Cando elemina unha publicación tamén se envía as súas seguidoras. A acción de voltar a publicar ou marcar como favorita outra publicación sempre é pública.
  • -
  • Mensaxes directas e só para seguidoras: Todas as mensaxes gárdanse e procésanse no servidor. As mensaxes só para seguidoras son entregadas as súas seguidoras e as usuarias que son mencionadas en elas, e as mensaxes directas entréganse só as usuarias mencionadas en elas. En algúns casos esto implica que son entregadas a diferentes servidores e gárdanse copias alí. Facemos un esforzo sincero para limitar o acceso a esas publicacións só as persoas autorizadas, pero outros servidores poderían non ser tan escrupulosos. Polo tanto, é importante revisar os servidores onde se hospedan as súas seguidoras. Nos axustes pode activar a opción de aprovar ou rexeitar novas seguidoras de xeito manual. Teña en conta que a administración do servidor e todos os outros servidores implicados poden ver as mensaxes., e as destinatarias poderían facer capturas de pantalla, copiar e voltar a compartir as mensaxes. Non comparta información comprometida en Mastodon.
  • +
  • Mensaxes directas e só para seguidoras: Todas as mensaxes gárdanse e procésanse no servidor. As mensaxes só para seguidoras son entregadas as súas seguidoras e as usuarias que son mencionadas en elas, e as mensaxes directas entréganse só as usuarias mencionadas en elas. En algúns casos esto implica que son entregadas a diferentes servidores e gárdanse copias alí. Facemos un esforzo sincero para limitar o acceso a esas publicacións só as persoas autorizadas, pero outros servidores poderían non ser tan escrupulosos. Polo tanto, é importante revisar os servidores onde se hospedan as súas seguidoras. Nos axustes pode activar a opción de aprovar ou rexeitar novas seguidoras de xeito manual. Teña en conta que a administración do servidor e todos os outros servidores implicados poden ver as mensaxes., e as destinatarias poderían facer capturas de pantalla, copiar e voltar a compartir as mensaxes. Non comparta información comprometida en Mastodon.
  • IPs e outros metadatos: Cando se conecta, gravamos o IP desde onde se conecta, así como o nome do aplicativo desde onde o fai. Todas as sesións conectadas están dispoñibles para revisar e revogar nos axustes. O último enderezo IP utilizado gárdase ate por 12 meses. Tamén poderiamos gardar informes do servidor que inclúan o enderezo IP de cada petición ao servidor.
@@ -1069,7 +1094,7 @@ gl:

Toda a información que recollemos podería ser utilizada dos seguintes xeitos:

    -
  • Para proporcionar a funcionabiliade básica de Mastodon. Só pode interactuar co contido de outra xente e publicar o seu propio contido si está conectada. Por exemplo, podería seguir outra xente e ver as súas publicacións combinadas nunha liña temporal inicial persoalizada.
  • +
  • Para proporcionar a funcionabiliade básica de Mastodon. Só pode interactuar co contido de outra xente e publicar o seu propio contido se está conectada. Por exemplo, podería seguir outra xente e ver as súas publicacións combinadas nunha liña temporal inicial personalizada.
  • Para axudar a moderar a comunidade, por exemplo comparando o seu enderezo IP con outros coñecidos para evitar esquivar os rexeitamentos ou outras infraccións.
  • O endero de correo electrónico que nos proporciona podería ser utilizado para enviarlle información, notificacións sobre outra xente que interactúa cos seus contidos ou lle envía mensaxes, e para respostar a consultas, e/ou outras cuestións ou peticións.
@@ -1078,7 +1103,7 @@ gl:

Cómo proxetemos os seus datos?

-

Implementamos varias medidas de seguridade para protexer os seus datos personais cando introduce, envía ou accede a súa información persoal. Entre outras medidas, a súa sesión de navegación, así como o tráfico entre os seus aplicativos e o API están aseguradas mediante SSL, e o seu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Pode habilitar a autenticación de doble factor para protexer o acceso a súa conta aínda máis.

+

Implementamos varias medidas de seguridade para protexer os seus datos persoais cando introduce, envía ou accede a súa información persoal. Entre outras medidas, a súa sesión de navegación, así como o tráfico entre os seus aplicativos e o API están aseguradas mediante SSL, e o seu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Pode habilitar a autenticación de doble factor para protexer o acceso a súa conta aínda máis.


@@ -1099,7 +1124,7 @@ gl:

Utilizamos testemuños?

-

Si. Os testemuños son pequenos ficheiros que un sitio web ou o provedor de servizo transfiren ao disco duro da súa computadora a través do navegador web (si vostede o permite). Estos testemuños posibilitan ao sitio web recoñecer o seu navegador e, si ten unha conta rexistrada, asocialo con dita conta.

+

Si. Os testemuños son pequenos ficheiros que un sitio web ou o provedor de servizo transfiren ao disco duro da súa computadora a través do navegador web (se vostede o permite). Estos testemuños posibilitan ao sitio web recoñecer o seu navegador e, se ten unha conta rexistrada, asocialo con dita conta.

Utilizamos testemuños para comprender e gardar as súas preferencias para futuras visitas.

@@ -1107,7 +1132,7 @@ gl:

Entregamos algunha información a terceiras alleas?

-

Non vendemos, negociamos ou transferimos de algún xeito a terceiras partes alleas a súa información identificativa persoal. Esto non inclúe terceiras partes de confianza que nos axudan a operar o sitio web, a xestionar a empresa, ou darlle servizo si esas partes aceptan manter esa información baixo confidencialidade. Poderiamos liberar esa información si cremos que eso da cumplimento axeitado a lei, reforza as políticas do noso sitio ou protexe os nosos, e de outros, dereitos, propiedade ou seguridade.

+

Non vendemos, negociamos ou transferimos de algún xeito a terceiras partes alleas a súa información identificativa persoal. Esto non inclúe terceiras partes de confianza que nos axudan a operar o sitio web, a xestionar a empresa, ou darlle servizo se esas partes aceptan manter esa información baixo confidencialidade. Poderiamos liberar esa información se cremos que eso da cumplimento axeitado a lei, reforza as políticas do noso sitio ou protexe os nosos, e de outros, dereitos, propiedade ou seguridade.

O seu contido público podería ser descargado por outros servidores na rede. As súas publicacións públicas e para só seguidoras son entregadas aos servidores onde residen as súas seguidoras na rede, e as mensaxes directas son entregadas aos servidores das destinatarias sempre que esas seguidoras ou destinatarios residan en servidores distintos de este.

@@ -1117,9 +1142,9 @@ gl:

Utilización do sitio web por menores

-

Si este servidor está na UE ou no EEE: a nosa web, productos e servizos están dirixidos a persoas de 16 ou máis anos. Si ten menos de 16 anos, a requerimento da GDPR (General Data Protection Regulation) non utilice esta web.

+

Se este servidor está na UE ou no EEE: a nosa web, productos e servizos están dirixidos a persoas de 16 ou máis anos. Se ten menos de 16 anos, a requerimento da GDPR (General Data Protection Regulation) non utilice esta web.

-

Si este servidor está nos EEUU: a nosa web, productos e servizos están dirixidos a persoas de 13 ou máis anos. Si non ten 13 anos de idade, a requerimento de COPPA (Children's Online Privacy Protection Act) non utilice esta web.

+

Se este servidor está nos EEUU: a nosa web, productos e servizos están dirixidos a persoas de 13 ou máis anos. Se non ten 13 anos de idade, a requerimento de COPPA (Children's Online Privacy Protection Act) non utilice esta web.

Os requerimentos legais poden ser diferentes si este servidor está baixo outra xurisdición.

@@ -1127,7 +1152,7 @@ gl:

Cambios na nosa política de intimidade

-

Si decidimos cambiar a nosa política de intimidade publicaremos os cambios en esta páxina.

+

Se decidimos cambiar a nosa política de intimidade publicaremos os cambios en esta páxina.

Este documento ten licenza CC-BY-SA. Actualizouse o 7 de Marzo de 2018.

@@ -1149,7 +1174,7 @@ gl: enabled: A autenticación de dobre-factor está activada enabled_success: Activouse con éxito a autenticación de dobre-factor generate_recovery_codes: Xerar códigos de recuperación - instructions_html: "Escanee este código QR en Google Authenticator ou aplicativo TOTP similar no seu teléfono. Desde agora, este aplicativo xerará testemuños que vostede deberá introducir ao conectarse." + instructions_html: "Escanea este código QR en Google Authenticator ou aplicación TOTP no teu teléfono. Desde agora, esta aplicación proporcionará testemuños que debes introducir ao conectarte." lost_recovery_codes: Os códigos de recuperación permítenlle recuperar o acceso a súa conta si perde o teléfono. Si perde os códigos de recuperación, pode restauralos aquí. Os seus códigos de recuperación anteriores serán invalidados. manual_instructions: 'Si non pode escanear o código QR e precisa introducilo manualmente, aquí está o testemuño secreto en texto plano:' recovery_codes: Códigos de recuperación do respaldo @@ -1165,7 +1190,7 @@ gl: warning: explanation: disable: Cando a súa conta está conxelada, os datos permanecen intactos, pero non pode levar a fin accións ate que se desbloquea. - silence: Mentras a conta está limitada, só a xente que actualmente a segue verá os seus toots en este servidor, e vostede podería estar excluída de varias listas públicas. Porén, outras persoas poderíana seguila de xeito manual. + silence: Mentras a conta está limitada, só a xente que actualmente te segue verá os teus toots en este servidor, e poderías estar excluída de varias listaxes públicas. Porén, outras persoas poderíante seguir de xeito manual. suspend: A súa conta foi suspendida, e todos os seus toots e medios subidos foron eliminados de este servidor de xeito irreversible, e dos servidores onde tivese seguidoras. get_in_touch: Pode responder a este correo para contactar coa administración de %{instance}. review_server_policies: Revisar políticas do servidor @@ -1182,7 +1207,7 @@ gl: suspend: Conta suspendida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Vostede pode persoalizar o seu perfil subindo un avatar, cabeceira, cambiar o seu nome público e aínda máis. Si restrinxe a súa conta pode revisar a conta das personas que solicitan seguilas antes de permitirlles o acceso aos seus toots. + edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a tua conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots. explanation: Aquí ten alunhas endereitas para ir aprendendo final_action: Comece a publicar final_step: 'Publique! Incluso sin seguidoras as súas mensaxes serán vistas por outras, por exemplo na liña temporal local e nas etiquetas. Podería presentarse no #fediverso utilizando a etiqueta #introductions.' @@ -1191,8 +1216,8 @@ gl: review_preferences_action: Cambiar preferencias review_preferences_step: Lembre establecer as preferencias, tales como qué correos-e lle querería recibir, ou o nivel de intimidade por omisión para as súas mensaxes. Se non lle molestan as imaxes con movemento, pode escoller que os GIF se reproduzan automáticamente. subject: Benvida a Mastodon - tip_federated_timeline: A liña temporal federada é unha visión ampla da rede Mastodon. Pero so inclúe xente a que segue xente que vostede segue, así que non é completa. - tip_following: Por omisión segues a Admin no teu servidor. Para atopar máis xente interesante, mira nas liñas temporais local e federada. + tip_federated_timeline: A liña temporal federada é unha visión reducida da rede Mastodon. Inclúe xente a que segue xente que ti segues, así que non é completa. + tip_following: Por omisión segues a Admin(s) no teu servidor. Para atopar máis xente interesante, mira nas liñas temporais local e federada. tip_local_timeline: A liña temporal local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas! tip_mobile_webapp: Si o navegador móbil lle ofrece engadir Mastodon a pantalla de inicio, pode recibir notificacións push. En moitos aspectos comportarase como un aplicativo nativo! tips: Consellos @@ -1205,5 +1230,5 @@ gl: seamless_external_login: Está conectado a través de un servizo externo, polo que os axustes de contrasinal e correo-e non están dispoñibles. signed_in_as: 'Rexistrada como:' verification: - explanation_html: 'Pode validarse a vostede mesma como a dona das ligazóns nos metadatos do seu perfil. Para esto, o sitio web ligado debe conter unha ligazón de retorno ao perfil de Mastodon. Esta ligazón de retorno ten que ter un atributo rel="me". O texto da ligazón non importa. Aquí ten un exemplo:' + explanation_html: 'Podes validarte a ti mesma como a dona das ligazóns nos metadatos do teu perfil. Para esto, o sitio web ligado debe conter unha ligazón de retorno ao perfil de Mastodon. Esta ligazón de retorno ten que ter un atributo rel="me". O texto da ligazón non importa. Aquí tes un exemplo:' verification: Validación diff --git a/config/locales/he.yml b/config/locales/he.yml index 89e8a6e4f..2bdc816f3 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -216,7 +216,6 @@ he: '503': The page could not be served due to a temporary server failure. exports: blocks: רשימת חסימות - follows: רשימת נעקבים mutes: רשימת השתקות storage: אחסון מדיה generic: diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 67d83525b..9dd14c1dd 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -55,7 +55,6 @@ hr: '503': The page could not be served due to a temporary server failure. exports: blocks: Blokirao si - follows: Slijediš storage: Pohrana media zapisa generic: changes_saved_msg: Izmjene su uspješno sačuvane! diff --git a/config/locales/hu.yml b/config/locales/hu.yml index b4f8a970a..ba6fbed7c 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -3,7 +3,7 @@ hu: about: about_hashtag_html: Ezek a #%{hashtag} hashtag-gel ellátott publikus tülkök. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban. about_mastodon_html: A Mastodon egy szabad webes protokollokat használó, nyílt forráskódú szociális háló. Decentralizált, akár az e-mail. - about_this: Rólunk + about_this: Névjegy active_count_after: aktív active_footnote: Havonta aktív felhasználók administered_by: 'Adminisztrátor:' @@ -80,6 +80,7 @@ hu: roles: admin: Adminisztrátor bot: Bot + group: Csoport moderator: Moderátor unavailable: Nincs ilyen profil unfollow: Követés vége @@ -395,10 +396,18 @@ hu: created_msg: Bejelentési feljegyzés létrehozva! destroyed_msg: Bejelentési feljegyzés törölve! reports: + account: + notes: + one: "%{count} feljegyzés" + other: "%{count} feljegyzés" + reports: + one: "%{count} bejelentés" + other: "%{count} bejelentés" action_taken_by: 'Kezelte:' are_you_sure: Biztos vagy benne? assign_to_self: Magamhoz rendelés assigned: Hozzárendelt moderátor + by_target_domain: A bejelentett fiók domainje comment: none: Egyik sem created_at: Jelentve @@ -444,6 +453,8 @@ hu: users: Bejelentkezett helyi felhasználóknak domain_blocks_rationale: title: Mutasd meg az indokolást + enable_bootstrap_timeline_accounts: + title: Alapértelmezett követés engedélyezése új felhasználóknak hero: desc_html: A kezdőoldalon látszik. Legalább 600x100px méret javasolt. Ha nincs beállítva, a szerver bélyegképet használjuk title: Hősi kép @@ -572,6 +583,10 @@ hu: animations_and_accessibility: Animáció és akadálymentesítés confirmation_dialogs: Megerősítő párbeszédablakok discovery: Felfedezés + localization: + body: A Mastodont önkéntesek fordítják. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Bárki közreműködhet. sensitive_content: Szenzitív tartalom toot_layout: Tülkök megjelenése application_mailer: @@ -710,7 +725,6 @@ hu: blocks: Tiltólistádon csv: CSV domain_blocks: Tiltott domainjeid - follows: Követettjeid lists: Listáid mutes: Némításaid storage: Médiatároló @@ -732,6 +746,7 @@ hu: invalid_irreversible: Visszafordíthatatlan szűrést csak saját idővonalon vagy értesítéseken lehet végezni index: delete: Törlés + empty: Nincs szűrés. title: Szűrők new: title: Új szűrő hozzáadása @@ -880,6 +895,10 @@ hu: body: 'A tülködet %{name} megtolta:' subject: "%{name} megtolta a tülködet" title: Új megtolás + notifications: + email_events: Események email értesítésekhez + email_events_hint: 'Válaszd ki azokat az eseményeket, melyekről értesítést szeretnél:' + other_settings: Értesítések egyéb beállításai number: human: decimal_units: @@ -913,6 +932,8 @@ hu: relationships: activity: Fiók aktivitás dormant: Elhagyott + followers: Követők + following: Követve last_active: Utoljára aktív most_recent: Legutóbbi moved: Átköltöztetve diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 203351893..2c692235b 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -1,14 +1,29 @@ --- hy: about: + about_this: Մեր մասին active_count_after: ակտիվ + api: API + apps: Բջջային հավելվածներ + contact_unavailable: Ոչինչ չկա + learn_more: Իմանալ ավելին + privacy_policy: Գաղտնիության քաղաքականություն see_whats_happening: Տես ինչ ա կատարվում status_count_after: one: ստատուս other: ստատուս what_is_mastodon: Ի՞նչ է Մաստոդոնը accounts: + follow: Հետևել + followers: + one: Հետևորդ + other: Հետևորդներ media: Մեդիա + never_active: Երբեք + unfollow: Չհետևել + admin: + account_moderation_notes: + delete: Ջնջել auth: login: Մտնել errors: diff --git a/config/locales/id.yml b/config/locales/id.yml index 982e4289a..99d274122 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -74,6 +74,7 @@ id: roles: admin: Admin bot: Bot + group: Grup moderator: Moderator unavailable: Profil tidak tersedia unfollow: Berhenti mengikuti @@ -332,6 +333,7 @@ id: delete: Hapus destroyed_msg: Berhasil menghapus domain surel dari daftar hitam domain: Domain + empty: Tidak ada domain surel yang masuk daftar hitam. new: create: Tambah domain title: Entri daftar hitam surel baru @@ -386,10 +388,16 @@ id: created_msg: Catatan laporan berhasil dibuat! destroyed_msg: Catatan laporan berhasil dihapus! reports: + account: + notes: + other: "%{count} catatan" + reports: + other: "%{count} laporan" action_taken_by: Aksi dilakukan oleh are_you_sure: Apakah Anda yakin? assign_to_self: Tugaskan kpd saya assigned: Moderator tertugas + by_target_domain: Domain akun yang dilaporkan comment: none: Tidak ada created_at: Dilaporkan @@ -432,8 +440,11 @@ id: all: Kepada semua orang disabled: Tidak kepada siapa pun title: Lihat blokir domain + enable_bootstrap_timeline_accounts: + title: Aktifkan opsi ikuti otomatis untuk pengguna baru hero: desc_html: Ditampilkan di halaman depan. Direkomendasikan minimal 600x100px. Jika tidak diatur, kembali ke server gambar kecil + title: Gambar pertama mascot: desc_html: Ditampilkan di banyak halaman. Direkomendasikan minimal 293x205px. Jika tidak diatur, kembali ke maskot bawaan title: Gambar maskot @@ -558,7 +569,12 @@ id: animations_and_accessibility: Animasi dan aksesibilitas confirmation_dialogs: Dialog konfirmasi discovery: Jelajah + localization: + body: Mastodon diterjemahkan oleh sukarelawan. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Siapa saja bisa berkontribusi. sensitive_content: Konten sensitif + toot_layout: Tata letak toot application_mailer: notification_preferences: Ubah pilihan email salutation: "%{name}," @@ -695,12 +711,13 @@ id: blocks: Anda blokir csv: CSV domain_blocks: Blokir domain - follows: Anda ikuti lists: Daftar mutes: Anda bisukan storage: Penyimpanan media featured_tags: add_new: Tambah baru + errors: + limit: Anda sudah menampilkan tagar unggulan dengan jumlah maksimum filters: contexts: home: Beranda @@ -709,8 +726,11 @@ id: thread: Percakapan edit: title: Ubah saringan + errors: + invalid_context: Konteks tidak ada atau invalid index: delete: Hapus + empty: Anda tidak memiliki filter. title: Saringan new: title: Tambah saringan baru @@ -813,6 +833,7 @@ id: cooldown: Setelah pindah akun adalah masa tenang, masa Anda tidak dapat pindah akun lagi followers: Tindakan ini akan memindah semua pengikut Anda dari akun sekarang ke akun baru other_data: Tidak akan ada data lagi yang dipindahkan secara otomatis + redirect: Pemberitahuan peralihan akan dimunculkan pada akun profil Anda dan akun akan dikecualikan dari pencarian moderation: title: Moderasi notification_mailer: @@ -847,6 +868,8 @@ id: body: 'Status anda di-boost oleh %{name}:' subject: "%{name} mem-boost status anda" title: Boost baru + notifications: + other_settings: Pengaturan notifikasi lain number: human: decimal_units: @@ -874,17 +897,22 @@ id: too_many_options: tidak boleh berisi lebih dari %{max} item preferences: other: Lainnya + posting_defaults: Kiriman bawaan public_timelines: Linimasa publik relationships: activity: Aktivitas akun dormant: Terbengkalai + followers: Pengikut + following: Mengikuti last_active: Terakhir aktif most_recent: Terkini moved: Dipindah + mutual: Mutual primary: Utama relationship: Hubungan remove_selected_domains: Hapus semua pengikut dari domain yang dipilih remove_selected_followers: Hampus pengikut yang dipilih + remove_selected_follows: Batal ikuti pengguna terpilih status: Status akun remote_follow: acct: Masukkan namapengguna@domain yang akan anda ikuti @@ -967,6 +995,7 @@ id: notifications: Notifikasi preferences: Pilihan profile: Profil + relationships: Ikuti dan pengikut two_factor_authentication: Autentikasi Two-factor spam_check: spam_detected: Ini adalah laporan otomatis. Spam terdeteksi. @@ -986,35 +1015,68 @@ id: over_character_limit: melebihi %{max} karakter pin_errors: limit: Anda sudah mencapai jumlah maksimum toot yang dapat disematkan + ownership: Toot orang lain tidak bisa disematkan + private: Toot privat tidak bisa disematkan + reblog: Boost tidak bisa disematkan + poll: + total_people: + other: "%{count} orang" + total_votes: + other: "%{count} memilih" + vote: Memilih show_more: Tampilkan selengkapnya + sign_in_to_participate: Masuk untuk mengikuti percakapan + title: '%{name}: "%{quote}"' visibilities: private: Khusus pengikut private_long: Hanya tampilkan ke pengikut public: Publik public_long: Bisa dilihat semua orang unlisted: Bisa dilihat semua orang, tapi tidak ditampilkan di linimasa publik + unlisted_long: Tidak terdaftar di linimasa publik tetapi siapapun dapat melihat stream_entries: + pinned: Toot tersemat reblogged: di-boost-kan sensitive_content: Konten sensitif + tags: + does_not_match_previous_name: tidak cocok dengan nama sebelumnya + terms: + title: "%{instance} Ketentuan Layanan dan Kebijakan Privasi" + themes: + contrast: Mastodon (Kontras tinggi) + default: Mastodon (Gelap) + mastodon-light: Mastodon (Terang) time: formats: default: "%d %b %Y, %H:%M" + month: "%b %Y" two_factor_authentication: code_hint: Masukkan kode yang dibuat oleh app autentikator sebagai konfirmasi description_html: Jika anda menaktifkan ototentikasi dua faktor, saat login anda harus menggunakan telepon anda untuk membuat token supaya anda bisa masuk. disable: Matikan enable: Aktifkan + enabled: Otentifikasi dua faktor aktif enabled_success: Ototentikasi dua faktor telah diaktifkan generate_recovery_codes: Buat Kode Pemulihan instructions_html: "Pindai kode QR ini pada Otentikator Google anda atau aplikasi TOTP lainnya di telepon anda. Mulai sekarang, aplikasi tersebut akan membuat token yang bisa anda gunakan untuk login." lost_recovery_codes: Kode pemulihan bisa anda gunakan untuk mendapatkan kembali akses pada akun anda jika anda kehilangan handphone anda. Jika anda kehilangan kode pemulihan, anda bisa membuatnya ulang disini. Kode pemulihan anda yang lama tidak akan bisa digunakan lagi. manual_instructions: 'Jika anda tidak bisa memindai kode QR dan harus memasukkannya secara manual, ini dia kode yang harus dimasukkan:' + recovery_codes: Kode pemulihan cadangan recovery_codes_regenerated: Kode Pemulihan berhasil dibuat ulang recovery_instructions_html: Jika anda kehilangan akses pada handphone anda, anda bisa menggunakan kode pemulihan dibawah ini untuk mendapatkan kembali akses pada akun anda. Simpan kode pemulihan anda baik-baik, misalnya dengan mencetaknya atau menyimpannya bersama dokumen penting lainnya. setup: Persiapan wrong_code: Kode yang dimasukkan tidak cocok! Apa waktu server dan waktu di handphone sudah cocok? user_mailer: + backup_ready: + explanation: Cadangan penuh akun Mastodon Anda sudah dapat diunduh! + subject: Arsip Anda sudah siap diunduh + title: Ambil arsip warning: + explanation: + disable: Saat akun Anda beku, data Anda tetap utuh. Anda tidak akan dapat melakukan apa-apa sampai akun Anda tidak lagi dikunci. + silence: Saat akun Anda dibatasi, hanya akun yang Anda ikuti yang dapat melihat toot Anda di server ini. Akun Anda mungkin akan dikecualikan dari daftar publik. Akun lain dapat mengikuti akun Anda secara manual. + suspend: Akun Anda telah ditangguhkan. Semua toot dan media yang Anda unggah dihapus secara permanen dari server ini, dan server tempat Anda memiliki pengikut. + get_in_touch: Anda dapat membalas surel ini untuk menghubungi pengurus %{instance}. review_server_policies: Tinjau kebijakan server statuses: 'Khususnya untuk:' subject: @@ -1029,6 +1091,25 @@ id: suspend: Akun ditangguhkan welcome: edit_profile_action: Siapkan profil + edit_profile_step: Anda dapat menyesuaikan profil Anda dengan mengunggah avatar, kepala, mengubah tampilan nama dan lainnya. Jika Anda ingin meninjau pengikut baru sebelum Anda terima sebagai pengikut, Anda dapat mengunci akun Anda. + explanation: Beberapa tips sebelum Anda memulai + final_action: Mulai mengirim + final_step: 'Mulai mengirim! Tanpa pengikut, pesan publik Anda akan tetap dapat dilihat oleh akun lain, contohnya di linimasa lokal atau di tagar. Anda mungkin ingin memperkenalkan diri dengan tagar #introductions.' + full_handle_hint: Ini yang dapat Anda sampaikan kepada teman agar mereka dapat mengirim pesan atau mengikuti Anda dari server lain. + review_preferences_action: Ubah preferensi + review_preferences_step: Pastikan Anda telah mengatur preferensi Anda, seperti surel untuk menerima pesan, atau tingkat privasi bawaan untuk kiriman Anda. Jika Anda tidak alergi dengan gerakan gambar, Anda dapat mengaktifkan opsi mainkan otomatis GIF. + subject: Selamat datang di Mastodon + tip_following: Anda secara otomatis mengikuti admin server. Untuk mencari akun-akun yang menarik, silakan periksa linimasa lokal dan gabungan. + tip_mobile_webapp: Jika peramban mobile Anda ingin menambahkan Mastodon ke layar utama, Anda dapat menerima notifikasi dorong. Ia akan berjalan seperti aplikasi asli! + tips: Tips + title: Selamat datang, %{name}! users: + follow_limit_reached: Anda tidak dapat mengikuti lebih dari %{limit} orang invalid_email: Alamat email tidak cocok invalid_otp_token: Kode dua faktor tidak cocok + otp_lost_help_html: Jika Anda kehilangan akses keduanya, Anda dapat menghubungi %{email} + seamless_external_login: Anda masuk via layanan eksternal, sehingga setelan kata sandi dan surel tidak tersedia. + signed_in_as: 'Masuk sebagai:' + verification: + explanation_html: 'Anda dapat memverifikasi diri Anda sebagai pemiliki tautan pada metadata profil. Situsweb yang ditautkan haruslah berisi tautan ke profil Mastodon Anda. Tautan tersebut harus memiliki atribut rel="me". Isi teks tautan tidaklah penting. Ini contohnya:' + verification: Verifikasi diff --git a/config/locales/io.yml b/config/locales/io.yml index 2b3e50691..4e426e469 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -84,7 +84,6 @@ io: '503': The page could not be served due to a temporary server failure. exports: blocks: Tu blokusas - follows: Tu sequas storage: Konservado di kontenajo generic: changes_saved_msg: Chanji senprobleme konservita! diff --git a/config/locales/is.yml b/config/locales/is.yml new file mode 100644 index 000000000..424be5ce9 --- /dev/null +++ b/config/locales/is.yml @@ -0,0 +1,1151 @@ +--- +is: + about: + about_hashtag_html: Þetta eru opinber tíst sem merkt eru með #%{hashtag}. Þú getur unnið með þau ef þú ert með skráðan aðgang einhversstaðar í skýjasambandinu. + about_mastodon_html: 'Samfélagsnet framtíðarinnar: Engar auglýsingar, ekkert eftirlit stórfyrirtækja, siðleg hönnun og engin miðstýring! Þú átt þín eigin gögn í Mastodon!' + about_this: Um hugbúnaðinn + active_count_after: virkt + active_footnote: Mánaðarlega virkir notendur (MAU) + administered_by: 'Stýrt af:' + api: API-kerfisviðmót + apps: Farsímaforrit + apps_platforms: Notaðu Mastodon frá iOS, Android og öðrum stýrikerfum + browse_directory: Skoða notandasniðamöppu og sía eftir áhugamálum + browse_local_posts: Skoðaðu kvikt streymi af opinberum færslum á þessum vefþjóni + browse_public_posts: Skoðaðu kvikt streymi af opinberum færslum á Mastodon + contact: Hafa samband + contact_missing: Ekki skilgreint + contact_unavailable: Ekki til staðar + discover_users: Uppgötva notendur + documentation: Hjálparskjöl + federation_hint_html: Með notandaaðgangi á %{instance} geturðu fylgst með fólki á hvaða Mastodon-þjóni sem er og reyndar víðar. + get_apps: Prófaðu farsímaforrit + hosted_on: Mastodon hýst á %{domain} + instance_actor_flash: | + Þessi aðgangur er sýndarnotandi sem er notaður til að tákna sjálfan vefþjóninn en ekki neinn einstakan notanda. + Tilgangur hans tengist virkni vefþjónasambandsins og ætti alls ekki að loka á hann nema að þú viljir útiloka allan viðkomandi vefþjón, en þá ætti frekar að útiloka sjálft lénið. + learn_more: Kanna nánar + privacy_policy: Persónuverndarstefna + see_whats_happening: Sjáðu hvað er í gangi + server_stats: 'Tölfræði þjóns:' + source_code: Grunnkóði + status_count_after: + one: stöðufærsla + other: stöðufærslur + status_count_before: Sem stóðu fyrir + tagline: Fylgstu með vinum og uppgötvaðu nýja + terms: Þjónustuskilmálar + unavailable_content: Ekki tiltækt efni + unavailable_content_description: + domain: Vefþjónn + reason: Ástæða + rejecting_media: 'Myndefnisskrár frá þessum vefþjónum verða hvorki birtar né geymdar og engar smámyndir frá þeim birtar, sem krefst þess að smellt sé handvirkt til að nálgast upprunalegu skrárnar:' + silenced: 'Færslur frá þessum vefþjónum verða faldar í opinberum tímalínum og samtölum, auk þess sem engar tilkynningar verða til þvið aðgerðir notendanna, nema ef þú fylgist með þeim:' + suspended: 'Engin gögn frá þessum vefþjónum verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjónum ómöguleg:' + unavailable_content_html: Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni. + user_count_after: + one: notanda + other: notendur + user_count_before: Hýsir + what_is_mastodon: Hvað er Mastodon? + accounts: + choices_html: "%{name} hefur valið:" + endorsements_hint: Þú getur auglýst efni frá fólki sem þú fylgir í vefviðmótinu og mun það birtast hér. + featured_tags_hint: Þú getur gefið sérstökum myllumerkjum aukið vægi og birtast þau þá hér. + follow: Fylgja + followers: + one: fylgjandi + other: fylgjendur + following: Fylgist með + joined: Gerðist þátttakandi %{date} + last_active: síðasta virkni + link_verified_on: Eignarhald á þessum tengli var athugað þann {date} + media: Myndskrár + moved_html: "%{name} hefur verið færður í %{new_profile_link}:" + network_hidden: Þessar upplýsingar ekki tiltækar + never_active: Aldrei + nothing_here: Það er ekkert hér! + people_followed_by: Fólk sem %{name} fylgist með + people_who_follow: Fólk sem fylgist með %{name} + pin_errors: + following: Þú þarft að vera þegar að fylgjast með þeim sem þú ætlar að mæla með + posts: + one: Tíst + other: Tíst + posts_tab_heading: Tíst + posts_with_replies: Tíst og svör + reserved_username: Notandanafnið er frátekið + roles: + admin: Stjóri + bot: Róbót + group: Hópur + moderator: Umsjón + unavailable: Notandasnið ekki tiltækt + unfollow: Hætta að fylgja + admin: + account_actions: + action: Framkvæma aðgerð + title: Framkvæma umsjónaraðgerð á %{acct} + account_moderation_notes: + create: Skilja eftir minnispunkt + created_msg: Tókst að útbúa minnispunkt umsjónarmanns! + delete: Eyða + destroyed_msg: Tókst að eyða minnispunkti umsjónarmanns! + accounts: + approve: Samþykkja + approve_all: Samþykkja allt + are_you_sure: Ertu viss? + avatar: Auðkennismynd + by_domain: Lén + change_email: + changed_msg: Tölvupóstfangi notandaaðgangsins hefur verið breytt! + current_email: Núverandi tölvupóstfang + label: Breyta tölvupóstfangi + new_email: Nýr tölvupóstur + submit: Breyta tölvupóstfangi + title: Breyta tölvupóstfangi fyrir %{username} + confirm: Staðfesta + confirmed: Staðfest + confirming: Staðfesti + deleted: Eytt + demote: Lækka í tign + disable: Gera óvirkt + disable_two_factor_authentication: Gera tveggja-þátta auðkenningu óvirka + disabled: Óvirkt + display_name: Birtingarnafn + domain: Lén + edit: Breyta + email: Tölvupóstur + email_status: Staða tölvupósts + enable: Virkja + enabled: Virkt + followers: Fylgjendur + follows: Fylgist með + header: Haus + inbox_url: Slóð á innhólf + invited_by: Boðið af + ip: IP-vistfang + joined: Gerðist þátttakandi + location: + all: Allt + local: Staðvært + remote: Fjartengt + title: Staðsetning + login_status: Staða innskráningar + media_attachments: Myndaviðhengi + memorialize: Breya í minningargrein + moderation: + active: Virkur + all: Allt + pending: Í bið + silenced: Hulið + suspended: Í bið + title: Umsjón + moderation_notes: Minnispunktar umsjónarmanna + most_recent_activity: Allra nýjasta virkni + most_recent_ip: Nýjasta IP-vistfang + no_account_selected: Engum aðgöngum var breytt þar sem engir voru valdir + no_limits_imposed: Engra takmarka krafist + not_subscribed: Ekki í áskrift + pending: Bíður eftir yfirlestri + perform_full_suspension: Setja í bið + promote: Hækka í tign + protocol: Samskiptamáti + public: Opinber + push_subscription_expires: PuSH-áskrift rennur út + redownload: Endurlesa notandasnið + reject: Hafna + reject_all: Hafna öllu + remove_avatar: Fjarlægja auðkennismynd + remove_header: Fjarlægja haus + resend_confirmation: + already_confirmed: Þessi notandi hefur þegar verið staðfestur + send: Senda staðfestingartölvupóst aftur + success: Það tókst að senda staðfestingartölvupóst! + reset: Endurstilla + reset_password: Endurstilla lykilorð + resubscribe: Gerast áskrifandi aftur + role: Heimildir + roles: + admin: Stjórnandi + moderator: Umsjónarmaður + staff: Starfsmaður + user: Notandi + search: Leita + search_same_ip: Aðrir notendur með sama IP-vistfang + shared_inbox_url: Slóð á sameiginlegt innhólf + show: + created_reports: Gerðar kærur + targeted_reports: Kært af öðrum + silence: Hylja + silenced: Hulið + statuses: Stöðufærslur + subscribe: Gerast áskrifandi + suspended: Í bið + time_in_queue: Bíður í biðröð %{time} + title: Notandaaðgangar + unconfirmed_email: Óstaðfestur tölvupóstur + undo_silenced: Hætta að hylja + undo_suspension: Taka úr bið + unsubscribe: Taka úr áskrift + username: Notandanafn + warn: Aðvara + web: Vefur + whitelisted: Á lista yfir leyft + action_logs: + actions: + assigned_to_self_report: "%{name} úthlutaði skýrslu %{target} til sín" + change_email_user: "%{name} breytti tölvupóstfangi fyrir notandann %{target}" + confirm_user: "%{name} staðfesti tölvupóstfang fyrir notandann %{target}" + create_account_warning: "%{name} sendi aðvörun til %{target}" + create_custom_emoji: "%{name} sendi inn nýtt tjáningartákn %{target}" + create_domain_allow: "%{name} setti lén %{target} á lista yfir leyft" + create_domain_block: "%{name} útilokaði lénið %{target}" + create_email_domain_block: "%{name} setti póstlén %{target} á lista yfir bannað" + demote_user: "%{name} lækkaði notandann %{target} í tign" + destroy_custom_emoji: "%{name} henti út tjáningartákninu %{target}" + destroy_domain_allow: "%{name} fjarlægði lén %{target} af lista yfir leyft" + destroy_domain_block: "%{name} aflétti útilokun af léninu %{target}" + destroy_email_domain_block: "%{name} setti póstlén %{target} á lista yfir leyft" + destroy_status: "%{name} fjarlægði stöðufærslu frá %{target}" + disable_2fa_user: "%{name} gerði tveggja-þátta auðkenningu óvirka fyrir notandann %{target}" + disable_custom_emoji: "%{name} gerði tjáningartáknið %{target} óvirkt" + disable_user: "%{name} gerðir innskráningu óvirka fyrir notandann %{target}" + enable_custom_emoji: "%{name} gerði tjáningartáknið %{target} virkt" + enable_user: "%{name} gerðir innskráningu virka fyrir notandann %{target}" + memorialize_account: "%{name} breytti notandaaðgangnum %{target} í minningargreinarsíðu" + promote_user: "%{name} hækkaði notandann %{target} í tign" + remove_avatar_user: "%{name} fjarlægði auðkennismynd af %{target}" + reopen_report: "%{name} enduropnaði skýrslu %{target}" + reset_password_user: "%{name} endurstillti lykilorð fyrir notandann %{target}" + resolve_report: "%{name} leysti skýrslu %{target}" + silence_account: "%{name} gerði notandaaðganginn %{target} hulinn" + suspend_account: "%{name} setti notandaaðganginn %{target} í bið" + unassigned_report: "%{name} fjarlægði úthlutun af skýrslu %{target}" + unsilence_account: "%{name} hætti að hylja notandaaðganginn %{target}" + unsuspend_account: "%{name} tók notandaaðganginn {target} úr bið" + update_custom_emoji: "%{name} uppfærði tjáningartákn %{target}" + update_status: "%{name} uppfærði stöðufærslu frá %{target}" + deleted_status: "(eydd stöðufærsla)" + title: Atvikaskrá + custom_emojis: + assign_category: Úthluta flokki + by_domain: Lén + copied_msg: Það tókst að búa til afrit af tjáningartákninu + copy: Afrita + copy_failed_msg: Ekki tókst að gera staðvært afrit af tjáningartákninu + create_new_category: Búa til nýjan flokk + created_msg: Tókst að búa til tjáningartákn! + delete: Eyða + destroyed_msg: Tókst að eyða tjáningartákni! + disable: Gera óvirkt + disabled: Óvirkt + disabled_msg: Tókst að gera þetta tjáningartákn óvirkt + emoji: Tjáningartákn + enable: Virkja + enabled: Virkt + enabled_msg: Tókst að gera þetta tjáningartákn virkt + image_hint: PNG allt að 50KB + list: Listi + listed: Skráð + new: + title: Bæta við nýju sérsniðnu tjáningartákni + overwrite: Skrifa yfir + shortcode: Stuttkóði + shortcode_hint: Að minnsta kosti 2 stafir, einungis tölu- og bókstafir ásamt undirstrikum + title: Sérsniðin tjáningartákn + uncategorized: Óflokkað + unlist: Afskrá + unlisted: Óskráð + update_failed_msg: Gat ekki uppfært þetta tjáningartákn + updated_msg: Tókst að uppfæra tjáningartákn! + upload: Senda inn + dashboard: + authorized_fetch_mode: Öruggur hamur + backlog: bakskráð verk + config: Stillingar + feature_deletions: Eyðingar notandaaðganga + feature_invites: Boðstenglar + feature_profile_directory: Notandasniðamappa + feature_registrations: Nýskráningar + feature_relay: Sambandsendurvarpi + feature_spam_check: Ruslpóstvarnir + feature_timeline_preview: Forskoðun tímalínu + features: Eiginleikar + hidden_service: Skýjasamband með faldar þjónustur + open_reports: opnar kærur + pending_tags: myllumerki bíða eftir yfirferð + pending_users: notendur bíða eftir yfirferð + recent_users: Nýlegir notendur + search: Leit í öllum texta + single_user_mode: Eins-notandahamur + software: Hugbúnaður + space: Notkun geymslurýmis + title: Stjórnborð + total_users: notendur alls + trends: Tilhneiging + week_interactions: aðgerðir í þessari viku + week_users_active: virkir í þessari viku + week_users_new: notendur þessari viku + whitelist_mode: Hamur til að leyfa (whitelist) + domain_allows: + add_new: Setja lén á lista yfir leyft + created_msg: Það tókst að setja lénið á lista yfir leyft + destroyed_msg: Lénið hefur verið fjarlægt af lista yfir leyft + undo: Fjarlægja af lista yfir leyft + domain_blocks: + add_new: Bæta við nýrri útilokun á léni + created_msg: Útilokun léns er núna í vinnslu + destroyed_msg: Útilokun léns hefur verið aflétt + domain: Lén + edit: Breyta útilokun léns + existing_domain_block_html: Þú ert þegar búin/n að setja strangari takmörk á %{name}, þú þarft fyrst að aflétta útilokun á því. + new: + create: Búa til útilokun + hint: Útilokun lénsins mun ekki koma í veg fyrir gerð aðgangsfærslna í gagnagrunninum, en mun afturvirkt og sjálfvirkt beita sérstökum umsjónaraðferðum á þessa aðganga. + severity: + desc_html: "Hylja mun gera færslur á notandaaðgangnum ósýnilegar öllum þeim sem ekki eru að fylgjast með þeim. Setja í bið mun fjarlægja allt efni á notandaaðgangnum, myndgögn og gögn á notandasniði. Notaðu Ekkert ef þú ætlar bara að hafna margmiðlunarskrám." + noop: Ekkert + silence: Hylja + suspend: Setja í bið + title: Ný útilokun á léni + private_comment: Einkaathugasemd + private_comment_hint: Athugasemd um þessa útilokun á léni til innanhússnotkunar fyrir umsjónarmenn. + public_comment: Opinber athugasemd + public_comment_hint: Athugasemd um þessa útilokun á léni til almennings, ef virkt er að auglýsa listann með lénatakmörkunum. + reject_media: Hafna myndskrám + reject_media_hint: Fjarlægir staðværar myndefnisskrár úr geymslu og neitar framvegis að sækja neinar slíkar. Skiptir ekki máli fyrir biðstöður + reject_reports: Hafna kærum + reject_reports_hint: Hunsa allar kærur frá þessu léni. Skiptir ekki máli fyrir biðstöður + rejecting_media: hafna myndskrám + rejecting_reports: hafna kærum + severity: + silence: hulið + suspend: í bið + show: + affected_accounts: + one: Einn notandaaðgangur í gagnagrunninum kemur við sögu + other: "%{count} notendaaðgangar í gagnagrunninum koma við sögu" + retroactive: + silence: Hætta að hylja viðkomandi notendaaðganga frá þessu léni + suspend: Taka úr bið viðkomandi notendaaðganga frá þessu léni + title: Afturkalla útilokun á léni fyrir %{domain} + undo: Afturkalla + undo: Afturkalla útilokun á léni + view: Skoða útilokun á léni + email_domain_blocks: + add_new: Bæta við nýju + created_msg: Tókst að bæta póstléni á lista yfir bannað + delete: Eyða + destroyed_msg: Tókst að eyða póstléni af lista yfir bannað + domain: Lén + empty: Engin tölvupóstlén eru á bannlista. + new: + create: Bæta við léni + title: Ný færsla á bannlista fyrir tölvupóstföng + title: Bannlisti yfir tölvupóstföng + followers: + back_to_account: Til baka í notandaaðgang + title: Fylgjast með %{acct} + instances: + by_domain: Lén + delivery_available: Afhending er til taks + known_accounts: + one: "%{count} þekktur notandaaðgangur" + other: "%{count} þekktir notendaaðgangar" + moderation: + all: Allt + limited: Takmarkað + title: Umsjón + private_comment: Einkaathugasemd + public_comment: Opinber athugasemd + title: Samband + total_blocked_by_us: Útilokaðir af okkur + total_followed_by_them: Fylgt af þeim + total_followed_by_us: Fylgt af okkur + total_reported: Kærur um þá + total_storage: Myndaviðhengi + invites: + deactivate_all: Gera allt óvirkt + filter: + all: Allt + available: Tiltækt + expired: Útrunnið + title: Sía + title: Boðsgestir + pending_accounts: + title: Notendaaðgangar í bið (%{count}) + relays: + add_new: Bæta við nýjum endurvarpa + delete: Eyða + description_html: "Endurvarpi í skýjasambandi er milliþjónn sem skiptist á miklu magni opinberra tísta við aðra þjóna sem eru áskrifendur að honum og birta sín tíst á honum. Þetta getur hjálpað litlum og meðalstórum vefþjónum að uppgötva efni úr skýjasambandinu, sem annars myndi krefjast þess að staðværir notendur fylgist handvirkt með öðru fólki á fjartengdum vefþjónum." + disable: Gera óvirkt + disabled: Óvirkt + enable: Virkja + enable_hint: Ef þetta er einu sinni virkjað, mun vefþjónninn þinn gerast áskrifandi að öllum opinberum tístum frá þessum endurvarpa og byrja að senda sín eigin opinberu tíst til hans. + enabled: Virkt + inbox_url: Slóð endurvarpa + pending: Bíð eftir samþykki endurvarpa + save_and_enable: Vista og virkja + setup: Setja upp endurvarpatengingu + signatures_not_enabled: Endurvarpar munu ekki virka rétt þegar verið er í öryggisham eða þegar hamur til að leyfa (whitelist mode) er virkur + status: Staða + title: Endurvarpar + report_notes: + created_msg: Tókst að útbúa minnispunkt skýrslu! + destroyed_msg: Tókst að eyða minnispunkti skýrslu! + reports: + account: + notes: + one: "%{count} minnispunktur" + other: "%{count} minnispunktar" + reports: + one: "%{count} skýrsla" + other: "%{count} skýrslur" + action_taken_by: Aðgerð framkvæmd af + are_you_sure: Ertu viss? + assign_to_self: Úthluta mér + assigned: Úthlutaður umsjónarmaður + by_target_domain: Lén kærða notandaaðgangsins + comment: + none: Ekkert + created_at: Tilkynnt + mark_as_resolved: Merkja sem leyst + mark_as_unresolved: Merkja sem óleyst + notes: + create: Bæta við minnispunkti + create_and_resolve: Leysa með minnispunkti + create_and_unresolve: Enduropna með minnispunkti + delete: Eyða + placeholder: Lýstu til hvaða aðgerða hefur verið gripið eða uppfærðu inn aðrar tengdar upplýsingar... + reopen: Enduropna kæru + report: 'Kæra #%{id}' + reported_account: Kærður notandaaðgangur + reported_by: Kært af + resolved: Leyst + resolved_msg: Það tókst að leysa kæruna! + status: Staða + title: Kærur + unassign: Aftengja úthlutun + unresolved: Óleyst + updated_at: Uppfært + settings: + activity_api_enabled: + desc_html: Fjöldi staðværra stöðufærslna, virkra notenda og nýskráninga í vikulegum skömmtum + title: Birta samantektartölfræði um virkni notanda + bootstrap_timeline_accounts: + desc_html: Aðskildu mörg notendanöfn með kommum. Einungis staðværir og ólæstir aðgangar virka. Þegar þetta er autt er sjálgefið miðað við alla staðværa stjórnendur. + title: Sjálfgefnar fylgnistillingar fyrir nýja notendur + contact_information: + email: Fyrirtækistölvupóstur + username: Notandanafn tengiliðar + custom_css: + desc_html: Breyttu útlitinu með CSS-skilgreiningum sem hlaðið er inn á hverri síðu + title: Sérsniðið CSS + default_noindex: + desc_html: Hefur áhrif á alla þá notendur sem ekki hafa breytt þessum stillingum sjálfir + title: Sjálfgefið láta notendur afþakka atriðaskráningu í leitarvélum + domain_blocks: + all: Til allra + disabled: Til engra + title: Birta útilokanir á lénum + users: Til innskráðra staðværra notenda + domain_blocks_rationale: + title: Birta röksemdafærslu + hero: + desc_html: Birt á forsíðunni. Mælt með að hún sé a.m.k. 600×100 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins + title: Aðalmynd + mascot: + desc_html: Birt á ýmsum síðum. Mælt með að hún sé a.m.k. 293×205 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins + title: Mynd af lukkudýri + peers_api_enabled: + desc_html: Lénaheiti sem þessi netþjónn hefur rekist á í skýjasambandinu (samtengdum vefþjónum - fediverse) + title: Birta lista yfir uppgötvaða netþjóna + preview_sensitive_media: + desc_html: Forskoðun tengla á önnur vefsvæði mun birta smámynd jafnvel þótt myndefnið sé merkt sem viðkvæmt + title: Birta viðkvæmt myndefni í OpenGraph-forskoðun + profile_directory: + desc_html: Leyfa að hægt sé að finna notendur + title: Virkja notandasniðamöppu + registrations: + closed_message: + desc_html: Birt á forsíðu þegar lokað er fyrir nýskráningar. Þú getur notað HTML-einindi + title: Skilaboð vegna lokunar á nýskráningu + deletion: + desc_html: Leyfa öllum að eyða aðgangnum sínum + title: Opna eyðingu á notandaaðgangi + min_invite_role: + disabled: Enginn + title: Leyfa boð frá + registrations_mode: + modes: + approved: Krafist er samþykkt nýskráningar + none: Enginn getur nýskráð sig + open: Allir geta nýskráð sig + title: Nýskráningarhamur + show_staff_badge: + desc_html: Sýna starfsmannamerki á síðu notandans + title: Sýna starfsmannamerki + site_description: + desc_html: Kynningarmálsgrein í API. Lýstu því hvað það er sem geri þennan Mastodon-þjón sérstakan, auk annarra mikilvægra upplýsinga. Þú getur notað HTML-einindi, sér í lagi <a> og <em>. + title: Lýsing á vefþjóni + site_description_extended: + desc_html: góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi + title: Sérsniðnar ítarlegar upplýsingar + site_short_description: + desc_html: Birt á hliðarspjaldi og í lýsigögnum. Lýstu því hvað Mastodon gerir og hvað það er sem geri þennan vefþjón sérstakan, í einni málsgrein. + title: Stutt lýsing á netþjóninum + site_terms: + desc_html: Þú getur skrifað þína eigin persónuverndarstefnu, þjónustuskilmála eða annað lagatæknilegt. Þú getur notað HTML-einindi + title: Sérsniðnir þjónustuskilmálar + site_title: Heiti vefþjóns + spam_check_enabled: + desc_html: Mastodon getur tilkynnt sjálfvirkt um aðganga sem senda ítrekað óumbeðin skilaboð. Mögulega geta verið rangar slíkar tilkynningar. + title: Sjálfvirkar ruslpóstvarnir + thumbnail: + desc_html: Notað við forskoðun í gegnum OpenGraph og API-kerfisviðmót. Mælt með 1200×630 mynddílum + title: Smámynd vefþjóns + title: Stillingar vefsvæðis + trendable_by_default: + desc_html: Hefur áhrif á myllumerki sem ekki hafa áður verið gerð óleyfileg + title: Leyfa myllumerkjum að fara í umræðuna án þess að þau séu fyrst yfirfarin + trends: + title: Myllumerki í umræðunni + statuses: + back_to_account: Fara aftur á síðu notandaaðgangsins + batch: + delete: Eyða + nsfw_off: Merkja gögn sem ekki viðkvæm + nsfw_on: Merkja sem viðkvæmt + deleted: Eytt + failed_to_execute: Mistókst að keyra + media: + title: Myndefni + no_media: Ekkert myndefni + title: Staða notendaaðganga + with_media: Með myndefni + tags: + accounts_today: Einstök afnot í dag + accounts_week: Einstök afnot í þessari viku + context: Samhengi + directory: Í möppunni + in_directory: "%{count} í möppunni" + last_active: Síðasta virkni + most_popular: Vinsælast + most_recent: Nýjast + name: Myllumerki + review: Yfirfara stöðufærslu + reviewed: Yfirfarið + title: Myllumerki + trending_right_now: Í umræðunni nákvæmlega núna + unique_uses_today: "%{count} færslur í dag" + unreviewed: Ekki yfirfarið + title: Stjórnendur + warning_presets: + add_new: Bæta við nýju + delete: Eyða + edit: Breyta + edit_preset: Breyta forstilltri aðvörun + title: Sýsla með forstilltar aðvaranir + admin_mailer: + new_pending_account: + subject: Nýr notandaaðgangur er kominn til yfirferðar á %{instance} (%{username}) + new_report: + body: "%{reporter} hefur kært %{target}" + body_remote: Einhver frá %{domain} hefur kært %{target} + subject: Ný kæra vegna %{instance} (#%{id}) + new_trending_tag: + subject: Nýtt myllumerki er komið til yfirferðar á %{instance} (#%{name}) + aliases: + add_new: Búa til samnefni + remove: Aftengja samnefni + appearance: + advanced_web_interface: Ítarlegt vefviðmót + advanced_web_interface_hint: 'Ef þú vilt geta notað alla skjábreiddina gefur ítarlegt vefviðmót þér færi á að stilla marga mismunandi dálka svo hægt sé að sjá eins miklar upplýsingar í einu eins og þér hentar: Heim, tilkynningar, sameiginleg tímalína, ótiltekinn fjöldi lista og myllumerkja.' + animations_and_accessibility: Hreyfingar og algilt aðgengi + confirmation_dialogs: Staðfestingargluggar + discovery: Uppgötvun + localization: + body: Mastodon er þýtt af sjálfboðaliðum. + guide_link: https://crowdin.com/project/mastodon/is + guide_link_text: Allir geta tekið þátt. + sensitive_content: Viðkvæmt efni + toot_layout: Framsetning tísta + application_mailer: + notification_preferences: Breyta kjörstillingum tölvupósts + salutation: "%{name}," + settings: 'Breyta kjörstillingum tölvupósts: %{link}' + view: 'Skoða:' + view_profile: Skoða notandasnið + view_status: Skoða stöðufærslu + applications: + created: Það tókst að búa til forrit + destroyed: Það tókst að eyða forriti + invalid_url: Slóðin sem þú gafst upp er ógild + regenerate_token: Endurgera aðgangsteikn + token_regenerated: Það tókst að endurgera aðgangsteiknið + warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum! + your_token: Aðgangsteiknið þitt + auth: + apply_for_account: Beiðni um boð + change_password: Lykilorð + checkbox_agreement_html: Ég samþykki reglur vefþjónsins og þjónustuskilmálana + checkbox_agreement_without_rules_html: Ég samþykki þjónustuskilmálana + delete_account: Eyða notandaaðgangi + delete_account_html: Ef þú vilt eyða notandaaðgangnum þínum, þá geturðu farið í það hér. Þú verður beðin/n um staðfestingu. + description: + prefix_invited_by_user: "@%{name} býður þér að taka þátt á þessum Mastodon-vefþjóni!" + prefix_sign_up: Skráðu þig á Mastodon strax í dag! + didnt_get_confirmation: Fékkstu ekki leiðbeiningar um hvernig eigi að staðfesta aðganginn? + forgot_password: Gleymdirðu lykilorðinu? + invalid_reset_password_token: Teikn fyrir endurstillingu lykilorðs er ógilt eðaútrunnið. Biddu um nýtt. + login: Skrá inn + logout: Skrá út + migrate_account: Færa á annan notandaaðgang + or_log_in_with: Eða skráðu inn með + providers: + cas: CAS + saml: SAML + register: Nýskrá + registration_closed: "%{instance} samþykkir ekki nýja meðlimi" + resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur + reset_password: Endursetja lykilorð + security: Öryggi + set_new_password: Stilla nýtt lykilorð + setup: + title: Uppsetning + status: + account_status: Staða notandaaðgangs + confirming: Bíð eftir að staðfestingu tölvupósts sé lokið. + functional: Notandaaðgangurinn þinn er með fulla virkni. + trouble_logging_in: Vandræði við að skrá inn? + authorize_follow: + already_following: Þú ert að þegar fylgjast með þessum aðgangi + follow: Fylgja + follow_request: 'Þú sendir beiðni um að fylgjast með til:' + following: 'Tókst! Þú ert núna að fylgjast með:' + post_follow: + close: Eða að þú getur lokað þessum glugga. + return: Birta notandasnið notandans + web: Fara á vefinn + title: Fylgjast með %{acct} + challenge: + confirm: Halda áfram + hint_html: "Ábending: Við munum ekki spyrja þig um lykilorðið aftur næstu klukkustundina." + invalid_password: Ógilt lykilorð + prompt: Staðfestu lykilorðið til að halda áfram + datetime: + distance_in_words: + about_x_hours: "%{count}kl." + about_x_months: "%{count}mán" + about_x_years: "%{count}ár" + almost_x_years: "%{count}ár" + half_a_minute: Núna + less_than_x_minutes: "%{count}mín" + less_than_x_seconds: Núna + over_x_years: "%{count}ár" + x_days: "%{count}d" + x_minutes: "%{count}mín" + x_months: "%{count}mán" + x_seconds: "%{count}sek" + deletes: + challenge_not_passed: Upplýsingarnar sem þú settir inn eru ekki réttar + confirm_password: Settu inn núverandi lykilorð þitt til að staðfesta auðkennin þín + confirm_username: Skrifaðu inn notandanafnið þitt til að halda áfram með ferlið + proceed: Eyða notandaaðgangi + success_msg: Það tókst að eyða notandaaðgangnum þínum + warning: + before: 'Áður en haldið er áfram, skaltu lesa þessa minnispunkta gaumgæfilega:' + caches: Efni sem aðrir netþjónar hafa sett í skyndiminni gæti verið til staðar áfram + irreversible: Þú munt ekki getað endurheimt eða endurvirkjað aðganginn þinn + more_details_html: Til að skoða þetta nánar, er gott að líta á persónuverndarstefnuna. + username_available: Notandanafnið þitt mun verða tiltækt aftur + username_unavailable: Notandanafnið þitt mun verða áfram ótiltækt + directories: + directory: Notandasniðamappa + explanation: Leitaðu að notendum eftir áhugamálum þeirra + explore_mastodon: Kannaðu %{title} + domain_validator: + invalid_domain: er ekki leyfilegt nafn á léni + errors: + '400': Beiðnin sem þú sendir er ógild eða rangt uppsett. + '403': Þú hefur ekki heimildir til að skoða þessari síðu. + '404': Síðan sem þú leitar að er ekki þarna. + '406': Þessi síða er ekki tiltæk á umbeðna sniðinu. + '410': Síðan sem þú leitar að er ekki lengur til hérna. + '422': + content: Öryggisprófun mistókst. Ertu að loka á vefkökur/fótspor? + title: Öryggisprófun mistókst + '429': Throttled + '500': + content: Því miður, en eitthvað fór úrskeiðis á okkar enda. + title: Þessi síða er ekki rétt + '503': The page could not be served due to a temporary server failure. + existing_username_validator: + not_found: Fann ekki staðværan notanda með þetta notandanafn + not_found_multiple: tókst ekki að finna %{usernames} + exports: + archive_takeout: + date: Dagsetning + download: Náðu í safnskrána þína + hint_html: Þú getur beðið um safnskrá með tístunum þínum og innsendu myndefni. Útfluttu gögnin verða á ActivityPub-sniði, sem allur samhæfður hugbúnaður á að geta lesið. Þú getur beðið um safnskrá á 7 daga fresti. + in_progress: Set saman safnskrána þína... + request: Biddu um safnskrána þína + size: Stærð + blocks: Þú útilokar + csv: CSV + domain_blocks: Útilokanir á lénum + lists: Listar + mutes: Þú þaggar + storage: Geymsla myndefnis + featured_tags: + add_new: Bæta við nýju + errors: + limit: Þú ert þegar búin/n að gefa hámarksfjölda myllumerkja aukið vægi + filters: + contexts: + home: Heimatímalína + notifications: Tilkynningar + public: Opinberar tímalínur + thread: Samtöl + edit: + title: Breyta síu + errors: + invalid_context: Ekkert eða ógilt samhengi var gefið + index: + delete: Eyða + title: Síur + new: + title: Bæta við nýrri síu + footer: + developers: Forritarar + more: Meira… + resources: Tilföng + trending_now: Í umræðunni núna + generic: + all: Allt + changes_saved_msg: Það tókst að vista breytingarnar! + copy: Afrita + no_batch_actions_available: Engar magnvinnsluaðgerðir tiltækar á þessari síðu + order_by: Raða eftir + save_changes: Vista breytingar + validation_errors: + one: Ennþá er ekk alvegi allt í lagi! Skoðaðu vel villuna hér fyrir neðan + other: Ennþá er ekki alveg allt í lagi! Skoðaðu vel villurnar %{count} hér fyrir neðan + html_validator: + invalid_markup: 'inniheldur ógildar HTML-merkingar: %{error}' + identity_proofs: + active: Virkur + authorize: Já, heimila + authorize_connection_prompt: Auðkenna dulkóðaða tengingu? + errors: + failed: Dulrituð tenging mistókst, endilega reyndu aftur frá %{provider}. + i_am_html: Ég er %{username} á %{service}. + identity: Auðkenni + inactive: Óvirkt + publicize_checkbox: 'Og tísti þetta:' + publicize_toot: 'Það er búið að sanna þetta! Ég er %{username} á %{service}: %{url}' + status: Staða sannvottunar + view_proof: Skoða sönnun + imports: + modes: + merge: Sameina + merge_long: Halda fyrirliggjandi færslum og bæta við nýjum + overwrite: Skrifa yfir + overwrite_long: Skipta út fyrirliggjandi færslum með þeim nýju + types: + blocking: Listi yfir útilokanir + domain_blocking: Listi yfir útilokanir léna + following: Listi yfir fylgjendur + muting: Listi yfir þagganir + upload: Senda inn + in_memoriam_html: Minning. + invites: + delete: Gera óvirkt + expired: Útrunnið + expires_in: + '1800': 30 mínútur + '21600': 6 klukkustundir + '3600': 1 klukkustund + '43200': 12 klukkustundir + '604800': 1 vika + '86400': 1 dagur + expires_in_prompt: Aldrei + generate: Útbúa boðstengil + invited_by: 'Þér var boðið af:' + max_uses: + one: 1 afnot + other: "%{count} afnot" + max_uses_prompt: Engin takmörk + table: + expires_at: Rennur út + uses: Afnot + title: Bjóða fólki + lists: + errors: + limit: Þú hefur náð hámarksfjölda lista + media_attachments: + validations: + images_and_video: Ekki er hægt að hengja myndskeið við stöðufærslu sem þegar inniheldur myndir + too_many: Ekki er hægt að hengja við fleiri en 4 skrár + migrations: + acct: Færði í + cancel: Hætta við endurbeiningu + cancelled_msg: Tókst að hætta við endurbeiningu. + errors: + move_to_self: getur ekki verið núverandi aðgangur + not_found: fannst ekki + on_cooldown: Þú ert í kælingu + followers_count: Fylgjendur þegar flutningur átti sér stað + past_migrations: Fyrri yfirfærslur + proceed_with_move: Færa fylgjendur + redirecting_to: Notandaaðgangurinn þinn endurbeinist á %{acct}. + set_redirect: Stilla endurbeiningu + warning: + before: 'Áður en haldið er áfram, skaltu lesa þessa minnispunkta gaumgæfilega:' + only_redirect_html: Einnig geturðu einungis sett upp endurbeiningu á notandasniðið þitt. + other_data: Engin önnur gögn munu flytjast sjálfvirkt + moderation: + title: Umsjón + notification_mailer: + digest: + action: Skoða allar tilkynningar + body: Hér er stutt yfirlit yfir þau skilaboð sem þú gætir hafa misst af síðan þú leist inn síðast %{since} + mention: "%{name} minntist á þig í:" + subject: + one: "1 ný tilkynning síðan þú leist inn síðast \U0001F418" + other: "%{count} nýjar tilkynningar síðan þú leist inn síðast \U0001F418" + title: Á meðan þú varst fjarverandi... + favourite: + body: 'Stöðufærslan þín var sett í eftirlæti af %{name}:' + subject: "%{name} setti stöðufærslu þína í eftirlæti" + title: Nýtt eftirlæti + follow: + body: "%{name} er núna að fylgjast með þér!" + subject: "%{name} er núna að fylgjast með þér" + title: Nýr fylgjandi + follow_request: + action: Sýsla með fylgjendabeiðnir + body: "%{name} hefur beðið um að fylgjast með þér" + subject: 'Fylgjandi í bið: %{name}' + title: Ný beiðni um að fylgjast með + mention: + action: Svara + reblog: + body: "%{name} endurbirti stöðufærsluna þína:" + subject: "%{name} endurbirti stöðufærsluna þína" + title: Ný endurbirting + notifications: + email_events: Atburðir fyrir tilkynningar í tölvupósti + email_events_hint: 'Veldu þá atburði sem þú vilt fá tilkynningar í tölvupósti þegar þeir koma upp:' + other_settings: Aðrar stillingar varðandi tilkynningar + number: + human: + decimal_units: + format: "%n%u" + units: + billion: bi. + million: mi. + quadrillion: qi. + thousand: þús + trillion: tr. + pagination: + newer: Nýrra + next: Næsta + older: Eldra + prev: Fyrra + truncate: "…" + polls: + errors: + already_voted: Þú hefur þegar greitt atkvæði í þessari könnun + duplicate_options: innihalda tvítekin atriði + duration_too_long: er of langt inn í framtíðina + duration_too_short: er of snemma + expired: Könnuninni er þegar lokið + over_character_limit: geta ekki verið lengri en %{max} stafir hvert + too_few_options: verður að vera með fleiri en eitt atriði + too_many_options: getur ekki innihaldið meira en %{max} atriði + preferences: + other: Annað + posting_defaults: Sjálfgefin gildi við gerð færslna + public_timelines: Opinberar tímalínur + relationships: + activity: Virkni aðgangs + dormant: Sofandi + followers: Fylgjendur + following: Fylgist með + last_active: Síðasta virkni + most_recent: Nýjast + moved: Fært + mutual: Sameiginlegir + primary: Aðal + relationship: Vensl + remove_selected_domains: Fjarlægja alla fylgjendur frá völdum lénum + remove_selected_followers: Fjarlægja valda fylgjendur + remove_selected_follows: Hætta að fylgjast með völdum notendum + status: Staða aðgangs + remote_follow: + acct: Settu inn notandanafn@lén þaðan sem þú vilt vera virk/ur + no_account_html: Ertu ekki með aðgang? Þú getur nýskráð þig hér + proceed: Halda áfram í að fylgja + prompt: 'Þú ætlar að fara að fylgjast með:' + reason_html: "Hvers vegna er þetta skref nauðsynlegt? %{instance} er ekki endilega netþjónninn þar sem þú ert skráð/ur, þannig að við verðum að endurbeina þér á heimaþjóninn þinn fyrst." + remote_interaction: + favourite: + proceed: Halda áfram í að setja í eftirlæti + prompt: 'Þú ætlar að setja þetta tíst í eftirlæti:' + reblog: + proceed: Halda áfram í endurbirtingu + prompt: 'Þú ætlar að endurbirta þetta tíst:' + reply: + proceed: Halda áfram í að svara + prompt: 'Þú ætlar að svara þessu tísti:' + scheduled_statuses: + over_daily_limit: Þú hefur farið fram úr hámarkinu með %{limit} áætluð tíst fyrir þennan dag + over_total_limit: Þú hefur farið fram úr hámarkinu með %{limit} áætluð tíst + too_soon: Áætluð dagsetning verður að vera í framtíðinni + sessions: + activity: Síðasta virkni + browser: Vafri + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox + generic: Óþekktur vafri + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi vafri + opera: Opera + otter: Otter + phantom_js: PhantomJS + qq: QQ vafri + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: Núverandi seta + description: "%{browser} á %{platform}" + explanation: Þetta eru vafrarnir sem núna eru skráðir inn á Mastodon-aðganginn þinn. + ip: IP-vistfang + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + other: óþekktu stýrikerfi + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + revoke: Afturkalla + revoke_success: Tókst að afturkalla setu + title: Setur + settings: + account: Notandaaðgangur + account_settings: Stillingar notandaaðgangs + aliases: Samheiti notandaaðgangs + appearance: Útlit + authorized_apps: Leyfð forrit + back: Til baka í Mastodon + delete: Eyðing notandaaðgangs + development: Þróun + edit_profile: Breyta notandasniði + export: Útflutningur gagna + featured_tags: Myllumerki í umræðunni + identity_proofs: Sannanir á auðkenni + import: Flytja inn + import_and_export: Inn- og útflutningur + migrate: Yfirfærsla notandaaðgangs + notifications: Tilkynningar + preferences: Kjörstillingar + profile: Notandasnið + relationships: Fylgist með og fylgjendur + two_factor_authentication: Teggja-þátta auðkenning + spam_check: + spam_detected: Þetta er sjálfvirk kæra. Ruslpóstur hefur fundist. + statuses: + attached: + description: 'Viðhengt: %{attached}' + image: + one: "%{count} mynd" + other: "%{count} myndir" + video: + one: "%{count} myndskeið" + other: "%{count} myndskeið" + boosted_from_html: Endurbirt frá %{acct_link} + content_warning: 'Aðvörun vegna efnis (CW): %{warning}' + disallowed_hashtags: + one: 'innihélt óleyfilegt myllumerki: %{tags}' + other: 'innihélt óleyfilegu myllumerkin: %{tags}' + language_detection: Greina tungumál sjálfvirkt + open_in_web: Opna í vafra + over_character_limit: hámarksfjölda stafa (%{max}) náð + pin_errors: + limit: Þú hefur þegar fest leyfilegan hámarksfjölda tísta + ownership: Tíst frá einhverjum öðrum er ekki hægt að festa + private: Óopinber tíst er ekki hægt að festa + reblog: Ekki er hægt að festa endurbirtingu + poll: + total_people: + one: "%{count} aðili" + other: "%{count} aðilar" + total_votes: + one: "%{count} atkvæði" + other: "%{count} atkvæði" + vote: Greiða atkvæði + show_more: Sýna meira + sign_in_to_participate: Skráðu þig inn til að taka þátt í samtalinu + title: "%{name}: „%{quote}‟" + visibilities: + private: Einungis fylgjendur + private_long: Aðeins birt fylgjendum + public: Opinber + public_long: Allir geta séð + unlisted: Óskráð + unlisted_long: Allir geta skoðað, en er ekki talið upp á opinberum tímalínum + stream_entries: + pinned: Fest tíst + reblogged: endurbirt + sensitive_content: Viðkvæmt efni + tags: + does_not_match_previous_name: samsvarar ekki fyrra nafni + terms: + body_html: | +

Persónuverndarstefna

+

Hvaða upplýsingum söfnum við?

+ +
    +
  • Grunnupplýsingar um notandaaðgang: Ef þú skráir þig á þessum netþjóni gætirðu verið beðinn um að slá inn notandanafn, tölvupóstfang og lykilorð. Þú getur einnig sett inn viðbótarupplýsingar eins og birtingarnafn og æviágrip auk þess að hlaða inn auðkennismynd eða mynd til að birta á síðuhaus. Notandanafn, birtingarnafn, æviágrip, auðkennismynd og hausmynd eru alltaf skráð opinberlega.
  • +
  • Skilaboð, fylgnigögn og aðrar opinberar upplýsingar: Listinn yfir þá sem þú fylgist með er skráður opinberlega, það sama er að segja um þá sem fylgjast með þér. Þegar þú sendir skilaboð er dagsetning og tími vistaður sem og hvaða forrit þú sendir skilaboðin frá. Skilaboð geta innihaldið viðhengi, svo sem myndir og myndskeið. Opinberar og óskráðar færslur er aðgengilegar opinberlega. Þegar þú birtir færslu á notandasniðinu þínu (forsíðu) eru það einnig opinberar upplýsingar. Færslurnar þínar eru sendar þeim sem fylgjast með þér, í sumum tilvikum þýðir það að þær eru afhentar á aðra netþjóna og afrit geymd þar. Þegar þú eyðir færslum er það sömuleiðis birt fylgjendum þínum. Aðgerðir eins og að endurbirta eða setja færslu í eftirlæti eru ávallt opinberar.
  • +
  • Beinar færslur og eingöngu til fylgjenda: Öll innlegg eru geymd og unnin á netþjóninum. Færslur sem eingöngu eru til fylgjenda berast til fylgjenda þinna og þeirra notenda sem minnst er á í þeim, beinar færslur berast aðeins til notenda sem getið er um í viðkomandi færslu. Í sumum tilvikum þýðir það að færslurnar eru afhentar á aðra netþjóna og afrit geymd þar. Við leggjum mikla áherslu á að takmarka aðgang að þessum færslum einungis við aðila sem til þess hafa heimild, en aðrir utanaðkomandi netþjónar gætu mögulega ekki gert það. Þess vegna er mikilvægt að skoða vel þá netþjóna sem fylgjendur þínir tilheyra. Þú getur valið að þurfa að samþykkja og hafna nýjum fylgjendum handvirkt í stillingunum.Hafðu í huga að rekstraraðilar netþjónsins og allir viðtakendamiðlarar geta skoðað slík skilaboð og að viðtakendur geta tekið skjámyndir, afritað eða á annan hátt deilt þessum gögnum. Ekki deila hættulegum upplýsingum í gegnum Mastodon.
  • +
  • IP-vistföng og önnur lýsigögn: Þegar þú skráir þig inn skráum við IP-töluna sem þú skráir þig inn af, sem og heiti vafraforritsins þíns. Allar innskráðar setur verða tiltækar til skoðunar og afturköllunar í stillingunum. Síðast notaða IP-talan er geymd í allt að 12 mánuði. Við gætum líka haldið eftir atvikaskrám netþjónsins sem gæti innihaldið IP-tölur allra beiðna til netþjónsins.
  • +
+ +
+ +

Til hvers notum við upplýsingarnar þínar?

+ +

Hvað sem er af þeim upplýsingum sem við söfnum frá þér má nota á eftirfarandi vegu:

+ +
    +
  • Til að veita grunnvirkni Mastodon. Þú getur aðeins haft samskipti við efni annarra eða sent inn þitt eigið efni þegar þú ert skráð/ur inn. Til dæmis gætirðu fylgst með öðru fólki og skoðað safn færslna þeirra á þinni eigin persónulega sérsniðnu tímalínu.
  • +
  • Til að hjálpa til við umsjón og viðhald samfélags/hóps, til dæmis að bera saman IP-tölu þína við aðrar þekktar til að greina frávik frá bönnum eða öðrum brotum.
  • +
  • Tölvupóstfangið sem þú gefur upp má nota til að senda þér upplýsingar, tilkynningar um annað fólk sem átt hefur við efnið þitt eða til að senda þér skilaboð eða svara fyrirspurnum og/eða öðrum beiðnum eða spurningum.
  • +
+ +
+ +

Hvernig verndum við upplýsingarnar þínar?

+ +

Við setjum upp margvíslegar öryggisráðstafanir til að viðhalda öryggi persónuupplýsinganna þinna þegar þú setur inn, sendir eða opnar persónulegar upplýsingar. Meðal annars er vafrasetan þín, svo og umferðin milli forritanna þinna og API-kerfisviðmótsins tryggð með SSL, og lykilorðið þitt er varið með tætigildi (hashed) með sterku einhliða reikniriti. Þú gætir virkjað tveggja-þátta auðkenningu til að tryggja enn frekar aðganginn að notandaaðgangnum þínum.

+ +
+ +

Hver er stefna okkar varðandi varðveislu gagna?

+ +

Við munum leggja okkur fram um að:

+ +
    +
  • Halda eftir atvikaskrám netþjóns sem innihalda IP-tölu allra beiðna til þessa netþjóns, að svo miklu leyti sem slíkar skrár eru geymdar, ekki lengur en í en 90 daga.
  • +
  • Halda eftir IP-tölum sem tengjast skráðum notendum ekki lengur en 12 mánuði.
  • +
+ +

Þú getur beðið um og ná í safnskrá með öllu þínu efni, þar með taldar færslur, margmiðlunarviðhengi, auðkennismynd og mynd á síðuhaus.

+ +

Þú getur eytt reikningi þínum óafturkræft hvenær sem er.

+ +
+ +

Notum við vefkökur?

+ +

Já. Vefkökur eða fótspor eru litlar skrár sem vefsvæði eða þjónustuveitandi setur á harða diskinn í tölvunni þinni í gegnum vafrann þinn (ef þú leyfir það). Þessar vefkökur gera vefsvæðinu kleift að þekkja vafrann þinn og ef þú ert með skráðan notandaaðgang skaltu tengja vafrann við skráða notandaaðganginn þinn.

+ +

Við notum vafrakökur til að skilja og vista kjörstillingar þínar fyrir næstu heimsóknir.

+ +
+ +

Veitum við upplýsingar til utanaðkomandi aðila?

+ +

Við seljum ekki, verslum eða flytjum á annan hátt persónulegar upplýsingar þínar til utanaðkomandi aðila. Þetta nær ekki til traustra þriðja aðila sem aðstoða okkur við að reka síðuna okkar, aðstoða við starfsemi okkar eða við að þjónusta þig, svo framarlega sem þessir aðilar eru sammála um að halda þessum gögnum sem trúnaðarupplýsingum. Við gætum einnig átt það til að gefa upp upplýsingar frá þér þegar við teljum að birting þeirra sé viðeigandi til að fara eftir lögum, framfylgja stefnu okkar á vefnum eða vernda réttindi okkar, eignir eða öryggi okkar eða annarra.

+ +

Opinberu efni þínu getur verið hlaðið inn af öðrum netþjónum á netinu. Opinberu skilaboðin þín ásamt færslum eingöngu til fylgjenda berast þeim netþjónum þar sem fylgjendur þínir eru skráðir og bein skilaboð eru send til netþjóna viðtakendanna, að svo miklu leyti sem þeir fylgjendur eða viðtakendur eru skráðir á öðrum netþjónum en þessum.

+ +

Þegar þú leyfir forriti að nota aðganginn þinn, fer það eftir umfangi heimildanna sem þú gefur hvort það getur það fengið aðgang að opinberum notandasniðsupplýsingum þínum, lista yfir þá sem þú fylgist með, lista yfir þá sem fylgjast með þér, öðrum listum þínum, öllum þínum færslum og eftirlætum. Forrit geta aldrei fengið tölvupóstfangið þitt eða lykilorð.

+ +
+ +

Notkun vefsvæðis fyrir börn

+ +

Ef þessi netþjónn er innan ESB eða EES: Vefnum okkar, vörum og þjónustu er allri beint að fólki sem er að minnsta kosti 16 ára gamalt. Ef þú ert yngri en 16 ára, þá máttu samkvæmt kröfum GDPR ( Almenn reglugerð um gagnavernd) ekki nota þessa síðu.

+ +

Ef þessi netþjónn er í Bandaríkjunum: Vefnum okkar, vörum og þjónustu er allri beint að fólki sem er að minnsta kosti 13 ára gamalt. Ef þú ert yngri en 13 ára, þá máttu samkvæmt kröfum COPPA (Lög um persónuvernd barna á netinu) ekki nota þessa síðu.

+ +

Lagakröfur geta verið aðrar ef þessi netþjónn er í annarri lögsögu.

+ +
+ +

Breytingar á persónuverndarstefnu okkar

+ +

Ef við ákveðum að breyta persónuverndarstefnu okkar munum við birta þær breytingar á þessari síðu.

+ +

Þetta skjal er með CC-BY-SA notkunarleyfi. Það var síðast uppfært 7. mars 2018.

+ +

Upprunalega aðlagað úr persónuverndarstefnu Discourse.

+ title: "%{instance} - Þjónustuskilmálar og persónuverndarstefna" + themes: + contrast: Mastodon (mikil birtuskil) + default: Mastodon (dökkt) + mastodon-light: Mastodon (ljóst) + time: + formats: + default: "%d. %b, %Y, %H:%M" + month: "%b %Y" + two_factor_authentication: + disable: Gera óvirkt + enable: Virkja + enabled: Tveggja-þátta auðkenning er virk + enabled_success: Það tókst að virkja tveggja-þátta auðkenningu + generate_recovery_codes: Útbúa endurheimtukóða + recovery_codes: Kóðar fyrir endurheimtingu öryggisafrits + setup: Setja upp + wrong_code: Kóðinn sem þú settir inn er ógildur! Eru klukkur netþjónsins og tækisins réttar? + user_mailer: + backup_ready: + subject: Safnskráin þín er tilbúin til niðurhals + title: Taka út í safnskrá + warning: + explanation: + suspend: Aðgangurinn þinn hefur verið settur í biðstöðu, öll þín tíst og innsent myndefni hafa verið óafturkræft fjarlægð af þessum vefþjóni, sem og af þeim vefþjónum þar sem þú áttir þér fylgjendur. + review_server_policies: Yfirfara reglur vefþjónsins + statuses: 'Sérstaklega fyrir:' + subject: + disable: Notandaaðgangurinn þinn %{acct} hefur verið frystur + none: Aðvörun fyrir %{acct} + silence: Notandaaðgangurinn þinn %{acct} hefur verið takmarkaður + suspend: Notandaaðgangurinn þinn %{acct} hefur verið settur í bið + title: + disable: Notandaaðgangur frystur + none: Aðvörun + silence: Notandaaðgangur takmarkaður + suspend: Notandaaðgangur í bið + welcome: + edit_profile_action: Setja upp notandasnið + explanation: Hér eru nokkrar ábendingar til að koma þér í gang + final_action: Byrjaðu að skrifa + review_preferences_action: Breyta kjörstillingum + subject: Velkomin í Mastodon + tip_local_timeline: Staðværa tímalínan er færibandasýn á allt fólkið á %{instance}. Þetta eru þínir næstu nágrannar! + tips: Ábendingar + title: Velkomin/n um borð, %{name}! + users: + follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum + invalid_email: Tölvupóstfangið er ógilt + invalid_otp_token: Ógildur tveggja-þátta kóði + signed_in_as: 'Skráð inn sem:' + verification: + verification: Sannprófun diff --git a/config/locales/it.yml b/config/locales/it.yml index aadf0f3d6..7bce8d3d6 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -2,7 +2,7 @@ it: about: about_hashtag_html: Questi sono i toot pubblici etichettati con #%{hashtag}. Puoi interagire con loro se hai un account nel fediverse. - about_mastodon_html: Mastodon è un social network gratuito e open-source. Un'alternativa decentralizzata alle piattaforme commerciali che evita che una singola compagnia monopolizzi il tuo modo di comunicare. Scegli un server di cui ti fidi — qualunque sia la tua scelta, potrai interagire con chiunque altro. Chiunque può sviluppare un suo server Mastodon e partecipare alla vita del social network. + about_mastodon_html: 'Il social network del futuro: niente pubblicità, niente controllo da parte di qualche azienda privata, design etico e decentralizzazione! Con Mastodon il proprietario dei tuoi dati sei tu!' about_this: A proposito di questo server active_count_after: attivo active_footnote: Utenti Attivi Mensili (MAU) @@ -78,6 +78,7 @@ it: roles: admin: Amministratore bot: Bot + group: Gruppo moderator: Moderatore unavailable: Profilo non disponibile unfollow: Non seguire più @@ -198,10 +199,12 @@ it: confirm_user: "%{name} ha confermato l'indirizzo email per l'utente %{target}" create_account_warning: "%{name} ha mandato un avvertimento a %{target}" create_custom_emoji: "%{name} ha caricato un nuovo emoji %{target}" + create_domain_allow: "%{name} ha messo il dominio %{target} nella whitelist" create_domain_block: "%{name} ha bloccato il dominio %{target}" create_email_domain_block: "%{name} ha messo il dominio email %{target} nella blacklist" demote_user: "%{name} ha degradato l'utente %{target}" destroy_custom_emoji: "%{name} ha distrutto l'emoji %{target}" + destroy_domain_allow: "%{name} ha tolto il dominio %{target} dalla whitelist" destroy_domain_block: "%{name} ha sbloccato il dominio %{target}" destroy_email_domain_block: "%{name}ha messo il dominio email %{target} nella whitelist" destroy_status: "%{name} ha eliminato lo status di %{target}" @@ -243,6 +246,7 @@ it: enabled: Abilitato enabled_msg: Questa emoji è stata abilitata con successo image_hint: PNG fino a 50 KB + list: Includi nell'elenco listed: Elencato new: title: Aggiungi nuovo emoji personalizzato @@ -251,6 +255,7 @@ it: shortcode_hint: Almeno due caratteri, solo caratteri alfanumerici e trattino basso title: Emoji personalizzate uncategorized: Nessuna categoria + unlist: Escludi dall'elenco unlisted: Non elencato update_failed_msg: Impossibile aggiornare questa emojii updated_msg: Emoji aggiornata con successo! @@ -334,6 +339,7 @@ it: delete: Elimina destroyed_msg: Dominio email cancellato con successo dalla lista nera domain: Dominio + empty: Nessun dominio di posta elettronica attualmente in blacklist. new: create: Aggiungi dominio title: Nuova voce della lista nera delle email @@ -389,10 +395,18 @@ it: created_msg: Nota rapporto creata! destroyed_msg: Nota rapporto cancellata! reports: + account: + notes: + one: "%{count} nota" + other: "%{count} note" + reports: + one: "%{count} rapporto" + other: "%{count} rapporti" action_taken_by: Azione intrapresa da are_you_sure: Sei sicuro? assign_to_self: Assegna a me assigned: Moderatore assegnato + by_target_domain: Dominio dell'account segnalato comment: none: Nessuno created_at: Segnalato @@ -438,6 +452,8 @@ it: users: Agli utenti locali connessi domain_blocks_rationale: title: Mostra motivazione + enable_bootstrap_timeline_accounts: + title: Abilita seguiti predefiniti per i nuovi utenti hero: desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server title: Immagine dell'eroe @@ -529,6 +545,7 @@ it: most_popular: Più popolari most_recent: Più recenti name: Hashtag + review: Esamina status reviewed: Controllato title: Hashtag trending_right_now: Di tendenza ora @@ -566,6 +583,10 @@ it: Home, notifiche, timeline federata, qualsiasi numero di liste e etichette. animations_and_accessibility: Animazioni e accessibiiltà confirmation_dialogs: Dialoghi di conferma + localization: + body: Mastodon è tradotto da volontari. + guide_link: https://it.crowdin.com/project/mastodon + guide_link_text: Tutti possono contribuire. sensitive_content: Contenuto sensibile toot_layout: Layout dei toot application_mailer: @@ -614,6 +635,7 @@ it: setup: email_below_hint_html: Se l'indirizzo e-mail sottostante non è corretto, puoi cambiarlo qui e ricevere una nuova e-mail di conferma. email_settings_hint_html: L'email di conferma è stata inviata a %{email}. Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account. + title: Configurazione status: account_status: Stato dell'account confirming: In attesa che la conferma e-mail sia completata. @@ -703,7 +725,6 @@ it: blocks: Stai bloccando csv: CSV domain_blocks: Blocchi di dominio - follows: Stai seguendo lists: Liste mutes: Stai silenziando storage: Archiviazione media @@ -725,6 +746,7 @@ it: invalid_irreversible: Il filtraggio irreversibile funziona solo nei contesti di home o notifiche index: delete: Cancella + empty: Non hai alcun filtro. title: Filtri new: title: Aggiungi filtro @@ -819,6 +841,7 @@ it: not_found: non trovato on_cooldown: Ti trovi nel periodo di pausa tra un trasferimento e l'altro followers_count: Seguaci al momento dello spostamento + incoming_migrations: In arrivo da un altro account incoming_migrations_html: Per spostarti da un altro account a questo, devi prima creare un alias. moved_msg: Il tuo account è ora reindirizzato a %{acct} e i tuoi follower sono stati spostati. not_redirecting: Il tuo account attualmente non è reindirizzato ad alcun altro account. @@ -872,6 +895,10 @@ it: body: 'Il tuo status è stato condiviso da %{name}:' subject: "%{name} ha condiviso il tuo status" title: Nuova condivisione + notifications: + email_events: Eventi per notifiche via email + email_events_hint: 'Seleziona gli eventi per i quali vuoi ricevere le notifiche:' + other_settings: Altre impostazioni per le notifiche number: human: decimal_units: @@ -905,6 +932,8 @@ it: relationships: activity: Attività dell'account dormant: Dormiente + followers: Seguaci + following: Seguiti last_active: Ultima volta attivo most_recent: Più recente moved: Trasferito diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 0dc77b775..8197423af 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -74,6 +74,7 @@ ja: roles: admin: Admin bot: Bot + group: Group moderator: Mod unavailable: プロフィールは利用できません unfollow: フォロー解除 @@ -333,6 +334,7 @@ ja: delete: 消去 destroyed_msg: ブラックリストから外しました domain: ドメイン + empty: メールブラックリストに登録されたドメインはありません new: create: ドメインを追加 title: メールアドレス用ブラックリスト新規追加 @@ -387,10 +389,16 @@ ja: created_msg: 通報メモを書き込みました! destroyed_msg: 通報メモを削除しました! reports: + account: + notes: + other: "%{count} 件のメモ" + reports: + other: "%{count} 件の通報" action_taken_by: 通報処理者 are_you_sure: 本当に実行しますか? assign_to_self: 担当になる assigned: 担当者 + by_target_domain: ドメイン comment: none: なし created_at: 通報日時 @@ -436,6 +444,8 @@ ja: users: ログイン済みローカルユーザーのみ許可 domain_blocks_rationale: title: コメントを表示 + enable_bootstrap_timeline_accounts: + title: 新規ユーザーの自動フォローを有効にする hero: desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます title: ヒーローイメージ @@ -564,6 +574,10 @@ ja: animations_and_accessibility: アニメーションとアクセシビリティー confirmation_dialogs: 確認ダイアログ discovery: 見つける + localization: + body: Mastodonは有志によって翻訳されています。 + guide_link: https://ja.crowdin.com/project/mastodon + guide_link_text: 誰でも参加することができます。 sensitive_content: 閲覧注意コンテンツ toot_layout: トゥートレイアウト application_mailer: @@ -702,7 +716,6 @@ ja: blocks: ブロック csv: CSV domain_blocks: 非表示にしたドメイン - follows: フォロー lists: リスト mutes: ミュート storage: メディア @@ -724,6 +737,7 @@ ja: invalid_irreversible: この機能はホームタイムラインまたは通知と一緒に指定する場合のみ機能します index: delete: 削除 + empty: フィルターはありません。 title: フィルター new: title: 新規フィルターを追加 @@ -868,6 +882,10 @@ ja: body: "%{name} さんにブーストされた、あなたのトゥートがあります:" subject: "%{name} さんにブーストされました" title: 新たなブースト + notifications: + email_events: メールによる通知 + email_events_hint: '受信する通知を選択:' + other_settings: その他の通知設定 number: human: decimal_units: @@ -901,6 +919,8 @@ ja: relationships: activity: 活動 dormant: 非アクティブ + followers: フォロワー + following: フォロー中 last_active: 最後の活動 most_recent: 新着 moved: 引っ越し済み diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 125912892..3a3a33858 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -450,7 +450,6 @@ ka: size: ზომა blocks: თქვენ ბლოკავთ csv: ცსვ - follows: თქვენ მიჰყვებით mutes: თქვენ აჩუმებთ storage: მედია საცავი filters: diff --git a/config/locales/kab.yml b/config/locales/kab.yml new file mode 100644 index 000000000..629793736 --- /dev/null +++ b/config/locales/kab.yml @@ -0,0 +1,433 @@ +--- +kab: + about: + about_hashtag_html: Tigi d tiberraḥin tizuyaz, ɣur-sent #%{hashtag}. Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fediverse. + about_mastodon_html: 'Azeṭṭa ametti n uzekka: Ulac deg-s asussen, ulac taɛessast n tsuddiwin fell-ak, yebna ɣef leqder d ttrebga, daɣen d akeslemmas! Akked Mastudun, isefka-inek ad qimen inek!' + about_this: Ɣef + active_count_after: yekker + active_footnote: Imseqdacen yekkren s wayyur (MAU) + administered_by: 'Yettwadbel sɣur:' + api: API + apps: Isnasen izirazen + apps_platforms: Seqdec Masṭudun deg iOS, Android d tɣeṛɣṛin-nniḍen + browse_directory: Qelleb deg tebdert n yimaɣnuten teǧǧeḍ-d gar-asen widak tebɣiḍ + contact: Anermis + contact_unavailable: Wlac + discover_users: Af-d imseqdacen + documentation: Amnir + federation_hint_html: S umiḍan deg %{instance} tzemreḍ ad tḍefṛeḍ imdanen deg yal aqeddac Masṭudun d wugar n waya. + get_apps: Ɛreḍ asnas aziraz + hosted_on: Masṭudun yersen deg %{domain} + learn_more: Issin ugar + privacy_policy: Tasertit tabaḍnit + see_whats_happening: Ẓer d acu i iḍerrun + server_stats: 'Tidaddanin n uqeddac:' + source_code: Tangalt n uɣbalu + status_count_after: + one: n tsuffeɣt + other: n tsuffɣin + status_count_before: I d-yessuffɣen + tagline: Ḍfeṛ imddukkal-ik tissineḍ-d wiyaḍ + terms: Tiwetlin n useqdec + unavailable_content: Ulac agbur + unavailable_content_description: + domain: Aqeddac + reason: Taγzent + silenced: 'Tisuffɣin ara d-yekken seg yiqeddacen-agi ad ttwaffrent deg tsuddmin tizuyaz d yidiwenniten, daɣen ur ttilin ara telɣa ɣef usedmer n yimseqdacen-nsen, skud ur ten-teḍfiṛeḍ ara:' + unavailable_content_html: Mastudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi. + user_count_after: + one: amseqdac + other: imseqdacen + user_count_before: Amagger n + what_is_mastodon: D acu-t Masṭudun? + accounts: + follow: Ḍfeṛ + followers: + one: Ameḍfaṛ + other: Imeḍfaṛen + following: Yeṭafaṛ + joined: Yettwarna-d deg %{date} + last_active: armud aneggaru + moved_html: "%{name} ibeddel amiḍan ɣer %{new_profile_link}:" + network_hidden: Ulac isalli-agi + never_active: Werǧin + nothing_here: Ulac kra da! + people_followed_by: Imdanen i yeṭṭafaṛ %{name} + people_who_follow: Imdanen yeṭṭafaṛen %{name} + posts: + one: Taberraḥt + other: Tiberraḥin + posts_tab_heading: Tiberraḥin + posts_with_replies: Tibarraḥin d tririyin + reserved_username: Isem-agi n umseqdac yettwaṭṭef yakan + roles: + admin: Anedbal + bot: Aṛubut + group: Agraw + unavailable: Ur nufi ara amaɣnu-a + unfollow: Ur ṭṭafaṛ ara + admin: + account_moderation_notes: + create: Eǧǧ awennit + delete: Kkes + accounts: + approve: Qbel + approve_all: Qbel kullec + are_you_sure: Tetḥeqqeḍ? + by_domain: Taɣult + change_email: + changed_msg: Imayl n umiḍan yettwabeddel mebla ugur! + current_email: Imayl n tura + label: Beddel imayl + new_email: Imayl amaynut + submit: Beddel imayl + title: Beddel imayl-ik s %{username} + confirm: Sentem + confirmed: Yettwasentem + confirming: Asentem + deleted: Yettwakkes + disable: Gdel + disable_two_factor_authentication: Gdel 2FA + display_name: Isem ara d-yettwaskanen + domain: Taɣult + edit: Ẓreg + email: Imayl + email_status: Addad n imayl + enable: Rmed + enabled: Yermed + followers: Imeḍfaṛen + follows: Yeṭafaṛ + header: Ixef + inbox_url: URL n yinekcam + ip: Tansa IP + joined: Yettwarna-d + location: + all: Akk + local: Adigan + title: Amḍiq + login_status: Addad n tuqqna + memorialize: Err amiḍan d asebter n usmekti + moderation: + active: Yermed + all: Akk + pending: Yettraǧu + silenced: Yettwasgugem + most_recent_activity: Armud aneggaru + most_recent_ip: Tansa IP taneggarut + no_account_selected: Ula yiwen n umiḍan ur yettwabeddel acku ula yiwen ur yettwafren + no_limits_imposed: War tilisa + protocol: Aneggaf + public: Azayez + redownload: Smiren amaɣnu + reject: Ggami + reject_all: Ggami-ten akk + resend_confirmation: + already_confirmed: Amseqdac-agi yettwasentem yakan + send: Azen tikelt-nniḍen imayl n usentem + success: Imayl n usentem yettwazen mebla ugur! + reset: Wennez + reset_password: Beddel awal uffir + roles: + admin: Anedbal + staff: Tarbaɛt + user: Amseqdac + search: Nadi + search_same_ip: Imseqdacen-nniḍen s tansa IP am tinn-ik + silence: Sgugem + silenced: Yettwasgugem + statuses: Tisuffɣin + time_in_queue: Deg tebdert n uraju %{time} + title: Imiḍan + unconfirmed_email: Imayl ur yettwasentem ara + username: Isem n useqdac + web: Web + whitelisted: Deg tebdert tamellalt + action_logs: + actions: + change_email_user: "%{name} ibeddel imayl n umseqdac %{target}" + confirm_user: "%{name} isentem tansa imayl n umseqdac %{target}" + create_account_warning: "%{name} yuzen alɣu i %{target}" + create_custom_emoji: "%{name} yessuli-d imujiten imaynuten %{target}" + create_domain_allow: "%{name} yerna taɣult %{target} ɣer tebdart tamellalt" + create_domain_block: "%{name} yesseḥbes taɣult %{target}" + create_email_domain_block: "%{name} yerna taɣult n imayl %{target} ɣer tebdart taberkant" + destroy_custom_emoji: "%{name} ihudd imuji %{target}" + destroy_domain_allow: "%{name} yekkes taɣult %{target} seg tebdart tamellalt" + destroy_domain_block: "%{name} yekkes aseḥbes n taɣult %{target}" + destroy_email_domain_block: "%{name} yerna taɣult n imayl %{target} ɣer tebdart tamellalt" + destroy_status: "%{name} yekkes tasuffeɣt n %{target}" + disable_custom_emoji: "%{name} yessens imuji %{target}" + disable_user: "%{name} yessens tuqqna i umseqdac %{target}" + enable_custom_emoji: "%{name} yermed imuji %{target}" + enable_user: "%{name} yermed tuqqna i umseqdac %{target}" + memorialize_account: "%{name} yerra amiḍan n %{target} d asebter n usmekti" + silence_account: "%{name} yesgugem amiḍan n %{target}" + unsilence_account: "%{name} yekkes asgugem n umiḍan n %{target}" + update_custom_emoji: "%{name} yelqem imuji %{target}" + update_status: "%{name} yelqem tasuffeɣt n %{target}" + deleted_status: "(tasuffeɣt tettwakkes)" + custom_emojis: + assign_category: Efk taggayt + by_domain: Taγult + copied_msg: Takna tadigant n imuji yettwarna-d mebla ugur + copy: Nγel + create_new_category: Rnu-d taggayt tamaynut + created_msg: Imuji yettwarna-d mebla ugur! + delete: Kkes + destroyed_msg: Ahuddu n imuji yeḍra-d mebla ugur! + disable: Gdel + disabled: Ssens + emoji: Emuji + enable: Rmed + enabled: Yermed + enabled_msg: Imuji yermed mebla ugur + image_hint: PNG n ddaw n 50KT + list: Tabdart + new: + title: Timerna n imuji udmawan amaynut + title: Imujiten udmawanen + upload: Sali + dashboard: + feature_profile_directory: Imaɣnuten + features: Timahaltin + software: Aseγẓan + title: Tafelwit + week_users_active: yermed deg yimalas-agi + week_users_new: imseqdacen deg yimalas-agi + domain_allows: + add_new: Timerna n taɣult ɣer tebdart tamellalt + created_msg: Taɣult-a tettwarna ɣer tebdart tamellalt mebla ugur + destroyed_msg: Taɣult-a tettwakkes seg tebdart tamellalt + undo: Kkes seg tebdart tamellalt + domain_blocks: + domain: Taγult + new: + severity: + noop: Ula yiwen + silence: Sgugem + severity: + silence: yettwasgugem + email_domain_blocks: + add_new: Rnu amaynut + delete: Kkes + domain: Taγult + new: + create: Rnu taγult + title: Timerna n taɣult tamaynut n imayl ɣer tebdart taberkant + title: Tabdart taberkant n imayl + followers: + back_to_account: Uγal γer umiḍan + title: Imeḍfaṛen n %{acct} + instances: + by_domain: Taγult + delivery_available: Yella usiweḍ + known_accounts: + one: "%{count} n umiḍan i yettwassen" + other: "%{count} n yimiḍanen i yettwassnen" + moderation: + all: Akk + total_blocked_by_us: Ttwasḥebsen sɣur-neɣ + total_followed_by_them: Ṭtafaṛen-t + total_followed_by_us: Neṭṭafaṛ-it + invites: + filter: + all: Akk + available: Yella + expired: Ifat + title: Asizdeg + title: Iɛaruḍen + relays: + delete: Kkes + disable: Gdel + enable: Rmed + reports: + are_you_sure: Tetḥaq-eḍ? + comment: + none: Ula yiwen + mark_as_resolved: Creḍ-it yefra + mark_as_unresolved: Creḍ-it ur yefra ara + notes: + create: Rnu tamawt + delete: Kkes + resolved: Fran + unresolved: Ur yefra ara + settings: + custom_css: + desc_html: Beddel aɣan s CSS ara d-yettwasalayen deg yal asebter + title: CSS udmawan + domain_blocks: + all: Ɣef medden akk + disabled: Ɣef yiwen ala + users: Ɣef yimseqdacen idiganen i yeqqnen + title: Iγewwaṛen n usmel + statuses: + batch: + delete: Kkes + warning_presets: + add_new: Rnu amaynut + delete: Kkes + appearance: + sensitive_content: Agbur amḥulfu + application_mailer: + salutation: "%{name}," + auth: + change_password: Awal uffir + delete_account: Kkes amiḍan + description: + prefix_sign_up: Zeddi di Masṭudun assa! + forgot_password: Tettud awal-ik uffir? + login: Qqen + logout: Ffeγ + security: Taγellist + trouble_logging_in: Γur-k uguren n tuqqna? + authorize_follow: + follow: Ḍfeṛ + post_follow: + web: Ddu γer Web + title: Ḍfeṛ %{acct} + challenge: + confirm: Kemmel + invalid_password: Yir awal uffir + datetime: + distance_in_words: + about_x_months: "%{count}ug" + about_x_years: "%{count}i" + almost_x_years: "%{count}i" + half_a_minute: Tura kan + less_than_x_seconds: Tura kan + over_x_years: "%{count}i" + x_minutes: "%{count}t" + x_months: "%{count}ug" + deletes: + proceed: Kkes amiḍan + directories: + explore_mastodon: Snirem %{title} + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '422': + '429': Throttled + '500': + '503': The page could not be served due to a temporary server failure. + exports: + archive_takeout: + date: Azemz + size: Teγzi + csv: CSV + lists: Tibdarin + featured_tags: + add_new: Rnu amaynut + filters: + contexts: + notifications: Tilγa + index: + delete: Kkes + footer: + developers: Ineflayen + more: Ugar… + generic: + all: Akk + copy: Nγel + save_changes: Sekles ibeddilen + identity_proofs: + authorize: Ih, ssireg + i_am_html: Nekki d %{username} deg %{service}. + invites: + expires_in: + '1800': 30 n tisdatin + '21600': 6 n isragen + '3600': 1 asrag + '43200': 12 n isragen + '604800': 1 umalas + '86400': 1 wass + expires_in_prompt: Werǧin + migrations: + acct: Ibeddel γer + notification_mailer: + follow: + title: Ameḍfaṛ amaynut + preferences: + other: Wiyaḍ + relationships: + followers: Imeḍfaṛen + following: Yeṭafaṛ + sessions: + browser: Iminig + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox + opera: Opera + otter: Otter + safari: Safari + uc_browser: UCBrowser + weibo: Weibo + current_session: Tiγimit tamirant + description: "%{browser} s %{platform}" + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: Mac + windows: Windows + windows_mobile: Windows Mobile + settings: + account: Amiḍan + account_settings: Iγewwaṛen n umiḍan + appearance: Udem + back: Uγal γer Masṭudun + development: Taneflit + notifications: Tilγa + preferences: Imenyafen + profile: Ameγnu + relationships: Imeḍfaṛen akked wid i teṭṭafaṛeḍ + statuses: + attached: + image: + one: "%{count} tugna" + other: "%{count} tugniwin" + video: + one: "%{count} n tbidyutt" + other: "%{count} n tbidyutin" + open_in_web: Ldi deg Web + show_more: Sken-ed ugar + title: '%{name}: "%{quote}"' + visibilities: + private: Imeḍfaṛen kan + stream_entries: + sensitive_content: Agbur amḥulfu + themes: + contrast: Masṭudun (agnil awriran) + default: Masṭudun (Aberkan) + mastodon-light: Masṭudun (Aceɛlal) + time: + formats: + default: "%b %d, %Y, %H:%M" + month: "%b %Y" + two_factor_authentication: + disable: Gdel + enable: Rmed + user_mailer: + warning: + title: + none: Γur-wat + welcome: + full_handle: Tansa umiḍan-ik takemmalit + review_preferences_action: Beddel imenyafen + subject: Ansuf γer Masṭudun + title: Ansuf yessek·em, %{name}! + users: + signed_in_as: 'Teqqneḍ amzun d:' + verification: + verification: Asenqed diff --git a/config/locales/kk.yml b/config/locales/kk.yml index df2a29dab..02bd80092 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -78,6 +78,7 @@ kk: roles: admin: Админ bot: Бот + group: Топ moderator: Мод unavailable: Профиль қолжетімді емес unfollow: Оқымау @@ -338,6 +339,7 @@ kk: delete: Өшіру destroyed_msg: Successfully deletеd e-mail domain from blacklist domain: Домен + empty: Ешқандай e-mail домені қаратізімге алынбапты. new: create: Add dоmain title: New e-mail blаcklist entry @@ -397,6 +399,7 @@ kk: are_you_sure: Шынымен бе? assign_to_self: Мені тағайындау assigned: Модератор тағайындау + by_target_domain: Шағымдалған аккаунт домені comment: none: Ештеңе created_at: Шағым тасталды @@ -442,6 +445,8 @@ kk: users: Жергілікті қолданушыларға domain_blocks_rationale: title: Дәлелді көрсету + enable_bootstrap_timeline_accounts: + title: Жаңа қолданушылар жазылатын адамдарды белгілеу hero: desc_html: Бастапқы бетінде көрсетіледі. Кем дегенде 600x100px ұсынылады. Орнатылмаған кезде, сервердің нобайына оралады title: Қаһарман суреті @@ -708,7 +713,6 @@ kk: blocks: Бұғатталғансыз csv: СSV domain_blocks: Домен блоктары - follows: Оқитындарыңыз lists: Тізімдер mutes: Үнсіздер storage: Медиа жинақ @@ -730,6 +734,7 @@ kk: invalid_irreversible: Қайтарылмайтын сүзгі тек ішкі немесе ескертпелер контекстімен жұмыс істейді index: delete: Өшіру + empty: Сізде ешқандай фильтр жоқ. title: Фильтрлер new: title: Жаңа фильтр қосу @@ -878,6 +883,10 @@ kk: body: 'Жазбаңызды бөліскен %{name}:' subject: "%{name} жазбаңызды бөлісті" title: Жаңа бөлісім + notifications: + email_events: E-mail ескертпелеріне шаралар + email_events_hint: 'Ескертпе болып келетін шараларды таңда:' + other_settings: Ескертпелердің басқа баптаулары number: human: decimal_units: @@ -911,6 +920,8 @@ kk: relationships: activity: Аккаунт белсенділігі dormant: Ұйқысыз + followers: Оқырмандар + following: Жазылғандары last_active: Соңғы белсенділік most_recent: Ең соңғы moved: Көшірілді diff --git a/config/locales/ko.yml b/config/locales/ko.yml index ee9e0e954..92eb364cd 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -74,18 +74,19 @@ ko: roles: admin: 관리자 bot: 봇 - moderator: 모더레이터 + group: 그룹 + moderator: 중재자 unavailable: 프로필 사용 불가 unfollow: 팔로우 해제 admin: account_actions: action: 조치 취하기 - title: "%{acct} 계정에 조정 취하기" + title: "%{acct} 계정에 중재 취하기" account_moderation_notes: - create: 모더레이션 노트 작성하기 - created_msg: 모더레이션 기록이 성공적으로 작성되었습니다! + create: 중재 기록 작성하기 + created_msg: 중재 기록이 성공적으로 작성되었습니다! delete: 삭제 - destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다! + destroyed_msg: 중재 기록이 성공적으로 삭제되었습니다! accounts: approve: 승인 approve_all: 모두 승인 @@ -135,8 +136,8 @@ ko: pending: 대기중 silenced: 침묵 중 suspended: 정지 중 - title: 모더레이션 - moderation_notes: 모더레이션 기록 + title: 중재 + moderation_notes: 중재 기록 most_recent_activity: 최근 활동 most_recent_ip: 최근 IP no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다 @@ -163,7 +164,7 @@ ko: role: 권한 roles: admin: 관리자 - moderator: 모더레이터 + moderator: 중재자 staff: 스태프 user: 사용자 search: 검색 @@ -194,10 +195,12 @@ ko: confirm_user: "%{name}이 %{target}의 이메일 주소를 컨펌했습니다" create_account_warning: "%{name}가 %{target}에게 경고 보냄" create_custom_emoji: "%{name}이 새로운 에모지 %{target}를 추가했습니다" + create_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에 넣었습니다" create_domain_block: "%{name}이 도메인 %{target}를 차단했습니다" create_email_domain_block: "%{name}이 이메일 도메인 %{target}를 차단했습니다" demote_user: "%{name}이 %{target}을 강등했습니다" destroy_custom_emoji: "%{name}이 %{target} 에모지를 삭제함" + destroy_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에서 제거하였습니다" destroy_domain_block: "%{name}이 도메인 %{target}의 차단을 해제했습니다" destroy_email_domain_block: "%{name}이 이메일 도메인 %{target}을 화이트리스트에 넣었습니다" destroy_status: "%{name}이 %{target}의 툿을 삭제했습니다" @@ -295,7 +298,7 @@ ko: existing_domain_block_html: 이미 %{name}에 대한 더 강력한 제한이 걸려 있습니다, 차단 해제를 먼저 해야 합니다. new: create: 차단 추가 - hint: 도메인 차단은 내부 데이터베이스에 계정이 생성되는 것까지는 막을 수 없지만, 그 도메인에서 생성된 계정에 자동적으로 특정한 모더레이션을 적용하게 할 수 있습니다. + hint: 도메인 차단은 내부 데이터베이스에 계정이 생성되는 것까지는 막을 수 없지만, 그 도메인에서 생성된 계정에 자동적으로 특정한 중재 규칙을 적용하게 할 수 있습니다. severity: desc_html: |- 침묵은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 툿을 보이지 않게 합니다. 정지는 계정의 컨텐츠, 미디어, 프로필 데이터를 삭제합니다. @@ -305,7 +308,7 @@ ko: suspend: 정지 title: 새로운 도메인 차단 private_comment: 비공개 주석 - private_comment_hint: 이 도메인 제한에 대한 주석은 모더레이터를 위해 내부적으로 사용 됩니다. + private_comment_hint: 이 도메인 제한에 대한 주석은 중재자를 위해 내부적으로 사용 됩니다. public_comment: 공개 주석 public_comment_hint: 이 도메인 제한에 대한 공개적인 주석, 도메인 제한 공개를 활성화 한 경우 보여집니다. reject_media: 미디어 파일 거부하기 @@ -333,6 +336,7 @@ ko: delete: 삭제 destroyed_msg: 이메일 도메인 차단 규칙을 삭제했습니다 domain: 도메인 + empty: 현재 블랙리스트에 등록한 이메일 도메인이 없습니다 new: create: 차단 규칙 생성 title: 새 이메일 도메인 차단 @@ -348,7 +352,7 @@ ko: moderation: all: 모두 limited: 제한됨 - title: 모더레이션 + title: 중재 private_comment: 비공개 주석 public_comment: 공개 주석 title: 연합 @@ -387,10 +391,16 @@ ko: created_msg: 리포트 노트가 성공적으로 작성되었습니다! destroyed_msg: 리포트 노트가 성공적으로 삭제되었습니다! reports: + account: + notes: + other: "%{count}개의 기록" + reports: + other: "%{count}개의 신고" action_taken_by: 신고 처리자 are_you_sure: 정말로 실행하시겠습니까? assign_to_self: 나에게 할당하기 - assigned: 할당 된 모더레이터 + assigned: 할당 된 중재자 + by_target_domain: 신고된 계정의 도메인 comment: none: 없음 created_at: 리포트 시각 @@ -436,6 +446,8 @@ ko: users: 로그인 한 유저에게 domain_blocks_rationale: title: 사유 보여주기 + enable_bootstrap_timeline_accounts: + title: 새 유저가 팔로우할 계정을 보여주기 hero: desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 서버의 썸네일이 사용 됩니다 title: 히어로 이미지 @@ -564,6 +576,10 @@ ko: animations_and_accessibility: 애니메이션과 접근성 confirmation_dialogs: 확인 대화상자 discovery: 발견하기 + localization: + body: 마스토돈은 자원봉사자들에 의해 번역되었습니다. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: 누구나 기여할 수 있습니다. sensitive_content: 민감한 내용 toot_layout: 툿 레이아웃 application_mailer: @@ -702,7 +718,6 @@ ko: blocks: 차단 csv: CSV domain_blocks: 도메인 차단 - follows: 팔로우 lists: 리스트 mutes: 뮤트 storage: 미디어 @@ -724,6 +739,7 @@ ko: invalid_irreversible: 되돌릴 수 없는 필터링은 홈 타임라인과 알림에서만 동작합니다 index: delete: 삭제 + empty: 필터가 없습니다. title: 필터 new: title: 필터 추가 @@ -814,7 +830,7 @@ ko: missing_also_known_as: 이 계정을 역으로 참조하지 않고 있습니다 move_to_self: 현재 계정은 사용할 수 없습니다 not_found: 찾을 수 없습니다 - on_cooldown: 쿨다운 기간입니다 + on_cooldown: 휴식기간입니다 followers_count: 이주 될 팔로워들 incoming_migrations: 다른 계정으로부터 옮기기 incoming_migrations_html: 다른 계정을 이 계정으로 이주하고 싶은 경우, 먼저 계정 별칭을 만들어야 합니다. @@ -828,14 +844,14 @@ ko: warning: backreference_required: 새 계정은 이 계정으로 역참조를 하도록 설정되어 있어야 합니다 before: '진행하기 전, 주의사항을 꼼꼼히 읽어보세요:' - cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 쿨다운 기간이 존재합니다 + cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 휴식기간이 존재합니다 disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다. followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다 only_redirect_html: 대신, 프로필에 리디렉션만 표시할 수 있습니다. other_data: 다른 어떤 데이터도 자동적으로 옮겨지지 않을 것입니다 redirect: 현재 계정 프로필은 리다이렉트 알림과 함께 업데이트 되며 검색에서 제외 됩니다 moderation: - title: 모더레이션 + title: 중재 notification_mailer: digest: action: 모든 알림 보기 @@ -868,6 +884,10 @@ ko: body: "%{name} 님이 내 툿을 부스트 했습니다:" subject: "%{name} 님이 내 툿을 부스트 했습니다" title: 새 부스트 + notifications: + email_events: 이메일 알림에 대한 이벤트 + email_events_hint: '알림 받을 이벤트를 선택해주세요:' + other_settings: 기타 알림 설정 number: human: decimal_units: @@ -891,6 +911,7 @@ ko: duration_too_long: 너무 먼 미래입니다 duration_too_short: 너무 가깝습니다 expired: 투표가 이미 끝났습니다 + invalid_choice: 선택한 옵션이 존재하지 않습니다 over_character_limit: 각각 %{max} 글자를 넘을 수 없습니다 too_few_options: 한가지 이상의 항목을 포함해야 합니다 too_many_options: 항목은 %{max}개를 넘을 수 없습니다 @@ -901,6 +922,8 @@ ko: relationships: activity: 계정 활동 dormant: 휴면 + followers: 팔로워 + following: 팔로잉 last_active: 마지막 활동 most_recent: 가장 최근 moved: 이동함 @@ -1057,7 +1080,7 @@ ko:
  • 마스토돈의 주요 기능 제공. 다른 사람의 게시물에 상호작용 하거나 자신의 게시물을 작성하기 위해서는 로그인을 해야 합니다. 예를 들어, 다른 사람의 게시물을 자신만의 홈 타임라인에서 모아 보기 위해 팔로우를 할 수 있습니다.
  • -
  • 커뮤니티의 모더레이션을 위해, 예를 들어 당신의 IP 주소와 기타 사항을 비교하여 금지를 우회하거나 다른 규칙을 위반하는지 판단하는 데에 사용할 수 있습니다.
  • +
  • 커뮤니티의 중재를 위해, 예를 들어 당신의 IP 주소와 기타 사항을 비교하여 금지를 우회하거나 다른 규칙을 위반하는지 판단하는 데에 사용할 수 있습니다.
  • 당신이 제공한 이메일 주소를 통해 정보, 다른 사람들의 반응이나 받은 메시지에 대한 알림, 기타 요청 등에 관한 응답 요청 등을 보내는 데에 활용됩니다.
diff --git a/config/locales/lt.yml b/config/locales/lt.yml index e9634b397..41f0284d8 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -510,7 +510,6 @@ lt: size: Dydis blocks: Jūs blokuojate domain_blocks: Domeno blokai - follows: Jūs sekate lists: Sąrašai mutes: Jūs tildote storage: Medijos sandėlis diff --git a/config/locales/ml.yml b/config/locales/ml.yml index 45218b8be..960ab95cc 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -2,6 +2,48 @@ ml: about: contact_missing: സജ്ജമാക്കിയിട്ടില്ല + contact_unavailable: ലഭ്യമല്ല + discover_users: ഉപയോഗ്‌താക്കളെ കണ്ടെത്തുക + learn_more: കൂടുതൽ പഠിക്കുക + privacy_policy: സ്വകാര്യതാ നയം + see_whats_happening: എന്തൊക്കെ സംഭവിക്കുന്നു എന്ന് കാണുക + status_count_before: ആരാൽ എഴുതപ്പെട്ടു + tagline: സുഹൃത്തുക്കളെ പിന്തുടരുകയും പുതിയവരെ കണ്ടെത്തുകയും ചെയ്യുക + terms: സേവന വ്യവസ്ഥകൾ + unavailable_content: ലഭ്യമല്ലാത്ത ഉള്ളടക്കം + unavailable_content_description: + reason: കാരണം + what_is_mastodon: എന്താണ് മാസ്റ്റഡോൺ? + accounts: + follow: പിന്തുടരുക + following: നിങ്ങൾ പിന്തുടരുന്നവർ + joined: "%{date} ൽ ചേർന്നു" + last_active: അവസാനം സജീവമായിരുന്നത് + link_verified_on: സന്ധിയുടെ ഉടമസ്ഥാവസ്‌കാശം %{date} ൽ പരിശോധിക്കപ്പെട്ടു + media: മാധ്യമങ്ങൾ + moved_html: "%{name}, %{new_profile_link} ലേക്ക് നീങ്ങിയിരിക്കുന്നു:" + admin: + account_moderation_notes: + delete: മായ്ക്കുക + accounts: + approve: അംഗീകരിക്കുക + by_domain: മേഖല + change_email: + changed_msg: അംഗത്തിന്റെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം വിജയകരമായി മാറ്റിയിരിക്കുന്നു! + current_email: ഇപ്പോഴത്തെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം + label: മാറിയ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം + new_email: പുതിയ ഇലക്ട്രോണിക് കത്ത് + submit: ഇലക്ട്രോണിക് കത്ത് മേൽവിലാസം മാറ്റുക + title: "%{username} ന്റെ ഇലക്ട്രോണിക് കത്ത് മേൽവിലാസം മാറ്റുക" + confirm: നിജപ്പെടുത്തുക + confirmed: നിജപ്പെടുത്തി + deleted: മായിച്ചു + demote: തരം താഴ്ത്തുക + disable: പ്രവര്‍ത്തന രഹിതമാക്കുക + disable_two_factor_authentication: ദ്വിഘടക നിർണ്ണയീകരണം പ്രവർത്തന രഹിതമാക്കുക + disabled: പ്രവർത്തന രഹിതമാക്കപ്പെട്ടിരിക്കുന്നു + display_name: കാണപ്പെടുന്ന നാമം + domain: മേഖല errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 2b49708e3..5975ba68e 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -78,6 +78,7 @@ nl: roles: admin: Beheerder bot: Bot + group: Groep moderator: Moderator unavailable: Profiel niet beschikbaar unfollow: Ontvolgen @@ -198,10 +199,12 @@ nl: confirm_user: E-mailadres van gebruiker %{target} is door %{name} bevestigd create_account_warning: "%{name} verzond een waarschuwing naar %{target}" create_custom_emoji: Nieuwe emoji %{target} is door %{name} geüpload + create_domain_allow: "%{name} heeft het domein %{target} aan de witte lijst toegevoegd" create_domain_block: Domein %{target} is door %{name} geblokkeerd create_email_domain_block: E-maildomein %{target} is door %{name} op de zwarte lijst geplaatst demote_user: Gebruiker %{target} is door %{name} gedegradeerd destroy_custom_emoji: "%{name} verwijderde emoji %{target}" + destroy_domain_allow: "%{name} heeft het domein %{target} van de witte lijst verwijderd" destroy_domain_block: Domein %{target} is door %{name} gedeblokkeerd destroy_email_domain_block: E-maildomein %{target} is door %{name} op de witte lijst geplaatst destroy_status: Toot van %{target} is door %{name} verwijderd @@ -391,10 +394,18 @@ nl: created_msg: Opmerking bij rapportage succesvol aangemaakt! destroyed_msg: Opmerking bij rapportage succesvol verwijderd! reports: + account: + notes: + one: "%{count} opmerking" + other: "%{count} opmerkingen" + reports: + one: "%{count} rapportage" + other: "%{count} rapportages" action_taken_by: Actie uitgevoerd door are_you_sure: Weet je het zeker? assign_to_self: Aan mij toewijzen assigned: Toegewezen moderator + by_target_domain: Domein van gerapporteerde account comment: none: Geen created_at: Gerapporteerd op @@ -440,6 +451,8 @@ nl: users: Naar ingelogde lokale gebruikers domain_blocks_rationale: title: Motivering tonen + enable_bootstrap_timeline_accounts: + title: Standaard te volgen accounts voor nieuwe gebruikers inschakelen hero: desc_html: Wordt op de voorpagina getoond. Tenminste 600x100px aanbevolen. Wanneer dit niet is ingesteld wordt de thumbnail van de Mastodonserver getoond title: Hero-afbeelding @@ -706,7 +719,6 @@ nl: blocks: Jij blokkeert csv: CSV domain_blocks: Domeinblokkades - follows: Jij volgt lists: Lijsten mutes: Jij negeert storage: Mediaopslag @@ -876,6 +888,10 @@ nl: body: 'Jouw toot werd door %{name} geboost:' subject: "%{name} boostte jouw toot" title: Nieuwe boost + notifications: + email_events: E-mailmeldingen voor gebeurtenissen + email_events_hint: 'Selecteer gebeurtenissen waarvoor je meldingen wilt ontvangen:' + other_settings: Andere meldingsinstellingen number: human: decimal_units: @@ -909,6 +925,8 @@ nl: relationships: activity: Accountactiviteit dormant: Sluimerend + followers: Volgers + following: Volgend last_active: Laatst actief most_recent: Recentelijk gevolgd moved: Verhuisd diff --git a/config/locales/nn.yml b/config/locales/nn.yml index a1b61d6e7..4eb8c69b3 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1,20 +1,1161 @@ --- nn: + about: + about_hashtag_html: Dette er offentlege tut merkt med #%{hashtag}. Du kan nytta dei om du har ein konto kvar som helst i fødiverset. + about_mastodon_html: 'Framtidas sosiale nettverk: Ingen annonsar, ingen verksemder som overvaker deg, etisk design og desentralisering! Eig idéane dine med Mastodon!' + about_this: Om oss + active_count_after: aktiv + active_footnote: Månadlege aktive brukarar (MAB) + administered_by: 'Administrert av:' + api: API + apps: Mobilappar + apps_platforms: Bruk Mastodon på iOS, Android og andre plattformer + browse_directory: Bla gjennom en profilmappe og filtrer etter interesser + browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren + browse_public_posts: Sjå ei direktesending av offentlege innlegg på Mastodon + contact: Kontakt + contact_missing: Ikkje sett + contact_unavailable: I/T + discover_users: Oppdag brukarar + documentation: Dokumentasjon + federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir. + get_apps: Prøv ein mobilapp + hosted_on: "%{domain} er vert for Mastodon" + learn_more: Lær meir + privacy_policy: Personvernsreglar + see_whats_happening: Sjå kva som skjer + server_stats: 'Tenarstatistikk:' + source_code: Kjeldekode + status_count_after: + one: status + other: statusar + status_count_before: Som skreiv + tagline: Fylg vener og oppdag nye + terms: Brukarvilkår + unavailable_content: Utilgjengeleg innhald + unavailable_content_description: + domain: Sørvar + reason: Grunn + rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' + silenced: 'Innlegg frå desse tenarane vert gøymde frå offentlege tidsliner og samtalar, og det kjem ingen varsel frå samhandlingane til brukarane deira, med mindre du fylgjer dei:' + suspended: 'Ingen data frå desse tenarane vert handsama, lagra eller sende til andre, som gjer det umogeleg å samhandla eller kommunisera med andre brukarar frå desse tenarane:' + unavailable_content_html: Mastodon gjev deg som regel lov til å sjå innhald og samhandla med brukarar frå alle andre tenarar i fødiverset. Dette er unnataka som er valde for akkurat denne tenaren. + user_count_after: + one: brukar + other: brukarar + user_count_before: Her bur + what_is_mastodon: Kva er Mastodon? + accounts: + choices_html: "%{name} sine val:" + endorsements_hint: Du kan fremja folk dy fylgjer frå grensesnittet på nettet, og då visast dei her. + featured_tags_hint: Du kan velja emneknaggar som skal visast her. + follow: Fylg + followers: + one: Fylgjar + other: Fylgjarar + following: Fylgjer + joined: Vart med %{date} + last_active: sist aktiv + link_verified_on: Eigarskap for denne lenkja vart sist sjekka %{date} + media: Media + moved_html: "%{name} har flytta til %{new_profile_link}:" + network_hidden: Denne informasjonen er ikkje tilgjengeleg + never_active: Aldri + nothing_here: Her er det ingenting! + people_followed_by: Folk som %{name} fylgjer + people_who_follow: Folk som fylgjer %{name} + pin_errors: + following: Du må allereie fylgja personen du vil fremja + posts: + one: Tut + other: Tut + posts_tab_heading: Tut + posts_with_replies: Tut og svar + reserved_username: Dette brukarnamnet er oppteke + roles: + admin: Administrator + bot: Robot + group: Gruppe + moderator: Moderator + unavailable: Profil ikkje tilgjengeleg + unfollow: Slutt å fylgja + admin: + account_actions: + action: Utfør + title: Utfør moderatorhandling på %{acct} + account_moderation_notes: + create: Legg igjen merknad + created_msg: Moderatormerknad er laga! + delete: Slett + destroyed_msg: Moderatormerknad er utsletta! + accounts: + approve: Godtak + approve_all: Godtak alle + are_you_sure: Er du sikker? + avatar: Bilete + by_domain: Domene + change_email: + changed_msg: Konto-e-posten er endra! + current_email: Noverande e-post + label: Byt e-post + new_email: Ny e-post + submit: Byt e-post + title: Byt e-post for %{username} + confirm: Stadfest + confirmed: Stadfesta + confirming: Stadfestar + deleted: Sletta + demote: Degrader + disable: Slå av + disable_two_factor_authentication: Slå av 2FA + disabled: Slege av + display_name: Synleg namn + domain: Domene + edit: Rediger + email: E-post + email_status: E-poststatus + enable: Slå på + enabled: Aktivert + followers: Fylgjarar + follows: Fylgje + header: Overskrift + inbox_url: Innbokslenkje + invited_by: Innboden av + ip: IP + joined: Vart med + location: + all: Alle + local: Lokalt + remote: Fjernt + title: Stad + login_status: Innlogginsstatus + media_attachments: Medievedlegg + memorialize: Gjør om til et minne + moderation: + active: Aktiv + all: Alle + pending: Ventar på svar + silenced: Dempa + suspended: Utvist + title: Moderasjon + moderation_notes: Moderasjonsmerknader + most_recent_activity: Nyligste aktivitet + most_recent_ip: Nyast IP + no_account_selected: Ingen kontoar vart endra sidan ingen var valde + no_limits_imposed: Ingen grenser sett + not_subscribed: Ikkje tinga + pending: Ventar på gjennomgang + perform_full_suspension: Utvis + promote: Frem + protocol: Protokoll + public: Offentleg + push_subscription_expires: PuSH-abonnent utløper + redownload: Last inn profil på nytt + reject: Avvis + reject_all: Avvis alle + remove_avatar: Fjern bilete + remove_header: Fjern overskrift + resend_confirmation: + already_confirmed: Denne brukaren er allereie stadfesta + send: Send stadfestings-e-posten på nytt + success: Stadfestings-e-post send! + reset: Attstill + reset_password: Attstill passord + resubscribe: Ting på nytt + role: Løyve + roles: + admin: Administrator + moderator: Moderator + staff: Personell + user: Brukar + search: Søk + search_same_ip: Andre brukarar med same IP + shared_inbox_url: Delt Innboks URL + show: + created_reports: Rapportar frå denne kontoen + targeted_reports: Meldt av andre + silence: Togn + silenced: Dempa + statuses: Statusar + subscribe: Ting + suspended: Utvist + time_in_queue: Ventar i kø %{time} + title: Kontoar + unconfirmed_email: E-post utan stadfesting + undo_silenced: Angr målbinding + undo_suspension: Angr utvising + unsubscribe: Avmeld + username: Brukarnamn + warn: Åtvar + web: Nett + whitelisted: Kvitlista + action_logs: + actions: + change_email_user: "%{name} endra e-postadressa til brukaren %{target}" + confirm_user: "%{name} stadfesta e-postadressa til brukaren %{target}" + create_account_warning: "%{name} sende ei åtvaring til %{target}" + create_custom_emoji: "%{name} lasta opp eit nytt kjensleteikn %{target}" + create_domain_allow: "%{name} kvitlista domenet %{target}" + create_domain_block: "%{name} blokkerte domenet %{target}" + create_email_domain_block: "%{name} svartelista e-postdomenet %{target}" + demote_user: "%{name} degraderte brukaren %{target}" + destroy_custom_emoji: "%{name} utsletta kjensleteiknet %{target}" + destroy_domain_allow: "%{name} fjerna domenet %{target} frå kvitliste" + destroy_domain_block: "%{name} slutta å blokkera domenet %{target}" + destroy_email_domain_block: "%{name} kvitlista e-postdomenet %{target}" + destroy_status: "%{name} sletta status av %{target}" + disable_2fa_user: "%{name} tok vekk krav om tofaktorautentisering for brukaren %{target}" + disable_custom_emoji: "%{name} deaktiverte emojien %{target}" + disable_user: "%{name} slo av innlogging for brukaren %{target}" + enable_custom_emoji: "%{name} aktiverte emojien %{target}" + enable_user: "%{name} aktiverte innlogging for brukaren %{target}" + memorialize_account: "%{name} endret %{target}s konto til en minneside" + promote_user: "%{name} fremja brukaren %{target}" + remove_avatar_user: "%{name} fjerna %{target} sitt profilbilete" + reopen_report: "%{name} opna rapporten %{target} på nytt" + reset_password_user: "%{name} nullstilte passordet til brukaren %{target}" + resolve_report: "%{name} løyste ein rapport %{target}" + silence_account: "%{name} målbatt %{target} sin konto" + suspend_account: "%{name} utviste %{target} sin konto" + unsilence_account: "%{name} fjernet forstummingen av %{target}s konto" + unsuspend_account: "%{name} utviste %{target} sin konto" + update_custom_emoji: "%{name} oppdaterte kjensleteiknet %{target}" + update_status: "%{name} oppdaterte status for %{target}" + deleted_status: "(sletta status)" + title: Revisionslogg + custom_emojis: + assign_category: Vel kategori + by_domain: Domene + copied_msg: Laga ein lokal kopi av kjensleteiknet + copy: Kopier + copy_failed_msg: Klarte ikkje å kopiera emojien + create_new_category: Lag ny kategori + created_msg: Laga kjensleteikn! + delete: Slett + destroyed_msg: Kjensleteikn utsletta! + disable: Slå av + disabled: Slege av + disabled_msg: Deaktiverte emoji + emoji: Emoji + enable: Slå på + enabled: Slege på + enabled_msg: Aktiverte kjensleteikn + image_hint: PNG opp til 50 kB + list: Oppfør + listed: Oppført + new: + title: Legg til eige kjensleteikn + overwrite: Skriv over + shortcode: Stuttkode + shortcode_hint: Minst 2 teikn, berre tal, bokstavar og understrek + title: Eigne kjensleteikn + uncategorized: Ukategorisert + unlist: Uoppfør + unlisted: Ikkje oppført + update_failed_msg: Klarte ikkje å oppdatera emojien + updated_msg: Kjensleteiknet er oppdatert! + upload: Last opp + dashboard: + authorized_fetch_mode: Trygg modus + config: Oppsett + feature_deletions: Kontoslettingar + feature_invites: Innbydingar + feature_profile_directory: Profilmappe + feature_registrations: Registreringar + feature_spam_check: Søppelvern + feature_timeline_preview: Førehandsvisning av tidsline + features: Eigenskapar + open_reports: opne rapportar + pending_tags: emneknaggar som ventar på gjennomgang + pending_users: brukarar som ventar på gjennomgang + recent_users: Nylege brukarar + search: Fulltekstsøking + single_user_mode: Enkeltbrukarmodus + software: Programvare + space: Lagrinsplass nytta + title: Dashbord + total_users: brukarar til saman + trends: Populært + week_interactions: samhandlingar denne veka + week_users_active: aktive denne veka + week_users_new: brukarar denne veka + whitelist_mode: Kvitlistemodus + domain_allows: + add_new: Kvitlist domene + created_msg: Domene er vorte kvitlista + destroyed_msg: Domene er fjerna frå kvitlista + undo: Fjern frå kvitliste + domain_blocks: + add_new: Lag ny + created_msg: Domeneblokkering blir nå behandlet + destroyed_msg: Domeneblokkering har nå blitt angret + domain: Domene + existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. + new: + create: Lag blokkering + hint: Domeneblokkeringen vil ikke hindre opprettelse av kontooppføringer i databasen, men vil retroaktivt og automatisk benytte spesifikke moderasjonsmetoder på de kontoene. + severity: + desc_html: "Målbind gjør kontoens poster usynlige for alle som ikke følger den. Utvis fjerner alt innhold, media og profildata fra kontoen. Bruk Ingen hvis du bare vil fjerne mediafiler." + noop: Ingen + silence: Togn + suspend: Utvis + title: Ny domeneblokkering + private_comment: Privat kommentar + public_comment: Offentleg kommentar + reject_media: Avvis mediefiler + reject_media_hint: Fjernar mediefiler som er lagra lokalt og nektar å lasta ned andre i framtida. Har ikkje noko å seia for utvisingar + reject_reports: Avvis rapportar + reject_reports_hint: Ignorer alle rapportar frå dette domenet. Har ikkje noko å seia for utvisingar + rejecting_media: avviser mediefiler + rejecting_reports: avviser rapportar + severity: + silence: dempa + suspend: utvist + show: + affected_accounts: + one: Éin konto i databasen vert påverka + other: "%{count} kontoar i databasen vert påverka" + retroactive: + silence: Avmålbind alle eksisterende kontoer fre dette domenet + suspend: Avutvis alle eksisterende kontoer fra dette domenet + title: Angre domeneblokkering for %{domain} + undo: Angr + undo: Angre + email_domain_blocks: + add_new: Lag ny + created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer + delete: Slett + destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer + domain: Domene + new: + create: Legg til domene + title: Ny blokkeringsoppføring av e-postdomene + title: Blokkerte e-postadresser + followers: + back_to_account: Tilbake til konto + title: "%{acct} sine fylgjarar" + instances: + by_domain: Domene + delivery_available: Levering er tilgjengelig + known_accounts: + one: "%{count} kjend konto" + other: "%{count} kjende kontoar" + moderation: + all: Alle + limited: Avgrensa + title: Moderasjon + private_comment: Privat kommentar + public_comment: Offentleg kommentar + title: Samling + total_blocked_by_us: Blokkert av oss + total_followed_by_them: Fylgd av dei + total_followed_by_us: Fylgd av oss + total_reported: Rapportar om dei + total_storage: Medievedlegg + invites: + deactivate_all: Slå av alle + filter: + all: Alle + available: Tilgjengeleg + expired: Utgått + title: Filter + title: Innbydingar + pending_accounts: + title: Kontoar som ventar (%{count}) + relays: + add_new: Legg til ny overgang + delete: Slett + disable: Slå av + disabled: Slege av + enable: Slå på + enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den. + enabled: Skrudd på + inbox_url: Overførings-URL + save_and_enable: Lagr og slå på + setup: Sett opp en overgangsforbindelse + signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på + status: Status + title: Vidaresendingar + report_notes: + created_msg: Rapportmerknad laga! + destroyed_msg: Rapportmerknad sletta! + reports: + account: + notes: + one: "%{count} notis" + other: "%{count} notiser" + reports: + one: "%{count} rapport" + other: "%{count} rapporter" + action_taken_by: Handling gjort av + are_you_sure: Er du sikker? + assign_to_self: Tilegn til meg + assigned: Tilsett moderator + comment: + none: Ingen + created_at: Rapportert + mark_as_resolved: Merk som løyst + mark_as_unresolved: Merk som uløyst + notes: + create: Sett inn merknad + create_and_resolve: Løys med merknad + create_and_unresolve: Opn på nytt med merknad + delete: Slett + reopen: Opn rapport igjen + report: 'Rapporter #%{id}' + reported_account: Rapportert konto + reported_by: Rapportert av + resolved: Oppløyst + resolved_msg: Rapporten er løyst! + status: Status + title: Rapportar + unassign: Avset + unresolved: Uløyst + updated_at: Oppdatert + settings: + activity_api_enabled: + desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger + title: Publiser samlet statistikk om brukeraktiviteter + bootstrap_timeline_accounts: + desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer. + title: Standard fylgjer for nye brukarar + contact_information: + email: Offentleg e-postadresse + username: Brukarnamn for kontakt + custom_css: + title: Eigen CSS + default_noindex: + desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve + domain_blocks: + all: Til alle + disabled: Til ingen + title: Vis domeneblokkeringer + users: Til lokale brukarar som er logga inn + domain_blocks_rationale: + title: Vis kvifor + hero: + desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde + title: Heltebilete + mascot: + desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten + title: Maskotbilete + peers_api_enabled: + desc_html: Domenenavn denne instansen har truffet på i fediverset + title: Publiser liste over oppdaga tenarar + preview_sensitive_media: + desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt + profile_directory: + desc_html: Gjer at brukarar kan oppdagast + title: Skru på profilmappen + registrations: + closed_message: + desc_html: Vises på forsiden når registreringer er lukket
Du kan bruke HTML-tagger + title: Melding for lukket registrering + deletion: + desc_html: Tillat alle å sletta kontoen sin + title: Åpne kontosletting + min_invite_role: + disabled: Ingen + title: Tillat innbydingar frå + registrations_mode: + modes: + none: Ingen kan melda seg inn + open: Kven som helst kan melda seg inn + show_staff_badge: + desc_html: Vis personalmerke på ei brukarside + title: Vis personalmerke + site_description: + desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a> og <em>. + title: Tenarskilding + site_description_extended: + desc_html: Ein god stad å setja reglar for åtferdskode, reglar, rettningsliner og andre ting som skil din tenar frå andre. Du kan nytta HTML-taggar + title: Utvidet nettstedsinformasjon + site_short_description: + desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. + title: Stutt om tenaren + site_terms: + desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger + title: Eigne brukarvilkår + site_title: Tenarnamn + spam_check_enabled: + desc_html: Mastodon kan auto-rapportere kontoer som sender gjentatte uforespurte meldinger. Det kan oppstå falske positive treff. + title: Nettsøppelvern + thumbnail: + desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales + title: Småbilete for tenaren + timeline_preview: + desc_html: Vis offentlig tidslinje på landingssiden + title: Tillat uautentisert tilgang til offentleg tidsline + title: Sideinnstillingar + trendable_by_default: + desc_html: Påverkar emneknaggar som ikkje har vore tillatne tidlegare + title: Tillat emneknaggar å verta populære utan gjennomgang på førehand + trends: + title: Populære emneknaggar + statuses: + back_to_account: Tilbake til kontosida + batch: + delete: Slett + nsfw_off: NSFW AV + nsfw_on: NSFW PÅ + deleted: Sletta + failed_to_execute: Lét seg ikkje gjera + media: + title: Media + no_media: Ingen media + no_status_selected: Ingen statusar vart endra sidan ingen vart valde + title: Kontostatusar + with_media: Med media + tags: + accounts_today: Ulike brukarar i dag + accounts_week: Unike brukstilfeller denne uken + breakdown: Oversyn over bruk i dag etter kjelde + context: Kontekst + directory: I mappen + in_directory: "%{count} i mappen" + last_active: Sist aktiv + most_popular: Mest populær + most_recent: Nyast + name: Emneknagg + review: Sjå gjennom status + reviewed: Gjennomgått + title: Emneknaggar + trending_right_now: Populært no + unique_uses_today: "%{count} legg ut i dag" + unreviewed: Ikkje gjennomgått + updated_msg: Emneknagginnstillingane er oppdaterte + title: Leiing + warning_presets: + add_new: Legg til ny + delete: Slett + edit: Rediger + edit_preset: Endr åtvaringsoppsett + title: Handsam åtvaringsoppsett + admin_mailer: + new_report: + body: "%{reporter} har rapportert %{target}" + body_remote: Nokon frå %{domain} har meldt %{target} + subject: Ny rapport for %{instance} (#%{id}) + new_trending_tag: + body: 'Emneknaggen #%{name} trender i dag, men den har ikke blitt gjennomgått tidligere. Den vil ikke bli vist offentlig med mindre du tillater at den blir det, eller du kan bare lagre skjemaet slik det er for å aldri høre om det igjen.' + subject: Ny emneknagg ventar gjennomgang på %{instance} (#%{name}) + aliases: + add_new: Lag psevdonym + created_msg: Laga eit nytt kallenamn. No kan du setja i gang med flyttinga frå den gamle kontoen. + deleted_msg: Fjerna kallenamnet. No vert det ikkje lenger mogeleg å flytta frå den andre kontoen til denne. + hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen. + remove: Fjern aliaslenking + appearance: + advanced_web_interface: Avansert nettgrensesnitt + advanced_web_interface_hint: 'Hvis du ønsker å bruke hele skjermbredden din, lar det avanserte nettgrensesnittet deg sette opp mange forskjellige kolonner for å se så mye informasjon på én gang som du vil: Hjem, varslinger, fellestidslinjen, og ethvert antall lister og emneknagger.' + animations_and_accessibility: Animasjoner og tilgjengelighet + confirmation_dialogs: Bekreftelsesdialoger + discovery: Oppdaging + sensitive_content: Sensitivt innhold + toot_layout: Tutoppsett + application_mailer: + notification_preferences: Endr e-post-innstillingane + salutation: "%{name}," + settings: 'Endr e-post-innstillingar: %{link}' + view: 'Sjå:' + view_profile: Sjå profil + view_status: Sjå status + applications: + created: Søknad laga + destroyed: Søknad sletta + invalid_url: Denne lenkja er ugyldig + regenerate_token: Lag tilgangsnykel på nytt + token_regenerated: Tilgangsnykel laga på nytt + warning: Ver varsam med dette datumet. Aldri del det med nokon! + your_token: Tilgangsnykelen din + auth: + apply_for_account: Bed om innbyding + change_password: Passord + checkbox_agreement_html: Eg godtek tenarreglane og tenestevilkåra + checkbox_agreement_without_rules_html: Eg godtek tenestevilkåra + delete_account: Slett konto + delete_account_html: Om du vil sletta kontoen din, kan du gå hit. Du vert spurd etter stadfesting. + description: + prefix_invited_by_user: "@%{name} spør deg om å verta med i ein Mastodon-tenar!" + prefix_sign_up: Meld deg på Mastodon i dag! + suffix: Med ein konto kan du fylgja folk, skriva innlegg og veksla meldingar med brukarar frå kva som helst annan Mastodon-tenar og meir! + didnt_get_confirmation: Fekk du ikkje stadfestingsinstruksjonar? + forgot_password: Har du gløymt passordet ditt? + invalid_reset_password_token: Tilgangsnykelen er ugyldig eller utgått. Ver venleg å beda om ein ny ein. + login: Innlogging + logout: Logg ut + migrate_account: Flytt til ein annan konto + migrate_account_html: Hvis du ønsker å henvise denne kontoen til en annen, kan du konfigurere det her. + or_log_in_with: Eller logg inn med + providers: + cas: CAS + saml: SAML + register: Registrer deg + registration_closed: "%{instance} tek ikkje imot nye medlemmar" + resend_confirmation: Send stadfestingsinstruksjonar på nytt + reset_password: Attstill passord + security: Tryggleik + set_new_password: Lag nytt passord + setup: + email_below_hint_html: Om e-posten nedfor ikkje er rett, kan du endra han her og få ein ny stadfestings-e-post. + email_settings_hint_html: Stadfestings-e-posten vart send til %{email}. Om den e-postadressa ikkje er rett, kan du byta adresse i kontoinnstillingane. + title: Oppsett + status: + account_status: Kontostatus + confirming: Ventar på stadfesting av e-post. + functional: Kontoen din er oppe og går. + pending: Søknaden din ventar på gjennomgang frå personalet vårt. Dette kan taka litt tid. Du får ein e-post om søknaden din vert godkjend. + trouble_logging_in: Får du ikkje logga inn? + authorize_follow: + already_following: Du fylgjer allereie denne kontoen + error: Uheldigvis skjedde det en feil da vi prøvde å få tak i en bruker fra en annen instans + follow: Fylg + follow_request: 'Du har sendt ein fylgjeførespurnad til:' + following: 'Suksess! No fylgjer du:' + post_follow: + close: Eller så kan du berre lukka att dette vindauget. + return: Vis brukarprofilen + web: Gå til nettet + title: Fylg %{acct} + challenge: + confirm: Hald fram + hint_html: "Tips: Vi skal ikkje spørja deg om passordet ditt igjen i laupet av den neste timen." + invalid_password: Ugyldig passord + prompt: Stadfest passord for å halda fram + datetime: + distance_in_words: + about_x_hours: "%{count}t" + about_x_months: "%{count}md." + about_x_years: "%{count} år" + almost_x_years: "%{count} år" + half_a_minute: No nettopp + less_than_x_minutes: "%{count}min" + less_than_x_seconds: No nettopp + over_x_years: "%{count} år" + x_days: "%{count}d" + x_minutes: "%{count}min" + x_months: "%{count}md" + x_seconds: "%{count}s" + deletes: + challenge_not_passed: Det du skreiv var ikkje rett + confirm_password: Skriv det noverande passordet ditt for å stadfesta identiteten din + confirm_username: Skriv inn brukarnamnet ditt for å stadfesta + proceed: Slett konto + success_msg: Kontoen din er sletta + warning: + before: 'Ver venleg og les desse punkta nøye før du held fram:' + caches: Innhold som har blitt mellomlagret av andre tjenere kan kanskje fortsette å eksistere + data_removal: Innlegga dine og andre data vert fjerna for alltid + email_change_html: Du kan byta e-postadressa di utan å sletta kontoen din + email_contact_html: Dersom det fortsatt ikke kommer, kan du sende en E-post til %{email} og be om hjelp + email_reconfirmation_html: Dersom du ikke mottar bekreftelses-E-posten, kan du be om den igjen + irreversible: Du kjem ikkje til å kunna gjenoppretta eller aktivera kontoen din på nytt + more_details_html: For fleire detaljar, sjå personvernsvilkåra. + username_available: Brukarnamnet ditt vert tilgjengeleg igjen + username_unavailable: Brukarnamnet ditt kjem til å halda seg utilgjengeleg + directories: + directory: Profilkatalog + explanation: Leit fram brukarar etter interessa deira + explore_mastodon: Utforsk %{title} + domain_validator: + invalid_domain: er ikkje eit gangbart domenenamn errors: - '400': The request you submitted was invalid or malformed. - '403': You don't have permission to view this page. - '404': The page you are looking for isn't here. - '406': This page is not available in the requested format. - '410': The page you were looking for doesn't exist here anymore. - '422': - '429': Throttled - '500': + '400': Søknaden du sende var ugyldig eller sett opp feil. + '403': Du har ikkje løyve til å sjå denne sida. + '404': Sida du leitar etter finst ikkje. + '406': Denne sida er ikkje tilgjengeleg i dette oppsettet. + '410': Sida du leitar etter finst ikkje her lenger. + '422': + content: Sikkerhetsverifisering feilet. Blokkerer du informasjonskapsler? + title: Sikkerhetsverifisering feilet + '429': Overfyllt + '500': + content: Orsak. Vi har gjort noko feil. + title: Denne sida er ikkje rett '503': The page could not be served due to a temporary server failure. + noscript_html: For å bruke Mastodon webapplikasjon må du aktivere JavaScript. Alternativt kan du forsøke en av de mange integrerte appene for Mastodon til din plattform. + existing_username_validator: + not_found: fann ingen lokalbrukar med det namnet + not_found_multiple: fann ikkje %{usernames} + exports: + archive_takeout: + date: Dato + download: Last ned arkivet ditt + hint_html: Du kan be om et arkiv med dine tuter og opplastede media. Den eksporterte dataen vil være i ActivityPub-formatet, som kan leses av programmer som støtter det. Du kan be om et arkiv opptil hver 7. dag. + in_progress: Samlar arkivet ditt... + request: Bed om arkivet ditt + size: Storleik + blocks: Du blokkerer + csv: CSV + domain_blocks: Domeneblokkeringer + lists: Lister + mutes: Du dempar + storage: Medielagring + featured_tags: + add_new: Legg til ny + errors: + limit: Du har allereie så mange emneknaggar som det går an å ha + hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." + filters: + contexts: + home: Heimeside + notifications: Varsel + public: Offentlege tidsliner + thread: Samtalar + edit: + title: Endr filter + index: + delete: Slett + title: Filter + new: + title: Legg til nytt filter + footer: + developers: Utviklarar + more: Meir… + resources: Ressursar + trending_now: Populært no + generic: + all: Alle + changes_saved_msg: Alle endringane vart lagra! + copy: Kopier + order_by: Sorter etter + save_changes: Lagr endringar + validation_errors: + one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til + other: Noe er ikke helt riktig ennå. Det er ennå %{count} feil å rette på + identity_proofs: + active: Aktiv + authorize: Ja, stadfest + errors: + keybase: + verification_failed: Keybase kjenner ikke igjen denne sjetongen som en signatur for Keybase-brukeren %{kb_username}. Vennligst prøv igjen gjennom Keybase. + wrong_user: Kan ikke lage et bevis for %{proving} mens du er logget på som %{current}. Logg på som %{proving} og prøv igjen. + explanation_html: Her kan du kryptografisk koble til dine andre enheter, f.eks. en Keybase-profil. Dette lar andre folk sende deg krypterte meldinger og stole på innhold som du sender dem. + i_am_html: Eg er %{username} på %{service}. + identity: Identitet + inactive: Uaktiv + publicize_checkbox: 'Og tut dette:' + publicize_toot: 'Det er prova! Eg er %{username} på %{service}: %{url}' + status: Stadfestingsstatus + view_proof: Sjå prov + imports: + modes: + merge: Set saman + overwrite: Skriv over + preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer. + success: Dataa dine vart lasta opp og vert no handsama så fort som mogeleg + types: + blocking: Blokkeringsliste + domain_blocking: Liste over blokkerte domene + following: Fylgjeliste + muting: Dempeliste + upload: Last opp + in_memoriam_html: Til minne. invites: + delete: Slå av + expired: Utgått expires_in: - '1800': 30 minutes - '21600': 6 hours - '3600': 1 hour - '43200': 12 hours - '604800': 1 week - '86400': 1 day + '1800': 30 minutt + '21600': 6 timar + '3600': 1 time + '43200': 12 timar + '604800': 1 veke + '86400': 1 dag + expires_in_prompt: Aldri + generate: Lag innbydingslenkje + invited_by: 'Du vart invitert av:' + max_uses: + one: 1 bruk + other: "%{count} bruk" + max_uses_prompt: Inga grense + prompt: Generer og del lenker med andre for å gi tilgang til denne instansen + table: + expires_at: Vert ugyldig + uses: Bruk + title: By folk inn + lists: + errors: + limit: Du har nådd grensa for kor mange lister du kan ha + media_attachments: + validations: + images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete + too_many: Kan ikkje leggja til meir enn 4 filer + migrations: + acct: Flytta til + cancel: Avbryt omdirigeringen + cancel_explanation: Å avbryte omdirigeringen vil reaktivere din nåværende konto, men vil ikke bringe tilbake følgere som har blitt flyttet til den kontoen. + errors: + already_moved: er den same kontoen som du allereie har flytta til + move_to_self: kan ikkje vera denne kontoen + not_found: fann ikkje + followers_count: Fylgjarar då kontoen vart flytta + incoming_migrations: Flyttar frå ein annan konto + incoming_migrations_html: For å flytta frå ein annnan konto til denne må du fyrst laga eit kallenamn til kontoen. + past_migrations: Tidlegare vandringar + proceed_with_move: Flytt fylgjarar + set_redirect: Bestem omdirigering + warning: + before: 'Før du fortsetter, vennligst les disse notisene nøye:' + disabled_account: Din nåværende konto vil ikke være fullt brukbar etterpå. Men du vil ha tilgang til dataeksportering såvel som reaktivering. + moderation: + title: Moderasjon + notification_mailer: + digest: + action: Sjå alle varsel + body: Her er ei kort samanfatting av meldingane du gjekk glepp av sidan siste gong du var innom %{since} + mention: "%{name} nemnde deg i:" + new_followers_summary: + one: Du har forresten fått deg ein ny fylgjar mens du var borte! Hurra! + other: Du har forresten fått deg %{count} nye fylgjarar mens du var borte! Hurra! + subject: + one: "1 nytt varsel sidan siste gong du var innom \U0001F418" + other: "%{count} nye varsel sidan siste gong du var innom \U0001F418" + title: Mens du var borte... + favourite: + body: 'Statusen din vart merkt som favoritt av %{name}:' + subject: "%{name} merkte statusen din som favoritt" + title: Nye favorittar + follow: + body: "%{name} fylgjer deg!" + subject: "%{name} fylgjer deg" + title: Ny fylgjar + follow_request: + action: Gå gjennom førespurnader + body: "%{name} har bedt om å fylgja deg" + subject: 'Ventande fylgjar: %{name}' + title: Ny fylgjeførespurnad + mention: + action: Svar + body: 'Du vart nemnd av %{name} i:' + subject: Du vart nemnd av %{name} + title: Ny nemning + reblog: + body: 'Statusen din vart framheva av %{name}:' + subject: "%{name} framheva statusen din" + title: Ny framheving + notifications: + email_events: E-postvarslinger for hendelser + email_events_hint: 'Velg hendelser som du vil motta varslinger for:' + other_settings: Andre varslingsinnstillinger + number: + human: + decimal_units: + format: "%n%u" + units: + billion: Mrd + million: Mil + quadrillion: Bil + thousand: K + trillion: Bil + pagination: + newer: Nyare + next: Neste + older: Eldre + prev: Førre + truncate: "…" + polls: + errors: + already_voted: Du har allereie røysta i denne rundspørjinga + duplicate_options: inneheld like element + duration_too_long: er for langt fram i tid + duration_too_short: er for snart + expired: Denne rundspørjinga er allereie ferdig + over_character_limit: kan ikkje vera lengre enn %{max} teikn kvar + too_few_options: må ha meir enn eitt element + too_many_options: kan ikkje ha meir enn %{max} element + preferences: + other: Anna + posting_defaults: Innleggsstandarder + public_timelines: Offentlege tidsliner + relationships: + activity: Kontoaktivitet + dormant: I dvale + followers: Følgere + following: Følginger + last_active: Sist aktiv + most_recent: Sist + moved: Flytta + mutual: Felles + primary: Primært + relationship: Forhold + remove_selected_domains: Fjern alle fylgjarar frå dei valde domena + remove_selected_followers: Fjern valde fylgjarar + remove_selected_follows: Slutt å fylgja desse brukarane + status: Kontostatus + remote_follow: + acct: Tast inn brukernavn@domene som du vil følge fra + missing_resource: Kunne ikke finne URLen for din konto + no_account_html: Har du ikkje konto? Du kan melda deg inn her + proceed: Hald fram med å fylgja + prompt: 'Du kjem til å fylgja:' + reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." + remote_interaction: + favourite: + proceed: Merk som favoritt + prompt: 'Du vil merkja dette tutet som favoritt:' + reblog: + proceed: Framhev + prompt: 'Du vil framheva dette tutet:' + reply: + proceed: Svar + prompt: 'Du vil svara på dette tutet:' + sessions: + activity: Siste aktivitet + browser: Nettlesar + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox + generic: Ukjend lesar + ie: Internet Explorer + micro_messenger: Micromessenger + nokia: Nokia S40 Ovi-lesar + opera: Opera + otter: Otter + phantom_js: PhantomJS + qq: QQ-lesar + safari: Safari + uc_browser: UC-lesar + weibo: Weibo + current_session: Noverande økt + description: "%{browser} på %{platform}" + explanation: Desse nettlesarane er logga inn på Mastodon-kontoen din. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: Chrome OS + firefox_os: Firefox OS + ios: IOS + linux: Linux + mac: Mac + other: ukjend plattform + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + revoke: Tilbakekall + revoke_success: Økt tilbakekalt + title: Økter + settings: + account: Konto + account_settings: Kontoinnstillingar + aliases: Kallenamn til kontoen + appearance: Utsjånad + authorized_apps: Godkjende appar + back: Tilbake til Mastodon + delete: Kontosletting + development: Utvikling + edit_profile: Endr profil + export: Dataeksport + featured_tags: Utvalgte emneknagger + identity_proofs: Identitetsprov + import: Hent inn + import_and_export: Importer og eksporter + migrate: Kontoflytting + notifications: Varsel + preferences: Innstillingar + profile: Profil + relationships: Fylgjar og fylgjarar + two_factor_authentication: Tostegsautorisering + statuses: + attached: + description: 'Vedlagt: %{attached}' + image: + one: "%{count} bilete" + other: "%{count} bilete" + video: + one: "%{count} video" + other: "%{count} videoar" + boosted_from_html: Framheva av %{acct_link} + content_warning: 'Innhaldsåtvaring: %{warning}' + disallowed_hashtags: + one: 'inneheldt ein emneknagg som ikkje var tillaten: %{tags}' + other: 'inneheldt emneknaggen som ikkje var tillaten: %{tags}' + language_detection: Kjenn att språk automatisk + open_in_web: Opn på nett + over_character_limit: øvregrensa for teikn, %{max}, er nådd + pin_errors: + limit: Du har allereie festa så mange tut som det går an å festa + ownership: Du kan ikkje festa andre sine tut + private: Du kan ikkje festa uoffentlege tut + reblog: Ei framheving kan ikkje festast + poll: + total_people: + one: "%{count} person" + other: "%{count} folk" + total_votes: + one: "%{count} røyst" + other: "%{count} røyster" + vote: Røyst + show_more: Vis meir + sign_in_to_participate: Logg inn for å verta med i samtalen + title: "%{name}: «%{quote}»" + visibilities: + private: Berre fylgjarar + private_long: Vis berre til fylgjarar + public: Offentleg + public_long: Alle kan sjå + unlisted: Ikkje oppført + unlisted_long: Alle kan sjå, men ikkje oppført på offentlege tidsliner + stream_entries: + pinned: Festa tut + reblogged: framheva + sensitive_content: Følsomt innhold + tags: + does_not_match_previous_name: stemmar ikkje med det førre namnet + terms: + body_html: | +

Privatlivsretningslinjer

+

Hva slags informasjon samler vi inn?

+ +
    +
  • Grunnleggende kontoinformasjon: Dersom du registrerer deg på denne tjeneren, vil du kanskje bli spurt om å skrive inn et brukernavn, en E-postadresse, og et passord. Du kan også skrive inn ytterligere profilinformasjon som f.eks. et visningsnavn og selvbiografi, og laste opp et profilbilde og toppfeltbilde. Brukernavnet, visningsnavnet, selvbiografien, profilbildet, og toppfeltbildet blir alltid vist offentlig.
  • +
  • Innlegg, følging, og annen offentlig informasjon: Listen over folk du følger blir vist offentlig, det samme gjelder for følgerne dine. Når du sender inn en melding, blir datoen og tidspunktet lagret såvel som programmet du sendte inn meldingen ifra. Meldinger kan inneholde mediavedlegg, som f.eks. bilder og videoer. Offentlige og uoppførte innlegg er offentlig tilgjengelige. Når du viser frem et innlegg på profilen din, er det også offentlig tilgjengelig informasjon. Dinne innlegg blir levert til dine følgere, og i noen tilfeller betyr det at blir levert til forskjellige tjenere og at kopier blir lagret der. Når du sletter innlegg, blir også det levert til dine følgere. Det å fremheve eller like et annet innlegg er alltid offentlig.
  • +
  • Direkteinnlegg og innlegg som kun er for følgere: Alle innlegg er lagret og behandlet på tjeneren. Innlegg som kun er for følgere, blir levert til dine følgere, og direkteinnlegg leveres kun til brukere som er nevnt i dem. I noen tilfeller betyr det at de blir levert til forskjellige tjenere og at kopier blir lagret der. Vi gjør et forsøk i god sportsånd for å begrense tilgangen til disse innleggene til kun autoriserte personer, men andre tjenere kan mislykkes med sådan. Derfor er det viktig å gå i gjennom tjenerne som følgerne dine hører til i. I innstillingene kan du veksle på en innstilling for å godkjenne og avslå nye følgere manuelt. Vennligst ha i tankene at operatørene til tjeneren og enhver mottakende tjener kan se slike meldinger, og at mottakere kan ta skjermklipp av, kopiere, eller på annet vis dele dem videre. Ikke del noe farlig informasjon over Mastodon.
  • +
  • IP-er og andre metadata: Når du logger på, lagrer vi IP-adressen som du logget deg på fra, såvel som navnet til nettleserprogrammet ditt. Du kan gå gjennom og tilbakekalle alle påloggede økter i innstillingene. Den seneste IP-adressen du brukte, blir lagret i opptil 12 måneder. Vi vil kanskje også holde på tjenerloggføringer som inkluderer IP-adressen til alle forespørsler til tjeneren vår.
  • +
+ +
+ +

Hva bruker vi informasjonen din til?

+ +

Hva som helst av informasjonen som vi samler inn fra deg, kan bli brukt på de følgende måtene:

+ +
    +
  • Til å levere grunnfunksjonaliteten til Mastodon. Du kan bare samhandle med andre folks innhold og legge ut ditt eget innhold når du er logget på. For eksempel kan du følge andre folk for å se deres kombinerte innlegg i din egen personliggjorte hjemmetidslinje.
  • +
  • Til å bistå i moderasjonen av samfunnet, for eksempel å sammenligne IP-adressen din med andre andre kjente adresser for å avgjøre saker om bannlysningsunngåelse eller andre regelbrudd.
  • +
  • E-postadressen du oppgir kan bli brukt til å sende deg informasjon, varsler om at andre folk samhandler med innholdet ditt eller sender deg meldinger, og å svare på brukerstøttespørsmål, og/eller andre forespørsler eller spørsmål.
  • +
+ +
+ +

Hvordan beskytter vi informasjonen din?

+ +

Vi implementer en rekke sikkerhetstiltak for å holde på sikkerheten til din personlige informasjon når du skriver inn, sender inn, eller besøker din personlige informasjon. Blant annet er din nettleserøkt, såvel som trafikken mellom dine apper og API-er, sikret med SSL, og passordet ditt er saltet med en kraftig énveisalgoritme. Du kan skru på 2-trinnsinnlogging for å sikre tilgangen til kontoen din ytterligere.

+ +
+ +

Hva er våre databeholdingsretningslinjer?

+ +

Vi vil gjøre en innsats i god sportsånd for å

+ +
    +
  • Beholde tjenerloggføringer som inneholder IP-adressen til alle forespørsler til denne tjeneren, dersom det blir loggført i det hele tatt, i ikke mer enn 90 dager.
  • +
  • Beholde IP-adressene som er forbundet med registrerte brukere i ikke mer enn 12 måneder.
  • +
+ +

Du kan be om og laste ned et arkiv av innholdet ditt, inkludert dine innlegg, media, mediavedlegg, profilbilde, og toppfeltbilde.

+ +

Du kan ugjenkallelig slette kontoen til enhver tid.

+ +
+ +

Bruker vi infokapsler?

+ +

Ja. Infokapsler er små filer som et nettsted eller dens tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater dette). Disse infokapslene lar nettstedet kjenne igjen nettleseren din og, dersom du har en registrert konto, assosiere den med din registrerte konto.

+ +

Vi benytter infokapsler for å forstå og lagre dinne innstillinger til fremtidige besøk.

+ +
+ +

Forteller vi om noe informasjon til utenforstående parter?

+ +

Vi hverken selger, bytter, eller på andre måter overfører din personlig identifiserbare informasjon til utenforstående parter. Dette inkluderer ikke tredjeparter som vi stoler på og som hjelper oss med å drifte nettstedet vårt, drifte våre forretninger, eller å yte tjenester til deg, så lenge disse partene sier seg enige i å holde denne informasjonen hemmelig. Vi kan også frigi informasjonen vår dersom vi mener et frigiving er passende for å møte loven, handle i tråd med vår nettstedsretningslinjer, eller å beskytte vår eller andres rettigheter, eiendom, eller trygghet.

+ +

Ditt offentlige innhold kan bli lastet ned av andre tjenere i nettverket. Dine offentlige innlegg og innlegg som kun er for følgere blir levert til tjenerne der følgerne dine holder til, og direktemeldinger blir levert il mottakernes tjenere, i den grad de følgerne eller mottakerne holder på en annen tjener enn denne.

+ +

Når du gir et program autorisasjon til å bruke kontoen din, avhengig av omfanget av tillatelser som du tillater, kan den få tilgang til din offentlige profilinformasjon, din følgingsliste, dine følgere, dine lister, alle dine innlegg, og dine likinger. Programmer kan aldri få tilgang til E-postadressen eller passordet ditt.

+ +
+ +

Nettstedsbruk av barn

+ +

Dersom denne tjeneren er i EU eller EØS: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier GDPR (General Data Protection Regulation) at du ikke kan bruke dette nettstedet.

+ +

Dersom denne tjeneren er i USA: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier COPPA (Children's Online Privacy Protection Act) at du ikke kan bruke dette nettstedet.

+ +

Lovmessige krav kan være forskjellige dersom denne tjeneren befinner seg i en annen jurisdiksjon.

+ +
+ +

Endringer i våre privatlivsretningslinjer

+ +

Dersom vi bestemmer oss for å endre våre privatlivsretningslinjer, vil vi legge ut endringene på denne siden.

+ +

Dette dokumentet er lisensiert under CC BY-SA. Den engelske originalversjonen ble sist oppdatert den 7. mars 2018. Den norske oversettelsen ble sist oppdatert den 13. desember 2019.

+ +

Opprinnelig modifisert utifra Discourse sine privatlivsretningslinjer.

+ title: Tenestevilkår og personvernsvilkår for %{instance} + themes: + contrast: Mastodon (Høg kontrast) + default: Mastodon (Mørkt) + mastodon-light: Mastodon (Lyst) + time: + formats: + default: "%d.%b %Y, %H:%M" + month: "%b %Y" + two_factor_authentication: + code_hint: Skriv inn koden frå autentiseringsappen for å stadfesta + description_html: Hvis du skrur på tofaktorautentisering må du ha din telefon for å logge inn. Denne vil generere koder som du må taste inn. + disable: Slå av + enable: Slå på + enabled: Tostegsinnlogging er slege på + enabled_success: Aktivering av tofaktorautentisering vellykket + generate_recovery_codes: Generér gjenopprettingskoder + instructions_html: "Scan denne QR-koden med Google Authenticator eller en lignende app på telefonen din. Fra nå av vil denne applikasjonen generere koder for deg som skal brukes under innlogging." + lost_recovery_codes: Gjenopprettingskoder lar deg gjenoppnå tilgang til din konto hvis du mister din telefon. Hvis du har mistet gjenopprettingskodene, kan du regenerere dem her. Dine gamle gjenopprettingskoder vil bli ugyldige. + manual_instructions: 'Hvis du ikke får scannet QR-koden må du skrive inn følgende kode manuelt:' + recovery_codes: Reservekoder + recovery_codes_regenerated: Generering av reservekoder fullført + recovery_instructions_html: Hvis du skulle miste tilgang til telefonen din, kan du bruke en av gjenopprettingskodene nedenfor til å gjenopprette tilgang til din konto. Oppbevar gjenopprettingskodene sikkert, for eksempel ved å skrive dem ut og gjemme dem på et lurt sted bare du vet om. + setup: Sett opp + wrong_code: Den angitte koden var ugyldig! Stemmer instansens tid overalt med enhetens tid? + user_mailer: + backup_ready: + subject: Arkivet ditt er klart til å lastes ned + warning: + explanation: + disable: Mens kontoen din er fryst, forblir dine kontodata intakt, men du kan ikke utføre noen handlinger før den har blitt tint opp. + silence: Mens kontoen din er begrenset, vil bare folk som allerede følger deg se dine tuter på denne tjeneren, og du kan bli ekskludert fra diverse offentlige oppføringer. Men andre kan fortsatt følge deg manuelt. + suspend: Kontoen din har blitt suspendert, og alle dine tuter og opplastede media har blitt ugjenkallelig fjernet fra denne tjeneren, og fra tjenere der du hadde følgere. + get_in_touch: Du kan svare på denne E-posten for å komme i kontakt med styret i %{instance}. + statuses: 'Spesifikt for å:' + subject: + disable: Kontoen din, %{acct}, har blitt fryst + none: Åtvaring for %{acct} + silence: Kontoen din, %{acct}, er vorten avgrensa + suspend: Kontoen din, %{acct}, er vorten utvist + title: + disable: Konto frosen + none: Åtvaring + silence: Konto avgrensa + suspend: Konto utvist + welcome: + edit_profile_action: Lag til profil + edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. + explanation: Her er nokre tips for å koma i gang + final_action: Kom i gang med å leggja ut + final_step: 'Byrj å skriva innlegg! Sjølv utan fylgjarar kan andre sjå dei offentlege meldingane dine, til dømes på den lokale tidslina og i emneknaggar. Du har kanskje lyst til å introdusera deg med emneknaggen #introductions.' + full_handle: Det fulle brukarnamnet ditt + full_handle_hint: Dette er det du fortel venene dine for at dei skal kunna senda deg meldingar eller fylgja deg frå ein annan tenar. + review_preferences_action: Endr innstillingar + review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. + subject: Velkomen til Mastodon + tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. + tip_following: Du fylgjer automatisk tenaradministrator(ane). For å finna fleire forvitnelege folk kan du sjekka den lokale og fødererte tidslina. + tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! + tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! + tips: Tips + title: Velkomen om bord, %{name}! + users: + follow_limit_reached: Du kan ikkje fylgja fleire enn %{limit} folk + invalid_email: E-mailadressa er ugyldig + invalid_otp_token: Ugyldig tostegskode + signed_in_as: 'Logga inn som:' + verification: + explanation_html: 'Du kan bekrefte at du selv er eieren av lenkene i din profilmetadata. For å gjøre det, må det tillenkede nettstedet inneholde en lenke som fører tilbake til Mastodon-profilen din. Lenken tilbake ha en rel="me"-attributt. Tekstinnholdet til lenken er irrelevant. Her er et eksempel:' + verification: Stadfesting diff --git a/config/locales/no.yml b/config/locales/no.yml index 2c8786066..51d0eb1bd 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -4,39 +4,102 @@ about_hashtag_html: Dette er offentlige toots merket med #%{hashtag}. Du kan interagere med dem om du har en konto et sted i fediverset. about_mastodon_html: Mastodon er et sosialt nettverk laget med fri programvare. Et desentralisert alternativ til kommersielle plattformer. Slik kan det unngå risikoene ved å ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler på — uansett hvilken du velger så kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket. about_this: Om denne instansen + active_count_after: aktive + active_footnote: Månedlige aktive brukere (MAU) + administered_by: 'Administrert av:' + api: API + apps: Mobilapper + apps_platforms: Bruk Mastodon gjennom iOS, Android og andre plattformer + browse_directory: Bla gjennom en profilmappe og filtrer etter interesser + browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren + browse_public_posts: Bla i en sanntidsstrøm av offentlige innlegg på Mastodon contact: Kontakt contact_missing: Ikke innstilt contact_unavailable: Ikke tilgjengelig + discover_users: Oppdag brukere + documentation: Dokumentasjon + federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til. + get_apps: Prøv en mobilapp hosted_on: Mastodon driftet på %{domain} learn_more: Lær mer + privacy_policy: Privatlivsretningslinjer + see_whats_happening: Se hva som skjer + server_stats: 'Tjenerstatistikker:' source_code: Kildekode + status_count_after: + one: status + other: statuser status_count_before: Som skrev + tagline: Følg venner og oppdag nye + terms: Bruksvilkår + unavailable_content: Utilgjengelig innhold + unavailable_content_description: + domain: Tjener + reason: Årsak + rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' + silenced: 'Innlegg fra disse tjenerne vil bli skjult fra offentlige tidslinjer og samtaler, og ingen varslinger vil bli generert fra disse brukernes samhandlinger, med mindre du følger dem:' + suspended: 'Ingen data fra disse tjenerne vil bli behandlet, lagret, eller utvekslet, noe som vil gjøre enhver samhandling eller kommunikasjon med brukere fra disse tjenerne umulig:' + unavailable_content_html: Mastodon lar deg vanligvis se innhold fra og samhandle med brukere fra enhver annen tjener i strømiverset. Dette er unntakene som har blitt gjort på denne spesifikke tjeneren. + user_count_after: + one: bruker + other: brukere user_count_before: Her bor what_is_mastodon: Hva er Mastodon? accounts: + choices_html: "%{name} sine anbefalte:" follow: Følg + followers: + one: Følger + other: Følgere following: Følger + joined: Ble med den %{date} + last_active: senest aktiv + media: Media moved_html: "%{name} har flyttet til %{new_profile_link}:" + network_hidden: Denne informasjonen er ikke tilgjengelig + never_active: Aldri nothing_here: Det er ingenting her! people_followed_by: Folk som %{name} følger people_who_follow: Folk som følger %{name} + posts: + one: Tut + other: Tuter + posts_tab_heading: Tuter posts_with_replies: Tuter med svar reserved_username: Brukernavnet er reservert roles: + admin: Administrator + bot: Bot + group: Gruppe moderator: Moderere - unfollow: Slutte følge + unavailable: Profilen er utilgjengelig + unfollow: Slutt å følge admin: + account_actions: + action: Utfør handling + title: Utfør moderatorhandling på %{acct} account_moderation_notes: create: Lag created_msg: Moderasjonsnotat laget uten problem! delete: Slett destroyed_msg: Moderasjonsnotat slettet uten problem! accounts: + approve: Godkjenn + approve_all: Godkjenn alle are_you_sure: Er du sikker? + avatar: Profilbilde by_domain: Domene + change_email: + changed_msg: Konto-E-postadressen ble vellykket endret! + current_email: Nåværende E-post + label: Endre e-post + new_email: Ny E-post + submit: Endre e-post + title: Endre E-postadressen til %{username} confirm: Bekreft confirmed: Bekreftet confirming: Bekrefte + deleted: Slettet demote: Degrader disable: Deaktiver disable_two_factor_authentication: Skru av 2FA @@ -50,8 +113,11 @@ enabled: Aktivert followers: Følgere follows: Følginger + header: Overskrift inbox_url: Innboks URL + invited_by: Invitert av ip: IP-adresse + joined: Ble med den location: all: Alle local: Lokalt @@ -61,20 +127,28 @@ media_attachments: Mediavedlegg memorialize: Gjør om til et minne moderation: + active: Aktive all: Alle + pending: Avventer silenced: Målbundet suspended: Utvist title: Moderasjon moderation_notes: Moderasjonsnotater most_recent_activity: Nyligste aktivitet most_recent_ip: Nyligste IP + no_limits_imposed: Ingen grenser er tatt i bruk not_subscribed: Ikke abonnért + pending: Avventer gjennomgang perform_full_suspension: Utfør full utvisning promote: Oppgradere protocol: Protokoll public: Offentlig push_subscription_expires: PuSH-abonnent utløper redownload: Oppdater avatar + reject: Avslå + reject_all: Avslå alle + remove_avatar: Fjern profilbilde + remove_header: Fjern overskrift resend_confirmation: already_confirmed: Denne brukeren er allerede bekreftet send: Send bekreftelses-epost på nytt @@ -84,28 +158,41 @@ resubscribe: Abonner på nytt role: Rettigheter roles: + admin: Administrator + moderator: Moderator staff: Personale user: Bruker search: Søk + search_same_ip: Andre brukere med den samme IP-en shared_inbox_url: Delt Innboks URL show: created_reports: Rapporter laget av denne kontoen targeted_reports: Rapporter laget om denne kontoen silence: Målbind + silenced: Stilnet statuses: Statuser subscribe: Abonnere + suspended: Suspendert title: Kontoer + unconfirmed_email: Ubekreftet E-postadresse undo_silenced: Angre målbinding undo_suspension: Angre utvisning - unsubscribe: Avslutte abonnementet + unsubscribe: Avslutt abonnementet username: Brukernavn + warn: Advar + web: Nett + whitelisted: Hvitelistet action_logs: actions: confirm_user: "%{name} bekreftet e-postadresse for bruker %{target}" + create_account_warning: "%{name} sendte en advarsel til %{target}" create_custom_emoji: "%{name} lastet opp ny emoji %{target}" + create_domain_allow: "%{name} hvitelistet domenet %{target}" create_domain_block: "%{name} blokkerte domenet %{target}" create_email_domain_block: "%{name} svartelistet e-postdomenet %{target}" demote_user: "%{name} degraderte bruker %{target}" + destroy_custom_emoji: "%{name} ødela emojien %{target}" + destroy_domain_allow: "%{name} fjernet domenet %{target} fra hvitelisten" destroy_domain_block: "%{name} fjernet blokkeringen av domenet %{target}" destroy_email_domain_block: "%{name} hvitelistet e-postdomenet %{target}" destroy_status: "%{name} fjernet status av %{target}" @@ -116,6 +203,8 @@ enable_user: "%{name} aktiverte innlogging for bruker %{target}" memorialize_account: "%{name} endret %{target}s konto til en minneside" promote_user: "%{name} oppgraderte bruker %{target}" + remove_avatar_user: "%{name} fjernet %{target} sitt profilbilde" + reopen_report: "%{name} gjenåpnet rapporten %{target}" reset_password_user: "%{name} nullstilte passordet til bruker %{target}" resolve_report: "%{name} avviste rapporten %{target}" silence_account: "%{name} forstummet %{target}s konto" @@ -124,20 +213,27 @@ unsuspend_account: "%{name} opphevde suspenderingen av %{target}s konto" update_custom_emoji: "%{name} oppdaterte emoji %{target}" update_status: "%{name} oppdaterte status for %{target}" + deleted_status: "(statusen er slettet)" title: Revisionslogg custom_emojis: + assign_category: Tilegn kategori by_domain: Domene copied_msg: Laget en lokal kopi av emoji uten problem copy: Kopiere copy_failed_msg: Kunne ikke lage en lokal kopi av den emojien + create_new_category: Opprett ny kategori created_msg: Emoji laget uten problem! delete: Slett destroyed_msg: Emojo slettet uten problem! disable: Deaktivere + disabled: Skrudd av disabled_msg: Deaktiverte emoji uten problem + emoji: Emoji enable: Aktivere + enabled: Skrudd på enabled_msg: Aktiverte emojien uten problem image_hint: PNG opp til 50KB + list: Før opp listed: Oppførte new: title: Legg til ny egen emoji @@ -145,15 +241,43 @@ shortcode: Kortkode shortcode_hint: Minst 2 tegn, kun alfanumeriske tegn og understrek title: Egenoppførte emojier + uncategorized: Ukategorisert + unlist: Fjern oppføring unlisted: Unoterte update_failed_msg: Kunne ikke oppdatere emojien updated_msg: Emoji oppdatert uten problemer! upload: Last opp + dashboard: + authorized_fetch_mode: Sikkermodus + config: Oppsett + feature_deletions: Kontoslettinger + feature_invites: Invitasjonslenker + feature_profile_directory: Profilmappe + feature_registrations: Registreringer + feature_spam_check: Anti-spam + feature_timeline_preview: Tidslinje-forhåndsvisning + features: Egenskaper + open_reports: åpne rapporter + recent_users: Nylige brukere + search: Fulltekstsøk + software: Programvare + space: Plassbruk + title: Kontrollpanel + total_users: brukere totalt + trends: Trender + week_interactions: samhandlinger denne uken + week_users_active: aktiv denne uken + week_users_new: brukere denne uken + whitelist_mode: Hvitelistemodus + domain_allows: + add_new: Hvitelist domene + undo: Fjern fra hvitelisten domain_blocks: add_new: Lag ny created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene + existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. new: create: Lag blokkering hint: Domeneblokkeringen vil ikke hindre opprettelse av kontooppføringer i databasen, men vil retroaktivt og automatisk benytte spesifikke moderasjonsmetoder på de kontoene. @@ -163,8 +287,16 @@ silence: Målbind suspend: Utvis title: Ny domeneblokkering + private_comment: Privat kommentar + public_comment: Offentlig kommentar reject_media: Avvis mediefiler reject_media_hint: Fjerner lokalt lagrede mediefiler og nekter å laste dem ned i fremtiden. Irrelevant for utvisninger + reject_reports: Avslå rapporter + rejecting_media: avviser mediafiler + rejecting_reports: avslår rapporter + severity: + silence: stilnet + suspend: suspendert show: affected_accounts: one: En konto i databasen påvirket @@ -185,26 +317,79 @@ create: Legg til domene title: Ny blokkeringsoppføring av e-postdomene title: Blokkering av e-postdomene + followers: + back_to_account: Tilbake til kontoen + title: "%{acct} sine følgere" instances: + by_domain: Domene + delivery_available: Levering er tilgjengelig + known_accounts: + one: "%{count} kjent konto" + other: "%{count} kjente kontoer" + moderation: + all: Alt + limited: Begrenset + title: Moderasjon + private_comment: Privat kommentar + public_comment: Offentlig kommentar title: Kjente instanser + total_blocked_by_us: Blokkert av oss + total_followed_by_them: Fulgt av dem + total_followed_by_us: Fulgt av oss + total_reported: Rapporter om dem + total_storage: Mediavedlegg invites: + deactivate_all: Deaktiver alle filter: all: Alle available: Tilgjengelig expired: Utløpt + title: Filtrer title: Invitasjoner + relays: + add_new: Legg til ny overgang + delete: Slett + disable: Skru av + disabled: Skrudd av + enable: Skru på + enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den. + enabled: Skrudd på + inbox_url: Overførings-URL + save_and_enable: Lagre og skru på + setup: Sett opp en overgangsforbindelse + signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på + status: Status + title: Overganger reports: + account: + notes: + one: "%{count} notis" + other: "%{count} notiser" + reports: + one: "%{count} rapport" + other: "%{count} rapporter" action_taken_by: Handling utført av are_you_sure: Er du sikker? + assign_to_self: Tilegn til meg + assigned: Tilegnet moderator comment: none: Ingen + created_at: Rapportert mark_as_resolved: Merk som løst - report: 'Rapportér #%{id}' + mark_as_unresolved: Merk som uoppklart + notes: + create: Legg til notat + delete: Slett + reopen: Gjenåpne rapporten + report: 'Rapporter #%{id}' reported_account: Rapportert konto reported_by: Rapportert av resolved: Løst + status: Status title: Rapporter + unassign: Fjern tilegning unresolved: Uløst + updated_at: Oppdatert settings: activity_api_enabled: desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger @@ -215,9 +400,27 @@ contact_information: email: Skriv en offentlig e-postadresse username: Skriv brukernavn + custom_css: + title: Egendefinert CSS + domain_blocks: + all: Til alle + disabled: Til ingen + title: Vis domeneblokkeringer + domain_blocks_rationale: + title: Vis grunnlaget + hero: + desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde + title: Heltebilde + mascot: + desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten + title: Maskotbilde peers_api_enabled: desc_html: Domenenavn denne instansen har truffet på i fediverset title: Publiser liste over oppdagede instanser + preview_sensitive_media: + desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt + profile_directory: + title: Skru på profilmappen registrations: closed_message: desc_html: Vises på forsiden når registreringer er lukket
Du kan bruke HTML-tagger @@ -237,10 +440,16 @@ site_description_extended: desc_html: Vises på side for utvidet informasjon.
Du kan bruke HTML-tagger title: Utvidet nettstedsinformasjon + site_short_description: + desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. + title: Kort tjenerbeskrivelse site_terms: desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger title: Skreddersydde bruksvilkår site_title: Nettstedstittel + spam_check_enabled: + desc_html: Mastodon kan auto-rapportere kontoer som sender gjentatte uforespurte meldinger. Det kan oppstå falske positive treff. + title: Anti-spam-automatisering thumbnail: desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales title: Miniatyrbilde for instans @@ -248,23 +457,62 @@ desc_html: Vis offentlig tidslinje på landingssiden title: Forhandsvis tidslinjen title: Nettstedsinnstillinger + trends: + title: Trendende emneknagger statuses: back_to_account: Tilbake til kontosiden batch: delete: Slett nsfw_off: NSFW AV nsfw_on: NSFW PÅ + deleted: Slettet failed_to_execute: Utføring mislyktes + media: + title: Media no_media: Ingen media title: Kontostatuser with_media: Med media + tags: + accounts_week: Unike brukstilfeller denne uken + context: Sammenheng + directory: I mappen + in_directory: "%{count} i mappen" + last_active: Senest aktiv + most_popular: Mest populært + most_recent: Nyligst + name: Emneknagg + review: Gjennomgangsstatus + reviewed: Gjennomgått + title: Emneknagger + trending_right_now: Trender akkurat nå + unique_uses_today: "%{count} legger ut om det i dag" + unreviewed: Ikke gjennomgått title: Administrasjon + warning_presets: + add_new: Legg til ny + delete: Slett + edit: Rediger admin_mailer: new_report: body: "%{reporter} har rapportert %{target}" subject: Ny rapport for %{instance} (#%{id}) + new_trending_tag: + body: 'Emneknaggen #%{name} trender i dag, men den har ikke blitt gjennomgått tidligere. Den vil ikke bli vist offentlig med mindre du tillater at den blir det, eller du kan bare lagre skjemaet slik det er for å aldri høre om det igjen.' + aliases: + add_new: Lag et alias + hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen. + remove: Fjern aliaslenking + appearance: + advanced_web_interface: Avansert nettgrensesnitt + advanced_web_interface_hint: 'Hvis du ønsker å bruke hele skjermbredden din, lar det avanserte nettgrensesnittet deg sette opp mange forskjellige kolonner for å se så mye informasjon på én gang som du vil: Hjem, varslinger, fellestidslinjen, og ethvert antall lister og emneknagger.' + animations_and_accessibility: Animasjoner og tilgjengelighet + confirmation_dialogs: Bekreftelsesdialoger + discovery: Oppdagelse + sensitive_content: Sensitivt innhold + toot_layout: Tut-utseende application_mailer: - notification_preferences: Endre e-post innstillingene + notification_preferences: Endre E-postinnstillingene + salutation: "%{name}," settings: 'Endre foretrukne e-postinnstillinger: %{link}' view: 'Se:' view_profile: Vis Profil @@ -278,20 +526,40 @@ warning: Vær veldig forsiktig med denne data. Aldri del den med noen! your_token: Din tilgangsnøkkel auth: + apply_for_account: Be om en invitasjon + change_password: Passord + checkbox_agreement_html: Jeg godtar tjenerens regler og bruksvilkår + checkbox_agreement_without_rules_html: Jeg godtar bruksvilkårene delete_account: Slett konto - delete_account_html: Hvis du ønsker å slette din konto kan du fortsette her. Du vil bli spurt om bekreftelse. + delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit. Du vil bli spurt om bekreftelse. + description: + prefix_sign_up: Meld deg opp på Mastodon i dag! + suffix: Med en konto, vil kunne følge folk, legge ut oppdateringer, og utveksle meldinger med brukere fra enhver Mastodon-tjener, og mer til! didnt_get_confirmation: Mottok du ikke instruksjoner om bekreftelse? forgot_password: Har du glemt passordet ditt? invalid_reset_password_token: Tilbakestillingsnøkkelen for passord er ugyldig eller utløpt. Vennligst be om en ny. - login: Innlogging + login: Logg på logout: Logg ut migrate_account: Flytt til en annen konto migrate_account_html: Hvis du ønsker å henvise denne kontoen til en annen, kan du konfigurere det her. + or_log_in_with: Eller logg på med + providers: + cas: CAS + saml: SAML register: Bli med resend_confirmation: Send bekreftelsesinstruksjoner på nytt reset_password: Nullstill passord security: Sikkerhet set_new_password: Sett nytt passord + setup: + email_below_hint_html: Dersom E-postadressen nedenfor er feil, kan du endre det her og motta en ny bekreftelses-E-post. + email_settings_hint_html: Bekreftelses-E-posten ble sendt til %{email}. Dersom den E-postadressen ikke var riktig, kan du endre den i kontoinnstillingene. + title: Innstillinger + status: + account_status: Kontostatus + functional: Kontoen din er fullt operativt. + pending: Søknaden din avventer gjennomgang av styret vårt. Dette kan ta litt tid. Du vil motta en E-post dersom søknaden din blir godkjent. + trouble_logging_in: Har du problemer med å logge på? authorize_follow: error: Uheldigvis skjedde det en feil da vi prøvde å få tak i en bruker fra en annen instans follow: Følg @@ -302,6 +570,10 @@ return: Gå tilbake til brukerens profil web: Gå til nettsiden title: Følg %{acct} + challenge: + confirm: Fortsett + invalid_password: Ugyldig passord + prompt: Bekreft passordet for å fortsette datetime: distance_in_words: about_x_hours: "%{count} timer" @@ -318,8 +590,26 @@ x_seconds: "%{count} sek" deletes: confirm_password: Skriv inn ditt passord for å verifisere din identitet + confirm_username: Skriv inn brukernavnet ditt for å bekrefte prosedyren proceed: Slett konto success_msg: Din konto ble slettet + warning: + before: 'Før du fortsetter, vennligst les disse notisene nøye:' + caches: Innhold som har blitt mellomlagret av andre tjenere kan kanskje fortsette å eksistere + data_removal: Dine innlegg og andre data vil bli permanent fjernet + email_change_html: Du kan endre E-postadressen din uten å måtte slette kontoen din + email_contact_html: Dersom det fortsatt ikke kommer, kan du sende en E-post til %{email} og be om hjelp + email_reconfirmation_html: Dersom du ikke mottar bekreftelses-E-posten, kan du be om den igjen + irreversible: Du vil ikke kunne gjenopprette eller reaktivere kontoen din + more_details_html: For mere detaljer, se privatlivsretningslinjene. + username_available: Brukernavnet ditt vil bli gjort tilgjengelig igjen + username_unavailable: Brukernavnet ditt vil forbli utilgjengelig + directories: + directory: Profilmappe + explanation: Oppdag brukere basert på deres interesser + explore_mastodon: Utforsk %{title} + domain_validator: + invalid_domain: er ikke et gyldig domenenavn errors: '400': The request you submitted was invalid or malformed. '403': Du har ikke tillatelse til å vise denne siden. @@ -335,22 +625,75 @@ title: Denne siden er ikke korrekt '503': The page could not be served due to a temporary server failure. noscript_html: For å bruke Mastodon webapplikasjon må du aktivere JavaScript. Alternativt kan du forsøke en av de mange integrerte appene for Mastodon til din plattform. + existing_username_validator: + not_found_multiple: klarte ikke å finne %{usernames} exports: + archive_takeout: + date: Dato + download: Last ned arkivet ditt + hint_html: Du kan be om et arkiv med dine tuter og opplastede media. Den eksporterte dataen vil være i ActivityPub-formatet, som kan leses av programmer som støtter det. Du kan be om et arkiv opptil hver 7. dag. + request: Be om ditt arkiv + size: Størrelse blocks: Du blokkerer - follows: Du følger + csv: CSV + domain_blocks: Domeneblokkeringer + lists: Lister mutes: Du demper storage: Medialagring + featured_tags: + add_new: Legg til ny + hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." + filters: + contexts: + home: Hjemmetidslinje + notifications: Varslinger + public: Offentlige tidslinjer + thread: Samtaler + edit: + title: Rediger filter + index: + delete: Slett + title: Filtre + new: + title: Legg til nytt filter + footer: + developers: Utviklere + more: Mer… + resources: Ressurser + trending_now: Trender nå generic: + all: Alle changes_saved_msg: Vellykket lagring av endringer! + copy: Kopier + order_by: Sorter etter save_changes: Lagre endringer validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til other: Noe er ikke helt riktig ennå. Det er ennå %{count} feil å rette på + identity_proofs: + active: Aktive + authorize: Ja, autoriser + errors: + keybase: + verification_failed: Keybase kjenner ikke igjen denne sjetongen som en signatur for Keybase-brukeren %{kb_username}. Vennligst prøv igjen gjennom Keybase. + wrong_user: Kan ikke lage et bevis for %{proving} mens du er logget på som %{current}. Logg på som %{proving} og prøv igjen. + explanation_html: Her kan du kryptografisk koble til dine andre enheter, f.eks. en Keybase-profil. Dette lar andre folk sende deg krypterte meldinger og stole på innhold som du sender dem. + i_am_html: Jeg er %{username} på %{service}. + identity: Identitet + inactive: Inaktive + publicize_checkbox: 'Og tut ut dette:' + publicize_toot: 'Det er bevist! Jeg er %{username} på %{service}: %{url}' + status: Verifiseringsstatus + view_proof: Se bevis imports: + modes: + merge: Slå sammen + overwrite: Overskriv preface: Du kan importere data om brukere du følger eller blokkerer til kontoen din på denne instansen med eksportfiler fra andre instanser. success: Dine data ble mottatt og vil bli behandlet så fort som mulig types: blocking: Blokkeringsliste + domain_blocking: Domeneblokkeringsliste following: Følgeliste muting: Dempeliste upload: Opplastning @@ -363,12 +706,13 @@ '21600': 6 timer '3600': 1 time '43200': 12 timer - '604800': 1 week + '604800': 1 uke '86400': 1 dag expires_in_prompt: Aldri generate: Generer + invited_by: 'Du ble invitert av:' max_uses: - one: 1 uke + one: 1 bruk other: "%{count} bruk" max_uses_prompt: Ubegrenset prompt: Generer og del lenker med andre for å gi tilgang til denne instansen @@ -385,6 +729,19 @@ too_many: Kan ikke legge ved mer enn 4 filer migrations: acct: brukernavn@domene til den nye kontoen + cancel: Avbryt omdirigeringen + cancel_explanation: Å avbryte omdirigeringen vil reaktivere din nåværende konto, men vil ikke bringe tilbake følgere som har blitt flyttet til den kontoen. + errors: + move_to_self: kan ikke være den nåværende kontoen + not_found: ble ikke funnet + incoming_migrations: Flytte fra en annen konto + incoming_migrations_html: For å flytte fra en annen konto til denne, må du først sette opp et kontoalias. + past_migrations: Tidligere migreringer + proceed_with_move: Flytt følgere + set_redirect: Bestem omdirigering + warning: + before: 'Før du fortsetter, vennligst les disse notisene nøye:' + disabled_account: Din nåværende konto vil ikke være fullt brukbar etterpå. Men du vil ha tilgang til dataeksportering såvel som reaktivering. moderation: title: Moderasjon notification_mailer: @@ -421,43 +778,143 @@ body: 'Din status ble fremhevd av %{name}:' subject: "%{name} fremhevde din status" title: Ny fremheving + notifications: + email_events: E-postvarslinger for hendelser + email_events_hint: 'Velg hendelser som du vil motta varslinger for:' + other_settings: Andre varslingsinnstillinger + number: + human: + decimal_units: + format: "%n %u" + units: + billion: Mrd + million: Mln + quadrillion: Kvd + thousand: T + trillion: Trl pagination: + newer: Nyere next: Neste + older: Eldre prev: Forrige + truncate: "…" + polls: + errors: + already_voted: Du har allerede stemt i denne avstemningen + duration_too_long: er for langt frem i tid + duration_too_short: er for snart + expired: Denne avstemningen er allerede ferdig + too_few_options: må ha mer enn én gjenstand + too_many_options: kan ikke ha mer enn %{max} gjenstander preferences: other: Annet + posting_defaults: Innleggsstandarder + public_timelines: Offentlige tidslinjer + relationships: + activity: Kontoaktivitet + dormant: Dormende + followers: Følgere + following: Følginger + last_active: Senest aktiv + most_recent: Nyligst + moved: Flyttet + mutual: Gjensidig + primary: Primær + relationship: Forhold + remove_selected_domains: Fjern alle følgere fra de valgte domenene + remove_selected_followers: Fjern de valgte følgerne + remove_selected_follows: Avfølg de valgte brukerne + status: Kontostatus remote_follow: acct: Tast inn brukernavn@domene som du vil følge fra missing_resource: Kunne ikke finne URLen for din konto + no_account_html: Har du ikke en konto? Da kan du lage en konto her proceed: Fortsett med følging prompt: 'Du vil følge:' + reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." + remote_interaction: + favourite: + proceed: Fortsett til likingen + prompt: 'Du ønsker å like denne tuten:' + reblog: + proceed: Fortsett til fremhevingen + prompt: 'Du ønsker å fremheve denne tuten:' + reply: + proceed: Fortsett til svaret + prompt: 'Du ønsker å svare på denne tuten:' sessions: activity: Siste aktivitet browser: Nettleser browsers: + alipay: AliPay + blackberry: BlackBerry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox generic: Ukjent nettleser + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi-nettleser + opera: Opera + otter: Otter + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UC Browser + weibo: Weibo current_session: Nåværende økt description: "%{browser} på %{platform}" - explanation: Dette er nettlesere innlogget på din Mastodon-konto akkurat nå. + explanation: Dette er nettlesere som er pålogget på din Mastodon-konto akkurat nå. ip: IP-adresse platforms: + adobe_air: Adobe Air + android: Android + blackberry: BlackBerry + chrome_os: Chrome OS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: macOS other: ukjent plattform + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: Tilbakekall revoke_success: Økt tilbakekalt title: Økter settings: + account: Konto + account_settings: Kontoinnstillinger + aliases: Kontoaliaser + appearance: Utseende authorized_apps: Autoriserte applikasjoner back: Tilbake til Mastodon delete: Kontosletting development: Utvikling edit_profile: Endre profil export: Dataeksport + featured_tags: Utvalgte emneknagger + identity_proofs: Identitetsbevis import: Importér + import_and_export: Importer og eksporter migrate: Kontomigrering notifications: Varslinger preferences: Preferanser + profile: Profil + relationships: Følginger og følgere two_factor_authentication: Tofaktorautentisering statuses: + attached: + description: 'Vedlagt: %{attached}' + image: + one: "%{count} bilde" + other: "%{count} bilder" + video: + one: "%{count} video" + other: "%{count} videoer" + content_warning: 'Innholdsadvarsel: %{warning}' + language_detection: Oppdag språk automatisk open_in_web: Åpne i nettleser over_character_limit: grense på %{max} tegn overskredet pin_errors: @@ -465,7 +922,16 @@ ownership: Kun egne tuter kan festes private: Kun offentlige tuter kan festes reblog: En fremheving kan ikke festes + poll: + total_people: + one: "%{count} person" + other: "%{count} personer" + total_votes: + one: "%{count} stemme" + other: "%{count} stemmer" + vote: Stem show_more: Vis mer + title: "%{name}: «%{quote}»" visibilities: private: Privat private_long: Synlig kun for følgere @@ -477,13 +943,99 @@ pinned: Festet tut reblogged: fremhevde sensitive_content: Følsomt innhold + tags: + does_not_match_previous_name: samsvarer ikke med det forrige navnet terms: + body_html: | +

Privatlivsretningslinjer

+

Hva slags informasjon samler vi inn?

+ +
    +
  • Grunnleggende kontoinformasjon: Dersom du registrerer deg på denne tjeneren, vil du kanskje bli spurt om å skrive inn et brukernavn, en E-postadresse, og et passord. Du kan også skrive inn ytterligere profilinformasjon som f.eks. et visningsnavn og selvbiografi, og laste opp et profilbilde og toppfeltbilde. Brukernavnet, visningsnavnet, selvbiografien, profilbildet, og toppfeltbildet blir alltid vist offentlig.
  • +
  • Innlegg, følging, og annen offentlig informasjon: Listen over folk du følger blir vist offentlig, det samme gjelder for følgerne dine. Når du sender inn en melding, blir datoen og tidspunktet lagret såvel som programmet du sendte inn meldingen ifra. Meldinger kan inneholde mediavedlegg, som f.eks. bilder og videoer. Offentlige og uoppførte innlegg er offentlig tilgjengelige. Når du viser frem et innlegg på profilen din, er det også offentlig tilgjengelig informasjon. Dinne innlegg blir levert til dine følgere, og i noen tilfeller betyr det at blir levert til forskjellige tjenere og at kopier blir lagret der. Når du sletter innlegg, blir også det levert til dine følgere. Det å fremheve eller like et annet innlegg er alltid offentlig.
  • +
  • Direkteinnlegg og innlegg som kun er for følgere: Alle innlegg er lagret og behandlet på tjeneren. Innlegg som kun er for følgere, blir levert til dine følgere, og direkteinnlegg leveres kun til brukere som er nevnt i dem. I noen tilfeller betyr det at de blir levert til forskjellige tjenere og at kopier blir lagret der. Vi gjør et forsøk i god sportsånd for å begrense tilgangen til disse innleggene til kun autoriserte personer, men andre tjenere kan mislykkes med sådan. Derfor er det viktig å gå i gjennom tjenerne som følgerne dine hører til i. I innstillingene kan du veksle på en innstilling for å godkjenne og avslå nye følgere manuelt. Vennligst ha i tankene at operatørene til tjeneren og enhver mottakende tjener kan se slike meldinger, og at mottakere kan ta skjermklipp av, kopiere, eller på annet vis dele dem videre. Ikke del noe farlig informasjon over Mastodon.
  • +
  • IP-er og andre metadata: Når du logger på, lagrer vi IP-adressen som du logget deg på fra, såvel som navnet til nettleserprogrammet ditt. Du kan gå gjennom og tilbakekalle alle påloggede økter i innstillingene. Den seneste IP-adressen du brukte, blir lagret i opptil 12 måneder. Vi vil kanskje også holde på tjenerloggføringer som inkluderer IP-adressen til alle forespørsler til tjeneren vår.
  • +
+ +
+ +

Hva bruker vi informasjonen din til?

+ +

Hva som helst av informasjonen som vi samler inn fra deg, kan bli brukt på de følgende måtene:

+ +
    +
  • Til å levere grunnfunksjonaliteten til Mastodon. Du kan bare samhandle med andre folks innhold og legge ut ditt eget innhold når du er logget på. For eksempel kan du følge andre folk for å se deres kombinerte innlegg i din egen personliggjorte hjemmetidslinje.
  • +
  • Til å bistå i moderasjonen av samfunnet, for eksempel å sammenligne IP-adressen din med andre andre kjente adresser for å avgjøre saker om bannlysningsunngåelse eller andre regelbrudd.
  • +
  • E-postadressen du oppgir kan bli brukt til å sende deg informasjon, varsler om at andre folk samhandler med innholdet ditt eller sender deg meldinger, og å svare på brukerstøttespørsmål, og/eller andre forespørsler eller spørsmål.
  • +
+ +
+ +

Hvordan beskytter vi informasjonen din?

+ +

Vi implementer en rekke sikkerhetstiltak for å holde på sikkerheten til din personlige informasjon når du skriver inn, sender inn, eller besøker din personlige informasjon. Blant annet er din nettleserøkt, såvel som trafikken mellom dine apper og API-er, sikret med SSL, og passordet ditt er saltet med en kraftig énveisalgoritme. Du kan skru på 2-trinnsinnlogging for å sikre tilgangen til kontoen din ytterligere.

+ +
+ +

Hva er våre databeholdingsretningslinjer?

+ +

Vi vil gjøre en innsats i god sportsånd for å

+ +
    +
  • Beholde tjenerloggføringer som inneholder IP-adressen til alle forespørsler til denne tjeneren, dersom det blir loggført i det hele tatt, i ikke mer enn 90 dager.
  • +
  • Beholde IP-adressene som er forbundet med registrerte brukere i ikke mer enn 12 måneder.
  • +
+ +

Du kan be om og laste ned et arkiv av innholdet ditt, inkludert dine innlegg, media, mediavedlegg, profilbilde, og toppfeltbilde.

+ +

Du kan ugjenkallelig slette kontoen til enhver tid.

+ +
+ +

Bruker vi infokapsler?

+ +

Ja. Infokapsler er små filer som et nettsted eller dens tjenesteleverandør overfører til harddisken på datamaskinen din gjennom nettleseren din (dersom du tillater dette). Disse infokapslene lar nettstedet kjenne igjen nettleseren din og, dersom du har en registrert konto, assosiere den med din registrerte konto.

+ +

Vi benytter infokapsler for å forstå og lagre dinne innstillinger til fremtidige besøk.

+ +
+ +

Forteller vi om noe informasjon til utenforstående parter?

+ +

Vi hverken selger, bytter, eller på andre måter overfører din personlig identifiserbare informasjon til utenforstående parter. Dette inkluderer ikke tredjeparter som vi stoler på og som hjelper oss med å drifte nettstedet vårt, drifte våre forretninger, eller å yte tjenester til deg, så lenge disse partene sier seg enige i å holde denne informasjonen hemmelig. Vi kan også frigi informasjonen vår dersom vi mener et frigiving er passende for å møte loven, handle i tråd med vår nettstedsretningslinjer, eller å beskytte vår eller andres rettigheter, eiendom, eller trygghet.

+ +

Ditt offentlige innhold kan bli lastet ned av andre tjenere i nettverket. Dine offentlige innlegg og innlegg som kun er for følgere blir levert til tjenerne der følgerne dine holder til, og direktemeldinger blir levert il mottakernes tjenere, i den grad de følgerne eller mottakerne holder på en annen tjener enn denne.

+ +

Når du gir et program autorisasjon til å bruke kontoen din, avhengig av omfanget av tillatelser som du tillater, kan den få tilgang til din offentlige profilinformasjon, din følgingsliste, dine følgere, dine lister, alle dine innlegg, og dine likinger. Programmer kan aldri få tilgang til E-postadressen eller passordet ditt.

+ +
+ +

Nettstedsbruk av barn

+ +

Dersom denne tjeneren er i EU eller EØS: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier GDPR (General Data Protection Regulation) at du ikke kan bruke dette nettstedet.

+ +

Dersom denne tjeneren er i USA: Vårt nettsted, produkter og tjenester er alle siktet inn mot folk som er minst 16 år gamle. Dersom du er under 16, sier COPPA (Children's Online Privacy Protection Act) at du ikke kan bruke dette nettstedet.

+ +

Lovmessige krav kan være forskjellige dersom denne tjeneren befinner seg i en annen jurisdiksjon.

+ +
+ +

Endringer i våre privatlivsretningslinjer

+ +

Dersom vi bestemmer oss for å endre våre privatlivsretningslinjer, vil vi legge ut endringene på denne siden.

+ +

Dette dokumentet er lisensiert under CC BY-SA. Den engelske originalversjonen ble sist oppdatert den 7. mars 2018. Den norske oversettelsen ble sist oppdatert den 13. desember 2019.

+ +

Opprinnelig modifisert utifra Discourse sine privatlivsretningslinjer.

title: "%{instance} Personvern og villkår for bruk av nettstedet" themes: + contrast: Mastodon (Høykontrast) default: Mastodon + mastodon-light: Mastodon (Lyst) time: formats: default: "%-d. %b %Y, %H:%M" + month: "%b %Y" two_factor_authentication: code_hint: Tast koden som ble generert av din autentiseringsapp for å bekrefte description_html: Hvis du skrur på tofaktorautentisering må du ha din telefon for å logge inn. Denne vil generere koder som du må taste inn. @@ -501,6 +1053,25 @@ setup: Sett opp wrong_code: Den angitte koden var ugyldig! Stemmer instansens tid overalt med enhetens tid? user_mailer: + backup_ready: + subject: Arkivet ditt er klart til å lastes ned + warning: + explanation: + disable: Mens kontoen din er fryst, forblir dine kontodata intakt, men du kan ikke utføre noen handlinger før den har blitt tint opp. + silence: Mens kontoen din er begrenset, vil bare folk som allerede følger deg se dine tuter på denne tjeneren, og du kan bli ekskludert fra diverse offentlige oppføringer. Men andre kan fortsatt følge deg manuelt. + suspend: Kontoen din har blitt suspendert, og alle dine tuter og opplastede media har blitt ugjenkallelig fjernet fra denne tjeneren, og fra tjenere der du hadde følgere. + get_in_touch: Du kan svare på denne E-posten for å komme i kontakt med styret i %{instance}. + statuses: 'Spesifikt for å:' + subject: + disable: Kontoen din, %{acct}, har blitt fryst + none: Advarsel for %{acct} + silence: Kontoen din, %{acct}, har blitt begrenset + suspend: Kontoen din, %{acct}, har blitt suspendert + title: + disable: Kontoen er fryst + none: Advarsel + silence: Kontoen er begrenset + suspend: Kontoen er suspendert welcome: edit_profile_action: Sett opp profil edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. @@ -516,8 +1087,12 @@ tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen. tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! + tips: Tips title: Velkommen ombord, %{name}! users: invalid_email: E-postaddressen er ugyldig invalid_otp_token: Ugyldig to-faktorkode signed_in_as: 'Innlogget som:' + verification: + explanation_html: 'Du kan bekrefte at du selv er eieren av lenkene i din profilmetadata. For å gjøre det, må det tillenkede nettstedet inneholde en lenke som fører tilbake til Mastodon-profilen din. Lenken tilbake ha en rel="me"-attributt. Tekstinnholdet til lenken er irrelevant. Her er et eksempel:' + verification: Bekreftelse diff --git a/config/locales/oc.yml b/config/locales/oc.yml index f84fe882a..985d2a311 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -11,6 +11,7 @@ oc: apps: Aplicacions per mobil apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz + browse_local_posts: Percórrer un flux en dirècte de las publicacions publicas d’aqueste servidor browse_public_posts: Navigatz pel flux public a Mastodon contact: Contacte contact_missing: Pas parametrat @@ -161,6 +162,7 @@ oc: staff: Personnal user: Uitlizaire search: Cercar + search_same_ip: Autres utilizaires amb la meteissa IP shared_inbox_url: URL de recepcion partejada show: created_reports: Senhalaments creats @@ -187,10 +189,12 @@ oc: confirm_user: "%{name} confirmèt l’adreça a %{target}" create_account_warning: "%{name} mandèt un avertiment a %{target}" create_custom_emoji: "%{name} mandèt un nòu emoji %{target}" + create_domain_allow: "%{name} botèt a la lista blanca lo domeni %{target}" create_domain_block: "%{name} bloquèt lo domeni %{target}" create_email_domain_block: "%{name} botèt a la lista nègra lo domeni de corrièl %{target}" demote_user: "%{name} retragradèt l‘utilizaire %{target}" destroy_custom_emoji: "%{name} destruguèt l’emoji %{target}" + destroy_domain_allow: "%{name} levèt lo domeni %{target} de la lista blanca" destroy_domain_block: "%{name} desbloquèt lo domeni %{target}" destroy_email_domain_block: "%{name} botèt a la lista blanca lo domeni de corrièl %{target}" destroy_status: "%{name} levèt l‘estatut a %{target}" @@ -378,6 +382,10 @@ oc: created_msg: Nòta de moderacion corrèctament creada ! destroyed_msg: Nòta de moderacion corrèctament suprimida ! reports: + account: + notes: + one: "%{count} nòta" + other: "%{count} nòtas" action_taken_by: Mesura menada per are_you_sure: Es segur ? assign_to_self: Me l’assignar @@ -666,7 +674,6 @@ oc: blocks: Personas que blocatz csv: CSV domain_blocks: Blocatge de domenis - follows: Personas que seguètz lists: Listas mutes: Personas rescondudas storage: Mèdias gardats @@ -782,6 +789,7 @@ oc: past_migrations: Migracions passadas proceed_with_move: Desplaçar los seguidors redirecting_to: Vòstre compte manda a %{acct}. + set_redirect: Definir redireccion warning: before: 'Abans de contunhar, volgatz legir aquestas nòtas amb atencion :' other_data: Cap d’autra donada serà desplaçada automaticament @@ -821,6 +829,10 @@ oc: body: "%{name} a tornat partejar vòstre estatut :" subject: "%{name} a tornat partejar vòstre estatut" title: Novèl partatge + notifications: + email_events: Eveniments per las notificacions per corrièl + email_events_hint: 'Seleccionatz los eveniments que volètz recebre :' + other_settings: Autres paramètres de notificacion number: human: decimal_units: @@ -947,6 +959,8 @@ oc: profile: Perfil relationships: Abonaments e seguidors two_factor_authentication: Autentificacion en dos temps + spam_check: + spam_detected: Aquò es un senhalament automatic. D’spam es estat detectat. statuses: attached: description: 'Ajustat : %{attached}' diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 8d80ac3a3..eec58bc5e 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -178,6 +178,7 @@ pl: staff: Ekipa user: Użytkownik search: Szukaj + search_same_ip: Inni użytkownicy z tym samym IP shared_inbox_url: Adres udostępnianej skrzynki show: created_reports: Zgłoszenia tego użytkownika @@ -508,6 +509,7 @@ pl: title: Wpisy konta with_media: Z zawartością multimedialną tags: + name: Hasztag title: Hashtagi title: Administracja warning_presets: @@ -524,6 +526,8 @@ pl: body: Użytkownik %{reporter} zgłosił(a) %{target} body_remote: Użytkownik instancji %{domain} zgłosił(a) %{target} subject: Nowe zgłoszenie na %{instance} (#%{id}) + aliases: + add_new: Utwórz alias appearance: advanced_web_interface: Zaawansowany interfejs użytkownika advanced_web_interface_hint: Jeśli chcesz użyć pełną szerokość swojego ekranu, zaawansowany interfejs użytkownika pozwala Ci skonfigurować wiele różnych kolumn, by zobaczyć jak najwięcej informacji kiedy tylko chcesz. Strona główna, Powiadomienia, Globalna oś czasu, dowolna ilość list i hasztagów. @@ -580,6 +584,8 @@ pl: return: Pokaż stronę użytkownika web: Przejdź do sieci title: Śledź %{acct} + challenge: + confirm: Kontynuuj datetime: distance_in_words: about_x_hours: "%{count}g" @@ -631,7 +637,6 @@ pl: blocks: Zablokowani csv: CSV domain_blocks: Blokady domen - follows: Śledzeni lists: Listy mutes: Wyciszeni storage: Urządzenie przechowujące dane @@ -1082,7 +1087,7 @@ pl: suspend: Konto zawieszone welcome: edit_profile_action: Skonfiguruj profil - edit_profile_step: Możesz dostować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić. + edit_profile_step: Możesz dostosować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić. explanation: Kilka wskazówek, które pomogą Ci rozpocząć final_action: Zacznij pisać final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie śledzi, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.' diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 84eff7991..c3ddd69a7 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -2,80 +2,92 @@ pt-BR: about: about_hashtag_html: Estes são toots públicos com a hashtag #%{hashtag}. Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso. - about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos e software gratuito e de código aberto. É descentralizada como e-mail. + about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!' about_this: Sobre - active_count_after: Ativo - active_footnote: Usuários ativos mensais (UAM) + active_count_after: ativo + active_footnote: Usuários Ativos Mensalmente (UAM) administered_by: 'Administrado por:' api: API - apps: Apps - apps_platforms: Use o Mastodon a partir de iOS, Android e outras plataformas + apps: Aplicativos + apps_platforms: Use o Mastodon a partir do iOS, Android e outras plataformas browse_directory: Navegue pelo diretório de perfis e filtre por interesses - browse_public_posts: Navegue pelos posts públicos sendo postados ao vivo no Mastodon + browse_local_posts: Navegue pelos toots públicos locais em tempo real + browse_public_posts: Navegue pelos toots públicos globais em tempo real contact: Contato contact_missing: Não definido contact_unavailable: Não disponível discover_users: Descubra usuários documentation: Documentação - federation_hint_html: Com uma conta em %{instance} você vai poder seguir pessoas em qualquer servidor Mastodon ou outros do fediverso. + federation_hint_html: Com uma conta em %{instance} você vai poder seguir e interagir com pessoas de qualquer canto do fediverso. get_apps: Experimente um aplicativo - hosted_on: Mastodon hospedado em %{domain} + hosted_on: Instância Mastodon em %{domain} + instance_actor_flash: | + Esta conta é um ator virtual usado para representar a própria instância. + É usado para fins de federação e não deve ser bloqueado a menos que você queira bloquear toda a instância, nesse caso é melhor usar um bloqueador de domínios. learn_more: Saiba mais privacy_policy: Política de Privacidade see_whats_happening: Veja o que está acontecendo - server_stats: 'Estatísticas do servidor:' + server_stats: 'Estatísticas da instância:' source_code: Código-fonte + status_count_after: + one: toot + other: toots status_count_before: Autores de - tagline: Siga amigos e encontre novos + tagline: Siga seus amigos e faça novas amizades terms: Termos de serviço unavailable_content: Conteúdo indisponível unavailable_content_description: + domain: Instância reason: 'Motivo:' - suspended: Você não será capaz de seguir ninguém deste servidor, e nenhum dado dele será processado ou armazenado, e nenhum dado trocado. - unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor específico. + rejecting_media: 'Arquivos de mídia destas instâncias não serão processados ou armazenados e nenhuma miniatura será exibida, exigindo que o usuário abra o arquivo original manualmente:' + silenced: 'Toots destas instâncias serão ocultos em linhas e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus usuários, a menos que esteja sendo seguido:' + suspended: 'Você não será capaz de seguir ninguém destas instâncias, e nenhum dado delas será processado, armazenado ou trocado:' + unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico. user_count_after: one: usuário other: usuários user_count_before: Casa de what_is_mastodon: O que é Mastodon? accounts: - choices_html: 'Escolhas de %{name}:' - featured_tags_hint: Você pode destacar hashtags específicas que serão exibidas aqui. + choices_html: 'Sugestões de %{name}:' + endorsements_hint: Você pode sugerir pessoas que você segue, elas aparecerão aqui. + featured_tags_hint: Você pode destacar hashtags específicas, elas aparecerão aqui. follow: Seguir followers: one: Seguidor other: Seguidores following: Seguindo - joined: Participa desde %{date} + joined: Entrou em %{date} last_active: última atividade - link_verified_on: A posse desse link foi checada em %{date} + link_verified_on: O link foi verificado em %{date} media: Mídia moved_html: "%{name} se mudou para %{new_profile_link}:" - network_hidden: Esta informação não está disponível + network_hidden: Informação indisponível never_active: Nunca - nothing_here: Não há nada aqui! + nothing_here: Nada aqui! people_followed_by: Pessoas que %{name} segue people_who_follow: Pessoas que seguem %{name} pin_errors: - following: Você tem que estar seguindo a pessoa que você quer sugerir + following: Você deve estar seguindo a pessoa que você deseja sugerir posts: one: Toot other: Toots posts_tab_heading: Toots posts_with_replies: Toots e respostas - reserved_username: Este usuário está reservado + reserved_username: Nome de usuário reservado roles: - admin: Administrador + admin: Admin bot: Robô - moderator: Moderador + group: Grupo + moderator: Mod unavailable: Perfil indisponível unfollow: Deixar de seguir admin: account_actions: - action: Tomar uma ação - title: Realizar uma ação de moderação em %{acct} + action: Tomar uma atitude + title: Moderar %{acct} account_moderation_notes: - create: Criar uma advertência + create: Deixar nota created_msg: Nota de moderação criada com sucesso! delete: Excluir destroyed_msg: Nota de moderação excluída com sucesso! @@ -83,75 +95,75 @@ pt-BR: approve: Aprovar approve_all: Aprovar tudo are_you_sure: Você tem certeza? - avatar: Imagem de Perfil + avatar: Imagem de perfil by_domain: Domínio change_email: - changed_msg: E-mail da conta modificado com sucesso! + changed_msg: E-mail da conta alterado com sucesso! current_email: E-mail atual - label: Mudar e-mail + label: Alterar e-mail new_email: Novo e-mail - submit: Mudar e-mail - title: Mudar e-mail para %{username} + submit: Alterar e-mail + title: Alterar e-mail para %{username} confirm: Confirmar confirmed: Confirmado confirming: Confirmando deleted: Excluído demote: Rebaixar disable: Desativar - disable_two_factor_authentication: Desativar 2FA + disable_two_factor_authentication: Desativar autenticação de dois fatores disabled: Desativada display_name: Nome de exibição domain: Domínio edit: Editar email: E-mail - email_status: Estado do e-mail + email_status: Status do e-mail enable: Ativar - enabled: Ativado + enabled: Ativada followers: Seguidores - follows: Segue - header: Cabeçalho + follows: Seguindo + header: Capa inbox_url: URL da caixa de entrada invited_by: Convidado por ip: IP - joined: Se cadastrou + joined: Entrou location: all: Todos local: Local remote: Remoto title: Localização - login_status: Situação de login - media_attachments: Mídia(s) anexada(s) - memorialize: Tornar um memorial + login_status: Situação da conta + media_attachments: Mídias anexadas + memorialize: Converter em memorial moderation: active: Ativo all: Todos pending: Pendente silenced: Silenciados - suspended: Suspensos + suspended: Banidos title: Moderação moderation_notes: Notas de moderação most_recent_activity: Atividade mais recente most_recent_ip: IP mais recente - no_account_selected: Nenhuma conta foi modificada, pois nenhuma conta foi selecionada + no_account_selected: Nenhuma conta foi alterada, pois nenhuma conta foi selecionada no_limits_imposed: Nenhum limite imposto - not_subscribed: Não está inscrito - pending: Esperando revisão - perform_full_suspension: Suspender + not_subscribed: Não inscrito + pending: Revisão pendente + perform_full_suspension: Banir promote: Promover protocol: Protocolo public: Público push_subscription_expires: Inscrição PuSH expira redownload: Atualizar perfil - reject: Rejeitar - reject_all: Rejeitar tudo - remove_avatar: Remover avatar - remove_header: Remover cabeçalho + reject: Vetar + reject_all: Vetar tudo + remove_avatar: Remover imagem de perfil + remove_header: Remover capa resend_confirmation: already_confirmed: Este usuário já está confirmado - send: Re-enviar o e-mail de confirmação + send: Reenviar o e-mail de confirmação success: E-mail de confirmação enviado com sucesso! - reset: Anular - reset_password: Modificar senha + reset: Redefinir + reset_password: Redefinir senha resubscribe: Reinscrever-se role: Permissões roles: @@ -160,101 +172,110 @@ pt-BR: staff: Equipe user: Usuário search: Pesquisar - shared_inbox_url: URL da caixa de entrada compartilhada + search_same_ip: Outros usuários com o mesmo IP + shared_inbox_url: Link da caixa de entrada compartilhada show: - created_reports: Denúncias criadas por esta conta - targeted_reports: Denúncias feitas sobre esta conta + created_reports: Denúncias desta conta + targeted_reports: Denúncias sobre esta conta silence: Silenciar silenced: Silenciado - statuses: Postagens + statuses: Toots subscribe: Inscrever-se - suspended: Suspenso + suspended: Banido time_in_queue: Esperando na fila por %{time} title: Contas unconfirmed_email: E-mail não confirmado - undo_silenced: Retirar silenciamento - undo_suspension: Retirar suspensão - unsubscribe: Desinscrever-se + undo_silenced: Desfazer silêncio + undo_suspension: Desbanir + unsubscribe: Cancelar inscrição username: Nome de usuário warn: Notificar web: Web + whitelisted: Permitido action_logs: actions: - assigned_to_self_report: "%{name} designou a denúncia %{target} para si" - change_email_user: "%{name} mudou o endereço de e-mail do usuário %{target}" + assigned_to_self_report: "%{name} pegou a denúncia %{target}" + change_email_user: "%{name} alterou o endereço de e-mail do usuário %{target}" confirm_user: "%{name} confirmou o endereço de e-mail do usuário %{target}" create_account_warning: "%{name} enviou um aviso para %{target}" - create_custom_emoji: "%{name} enviou o emoji novo %{target}" + create_custom_emoji: "%{name} enviou o novo emoji %{target}" + create_domain_allow: "%{name} permitiu %{target}" create_domain_block: "%{name} bloqueou o domínio %{target}" - create_email_domain_block: "%{name} colocou o domínio de e-mail %{target} na lista negra" + create_email_domain_block: "%{name} bloqueou o domínio de e-mail %{target}" demote_user: "%{name} rebaixou o usuário %{target}" - destroy_custom_emoji: "%{name} destruiu emoji %{target}" + destroy_custom_emoji: "%{name} excluiu emoji %{target}" + destroy_domain_allow: "%{name} bloqueou %{target}" destroy_domain_block: "%{name} desbloqueou o domínio %{target}" - destroy_email_domain_block: "%{name} retirou o domínio de e-mail %{target} da lista negra" - destroy_status: "%{name} removeu postagem feita por %{target}" - disable_2fa_user: "%{name} desabilitou a exigência de autenticação em dois passos para o usuário %{target}" - disable_custom_emoji: "%{name} desabilitou o emoji %{target}" - disable_user: "%{name} desabilitou o acesso para o usuário %{target}" - enable_custom_emoji: "%{name} habilitou o emoji %{target}" - enable_user: "%{name} habilitou o acesso para o usuário %{target}" + destroy_email_domain_block: "%{name} permitiu domínio de e-mail %{target}" + destroy_status: "%{name} excluiu toot de %{target}" + disable_2fa_user: "%{name} desativou a exigência de autenticação de dois fatores para o usuário %{target}" + disable_custom_emoji: "%{name} desativou o emoji %{target}" + disable_user: "%{name} desativou o acesso para o usuário %{target}" + enable_custom_emoji: "%{name} ativou o emoji %{target}" + enable_user: "%{name} ativou o acesso para o usuário %{target}" memorialize_account: "%{name} transformou a conta de %{target} em um memorial" promote_user: "%{name} promoveu o usuário %{target}" - remove_avatar_user: "%{name} removeu o avatar de %{target}" + remove_avatar_user: "%{name} removeu a imagem de perfil de %{target}" reopen_report: "%{name} reabriu a denúncia %{target}" reset_password_user: "%{name} redefiniu a senha do usuário %{target}" resolve_report: "%{name} resolveu a denúncia %{target}" silence_account: "%{name} silenciou a conta de %{target}" - suspend_account: "%{name} suspendeu a conta de %{target}" - unassigned_report: "%{name} desatribuiu a denúncia %{target}" + suspend_account: "%{name} baniu a conta de %{target}" + unassigned_report: "%{name} largou a denúncia %{target}" unsilence_account: "%{name} desativou o silêncio de %{target}" - unsuspend_account: "%{name} desativou a suspensão de %{target}" + unsuspend_account: "%{name} desbaniu %{target}" update_custom_emoji: "%{name} atualizou o emoji %{target}" - update_status: "%{name} atualizou o estado de %{target}" - deleted_status: "(status deletado)" - title: Auditar relatório + update_status: "%{name} atualizou o status de %{target}" + deleted_status: "(status excluído)" + title: Auditar histórico custom_emojis: - assign_category: Designar Categoria + assign_category: Atribuir categoria by_domain: Domínio copied_msg: Cópia local do emoji criada com sucesso copy: Copiar - copy_failed_msg: Não foi possível criar uma cópia local deste emoji + copy_failed_msg: Não foi possível criar cópia local do emoji create_new_category: Criar nova categoria created_msg: Emoji criado com sucesso! delete: Excluir - destroyed_msg: Emoji deletado com sucesso! - disable: Desabilitar - disabled_msg: Emoji desabilitado com sucesso + destroyed_msg: Emoji excluído com sucesso! + disable: Desativar + disabled: Desativado + disabled_msg: Emoji desativado com sucesso emoji: Emoji - enable: Habilitar - enabled_msg: Emoji habilitado com sucesso + enable: Ativar + enabled: Ativado + enabled_msg: Emoji ativado com sucesso image_hint: PNG de até 50KB + list: Listar listed: Listado new: - title: Adicionar novo emoji customizado + title: Adicionar novo emoji personalizado overwrite: Sobrescrever shortcode: Atalho - shortcode_hint: Pelo menos 2 caracteres, apenas caracteres alfanuméricos e underscores - title: Emojis customizados + shortcode_hint: Pelo menos 2 caracteres, apenas caracteres alfanuméricos e underlines ("_") + title: Emojis personalizados uncategorized: Não categorizado - unlisted: Não listado + unlist: Não listar + unlisted: Não-listado update_failed_msg: Não foi possível atualizar esse emoji updated_msg: Emoji atualizado com sucesso! upload: Enviar dashboard: + authorized_fetch_mode: Modo seguro backlog: tarefas na fila config: Configuração - feature_deletions: Remoção de contas + feature_deletions: Exclusão de contas feature_invites: Convites feature_profile_directory: Diretório de perfis - feature_registrations: Cadastros + feature_registrations: Novas contas feature_relay: Repetidor da federação feature_spam_check: Anti-spam - feature_timeline_preview: pré-visualização da timeline + feature_timeline_preview: Prévia da linha features: Funcionalidades hidden_service: Federação com serviços onion open_reports: Denúncias em aberto - pending_tags: hashtags aguardando revisão - pending_users: usuários aguardando revisão + pending_tags: hashtags pendentes + pending_users: usuários pendentes recent_users: Usuários recentes search: Pesquisa em texto single_user_mode: Modo de usuário único @@ -262,70 +283,79 @@ pt-BR: space: Uso de espaço em disco title: Painel de controle total_users: usuários no total - trends: Tendências + trends: Em alta week_interactions: interações essa semana week_users_active: ativos essa semana week_users_new: usuários essa semana + whitelist_mode: Modo lista de permitidos + domain_allows: + add_new: Permitir + created_msg: Domínio foi permitido + destroyed_msg: Domínio foi bloqueado + undo: Bloquear domain_blocks: - add_new: Adicionar novo bloqueio de domínio - created_msg: Bloqueio de domínio está sendo processado - destroyed_msg: Bloqueio de domínio desfeito + add_new: Bloquear outro domínio + created_msg: Domínio está sendo bloqueado + destroyed_msg: Domínio desbloqueado domain: Domínio edit: Editar bloqueio de domínio - existing_domain_block_html: Você já impôs limites mais restritivos a %{name}, é necessário primeiro desbloqueá-lo. + existing_domain_block_html: Você já bloqueou %{name}, é necessário desbloqueá-lo primeiro. new: create: Criar bloqueio - hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai reatroativa e automaticamente aplicar métodos específicos de moderação nestas contas. + hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nestas contas. severity: - desc_html: O Silêncio fará com que as postagens da conta fiquem invisíveis para qualquer um que não a esteja seguindo. A Suspensão removerá todo o conteúdo da conta, mídia e dados de perfil. Use Nenhum se você apenas deseja rejeitar arquivos de mídia. + desc_html: "Silenciar fará com que os toots da conta fiquem invisíveis para qualquer um que não a esteja seguindo. Banir removerá todo o conteúdo da conta, mídia e dados do perfil. Use Nenhum se você apenas deseja recusar os arquivos de mídia." noop: Nenhum - silence: Silêncio - suspend: Suspensão - title: Novo bloqueio de domínio + silence: Silenciar + suspend: Banir + title: Bloquear domínio private_comment: Comentário privado + private_comment_hint: Comente sobre essa restrição ao domínio para uso interno dos moderadores. public_comment: Comentário público - reject_media: Rejeitar arquivos de mídia - reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para suspensões - reject_reports: Rejeitar denúncias - reject_reports_hint: Ignorar todas as denúncias vindas deste domíno. Irrelevante para suspensões - rejecting_media: rejeitando arquivos de mídia - rejecting_reports: rejeitando denúncias + public_comment_hint: Comente sobre essa restrição ao domínio para o público geral, caso a divulgação da lista de bloqueio esteja ativada. + reject_media: Recusar arquivos de mídia + reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para banimentos + reject_reports: Recusar denúncias + reject_reports_hint: Ignora todas as denúncias vindas deste domínio. Irrelevante para banimentos + rejecting_media: recusando arquivos de mídia + rejecting_reports: recusando denúncias severity: silence: silenciado - suspend: suspenso + suspend: banido show: affected_accounts: one: Uma conta no banco de dados foi afetada other: "%{count} contas no banco de dados foram afetadas" retroactive: - silence: Desativar silêncio de todas as contas existentes desse domínio - suspend: Retirar suspensão de todas as contas neste domínio - title: Retirar bloqueio de domínio de %{domain} - undo: Retirar - undo: Retirar bloqueio de domínio + silence: Desativar silêncio de todas as contas desse domínio + suspend: Desbanir todas as contas deste domínio + title: Desbloquear domínio %{domain} + undo: Desfazer + undo: Desbloquear domínio view: Ver domínios bloqueados email_domain_blocks: add_new: Adicionar novo - created_msg: Bloqueio de domínio de e-mail criado com sucesso + created_msg: Domínio de e-mail bloqueado delete: Excluir - destroyed_msg: Bloqueio de domínio de e-mail excluído com sucesso + destroyed_msg: Domínio de e-mail desbloqueado domain: Domínio + empty: Nenhum domínio de e-mail atualmente na lista negra. new: create: Adicionar domínio - title: Novo bloqueio de domínio de e-mail - title: Bloqueio de Domínio de E-mail + title: Novo domínio de e-mail bloqueado + title: Lista de bloqueio de domínios de e-mail followers: back_to_account: Voltar para a conta - title: Pessoas que seguem %{acct} + title: Seguidores de %{acct} instances: by_domain: Domínio - delivery_available: Entrega está disponível + delivery_available: Envio disponível known_accounts: one: "%{count} conta conhecida" other: "%{count} contas conhecidas" moderation: - all: Todas - limited: Limitado + all: Todos + limited: Limitados title: Moderação private_comment: Comentário privado public_comment: Comentário público @@ -339,8 +369,8 @@ pt-BR: deactivate_all: Desativar todos filter: all: Todos - available: Disponíveis - expired: Expirados + available: Disponível + expired: Expirado title: Filtro title: Convites pending_accounts: @@ -348,25 +378,35 @@ pt-BR: relays: add_new: Adicionar novo repetidor delete: Excluir - description_html: Um repetidor de federação é um servidor intermediário que troca um grande volume de toots públicos entre servidores que se inscrevem e publicam nele. O repetidor pode ser usado para ajudar servidores pequenos e médios a descobrir conteúdo do fediverso, que normalmente precisariam que usuários locais manualmente seguissem outras pessoas em servidores remotos. + description_html: Um repetidor de federação é um servidor intermediário que troca um grande volume de toots públicos entre instâncias que se inscrevem e publicam nele. O repetidor pode ser usado para ajudar instâncias pequenas e médias a descobrir conteúdo pelo fediverso, que normalmente precisariam que usuários locais manualmente seguissem outras pessoas em instâncias remotas. disable: Desativar - disabled: Desabilitar - enable: Habilitar - enable_hint: Uma vez habilitado, seu servidor vai se inscrever para receber todos os toots públicos desse repetidor; E vai começar a enviar todos os toots públicos desse servidor para o repetidor. - enabled: Habilitado - inbox_url: URL do repetidor + disabled: Desativado + enable: Ativar + enable_hint: Uma vez ativado, sua instância se inscreverá para receber todos os toots públicos desse repetidor; E vai começar a enviar todos os toots públicos desta instância para o repetidor. + enabled: Ativado + inbox_url: Link do repetidor pending: Esperando pela aprovação do repetidor - save_and_enable: Salvar e habilitar + save_and_enable: Salvar e ativar setup: Configurar uma conexão de repetidor + signatures_not_enabled: Repetidores não funcionarão adequadamente enquanto o modo seguro ou o modo lista de permitidos estiverem ativos + status: Status title: Repetidores report_notes: created_msg: Nota de denúncia criada com sucesso! destroyed_msg: Nota de denúncia excluída com sucesso! reports: - action_taken_by: Ação realizada por + account: + notes: + one: "%{count} nota" + other: "%{count} notas" + reports: + one: "%{count} denúncia" + other: "%{count} denúncias" + action_taken_by: Atitude tomada por are_you_sure: Você tem certeza? - assign_to_self: Designar para mim - assigned: Moderador designado + assign_to_self: Acatado por mim + assigned: Moderador responsável + by_target_domain: Domínio da conta denunciada comment: none: Nenhum created_at: Denunciado @@ -384,13 +424,14 @@ pt-BR: reported_by: Denunciada por resolved: Resolvido resolved_msg: Denúncia resolvida com sucesso! + status: Status title: Denúncias - unassign: Desatribuir + unassign: Largar unresolved: Não resolvido updated_at: Atualizado settings: activity_api_enabled: - desc_html: Contagem de status postados localmente, usuários ativos e novos cadastros filtrados semanalmente + desc_html: Contagem de toots locais, usuários ativos e novos usuários semanalmente title: Publicar estatísticas agregadas sobre atividade de usuários bootstrap_timeline_accounts: desc_html: Separe nomes de usuário através de vírgulas. Funciona apenas com contas locais e destrancadas. O padrão quando vazio são todos os administradores locais. @@ -399,51 +440,54 @@ pt-BR: email: E-mail username: Usuário de contato custom_css: - desc_html: Modificar o visual com CSS que é carregado em todas as páginas - title: CSS customizado + desc_html: Alterar o visual com CSS carregado em todas as páginas + title: CSS personalizado default_noindex: - desc_html: Afeta qualquer usuário que não tenha modificado esta configuração manualmente + desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente + title: Optar por excluir usuários da indexação de mecanismos de pesquisa por padrão domain_blocks: - all: Para todo mundo + all: Para todos disabled: Para ninguém title: Mostrar domínios bloqueados - users: Para usuários locais logados + users: Para usuários locais ativos domain_blocks_rationale: - title: Visualizar justificativa + title: Mostrar motivo + enable_bootstrap_timeline_accounts: + title: Ativar seguidos por padrão por novas contas hero: - desc_html: Aparece na página inicial. Ao menos 600x100px é recomendado. Se não estiver definido, o thumbnail da instância é usado no lugar + desc_html: Aparece na página inicial. Recomendado ao menos 600x100px. Se não estiver definido, a miniatura da instância é usada no lugar title: Imagem de capa mascot: - desc_html: Mostrado em diversas páginas. Ao menos 293×205px recomendado. Quando não está configurado, o mascote padrão é mostrado + desc_html: Mostrado em diversas páginas. Recomendado ao menos 293×205px. Quando não está definido, o mascote padrão é mostrado title: Imagem do mascote peers_api_enabled: desc_html: Nomes de domínio que essa instância encontrou no fediverso title: Publicar lista de instâncias descobertas preview_sensitive_media: - desc_html: A pré-visualização do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível - title: Mostrar mídia sensível em pré-visualizações OpenGraph + desc_html: A prévia do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível + title: Mostrar mídia sensível em prévias OpenGraph profile_directory: desc_html: Permitir que usuários possam ser descobertos title: Ativar diretório de perfis registrations: closed_message: - desc_html: Exibido na página inicial quando cadastros estão fechados. Você pode usar tags HTML - title: Mensagem de cadastros fechados + desc_html: Mostrado na página inicial quando a instância está fechada. Você pode usar tags HTML + title: Mensagem de instância fechada deletion: - desc_html: Permitir que qualquer um delete a sua conta + desc_html: Permitir que qualquer um exclua a própria conta title: Exclusão aberta de contas min_invite_role: disabled: Ninguém title: Permitir convites de registrations_mode: modes: - approved: Aprovação necessária para cadastro - none: Ninguém pode se cadastrar - open: Qualquer um pode se cadastrar - title: Modo de cadastro + approved: Aprovação necessária para criar conta + none: Ninguém pode criar conta + open: Qualquer um pode criar conta + title: Modo de novos usuários show_known_fediverse_at_about_page: - desc_html: Quando ligado, vai mostrar toots de todo o fediverso conhecido na prévia da timeline. Senão, mostra somente toots locais. - title: Mostrar fediverso conhecido na prévia da timeline + desc_html: Quando ativado, mostra toots globais na prévia da linha, se não, mostra somente toots locais + title: Mostrar toots globais na prévia da linha show_staff_badge: desc_html: Mostrar uma insígnia de Equipe na página de usuário title: Mostrar insígnia de equipe @@ -452,179 +496,220 @@ pt-BR: title: Descrição da instância site_description_extended: desc_html: Um ótimo lugar para seu código de conduta, regras, diretrizes e outras coisas para diferenciar a sua instância. Você pode usar tags HTML - title: Informação estendida customizada + title: Informação estendida personalizada site_short_description: - desc_html: Aparece na barra lateral e nas meta tags. Descreva o que é Mastodon e o que faz esse servidor especial em um único parágrafo. Se não for preenchido, é substituído pela descrição da instância. + desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que é o Mastodon e o que torna esta instância especial num único parágrafo. Se deixada em branco, é substituído pela descrição da instância. title: Descrição curta da instância site_terms: - desc_html: Você pode escrever a sua própria política de privacidade, termos de serviço, entre outras coisas. Você pode usar tags HTML - title: Termos de serviço customizados + desc_html: Você pode escrever a sua própria Política de Privacidade, Termos de Serviço, entre outras coisas. Você pode usar tags HTML + title: Termos de serviço personalizados site_title: Nome da instância spam_check_enabled: + desc_html: Mastodon pode denunciar automaticamente contas que enviem repetidamente toots não solicitados. Pode haver falsos positivos. title: Automação anti-spam thumbnail: desc_html: Usada para prévias via OpenGraph e API. Recomenda-se 1200x630px title: Miniatura da instância timeline_preview: - desc_html: Exibir a timeline pública na página inicial - title: Prévia da timeline + desc_html: Mostra a linha do tempo pública na página inicial e permite acesso da API à mesma sem autenticação + title: Permitir acesso não autenticado à linha pública title: Configurações do site + trendable_by_default: + desc_html: Afeta as hashtags que não foram reprovadas anteriormente + title: Permitir que hashtags fiquem em alta sem revisão prévia trends: + desc_html: Mostrar publicamente hashtags previamente revisadas que estão em alta title: Hashtags em alta statuses: back_to_account: Voltar para página da conta batch: - delete: Deletar - nsfw_off: Marcar como não-sensível + delete: Excluir + nsfw_off: Desmarcar como sensível nsfw_on: Marcar como sensível deleted: Excluídos - failed_to_execute: Falha em executar + failed_to_execute: Falha ao executar media: title: Mídia - no_media: Não há mídia + no_media: Sem mídia no_status_selected: Nenhum status foi modificado porque nenhum estava selecionado - title: Postagens da conta + title: Toots da conta with_media: Com mídia tags: + accounts_today: Usos únicos de hoje + accounts_week: Usos únicos desta semana + breakdown: Descrição do consumo atual por fonte context: Contexto directory: No diretório + in_directory: "%{count} no diretório" + last_active: Última atividade most_popular: Mais populares most_recent: Mais recentes name: Hashtag + review: Status da revisão + reviewed: Revisado title: Hashtags trending_right_now: Em alta no momento + unique_uses_today: "%{count} tootando hoje" unreviewed: Não revisadas updated_msg: Configurações de hashtag atualizadas com sucesso title: Administração warning_presets: - add_new: Adicionar um novo + add_new: Adicionar novo delete: Excluir edit: Editar edit_preset: Editar o aviso pré-definido title: Gerenciar os avisos pré-definidos admin_mailer: new_pending_account: - body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou rejeitar essa aplicação. + body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou vetar. subject: Nova conta para revisão em %{instance} (%{username}) new_report: body: "%{reporter} denunciou %{target}" body_remote: Alguém da instância %{domain} reportou %{target} subject: Nova denúncia sobre %{instance} (#%{id}) + new_trending_tag: + body: 'A hashtag #%{name} está em alta hoje, mas não foi previamente revisada. Ela não estará visível publicamente a menos que você aprove, ou apenas salve o formulário do jeito que está para nunca mais ouvir falar dela.' + subject: Nova hashtag disponível para revisão em %{instance} (#%{name}) + aliases: + add_new: Criar alias + created_msg: Um novo alias foi criado com sucesso. Agora você pode se mudar. + deleted_msg: Alias excluído com sucesso. Não será mais possível se mudar para esta conta. + hint_html: Se você quiser migrar de uma outra conta para esta, você pode criar um alias aqui, o que é necessário antes que você possa migrar os seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada pela conta antiga. + remove: Desvincular alias appearance: - advanced_web_interface: Interface web avançada - advanced_web_interface_hint: 'Se você deseja usar toda a sua largura de tela, a interface web avançada permite que você configure muitas colunas diferentes para ver tantas informações ao mesmo tempo quanto você deseja: Início, notificações, linha do tempo federada, qualquer número de listas e hashtags.' + advanced_web_interface: Interface avançada de colunas + advanced_web_interface_hint: 'Se você deseja usar toda a sua largura de tela, a interface avançada permite que você configure muitas colunas diferentes para ver tantas informações ao mesmo tempo quanto você deseja: Página inicial, notificações, linha local, linha global, qualquer número de listas e hashtags.' animations_and_accessibility: Animações e acessibilidade - confirmation_dialogs: Popups de confirmação + confirmation_dialogs: Diálogos de confirmação discovery: Descobrir + localization: + body: Mastodon é traduzido por voluntários. + guide_link: https://br.crowdin.com/project/mastodon + guide_link_text: Todos podem contribuir. sensitive_content: Conteúdo sensível toot_layout: Layout do Toot application_mailer: - notification_preferences: Mudar preferências de e-mail + notification_preferences: Alterar preferências de e-mail salutation: "%{name}," - settings: 'Mudar e-mail de preferência: %{link}' - view: 'Visualizar:' + settings: 'Alterar e-mail de preferência: %{link}' + view: 'Ver:' view_profile: Ver perfil - view_status: Ver status + view_status: Ver toot applications: - created: Aplicação criada com sucesso - destroyed: Aplicação excluída com sucesso - invalid_url: A URL provida é inválida - regenerate_token: Regenerar token de acesso - token_regenerated: Token de acesso renegerado com sucesso + created: Aplicativo criado com sucesso + destroyed: Aplicativo excluído com sucesso + invalid_url: O link fornecido é inválido + regenerate_token: Gerar código de acesso + token_regenerated: Código de acesso gerado com sucesso warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém! - your_token: Seu token de acesso + your_token: Seu código de acesso auth: - apply_for_account: Pedir um convite + apply_for_account: Solicitar convite change_password: Senha - checkbox_agreement_html: Eu concordo com as regras do servidor e com os termos de serviço - checkbox_agreement_without_rules_html: Concordo com os termos do serviço + checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço + checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Excluir conta - delete_account_html: Se você deseja excluir a sua conta, você pode prosseguir para cá. Uma confirmação será requisitada. + delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui. Uma confirmação será solicitada. description: - prefix_invited_by_user: "@%{name} convidou você para entrar neste servidor do Mastodon!" - prefix_sign_up: Cadastre-se no Mastodon hoje! - suffix: Com uma conta, você poderá seguir pessoas, postar atualizações, trocar mensagens com usuários de qualquer servidor Mastodon e muito mais! + prefix_invited_by_user: "@%{name} convidou você para entrar nesta instância Mastodon!" + prefix_sign_up: Crie uma conta no Mastodon hoje! + suffix: Com uma conta, você poderá seguir pessoas, postar atualizações, trocar mensagens com usuários de qualquer instância Mastodon e muito mais! didnt_get_confirmation: Não recebeu instruções de confirmação? forgot_password: Esqueceu a sua senha? - invalid_reset_password_token: Token de modificação de senha é inválido ou expirou. Por favor, requisite um novo. + invalid_reset_password_token: Código de alteração de senha é inválido ou expirou. Por favor, solicite um novo. login: Entrar logout: Sair - migrate_account: Mudar para uma conta diferente + migrate_account: Mudar-se para outra conta migrate_account_html: Se você quer redirecionar essa conta para uma outra você pode configurar isso aqui. - or_log_in_with: Ou faça login com + or_log_in_with: Ou entre com providers: cas: CAS saml: SAML - register: Cadastrar-se + register: Criar conta registration_closed: "%{instance} não está aceitando novos membros" resend_confirmation: Reenviar instruções de confirmação reset_password: Redefinir senha security: Segurança set_new_password: Definir uma nova senha setup: - email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, você pode alterá-lo aqui e receber um novo e-mail de confirmação. + email_below_hint_html: Se o endereço de e-mail abaixo não for seu, você pode alterá-lo aqui e receber um novo e-mail de confirmação. email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver correto, você pode alterá-lo nas configurações da conta. + title: Configurações status: + account_status: Status da conta + confirming: Confirmação por e-mail pendente. + functional: Sua conta está totalmente operacional. + pending: Sua solicitação está com revisão pendente por parte de nossa equipe. Você receberá um e-mail se ela for aprovada. redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}. - trouble_logging_in: Problemas para se conectar? + trouble_logging_in: Problemas para entrar? authorize_follow: - already_following: Você já está seguindo esta conta + already_following: Você já segue error: Infelizmente, ocorreu um erro ao buscar a conta remota follow: Seguir - follow_request: 'Você mandou uma solicitação de seguidor para:' + follow_request: 'Você mandou uma solicitação para seguir para:' following: 'Sucesso! Você agora está seguindo:' post_follow: close: Ou você pode simplesmente fechar esta janela. - return: Exibir o perfil do usuário - web: Voltar para a página inicial + return: Mostrar o perfil do usuário + web: Voltar à página inicial title: Seguir %{acct} challenge: + confirm: Continuar + hint_html: "Dica: Não pediremos novamente sua senha pela próxima hora." invalid_password: Senha inválida prompt: Confirme sua senha para continuar datetime: distance_in_words: about_x_hours: "%{count}h" - about_x_months: "%{count} meses" - about_x_years: "%{count} anos" - almost_x_years: "%{count} anos" + about_x_months: "%{count}m" + about_x_years: "%{count}a" + almost_x_years: "%{count}a" half_a_minute: Agora - less_than_x_minutes: "%{count} meses" + less_than_x_minutes: "%{count}m" less_than_x_seconds: Agora - over_x_years: "%{count} anos" - x_days: "%{count} dias" - x_minutes: "%{count} minutos" - x_months: "%{count} meses" - x_seconds: "%{count} segundos" + over_x_years: "%{count}a" + x_days: "%{count}d" + x_minutes: "%{count}min" + x_months: "%{count}m" + x_seconds: "%{count}seg" deletes: challenge_not_passed: As informações que você inseriu não estão corretas - confirm_password: Insira a sua senha atual para verificar a sua identidade + confirm_password: Digite a sua senha atual para verificar a sua identidade confirm_username: Digite seu nome de usuário para confirmar o procedimento proceed: Excluir conta success_msg: A sua conta foi excluída com sucesso warning: before: 'Antes de prosseguir, por favor leia com cuidado:' - data_removal: Suas postagens e outros dados serão removidos permanentemente + caches: Conteúdo que foi armazenado em cache por outras instâncias pode continuar a existir + data_removal: Seus toots e outros dados serão removidos permanentemente + email_change_html: Você pode alterar seu endereço de e-mail sem excluir sua conta + email_contact_html: Se você ainda não recebeu, você pode enviar um e-mail pedindo ajuda para %{email} + email_reconfirmation_html: Se você não está recebendo o e-mail de confirmação, você pode solicitá-lo novamente + irreversible: Você não conseguirá restaurar ou reativar a sua conta + more_details_html: Para mais detalhes, consulte a Política de Privacidade. username_available: Seu nome de usuário ficará disponível novamente username_unavailable: Seu nome de usuário permanecerá indisponível directories: directory: Diretório de perfis explanation: Descobrir usuários baseado em seus interesses - explore_mastodon: Explorar %{title} + explore_mastodon: Explore o %{title} + domain_validator: + invalid_domain: não é um nome de domínio válido errors: - '400': The request you submitted was invalid or malformed. + '400': A solicitação enviada é inválida ou incorreta. '403': Você não tem permissão para ver esta página. '404': A página pela qual você está procurando não existe. - '406': This page is not available in the requested format. - '410': A página pela qual você está procurando não existe mais. + '406': Esta página não está disponível no formato solicitado. + '410': A página que você procura não existe mais. '422': - content: A verificação de segurança falhou. Você desativou o uso de cookies? - title: Verificação de segurança falhou - '429': Muitas requisições + content: Falha na verificação de segurança. Você desativou o uso de cookies? + title: Falha na verificação de segurança + '429': Muitas solicitações '500': - content: Desculpe, algo deu errado. + content: Desculpe, algo deu errado por aqui. title: Esta página não está certa - '503': The page could not be served due to a temporary server failure. - noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Ou, se quiser, experimente um dos apps nativos para o Mastodon em sua plataforma. + '503': A página não pôde ser carregada devido a uma falha temporária do servidor. + noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Ou, se quiser, experimente um dos aplicativos nativos para o Mastodon em sua plataforma. existing_username_validator: not_found: não foi possível encontrar um usuário local com esse nome de usuário not_found_multiple: não foi possível encontrar %{usernames} @@ -632,50 +717,53 @@ pt-BR: archive_takeout: date: Data download: Baixe o seu arquivo - hint_html: Você pode pedir um arquivo dos seus toots e mídia enviada. Os dados exportados estarão no formato ActivityPub, que podem ser lidos por qualquer software compatível. Você pode pedir um arquivo a cada 7 dias. + hint_html: Você pode pedir um arquivo dos seus toots e mídias enviadas. Os dados exportados estarão no formato ActivityPub, que podem ser lidos por qualquer software compatível. Você pode pedir um arquivo a cada 7 dias. in_progress: Preparando o seu arquivo... request: Solicitar o seu arquivo size: Tamanho blocks: Você bloqueou csv: CSV domain_blocks: Bloqueios de domínio - follows: Você segue lists: Listas mutes: Você silenciou storage: Armazenamento de mídia featured_tags: - add_new: Adicionar uma nova hashtag + add_new: Adicionar hashtag errors: limit: Você atingiu o limite de hashtags em destaque + hint_html: "O que são hashtags em destaque? Elas são mostradas no seu perfil público e permitem que as pessoas acessem seus toots públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." filters: contexts: home: Página inicial notifications: Notificações - public: Timelines públicas + public: Linhas públicas thread: Conversas edit: title: Editar filtro errors: invalid_context: Contexto inválido ou nenhum contexto informado - invalid_irreversible: O filtro irreversível só funciona com contexto de página inicial ou notificações + invalid_irreversible: O filtro irreversível só funciona com os contextos página inicial e notificações index: delete: Remover + empty: Não tem filtros. title: Filtros new: - title: Adicionar novo filtro + title: Adicionar filtro footer: developers: Desenvolvedores more: Mais… resources: Recursos + trending_now: Em alta agora generic: all: Tudo - changes_saved_msg: Mudanças salvas com sucesso! + changes_saved_msg: Alterações foram salvas com sucesso! copy: Copiar + no_batch_actions_available: Nenhuma ação em lote disponível nesta página order_by: Ordenar por - save_changes: Salvar mudanças + save_changes: Salvar alterações validation_errors: - one: Algo não está certo! Por favor, reveja o erro abaixo - other: Algo não está certo! Por favor, reveja os %{count} erros abaixo + one: Algo errado não está certo! Por favor, analise o erro abaixo + other: Algo errado não está certo! Por favor, analise os %{count} erros abaixo html_validator: invalid_markup: 'contém HTML inválido: %{error}' identity_proofs: @@ -683,24 +771,24 @@ pt-BR: authorize: Sim, autorizar authorize_connection_prompt: Autorizar essa conexão criptográfica? errors: - failed: A conexão criptográfica falhou. Por favor tente novamente a partir de %{provider}. + failed: Falha na conexão criptográfica. Por favor, tente novamente a partir de %{provider}. keybase: - invalid_token: Tokens keybase são hashs de assinatura e devem conter 66 caracteres hexa - verification_failed: Keybase não reconhece esse token como uma assinatura do usuário keybase %{kb_username}. Por favor tente novamente a partir de Keybase. - wrong_user: Não é possível criar uma prova para %{proving} estando logado como %{current}. Faça login como %{proving} e tente novamente. - explanation_html: Você pode conectar criptograficamente suas outras identidades, tais quais seu perfil Keybase. Isso permite outras pessoas de lhe enviarem mensagens encriptadas e confiar no conteúdo que você as envia. + invalid_token: Tokens keybase são hashes de assinatura e devem conter 66 caracteres hexa + verification_failed: Keybase não reconhece esse token como uma assinatura do usuário keybase %{kb_username}. Por favor, tente novamente a partir do Keybase. + wrong_user: Não foi possível criar uma prova para %{proving} como %{current}. Entre como %{proving} e tente novamente. + explanation_html: Você pode conectar criptograficamente suas outras identidades, tais quais seu perfil Keybase. Isso permite outras pessoas de lhe enviarem mensagens criptografadas e confiar no conteúdo que você as envia. i_am_html: Eu sou %{username} em %{service}. identity: Identidade inactive: Inativo - publicize_checkbox: 'E publique isso:' + publicize_checkbox: 'E toote isso:' publicize_toot: 'Está provado! Eu sou %{username} no %{service}: %{url}' status: Status da verificação view_proof: Ver prova imports: modes: merge: Juntar - merge_long: Manter os registros existentes e adicionar os novos - overwrite: Sobreescrever + merge_long: Manter os registros existentes e adicionar novos + overwrite: Sobrescrever overwrite_long: Substituir os registros atuais com os novos preface: Você pode importar dados que você exportou de outra instância, como a lista de pessoas que você segue ou bloqueou. success: Os seus dados foram enviados com sucesso e serão processados em instantes @@ -708,7 +796,7 @@ pt-BR: blocking: Lista de bloqueio domain_blocking: Lista de domínios bloqueados following: Pessoas que você segue - muting: Lista de silêncio + muting: Lista de silenciados upload: Enviar in_memoriam_html: Em memória. invites: @@ -722,35 +810,54 @@ pt-BR: '604800': 1 semana '86400': 1 dia expires_in_prompt: Nunca - generate: Gerar - invited_by: 'Você recebeu um convite de:' + generate: Gerar convite + invited_by: 'Você recebeu convite de:' max_uses: one: 1 uso other: "%{count} usos" max_uses_prompt: Sem limite - prompt: Gerar e compartilha links com outras pessoas para permitir acesso a essa instância + prompt: Gere e compartilhe links para permitir acesso a essa instância table: expires_at: Expira em uses: Usos title: Convidar pessoas lists: errors: - limit: Você alcançou o número máximo de listas + limit: Você atingiu o máximo de listas media_attachments: validations: - images_and_video: Não é possível anexar um vídeo a uma postagem que já contém imagens - too_many: Não é possível anexar mais de 4 imagens + images_and_video: Não foi possível anexar um vídeo a um toot que já contém imagens + too_many: Não foi possível anexar mais de 4 imagens migrations: - acct: username@domain da nova conta + acct: Mudou-se para + cancel: Cancelar redirecionamento + cancel_explanation: Cancelar o redirecionamento reativará a sua conta atual, mas não trará de volta os seguidores que não foram migrados para aquela conta. + cancelled_msg: Redirecionamento cancelado com sucesso. + errors: + already_moved: é a mesma conta que você migrou + missing_also_known_as: não está referenciando esta conta + move_to_self: não pode ser a conta atual + not_found: não pôde ser encontrado + on_cooldown: Você está no período de espera + followers_count: Seguidores no momento da mudança incoming_migrations: Migrando de outra conta + incoming_migrations_html: Para mover de outra conta para esta, você precisa criar um alias. moved_msg: Agora sua conta está redirecionando para %{acct} e seus seguidores estão sendo movidos. not_redirecting: Sua conta não está redirecionando para nenhuma outra conta atualmente. on_cooldown: Você migrou recentemente sua conta. Esta função ficará disponível novamente em %{count} dias. past_migrations: Migrações passadas proceed_with_move: Migrar seguidores redirecting_to: Sua conta está redirecionando para %{acct}. + set_redirect: Definir redirecionamento warning: + backreference_required: A nova conta deve primeiro ser configurada para que esta seja referenciada before: 'Antes de prosseguir, por favor leia com cuidado:' + cooldown: Depois de se mudar, há um período de espera para poder efetuar uma nova mudança + disabled_account: Sua conta não estará totalmente funcional ao término deste processo. Entretanto, você terá acesso à exportação de dados bem como à reativação. + followers: Esta ação moverá todos os seguidores da conta atual para a nova conta + only_redirect_html: Alternativamente, você pode apenas colocar um redirecionamento no seu perfil. + other_data: Nenhum outro dado será movido automaticamente + redirect: O perfil atual da sua conta será atualizado com um aviso de redirecionamento e também será excluído das pesquisas moderation: title: Moderação notification_mailer: @@ -759,44 +866,59 @@ pt-BR: body: Aqui está um breve resumo das mensagens que você perdeu desde o seu último acesso em %{since} mention: "%{name} te mencionou em:" new_followers_summary: - one: Você tem um novo seguidor! Yay! - other: Você tem %{count} novos seguidores! Maravilha! + one: Você tem um novo seguidor! Uia! + other: Você tem %{count} novos seguidores! AÊÊÊ! subject: one: "Uma nova notificação desde o seu último acesso \U0001F418" other: "%{count} novas notificações desde o seu último acesso \U0001F418" title: Enquanto você estava ausente... favourite: - body: 'Sua postagem foi favoritada por %{name}:' - subject: "%{name} favoritou a sua postagem" + body: "%{name} favoritou seu toot:" + subject: "%{name} favoritou seu toot" title: Novo favorito follow: - body: "%{name} está te seguindo!" - subject: "%{name} está te seguindo" + body: "%{name} te seguiu!" + subject: "%{name} te seguiu" title: Novo seguidor follow_request: - action: Gerenciar solicitações para seguir - body: "%{name} requisitou autorização para te seguir" + action: Gerenciar seguidores pendentes + body: "%{name} solicitou autorização para te seguir" subject: 'Seguidor pendente: %{name}' - title: Nova solicitação de seguidor + title: Nova solicitação para seguir mention: action: Responder - body: 'Você foi mencionado por %{name} em:' - subject: Você foi mencionado por %{name} + body: "%{name} te mencionou em:" + subject: "%{name} te mencionou" title: Nova menção reblog: - body: 'Sua postagem foi compartilhada por %{name}:' - subject: "%{name} compartilhou a sua postagem" - title: Novo compartilhamento + body: "%{name} deu boost no seu toot:" + subject: "%{name} deu boost no seu toot" + title: Novo boost + notifications: + email_events: Eventos para notificações por e-mail + email_events_hint: 'Selecione os eventos que deseja receber notificações:' + other_settings: Outras opções para notificações + number: + human: + decimal_units: + format: "%n%u" + units: + billion: BI + million: MI + quadrillion: QUA + thousand: MIL + trillion: TRI pagination: newer: Mais novo next: Próximo older: Mais antigo prev: Anterior + truncate: "…" polls: errors: - already_voted: Você já votou nessa enquete + already_voted: Enquete votada duplicate_options: contém itens duplicados - duration_too_long: está muito longe no futuro + duration_too_long: é muito longe no futuro duration_too_short: é curto demais expired: A enquete já terminou over_character_limit: não pode ter mais que %{max} caracteres em cada @@ -804,10 +926,14 @@ pt-BR: too_many_options: não pode ter mais que %{max} itens preferences: other: Outro + posting_defaults: Padrões de publicação + public_timelines: Linhas públicas relationships: activity: Atividade da conta dormant: Inativo - last_active: Ativo por último em + followers: Seguidores + following: Seguindo + last_active: Última atividade most_recent: Mais recente moved: Mudou-se mutual: Mútuo @@ -818,26 +944,26 @@ pt-BR: remove_selected_follows: Deixar de seguir usuários selecionados status: Status da conta remote_follow: - acct: Insira o seu usuário@domínio a partir do qual você deseja agir - missing_resource: Não foi possível encontrar a URL de direcionamento para a sua conta - no_account_html: Não tem uma conta? Você pode cadastrar-se aqui - proceed: Prosseguir para seguir - prompt: 'Você irá seguir:' - reason_html: "Por que esse passo é necessário? %{instance} pode não ser o servidor onde você se registrou, então precisamos redirecionar você para o seu servidor primeiro." + acct: Digite o seu usuário@domínio para continuar + missing_resource: Não foi possível encontrar o link de redirecionamento para sua conta + no_account_html: Não tem uma conta? Você pode criar uma aqui + proceed: Continue para seguir + prompt: 'Você seguirá:' + reason_html: "Por que esse passo é necessário? %{instance} pode não ser a instância onde você se hospedou, então precisamos redirecionar você para a sua instância primeiro." remote_interaction: favourite: - proceed: Proceder para favoritar - prompt: 'Você quer favoritar este toot:' + proceed: Continue para favoritar + prompt: 'Você favoritará este toot:' reblog: - proceed: Proceder para compartilhar - prompt: 'Você quer compartilhar esse toot:' + proceed: Continue para dar boost + prompt: 'Você dará boost neste toot:' reply: - proceed: Proceder para responder - prompt: 'Você quer responder à esse toot:' + proceed: Continue para responder + prompt: 'Você responderá este toot:' scheduled_statuses: - over_daily_limit: Você excedeu o limite de %{limit} toots planejados para esse dia - over_total_limit: Você excedeu o limite de %{limit} toots planejados - too_soon: A data planejada precisa ser no futuro + over_daily_limit: Você excedeu o limite de %{limit} toots agendados para esse dia + over_total_limit: Você excedeu o limite de %{limit} toots agendados + too_soon: A data agendada precisa ser no futuro sessions: activity: Última atividade browser: Navegador @@ -861,7 +987,7 @@ pt-BR: weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" - explanation: Estes são os navegadores que estão conectados com a sua conta do Mastodon. + explanation: Estes são os navegadores que estão conectados com a sua conta Mastodon. ip: IP platforms: adobe_air: Adobe Air @@ -871,19 +997,20 @@ pt-BR: firefox_os: Firefox OS ios: iOS linux: Linux - mac: Mac + mac: MacOS other: Plataforma desconhecida windows: Windows windows_mobile: Windows Mobile windows_phone: Windows Phone - revoke: Revogar - revoke_success: Sessão revogada com sucesso + revoke: Fechar + revoke_success: Sessão fechada com sucesso title: Sessões settings: account: Conta account_settings: Configurações da conta + aliases: Alias da conta appearance: Aparência - authorized_apps: Apps autorizados + authorized_apps: Aplicativos autorizados back: Voltar para o Mastodon delete: Exclusão de conta development: Desenvolvimento @@ -898,7 +1025,9 @@ pt-BR: preferences: Preferências profile: Perfil relationships: Seguindo e seguidores - two_factor_authentication: Autenticação em dois passos + two_factor_authentication: Autenticação de dois fatores + spam_check: + spam_detected: Esta é uma denúncia automática. Spam foi detectado. statuses: attached: description: 'Anexado: %{attached}' @@ -908,20 +1037,23 @@ pt-BR: video: one: "%{count} vídeo" other: "%{count} vídeos" - boosted_from_html: Compartilhada de %{acct_link} - content_warning: 'Aviso de conteúdo: %{warning}' + boosted_from_html: Boost de %{acct_link} + content_warning: 'Aviso de Conteúdo: %{warning}' disallowed_hashtags: - one: 'continha a hashtag não permitida: %{tags}' - other: 'continha as hashtags não permitidas: %{tags}' + one: 'continha hashtag não permitida: %{tags}' + other: 'continha hashtags não permitidas: %{tags}' language_detection: Detectar idioma automaticamente - open_in_web: Abrir na web + open_in_web: Abrir no navegador over_character_limit: limite de caracteres de %{max} excedido pin_errors: - limit: Você já fixou a quantidade máxima de toots - ownership: Toots de outras pessoas não podem ser fixados - private: Toot não-público não pode ser fixado - reblog: Um compartilhamento não pode ser fixado + limit: Quantidade máxima de toots excedida + ownership: Toots dos outros não podem ser fixados + private: Toots não-públicos não podem ser fixados + reblog: Boosts não podem ser fixados poll: + total_people: + one: "%{count} pessoa" + other: "%{count} pessoas" total_votes: one: "%{count} voto" other: "%{count} votos" @@ -930,124 +1062,125 @@ pt-BR: sign_in_to_participate: Entre para participar dessa conversa title: '%{name}: "%{quote}"' visibilities: - private: Apenas seguidores - private_long: Mostrar apenas para seguidores + private: Privado + private_long: Posta apenas para seguidores public: Público - public_long: Todos podem ver - unlisted: Não listado - unlisted_long: Todos podem ver, porém não será postado nas timelines públicas + public_long: Posta em linhas públicas + unlisted: Não-listado + unlisted_long: Não posta em linhas públicas stream_entries: pinned: Toot fixado - reblogged: compartilhou + reblogged: levou boost sensitive_content: Conteúdo sensível tags: does_not_match_previous_name: não corresponde ao nome anterior terms: body_html: | -

Política de privacidade

-

Que informação nós coletamos?

+

Política de Privacidade

+

Quais dados nós coletamos?

    -
  • Informação básica de conta: Se você se registrar nesse servidor, podemos pedir que você utilize um nome de usuário, um e-mail e uma senha. Você também pode adicionar informações extras como um nome de exibição e biografia; enviar uma imagem de perfil e imagem de cabeçalho. O nome de usuário, nome de exibição, biografia, imagem de perfil e imagem de cabeçalho são sempre listadas publicamente.
  • -
  • Posts, informação de seguidores e outras informações públicas: A lista de pessoas que você segue é listada publicamente, o mesmo é verdade para quem te segue. Quando você envia uma mensagem, a data e o horário são armazenados, assim como a aplicação que você usou para enviar a mensagem. Mensagens podem conter mídias anexadas, como imagens e vídeos. Posts públicos e não-listados estão disponíveis publicamente. Quando você destaca um post no seu perfil, isso também é uma informação pública. Seus posts são entregues aos seus seguidores e em alguns casos isso significa que eles são enviados para servidores diferentes e cópias são armazenadas nesses servidores. Quando você remove posts, essa informação também é entregue aos seus seguidores. O ato de compartilhar ou favoritar um outro post é sempre público.
  • -
  • Mensagens diretas e posts somente para seguidores: Todos os posts são armazenados e processados no servidor. Posts somente para seguidores são entregues aos seus seguidores e usuários que são mencionados neles; mensagens diretas são entregues somente aos usuários mencionados nelas. Em alguns casos isso significa que as mensagens são entregues para servidores diferentes e cópias são armazenadas nesses servidores. Nós fazemos esforços substanciais para limitar o acesso dessas mensagens somente para as pessoas autorizadas, mas outros servidores podem não fazer o mesmo. É importante portanto revisar os servidores à qual seus seguidores pertencem. Você pode usar uma opção para aprovar ou rejeitar novos seguidores manualmente nas configurações. Por favor tenha em mente que os operadores do servidor e de qualquer servidores do destinatário podem ver tais mensagens, e que os destinatários podem fazer capturas de tela, copiar ou de outra maneira compartilhar as mensagens. Não compartilhe informação confidencial pelo Mastodon.
  • -
  • IPs e outros metadados: Quando você faz se autentica, nos guardamos o endereço de IP que você usou ao se autenticar e o nome do seu navegador da internet. Todas as sessões autenticadas são disponíveis para serem analisadas e revogadas nas configurações. O último endereço de IP usado é guardado por até 12 meses. Nós também podemos reter históricos do servidor que incluem o endereço de IP de todas as requisições ao nosso servidor.
  • +
  • Dados básicos de conta: Se você criar conta nesta instância, um nome de usuário, um e-mail e uma senha serão exigidos. Você também pode adicionar dados extras como nome de exibição, biografia, imagem de perfil e capa. Com exceção do e-mail e da senha, os dados citados sempre são públicos.
  • +
  • Toots, seguindo e outros dados públicos: A lista de pessoas que você segue e a sua lista de seguidores são públicas. Ao enviar um toot, a data, a hora e o aplicativo usado são armazenados. Toots podem conter mídias anexadas, como áudios, imagens e vídeos. Toots públicos e não-listados são visíveis publicamente. Os toots fixados no seu perfil são públicos. Seus toots são enviados aos seus seguidores, em alguns casos isso significa que os toots são enviados para instâncias diferentes e cópias são armazenadas lá. Quando você exclui toots, essa informação também é enviada aos seus seguidores. O ato de dar boost ou favoritar outro toot é sempre público.
  • +
  • Mensagens Diretas e toots privados: Todos os toots são armazenados e processados na instância. Toots privados são enviados aos seus seguidores e aos usuários mencionados neles; Mensagens Diretas (ou toots diretos) são enviadas somente aos usuários mencionados nelas. Em alguns casos isso significa que os toots são enviados para instâncias diferentes e cópias são armazenadas lá. Nós trabalhamos constantemente para limitar o acesso a estes toots somente às pessoas autorizadas, porém outras instâncias podem não fazer o mesmo. Portanto, é importante analisar as instâncias dos seus seguidores. Você pode trancar a conta para aprovar ou vetar novos seguidores manualmente nas configurações. Por favor, tenha em mente que os operadores da instância em que se está e das instâncias receptoras podem ver tais toots, e que os destinatários podem fazer capturas de tela, copiar ou usar outra maneira para compartilhar os toots. Não compartilhe informação confidencial pelo Mastodon.
  • +
  • IPs e outros metadados: Ao entrar na sua conta, nós armazenamos o seu endereço de IP e o nome do navegador usado. Todas as sessões abertas estão disponíveis para serem analisadas e revogadas nas configurações. O último endereço de IP usado é armazenado por até 12 meses. Nós também podemos reter históricos da instância que incluem o endereço de IP de todas as conexões à nossa instância.

-

Para que usamos os seus dados?

+

Como usamos os seus dados?

-

Toda informação que coletamos de você pode ser usada das seguintes maneiras:

+

Todo dado que coletamos pode ser usado das seguintes maneiras:

    -
  • Para prover a funcionalidade básica do Mastodon. Você só pode interagir com o conteúdo de outras pessoas e postar seu próprio conteúdo estando autenticado. Por exemplo, você pode seguir outras pessoas para ver seus posts combinados na sua linha do tempo personalizada.
  • +
  • Para prover a funcionalidade básica do Mastodon. Você só pode interagir com o conteúdo de outras pessoas e postar seu próprio conteúdo usando uma conta. Por exemplo, você pode seguir outras pessoas para ver seus toots na sua própria linha do tempo personalizada.
  • Para auxiliar na moderação da comunidade, por exemplo ao comparar o seu endereço de IP com outros endereços de IP conhecidos para determinar evasão de banimento e outras violações.
  • -
  • O endereço de email que você prover pode ser usado para lhe enviar informação, notificação sobre outras pessoas interagindo com o seu conteúdo ou lhe enviando mensagens e para responder a questões ou outros pedidos.
  • +
  • O endereço de e-mail que você fornecer pode ser usado para te enviar informações, notificações sobre outras pessoas interagindo com o seu conteúdo ou contigo e para responder a questões ou outras solicitações.

-

Como protegemos as suas informações?

+

Como protegemos seus dados?

-

Nós implementamos diversas medidas de segurança para manter a segurança das suas informações pessoais quando você as acessa ou as envia. Entre outras coisas, sua sessão do navegador, bem como o tráfego entre as aplicações e a API são asseguradas usando SSL e a sua senha é guardada usando um algoritmo forte de encriptação de mão única. Você pode ativar autenticação em dois fatores como forma de aumentar a segurança no acesso à sua conta.

+

Nós implementamos diversas medidas de segurança para manter suas informações pessoais seguras quando você as acessa ou as envia. Entre outras coisas, sua sessão do navegador, bem como o tráfego entre os aplicativos e a API são asseguradas usando SSL e a sua senha é guardada usando um algoritmo forte de criptografia de mão única. Você pode ativar autenticação em dois fatores como forma de aumentar a segurança no acesso à sua conta.


Qual é a nossa política de retenção de dados?

-

Nós fazemos esforços substanciais para:

+

Nós trabalhamos constantemente para:

    -
  • Reter o histórico do servidor contendo os endereços de IP de todas as requisições feitas à esse servidor, e com respeito a quanto tempo esses logs são retidos, não mais que 90 dias.
  • -
  • Reter o endereço de IP associado com usuários registrados não mais que 12 meses.
  • +
  • Reter o histórico da instância contendo os endereços de IP de todas as conexões a essa instância. O histórico é mantido por não mais que 90 dias.
  • +
  • Reter os endereços de IP associados à usuários da instância por não mais que 12 meses.
-

Você pode pedir e fazer o download de um arquivo de todo o conteúdo da sua conta, incluindo as suas mensagens, suas mídias anexadas, imagem de perfil e imagem de topo.

+

Você pode solicitar e baixar um arquivo de todo o conteúdo da sua conta, incluindo seus toots, suas mídias, imagem de perfil e capa.

-

Você pode remover irreversivelmente a sua conta a qualquer momento.

+

YVocê pode excluir a sua conta irreversivelmente a qualquer momento.


Nós usamos cookies?

-

Sim. Cookies são pequenos arquivos que um site ou serviço transfere ao seu disco rígido do seu computador através do seu navegador da web (se você permitir). Esses cookies permitem ao site conhecer seu navegador e, se você tiver uma conta registrada, associá-lo a sua conta.

+

Sim. Cookies são pequenos arquivos que um site ou serviço baixa através do seu navegador (se você permitir). Esses cookies permitem ao site conhecer seu navegador e, se você tiver uma conta, associá-lo a ela.

-

Nós usamos cookies para compreender e salvar suas preferências para visitas futuras.

+

Nós usamos cookies para salvar suas preferências para futuras visitas.


-

Nós compartilhamos qualquer informação para terceiros?

+

Nós compartilhamos algum dado para terceiros?

-

Nós não vendemos, trocamos ou transferimos de qualquer maneira informação que pode lhe identificar à terceiros. Isso não inclui terceiros que podemos nos auxiliam a operar o nosso site, realizar nossos negócios ou lhe prestar serviços, contanto que esses terceiros se comprometam a manter essa informação confidencial. Nós podemos também divulgar informação quando acreditamos que é apropriado para obedecer a lei, para fazer cumprir nossas políticas ou proteger nossos direitos, propriedade ou segurança ou o direito, propriedade e segurança de outrem.

+

Nós não vendemos, trocamos ou compartilhamos de qualquer maneira dados que possam te identificar à terceiros. Isso não inclui terceiros confiáveis que nos auxiliam a operar o nosso site, realizar nosso serviço ou prestar assistência, contanto que esses terceiros se comprometam a manter essa informação confidencial. Nós podemos também divulgar informação quando acreditamos que é apropriado para obedecer a lei, para fazer cumprir nossas políticas ou proteger os nossos direitos, propriedade ou segurança, ou de outrém.

-

Seu conteúdo público pode ser descarregado por outros servidores na rede. Suas mensagens públicas e somente para seus seguidores são entregues aos servidores onde seus seguidores resides e as suas mensagens diretas são entregues ao servidor dos usuários mencionados nelas, contanto que esses seguidores ou usuários residam em um servidor diferente deste.

+

Seu conteúdo público pode ser acessado por outras instâncias na rede. Seus toots públicos e privados são enviados às instâncias dos seus seguidores e seus toots diretos são enviados às instâncias dos usuários mencionados neles, contanto que esses seguidores ou usuários estejam em uma instância diferente desta.

-

Quando você autoriza uma aplicação a usar sua conta, dependendo do escopo de permissões que você aprovar, a aplicação pode acessar sua informação pública, a lista de usuários que você segue, seus seguidores, suas listas, suas mensagens e suas mensagens favoritas. Aplicações nunca podem acessar o seu endereço de e-mail ou senha.

+

Quando você autoriza um aplicativo a usar sua conta, dependendo do nível de autorização das permissões que você aprovar, o aplicativo pode acessar seus dados públicos, a lista de usuários que você segue, seus seguidores, suas listas, suas Mensagens Diretas e seus toots favoritos. Aplicativos nunca podem acessar o seu endereço de e-mail ou senha.


Uso desse site por crianças

-

Se este servidor está na UE ou no EEE: Nosso site, produto e serviços são direcionados à pessoas que tem ao menos 16 anos de idade. Se você tem menos de 16 anos, de acordo com os requisitos da RGPD (Regulamento Geral sobre a Proteção de Dados) não use este site.

+

Se a instância está na UE ou no EEE: Nosso site, produto e serviço são direcionados às pessoas que tem ao menos 16 anos de idade. Se você tem menos de 16 anos, de acordo com os requisitos da RGPD (Regulamento Geral sobre Proteção de Dados) não use este site.

-

Se este servidor está hospedado nos EUA: Nosso site, produto e serviços são direcionados à pessoas que tem ao menos 13 anos de idade. Se você tem menos de 13 anos, de acordo com os requerimentos da COPPA (Children's Online Privacy Protection Act) não use este site

+

Se esta instância está nos EUA: Nosso site, produto e serviço são direcionados às pessoas que tem ao menos 13 anos de idade. Se você tem menos de 13 anos, de acordo com os requerimentos da COPPA (Children's Online Privacy Protection Act) não use este site

-

Os requisitos da lei podem ser diferentes se esse servidor estiver em outra jurisdição

+

Os requisitos da lei podem ser diferentes em outra jurisdição.


-

Mudanças à nossa política de privacidade

+

Alterações na nossa Política de Privacidade

-

Se decidirmos mudar nossa política de privacidade, nós iremos disponibilizar as mudanças nesta página.

+

Se decidirmos mudar nossa Política de Privacidade, iremos disponibilizar as alterações nesta página.

-

Este documento é CC-BY-SA. Ele foi atualizado pela última vez em 7 de março de 2018.

+

CC-BY-SA. Atualizado pela última vez em 7 de março de 2018.

-

Adaptado originalmente a partir da política de privacidade Discourse.

- title: "%{instance} Termos de Serviço e Política de Privacidade" +

Adaptado originalmente de Política de Privacidade Discourse.

+ title: Termos de Serviço e Política de Privacidade de %{instance} themes: contrast: Mastodon (Alto contraste) - default: Mastodon (Escuro) - mastodon-light: Mastodon (claro) + default: Mastodon (Noturno) + mastodon-light: Mastodon (Diurno) time: formats: - month: "%B de %Y" + default: "%H:%M em %d de %b de %Y" + month: "%b de %Y" two_factor_authentication: - code_hint: Insira o código gerado pelo seu aplicativo auteticador para confirmar - description_html: Se você ativar a autenticação em dois passos, o acesso à sua conta exigirá posse de seu celular, que irá gerar tokens para validação. + code_hint: Digite o código de dois fatores gerado pelo aplicativo no seu celular + description_html: Se você ativar a autenticação de dois fatores, o acesso à sua conta exigirá um celular, que gerará códigos para validação. disable: Desativar enable: Ativar - enabled: A autenticação em dois passos está ativada - enabled_success: Autenticação em dois passos ativada com sucesso + enabled: Autenticação de dois fatores ativada + enabled_success: Autenticação de dois fatores ativada com sucesso generate_recovery_codes: Gerar códigos de recuperação - instructions_html: "Escaneie este QR Code no Google Authenticator ou aplicativo TOTP similar com o seu celular. De agora em diante, este aplicativo irá gerar tokens que você terá que inserir quando desejar acessar a sua conta." - lost_recovery_codes: Códigos de recuperação permitem que você recupere acesso à sua conta caso perca o seu celular. Se você perdeu seus códigos de recuperação, você pode gerá-los novamente aqui. Seus códigos de recuperaçãp anteriores serão invalidados. - manual_instructions: 'Se você não pode escanear o QR code e precisa inserí-lo manualmente, aqui está o segredo em texto:' + instructions_html: "Escaneie este QR Code no Google Authenticator ou aplicativo TOTP similar no seu celular. De agora em diante, este aplicativo gerará códigos que você terá que inserir ao entrar na sua conta." + lost_recovery_codes: Códigos de recuperação permitem que você recupere o acesso à sua conta caso perca o seu celular. Se você perdeu seus códigos de recuperação, você pode gerá-los novamente aqui. Seus códigos de recuperação anteriores serão invalidados. + manual_instructions: 'Se você não consegue escanear o QR code, aqui está o segredo em texto:' recovery_codes: Códigos de recuperação de reserva - recovery_codes_regenerated: Códigos de recuperação regenerados com sucesso - recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para reganhar acesso à sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los com outros documentos importantes. + recovery_codes_regenerated: Códigos de recuperação gerados com sucesso + recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para acessar a sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los junto com outros documentos importantes. setup: Configurar - wrong_code: O código inserido é invalido! O horário do servidor e o horário do seu aparelho estão corretos? + wrong_code: Código de dois fatores inválido. O horário da instância e o horário do seu celular estão corretos? user_mailer: backup_ready: explanation: Você pediu um backup completo da sua conta no Mastodon. E agora está pronto para ser baixado! @@ -1055,45 +1188,46 @@ pt-BR: title: Baixar arquivo warning: explanation: - disable: Enquanto sua conta está congelada, seus dados estão intactos, mas você não pode realizar nenhuma ação até que sua conta seja desbloqueada. - silence: Enquanto sua conta está limitada, somente pessoas que já estão seguindo você poderão ver seus toots nesse servidor, e você pode ser excluído de diversas listagens públicas. No entanto, outros ainda podem seguir você manualmente. - suspend: Sua conta está suspensa e todos os seus toots e mídias foram irreversivelmente removidas desse servidor e de servidores onde você tinha seguidores. + disable: Enquanto sua conta está bloqueada, seus dados estão intactos, mas você não pode realizar nenhuma ação até que sua conta seja desbloqueada. + silence: Enquanto sua conta está silenciada, somente pessoas que já estão seguindo você poderão ver seus toots nessa instância, e você pode ser excluído de várias listas públicas. No entanto, outros ainda podem te seguir manualmente. + suspend: Sua conta foi banida e todos os seus toots e mídias foram irreversivelmente excluídos desta instância e das instâncias dos seus seguidores. get_in_touch: Você pode responder a este e-mail para entrar em contato com a equipe de %{instance}. - review_server_policies: Revisar as políticas do servidor + review_server_policies: Revisar as políticas da instância + statuses: 'Especificamente, para:' subject: - disable: Sua conta %{acct} foi congelada + disable: Sua conta %{acct} foi bloqueada none: Aviso para %{acct} - silence: Sua conta %{acct} foi limitada - suspend: Sua conta %{acct} foi suspensa + silence: Sua conta %{acct} foi silenciada + suspend: Sua conta %{acct} foi banida title: - disable: Conta congelada + disable: Conta bloqueada none: Aviso - silence: Conta limitada - suspend: Conta suspensa + silence: Conta silenciada + suspend: Conta banida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Você pode customizar o seu perfil enviando um avatar, uma imagem de topo, mudando seu nome de exibição, dentre outros. Se você gostaria de aprovar novos seguidores antes que eles possam seguir você, você pode trancar a sua conta. - explanation: Aqui estão algumas dicas para te ajudar a começar - final_action: Comece a postar - final_step: 'Comece a postar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas por outros, por exemplo nas timelines locais e buscando hashtags. Você pode querer fazer uma introdução usando a hashtag #introduções, ou em inglês usando a hashtag #introductions.' + edit_profile_step: Você pode personalizar o seu perfil enviando uma imagem de perfil, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles verem seus toots, você pode trancar a sua conta. + explanation: Aqui estão algumas dicas para você começar + final_action: Comece a tootar + final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.' full_handle: Seu nome de usuário completo - full_handle_hint: Isso é o que você diz aos seus amigos para que eles possam te mandar mensagens ou te seguir a partir de outra instância. - review_preferences_action: Mudar as preferências - review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus posts tenham por padrão. Se você não sofre de enjôo com movimento, você pode habilitar GIFs animando automaticamente. + full_handle_hint: Isso é o que você compartilha com aos seus amigos para que eles possam te mandar toots ou te seguir a partir de outra instância. + review_preferences_action: Alterar preferências + review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus toots tenham por padrão. Se você não sofre de enjoo com movimento, você pode habilitar GIFs animado automaticamente. subject: Boas-vindas ao Mastodon - tip_federated_timeline: A timeline global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas que outras pessoas da sua instância estão seguindo, então não é a rede completa. - tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as timelines local e global. - tip_local_timeline: A timeline local é uma visão contínua das pessoas que estão em %{instance}. Esses são seus vizinhos próximos! - tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Vai funcionar quase como um aplicativo nativo! + tip_federated_timeline: A linha global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas de instâncias que a sua instância conhece, então não é a rede completa. + tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as linhas local e global. + tip_local_timeline: A linha local é uma visão contínua das pessoas em %{instance}. Estes são seus vizinhos! + tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Será como um aplicativo nativo! tips: Dicas - title: Boas-vindas a bordo, %{name}! + title: Boas vindas, %{name}! users: - follow_limit_reached: Você não pode seguir mais que %{limit} pessoas - invalid_email: O endereço de e-mail é inválido - invalid_otp_token: Código de autenticação inválido + follow_limit_reached: Você não pode seguir mais de %{limit} pessoas + invalid_email: Endereço de e-mail inválido + invalid_otp_token: Código de dois fatores inválido otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email} - seamless_external_login: Você está logado usando um serviço externo, então configurações de e-mail e senha não estão disponíveis. - signed_in_as: 'Acesso como:' + seamless_external_login: Você entrou usando um serviço externo, então configurações de e-mail e senha não estão disponíveis. + signed_in_as: 'Entrou como:' verification: - explanation_html: 'Você pode verificar-se como tendo posse dos links nos metadados do seu perfil. Para isso, o site conectado deve conter um link de volta para o seu perfil do Mastodon. O link de volta deve conter um atributo rel="me". O conteúdo ou texto do link não importa. Aqui está um exemplo:' + explanation_html: 'Você pode verificar os links nos metadados do seu perfil. Para isso, o site citado deve conter um link de volta para o seu perfil do Mastodon. O link de volta deve conter um atributo rel="me". O conteúdo ou texto do link não importa. Aqui está um exemplo:' verification: Verificação diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 3c5b1ca9a..4be5024ad 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -39,6 +39,10 @@ pt-PT: unavailable_content_description: domain: Servidor reason: Motivo + rejecting_media: 'Arquivos de média destes servidores não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:' + silenced: 'Publicações destes servidores serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:' + suspended: 'Nenhum dado desses servidores será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores desses servidores impossível:' + unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor específico. user_count_after: one: utilizador other: utilizadores @@ -46,6 +50,8 @@ pt-PT: what_is_mastodon: O que é o Mastodon? accounts: choices_html: 'escolhas de %{name}:' + endorsements_hint: Você pode, através da interface web, escolher endossar pessoas que segue, e elas aparecerão aqui. + featured_tags_hint: Você pode destacar hashtags específicas que serão exibidas aqui. follow: Seguir followers: one: Seguidor @@ -54,8 +60,10 @@ pt-PT: joined: Aderiu %{date} last_active: última vez activo link_verified_on: A posse deste link foi verificada em %{date} + media: Média moved_html: "%{name} mudou-se para %{new_profile_link}:" network_hidden: Esta informação não está disponível + never_active: Nunca nothing_here: Não há nada aqui! people_followed_by: Pessoas seguidas por %{name} people_who_follow: Pessoas que seguem %{name} @@ -70,7 +78,9 @@ pt-PT: roles: admin: Administrador bot: Robô + group: Grupo moderator: Moderador + unavailable: Perfil indisponível unfollow: Deixar de seguir admin: account_actions: @@ -82,7 +92,10 @@ pt-PT: delete: Eliminar destroyed_msg: Nota de moderação excluída com sucesso! accounts: + approve: Aprovar + approve_all: Aprovar todos are_you_sure: Tens a certeza? + avatar: Imagem de Perfil by_domain: Domínio change_email: changed_msg: E-mail da conta alterado com sucesso! @@ -111,9 +124,11 @@ pt-PT: header: Cabeçalho inbox_url: URL da caixa de entrada invited_by: Convidado por + ip: IP joined: Aderiu location: all: Todos + local: Local remote: Remoto title: Local login_status: Estado de início de sessão @@ -122,21 +137,26 @@ pt-PT: moderation: active: Activo all: Todos + pending: Pendente silenced: Silenciados suspended: Supensos title: Moderação moderation_notes: Notas de moderação most_recent_activity: Actividade mais recente most_recent_ip: IP mais recente + no_account_selected: Nenhuma conta foi alterada porque nenhuma foi selecionada no_limits_imposed: Sem limites impostos not_subscribed: Não inscrito + pending: Pendente de revisão perform_full_suspension: Fazer suspensão completa promote: Promover protocol: Protocolo public: Público push_subscription_expires: A Inscrição PuSH expira - redownload: Atualizar avatar - remove_avatar: Remover o avatar + redownload: Atualizar perfil + reject: Rejeitar + reject_all: Rejeitar todas + remove_avatar: Remover a imagem de perfil remove_header: Remover o cabeçalho resend_confirmation: already_confirmed: Este usuário já está confirmado @@ -152,6 +172,7 @@ pt-PT: staff: Equipa user: Utilizador search: Pesquisar + search_same_ip: Outros utilizadores com o mesmo IP shared_inbox_url: URL da caixa de entrada compartilhada show: created_reports: Relatórios gerados por esta conta @@ -161,6 +182,7 @@ pt-PT: statuses: Status subscribe: Inscrever-se suspended: Suspensa + time_in_queue: Aguardando na fila %{time} title: Contas unconfirmed_email: E-mail não confirmado undo_silenced: Desfazer silenciar @@ -168,6 +190,8 @@ pt-PT: unsubscribe: Cancelar inscrição username: Usuário warn: Aviso + web: Web + whitelisted: Está na lista branca action_logs: actions: assigned_to_self_report: "%{name} atribuiu o relatório %{target} a si próprios" @@ -175,12 +199,14 @@ pt-PT: confirm_user: "%{name} confirmou o endereço de e-mail do utilizador %{target}" create_account_warning: "%{name} enviou um aviso para %{target}" create_custom_emoji: "%{name} enviado emoji novo %{target}" + create_domain_allow: "%{name} colocou o domínio %{target} na lista branca" create_domain_block: "%{name} bloqueou o domínio %{target}" create_email_domain_block: "%{name} adicionou na lista negra o domínio de correio electrónico %{target}" demote_user: "%{name} rebaixou o utilizador %{target}" destroy_custom_emoji: "%{name} destruiu o emoji %{target}" + destroy_domain_allow: "%{name} removeu o domínio %{target} da lista branca" destroy_domain_block: "%{name} desbloqueou o domínio %{target}" - destroy_email_domain_block: "%{name} adicionou na lista branca o domínio de correio electrónico %{target}" + destroy_email_domain_block: "%{name} retirou o domínio de e-mail %{target} da lista negra" destroy_status: "%{name} removeu o publicação feita por %{target}" disable_2fa_user: "%{name} desactivou o requerimento de autenticação em dois passos para o utilizador %{target}" disable_custom_emoji: "%{name} desabilitou o emoji %{target}" @@ -189,7 +215,7 @@ pt-PT: enable_user: "%{name} ativou o acesso para o utilizador %{target}" memorialize_account: "%{name} transformou a conta de %{target} em um memorial" promote_user: "%{name} promoveu o utilizador %{target}" - remove_avatar_user: "%{name} removeu o avatar de %{target}" + remove_avatar_user: "%{name} removeu a imagem de perfil de %{target}" reopen_report: "%{name} reabriu o relatório %{target}" reset_password_user: "%{name} restabeleceu a palavra-passe do utilizador %{target}" resolve_report: "%{name} recusou o relatório %{target}" @@ -203,18 +229,24 @@ pt-PT: deleted_status: "(apagou a publicação)" title: Registo de auditoria custom_emojis: + assign_category: Atribuir categoria by_domain: Domínio copied_msg: Cópia local do emoji criada com sucesso copy: Copiar copy_failed_msg: Não foi possível criar uma cópia local deste emoji + create_new_category: Criar nova categoria created_msg: Emoji criado com sucesso! delete: Apagar destroyed_msg: Emoji destruído com sucesso! disable: Desativar + disabled: Desativado disabled_msg: Desativado com sucesso este emoji + emoji: Emoji enable: Ativar + enabled: Ativado enabled_msg: Ativado com sucesso este emoji image_hint: PNG de até 50KB + list: Lista listed: Listado new: title: Adicionar novo emoji customizado @@ -222,11 +254,14 @@ pt-PT: shortcode: Código de atalho shortcode_hint: Pelo menos 2 caracteres, apenas caracteres alfanuméricos e underscores title: Emojis customizados + uncategorized: Sem categoria + unlist: Não listar unlisted: Não listado update_failed_msg: Não foi possível atualizar esse emoji updated_msg: Emoji atualizado com sucesso! upload: Enviar dashboard: + authorized_fetch_mode: Modo seguro backlog: trabalhos atrasados config: Configuração feature_deletions: Eliminações da conta @@ -234,12 +269,17 @@ pt-PT: feature_profile_directory: Directório de perfil feature_registrations: Registos feature_relay: Repetidor da federação + feature_spam_check: Anti-spam + feature_timeline_preview: Pré-visualização da cronologia features: Componentes hidden_service: Federação com serviços escondidos open_reports: relatórios abertos + pending_tags: hashtags a aguardar revisão + pending_users: utilizadores a aguardar revisão recent_users: Utilizadores recentes search: Pesquisa com texto completo single_user_mode: Modo de utilizador único + software: Software space: Utilização do espaço title: Painel de controlo total_users: total de utilizadores @@ -247,11 +287,19 @@ pt-PT: week_interactions: interacções desta semana week_users_active: activo esta semana week_users_new: utilizadores nesta semana + whitelist_mode: Modo lista branca + domain_allows: + add_new: Colocar domínio na lista branca + created_msg: Domínio foi adicionado à lista branca com sucesso + destroyed_msg: Domínio foi removido da lista branca + undo: Remover da lista branca domain_blocks: add_new: Adicionar novo created_msg: Bloqueio do domínio está a ser processado destroyed_msg: Bloqueio de domínio está a ser removido domain: Domínio + edit: Editar bloqueio de domínio + existing_domain_block_html: Você já impôs limites mais restritivos a %{name}, é necessário primeiro desbloqueá-lo. new: create: Criar bloqueio hint: O bloqueio de dominio não vai previnir a criação de entradas na base de dados, mas irá retroativamente e automaticamente aplicar métodos de moderação específica nessas contas. @@ -261,6 +309,10 @@ pt-PT: silence: Silenciar suspend: Suspender title: Novo bloqueio de domínio + private_comment: Comentário privado + private_comment_hint: Comentário sobre essa limitação de domínio para uso interno pelos moderadores. + public_comment: Comentário público + public_comment_hint: Comentário sobre essa limitação de domínio para o público geral, se ativada a divulgação da lista de limitações de domínio. reject_media: Rejeitar ficheiros de media reject_media_hint: Remove localmente arquivos armazenados e rejeita fazer guardar novos no futuro. Irrelevante na suspensão reject_reports: Rejeitar relatórios @@ -280,12 +332,14 @@ pt-PT: title: Remover o bloqueio de domínio de %{domain} undo: Anular undo: Anular + view: Ver domínios bloqueados email_domain_blocks: add_new: Adicionar novo created_msg: Bloqueio de domínio de email criado com sucesso delete: Eliminar destroyed_msg: Bloqueio de domínio de email excluído com sucesso domain: Domínio + empty: Nenhum domínio de e-mail atualmente na lista negra. new: create: Adicionar domínio title: Novo bloqueio de domínio de email @@ -334,17 +388,25 @@ pt-PT: pending: À espera da aprovação do repetidor save_and_enable: Guardar e ativar setup: Configurar uma ligação ao repetidor - signatures_not_enabled: Relays não funcionarão corretamente enquanto o modo seguro ou o modo whitelist estiver activado + signatures_not_enabled: Relays não funcionarão corretamente enquanto o modo seguro ou o modo lista branca estiverem ativados status: Estado title: Retransmissores report_notes: created_msg: Relatório criado com sucesso! destroyed_msg: Relatório apagado com sucesso! reports: + account: + notes: + one: "%{count} nota" + other: "%{count} notas" + reports: + one: "%{count} relatório" + other: "%{count} relatórios" action_taken_by: Ação tomada por are_you_sure: Tens a certeza? assign_to_self: Atribuí-me a mim assigned: Atribuído ao moderador + by_target_domain: Domínio da conta reportada comment: none: Nenhum created_at: Relatado @@ -359,11 +421,11 @@ pt-PT: reopen: Reabrir relatório report: 'Denúncia #%{id}' reported_account: Conta denunciada - reported_by: Denúnciada por + reported_by: Reportado por resolved: Resolvido resolved_msg: Relatório resolvido com sucesso! status: Estado - title: Denúncias + title: Relatórios unassign: Não atribuir unresolved: Por resolver updated_at: Atualizado @@ -390,6 +452,8 @@ pt-PT: users: Para utilizadores locais que se encontrem autenticados domain_blocks_rationale: title: Mostrar motivo + enable_bootstrap_timeline_accounts: + title: Habilitar seguidores predefinidos para novos utilizadores hero: desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentado o thumbnail do servidor title: Imagem Hero @@ -453,12 +517,16 @@ pt-PT: trendable_by_default: desc_html: Afecta as hashtags que ainda não tenham sido proibidas title: Permitir hashtags em tendência sem revisão prévia + trends: + desc_html: Exibir publicamente hashtags atualmente em destaque que já tenham sido revistas anteriormente + title: Hashtags em destaque statuses: back_to_account: Voltar para página da conta batch: delete: Eliminar nsfw_off: NSFW OFF nsfw_on: NSFW ON + deleted: Apagado failed_to_execute: Falhou ao executar media: title: Média @@ -466,6 +534,24 @@ pt-PT: no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado title: Estado das contas with_media: Com media + tags: + accounts_today: Usos únicos hoje + accounts_week: Usos únicos desta semana + breakdown: Descrição do consumo atual por fonte + context: Contexto + directory: No diretório + in_directory: "%{count} no diretório" + last_active: Última actividade + most_popular: Mais popular + most_recent: Mais recente + name: Hashtag + review: Estado da revisão + reviewed: Revista + title: Hashtags + trending_right_now: Tendências agora + unique_uses_today: "%{count} publicando hoje" + unreviewed: Não revista + updated_msg: Definições de hashtags actualizadas com sucesso title: Administração warning_presets: add_new: Adicionar novo @@ -474,12 +560,37 @@ pt-PT: edit_preset: Editar o aviso predefinido title: Gerir os avisos predefinidos admin_mailer: + new_pending_account: + body: Em baixo, estão os detalhes da nova conta. Pode aprovar ou rejeitar esta inscrição. + subject: Nova conta para revisão em %{instance} (%{username}) new_report: body: "%{reporter} relatou %{target}" body_remote: Alguém de %{domain} relatou %{target} subject: Novo relatório sobre %{instance} (#%{id}) + new_trending_tag: + body: 'A hashtag #%{name} está hoje a destacar-se, mas não foi anteriormente revista. Ela não será exibida publicamente a menos que você o permita, ou limite-se a salvar o formulário tal como está, para nunca mais ouvir falar dela.' + subject: Nova hashtag para revisão em %{instance} (#%{name}) + aliases: + add_new: Criar pseudónimo + created_msg: Criou com sucesso um novo pseudónimo. Pode agora iniciar a migração da conta antiga. + deleted_msg: Removido o pseudónimo com sucesso. Migrar dessa conta para esta não será mais possível. + hint_html: Se quiser mudar de outra conta para esta, pode criar aqui um pseudónimo, que é necessário antes de poder prosseguir com a migração de seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada a partir da conta antiga. + remove: Desvincular pseudónimo + appearance: + advanced_web_interface: Interface web avançada + advanced_web_interface_hint: 'Se quiser utilizar toda a largura do seu ecrã, a interface web avançada permite-lhe configurar várias colunas diferentes para ver tanta informação ao mesmo tempo quanto quiser: Página inicial, notificações, cronologia federada, qualquer número de listas e hashtags.' + animations_and_accessibility: Animações e acessibilidade + confirmation_dialogs: Caixas de confirmação + discovery: Descobrir + localization: + body: Mastodon é traduzido por voluntários. + guide_link: https://crowdin.com/project/mastodon/pt-PT + guide_link_text: Todos podem contribuir. + sensitive_content: Conteúdo sensível + toot_layout: Disposição do Toot application_mailer: notification_preferences: Alterar preferências de e-mail + salutation: "%{name}," settings: 'Alterar preferências de email: %{link}' view: 'Ver:' view_profile: Ver perfil @@ -493,9 +604,16 @@ pt-PT: warning: Cuidado com estes dados. Não partilhar com ninguém! your_token: O teu token de acesso auth: + apply_for_account: Solicitar um convite change_password: Palavra-passe + checkbox_agreement_html: Concordo com as regras do servidor e com os termos de serviço + checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Eliminar conta delete_account_html: Se desejas eliminar a conta, podes continua aqui. Uma confirmação será pedida. + description: + prefix_invited_by_user: "@%{name} convidou-o a juntar-se a este servidor do Mastodon!" + prefix_sign_up: Inscreva-se hoje no Mastodon! + suffix: Com uma conta, poderá seguir pessoas, publicar atualizações e trocar mensagens com utilizadores de qualquer servidor Mastodon e muito mais! didnt_get_confirmation: Não recebeu o email de confirmação? forgot_password: Esqueceste a palavra-passe? invalid_reset_password_token: Token de modificação da palavra-passe é inválido ou expirou. Por favor, solicita um novo. @@ -504,11 +622,26 @@ pt-PT: migrate_account: Mudar para uma conta diferente migrate_account_html: Se desejas redirecionar esta conta para uma outra podesconfigurar isso aqui. or_log_in_with: Ou iniciar sessão com + providers: + cas: CAS + saml: SAML register: Registar + registration_closed: "%{instance} não está a aceitar novos membros" resend_confirmation: Reenviar instruções de confirmação reset_password: Criar nova palavra-passe security: Alterar palavra-passe set_new_password: Editar palavra-passe + setup: + email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, pode alterá-lo aqui e receber um novo e-mail de confirmação. + email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver correcto, pode alterá-lo nas definições da conta. + title: Configuração + status: + account_status: Estado da conta + confirming: A aguardar que conclua a confirmação do e-mail. + functional: A sua conta está totalmente operacional. + pending: A sua inscrição está pendente de revisão pela nossa equipa. Isso pode demorar algum tempo. Receberá um e-mail se a sua conta for aprovada. + redirecting_to: A sua conta está inativa porque está atualmente a ser redirecionada para %{acct}. + trouble_logging_in: Problemas em iniciar sessão? authorize_follow: already_following: Tu já estás a seguir esta conta error: Infelizmente, ocorreu um erro ao buscar a conta remota @@ -520,8 +653,14 @@ pt-PT: return: Voltar ao perfil do utilizador web: Voltar à página inicial title: Seguir %{acct} + challenge: + confirm: Continuar + hint_html: "Dica: Não vamos pedir novamente a sua senha durante a próxima hora." + invalid_password: Senha inválida + prompt: Confirme a sua senha para continuar datetime: distance_in_words: + about_x_hours: "%{count}h" about_x_months: "%{count} meses" about_x_years: "%{count} anos" almost_x_years: "%{count} anos" @@ -534,18 +673,33 @@ pt-PT: x_months: "%{count} meses" x_seconds: "%{count} segundos" deletes: + challenge_not_passed: A informação que introduziu não estava correta confirm_password: Introduz a palavra-passe atual para verificar a tua identidade + confirm_username: Introduza o seu nome de utilizador para confirmar o procedimento proceed: Eliminar conta success_msg: A tua conta foi eliminada com sucesso + warning: + before: 'Antes de continuar, por favor leia cuidadosamente estas notas:' + caches: O conteúdo que foi armazenado em cache por outros servidores pode persistir + data_removal: As suas publicações e outros dados serão removidos permanentemente + email_change_html: Pode alterar o seu endereço de e-mail sem eliminar a sua conta + email_contact_html: Se ainda não chegou, pode enviar um e-mail a %{email} para obter ajuda + email_reconfirmation_html: Se não recebeu o e-mail de confirmação, pode pedi-lo novamente + irreversible: Não será possível restaurar ou reativar sua conta + more_details_html: Para mais detalhes, leia a política de privacidade. + username_available: O seu nome de utilizador ficará novamente disponível + username_unavailable: O seu nome de utilizador permanecerá indisponível directories: directory: Dirétorio de perfil explanation: Descobre utilizadores com base nos seus interesses explore_mastodon: Explorar %{title} + domain_validator: + invalid_domain: não é um nome de domínio válido errors: - '400': The request you submitted was invalid or malformed. + '400': O pedido que submeteu foi inválido ou mal formulado. '403': Não tens a permissão necessária para ver esta página. '404': A página que estás a procurar não existe. - '406': This page is not available in the requested format. + '406': Esta página não está disponível no formato solicitado. '410': A página que estás a procurar não existe mais. '422': content: "A verificação de segurança falhou. \nDesativaste o uso de cookies?" @@ -554,8 +708,11 @@ pt-PT: '500': content: Desculpe, mas algo correu mal. title: Esta página não está correta - '503': The page could not be served due to a temporary server failure. + '503': A página não pôde ser apresentada devido a uma falha temporária do servidor. noscript_html: Para usar o aplicativo web do Mastodon, por favor ativa o JavaScript. Alternativamente, experimenta um dos apps nativos para o Mastodon na sua plataforma. + existing_username_validator: + not_found: não foi possível encontrar um utilizador local com esse nome + not_found_multiple: não foi possível encontrar %{usernames} exports: archive_takeout: date: Data @@ -565,8 +722,8 @@ pt-PT: request: Pede o teu arquivo size: Tamanho blocks: Bloqueaste + csv: CSV domain_blocks: Bloqueios de domínio - follows: Segues lists: Listas mutes: Tens em silêncio storage: Armazenamento de média @@ -574,6 +731,7 @@ pt-PT: add_new: Adicionar nova errors: limit: Já atingiste o limite máximo de hashtags + hint_html: "O que são hashtags em destaque? Elas são exibidas de forma bem visível no seu perfil público e permitem que as pessoas consultem as suas publicações públicas especificamente sob essas hashtags. São uma ótima ferramenta para manter o controlo de trabalhos criativos ou projetos de longo prazo." filters: contexts: home: Cronologia inicial @@ -587,6 +745,7 @@ pt-PT: invalid_irreversible: Filtragem irreversível só funciona no contexto das notificações ou do início index: delete: Apagar + empty: Não tem filtros. title: Filtros new: title: Adicionar novo filtro @@ -594,13 +753,37 @@ pt-PT: developers: Responsáveis pelo desenvolvimento more: Mais… resources: Recursos + trending_now: Tendências atuais generic: + all: Tudo changes_saved_msg: Alterações guardadas! copy: Copiar + no_batch_actions_available: Nenhuma ação em lote disponível nesta página + order_by: Ordenar por save_changes: Guardar alterações validation_errors: one: Algo não está correcto. Por favor vê o erro abaixo other: Algo não está correto. Por favor vê os %{count} erros abaixo + html_validator: + invalid_markup: 'contém marcação HTML inválida: %{error}' + identity_proofs: + active: Ativo + authorize: Sim, autorizar + authorize_connection_prompt: Autorizar esta conexão criptográfica? + errors: + failed: A conexão criptográfica falhou. Por favor, tente novamente a partir de %{provider}. + keybase: + invalid_token: Os tokens Keybase são hashes de assinaturas e devem conter 66 caracteres hexadecimais + verification_failed: O Keybase não reconhece este token como uma assinatura do utilizador do Keybase %{kb_username}. Por favor, tente novamente a partir do Keybase. + wrong_user: Não é possível criar uma prova para %{proving} enquanto estiver conetado como %{current}. Inicie sessão como %{proving} e tente novamente. + explanation_html: Aqui pode conetar criptograficamente as suas outras identidades, tais como um perfil Keybase. Isto permite que outras pessoas lhe enviem mensagens encriptadas e confiar em conteúdo que você lhes envia. + i_am_html: Sou %{username} em %{service}. + identity: Identidade + inactive: Inativo + publicize_checkbox: 'E publique isso:' + publicize_toot: 'Está provado! Eu sou %{username} em %{service}: %{url}' + status: Estado da verificação + view_proof: Ver prova imports: modes: merge: Juntar @@ -647,6 +830,34 @@ pt-PT: too_many: Não é possível anexar mais de 4 arquivos migrations: acct: username@domain da nova conta + cancel: Cancelar redirecionamento + cancel_explanation: Cancelar o redirecionamento irá reativar a sua conta atual, mas não trará de volta os seguidores que foram migrados para essa conta. + cancelled_msg: Cancelou com sucesso o redireccionamento. + errors: + already_moved: é a mesma conta para a qual já migrou + missing_also_known_as: não está a referenciar esta conta + move_to_self: não pode ser conta atual + not_found: não pode ser encontrado + on_cooldown: Você está no período de espera + followers_count: Seguidores no momento da migração + incoming_migrations: A migrar de uma conta diferente + incoming_migrations_html: Para migrar de outra conta para esta, primeiro você precisa criar um pseudónimo. + moved_msg: A sua conta está agora a ser redireccionada para %{acct} e os seus seguidores estão a ser transferidos. + not_redirecting: A sua conta não está atualmente a ser redirecionada para nenhuma outra conta. + on_cooldown: Migrou recentemente a sua conta. Esta função ficará disponível novamente em %{count} dias. + past_migrations: Migrações anteriores + proceed_with_move: Migrar seguidores + redirecting_to: A sua conta está a ser redireccionada para %{acct}. + set_redirect: Definir redirecionamento + warning: + backreference_required: A nova conta deve primeiro ser configurada para que esta seja referenciada + before: 'Antes de continuar, leia cuidadosamente estas notas:' + cooldown: Após a migração, há um período de tempo de espera durante o qual não poderá voltar a migrar + disabled_account: Posteriormente, a sua conta atual não será totalmente utilizável. No entanto, continuará a ter acesso à exportação de dados, bem como à reativação. + followers: Esta ação irá migrar todos os seguidores da conta atual para a nova conta + only_redirect_html: Em alternativa, pode apenas colocar um redireccionamento no seu perfil. + other_data: Nenhum outro dado será migrado automaticamente + redirect: O perfil da sua conta atual será atualizado com um aviso de redirecionamento e será excluído das pesquisas moderation: title: Moderação notification_mailer: @@ -683,11 +894,26 @@ pt-PT: body: 'O teu post foi partilhado por %{name}:' subject: "%{name} partilhou o teu post" title: Nova partilha + notifications: + email_events: Eventos para notificações por e-mail + email_events_hint: 'Selecione os eventos para os quais deseja receber notificações:' + other_settings: Outras opções de notificações + number: + human: + decimal_units: + format: "%n%u" + units: + billion: MM + million: M + quadrillion: Q + thousand: mil + trillion: T pagination: newer: Mais nova next: Seguinte older: Mais velha prev: Anterior + truncate: "…" polls: errors: already_voted: Tu já votaste nesta sondagem @@ -700,6 +926,23 @@ pt-PT: too_many_options: não pode conter mais do que %{max} itens preferences: other: Outro + posting_defaults: Padrões de publicação + public_timelines: Cronologias públicas + relationships: + activity: Atividade da conta + dormant: Inativo + followers: Seguidores + following: A seguir + last_active: Última atividade + most_recent: Mais recente + moved: Mudou-se + mutual: Mútuo + primary: Primário + relationship: Relação + remove_selected_domains: Remover todos os seguidores dos domínios selecionados + remove_selected_followers: Remover seguidores selecionados + remove_selected_follows: Deixar de seguir os utilizadores selecionados + status: Estado da conta remote_follow: acct: Entre seu usuário@domínio do qual quer seguir missing_resource: Não foi possível achar a URL de redirecionamento para sua conta @@ -725,19 +968,48 @@ pt-PT: activity: Última atividade browser: Navegador browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox generic: Navegador desconhecido + ie: Internet Explorer + micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi + opera: Opera otter: Lontra + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UCBrowser + weibo: Weibo current_session: Sessão atual description: "%{browser} em %{platform}" explanation: Estes são os navegadores que estão conectados com a tua conta do Mastodon. + ip: IP platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS firefox_os: SO Firefox + ios: iOS + linux: Linux + mac: Mac other: Plataforma desconhecida + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone revoke: Revogar revoke_success: Sessão revogada com sucesso title: Sessões settings: + account: Conta + account_settings: Definições da conta + aliases: Pseudónimos da conta + appearance: Aspecto authorized_apps: Aplicativos autorizados back: Voltar ao Mastodon delete: Eliminação da conta @@ -745,10 +1017,14 @@ pt-PT: edit_profile: Editar perfil export: Exportar dados featured_tags: Hashtags destacadas + identity_proofs: Provas de identidade import: Importar + import_and_export: Importar e exportar migrate: Migração de conta notifications: Notificações preferences: Preferências + profile: Perfil + relationships: Seguindo e seguidores two_factor_authentication: Autenticação em dois passos spam_check: spam_detected: Este é um relatório automatizado. Foi detectado spam. @@ -775,12 +1051,16 @@ pt-PT: private: Post não-público não pode ser fixado reblog: Não podes fixar uma partilha poll: + total_people: + one: "%{count} pessoa" + other: "%{count} pessoas" total_votes: one: "%{count} voto" other: "%{count} votos" vote: Votar show_more: Mostrar mais sign_in_to_participate: Inicie a sessão para participar na conversa + title: '%{name}: "%{quote}"' visibilities: private: Mostrar apenas para seguidores private_long: Mostrar apenas para seguidores @@ -792,6 +1072,8 @@ pt-PT: pinned: Toot fixado reblogged: partilhado sensitive_content: Conteúdo sensível + tags: + does_not_match_previous_name: não coincide com o nome anterior terms: body_html: |

Política de privacidade

@@ -879,6 +1161,10 @@ pt-PT: contrast: Mastodon (Elevado contraste) default: Mastodon mastodon-light: Mastodon (Leve) + time: + formats: + default: "%H:%M em %d de %b de %Y" + month: "%b de %Y" two_factor_authentication: code_hint: Entre o código gerado pelo seu aplicativo para confirmar description_html: Se ativar a autenticação em dois passos, quando logar será necessário o seu telefone que vai gerar os tokens para validação. @@ -905,7 +1191,9 @@ pt-PT: disable: Enquanto a tua conta está congelada, os seus dados permanecem intactos, mas tu não podes executar quaisquer acções até que ela seja desbloqueada. silence: Enquanto a tua conta estiver limitada, só pessoas que já estiveres a seguir irão ver as tuas publicações neste servidor e poderás ser excluído de várias listagens públicas. No entanto, outros ainda te poderão seguir de forma manual. suspend: A tua conta foi suspensa e todas as tuas publicações e os teus ficheiros de media foram irreversivelmente removidos deste servidor e dos servidores onde tinhas seguidores. + get_in_touch: Pode responder a este e-mail para entrar em contacto com a equipa de %{instance}. review_server_policies: Revê as políticas do servidor + statuses: 'Especificamente, para:' subject: disable: A tua conta %{acct} foi congelada none: Aviso para %{acct} @@ -918,7 +1206,7 @@ pt-PT: suspend: Conta suspensa welcome: edit_profile_action: Configura o perfil - edit_profile_step: Tu podes personalizar o teu perfil por carregar um avatar, cabeçalho, alterar o teu nickname e mais. Se tu preferires rever os novos seguidores antes deles te poderem seguir, podes bloquear a tua conta. + edit_profile_step: Podes personalizar o teu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferires rever os novos seguidores antes deles te poderem seguir, podes tornar a tua conta privada. explanation: Aqui estão algumas dicas para começares final_action: Começa a publicar final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.' diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 7deab6021..3dc2a944d 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -73,7 +73,6 @@ ro: request: Cere arhiva ta size: Dimensiune blocks: Blocați - follows: Tu urmărești mutes: Opriți storage: Depozitare media filters: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 5c68ce4d4..a62995721 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1,7 +1,7 @@ --- ru: about: - about_hashtag_html: Это публичные статусы, отмеченные хэштегом #%{hashtag}. Вы можете взаимодействовать с ними при наличии у Вас учётной записи в глобальной сети Mastodon. + about_hashtag_html: Это публичные посты, отмеченные хэштегом #%{hashtag}. Вы можете взаимодействовать с ними при наличии у Вас учётной записи в глобальной сети Mastodon. about_mastodon_html: 'Социальная сеть будущего: никакой рекламы, слежки корпорациями, этичный дизайн и децентрализация! С Mastodon ваши данные под вашим контролем.' about_this: Об этом узле active_count_after: активных @@ -10,23 +10,23 @@ ru: api: API apps: Приложения apps_platforms: Используйте Mastodon на iOS, Android и других платформах - browse_directory: Изучайте каталог профилей и ищите по интересам - browse_local_posts: Просматривайте в реальном времени новые статусы с этого сервера - browse_public_posts: Просматривайте в реальном времени новые статусы в Mastodon + browse_directory: Изучите каталог и найдите профили по интересам + browse_local_posts: Просматривайте в реальном времени новые посты с этого сервера + browse_public_posts: Взгляните на новые посты Mastodon в реальном времени contact: Связаться contact_missing: не указан contact_unavailable: неизв. - discover_users: Находите пользователей + discover_users: Найдите пользователей documentation: Документация federation_hint_html: С учётной записью на %{instance} вы сможете подписываться на людей с любого сервера Mastodon и не только. - get_apps: Попробуйте мобильное приложение - hosted_on: Mastodon размещен на %{domain} + get_apps: Попробуйте мобильные приложения + hosted_on: Вы получили это сообщение, так как зарегистрированы на %{domain} instance_actor_flash: | Эта учетная запись является виртуальным персонажем, используемым для представления самого сервера, а не какого-либо пользователя. Используется для целей федерации и не должен быть заблокирован, если вы не хотите заблокировать всю инстанцию, вместо этого лучше использовать доменную блокировку. learn_more: Узнать больше privacy_policy: Политика конфиденциальности - see_whats_happening: Узнавайте, что происходит вокруг + see_whats_happening: Узнайте, что происходит вокруг server_stats: 'Статистика сервера:' source_code: Исходный код status_count_after: @@ -42,9 +42,9 @@ ru: domain: Сервер reason: Причина rejecting_media: 'Медиафайлы с этих серверов не будут обработаны или сохранены. Их миниатюры не будут отображаться и вам придётся вручную нажимать на исходный файл:' - silenced: 'Сообщения с этих серверов будут скрыты в публичных лентах и обсуждениях, уведомления от ихпользователй также не будут призодить никому, кроме подписанных на них:' + silenced: 'Посты с этих серверов будут скрыты из публичных лент и обсуждений, как и не будут рассылаться уведомления касательно действий тамошних пользователей, если, конечно, вы не подписаны на них:' suspended: 'Обмен, хранение и обработка данных с этих серверов будут прекращены, что сделает невозможным взаимодействие или общение с пользователями с этих серверов:' - unavailable_content_html: Мастодон обычно позволяет просматривать контент с любого другого сервера и взаимодействовать с ними. Это исключения, сделанные на этом сервере. + unavailable_content_html: 'Mastodon в основном позволяет просматривать содержимое и взаимодействовать с другими пользователями любых серверов в федерации. Вот исключения, сделанные конкретно для этого сервера:' user_count_after: few: пользователя many: пользователей @@ -76,16 +76,17 @@ ru: pin_errors: following: Чтобы порекомендовать кого-то, надо сначала на них подписаться posts: - few: статуса + few: поста many: статусов - one: статус + one: Пост other: статусов - posts_tab_heading: Статусы + posts_tab_heading: Посты posts_with_replies: Посты с ответами reserved_username: Имя пользователя зарезервировано roles: admin: Администратор bot: Бот + group: Группа moderator: Модератор unavailable: Профиль недоступен unfollow: Отписаться @@ -116,7 +117,7 @@ ru: confirming: Подтверждение deleted: Удалён demote: Разжаловать - disable: Отключить + disable: Заморозка disable_two_factor_authentication: Отключить 2FA disabled: Отключено display_name: Отображаемое имя @@ -140,22 +141,22 @@ ru: title: Размещение login_status: Статус учётной записи media_attachments: Мультимедийные вложения - memorialize: Превратить в Памятник + memorialize: Сделать мемориалом moderation: active: Действующие all: Все pending: В ожидании - silenced: Заглушенные + silenced: Скрытые suspended: Заблокированные title: Модерация moderation_notes: Заметки модератора most_recent_activity: Последняя активность most_recent_ip: Последний IP - no_account_selected: Ничего не выбрано, никакие учётные записи не изменены + no_account_selected: Ничего не изменилось, так как ни одна учётная запись не была выделена no_limits_imposed: Без ограничений not_subscribed: Не подписаны pending: Ожидает рассмотрения - perform_full_suspension: Полная блокировка + perform_full_suspension: Блокировка promote: Повысить protocol: Протокол public: Публичный @@ -164,7 +165,7 @@ ru: reject: Отклонить reject_all: Отклонить все remove_avatar: Удалить аватар - remove_header: Удалить шапку + remove_header: Убрать шапку resend_confirmation: already_confirmed: Этот пользователь уже подтвержден send: Повторно отправить подтверждение по электронной почте @@ -184,56 +185,56 @@ ru: show: created_reports: Жалобы, отправленные с этой учётной записи targeted_reports: Жалобы на эту учётную запись - silence: Заглушить + silence: Скрытие silenced: Заглушен - statuses: Статусы + statuses: Посты subscribe: Подписаться suspended: Заморожен time_in_queue: Ожидание в очереди %{time} title: Учётные записи unconfirmed_email: Неподтверждённый e-mail - undo_silenced: Снять глушение + undo_silenced: Отменить скрытие undo_suspension: Снять блокировку unsubscribe: Отписаться username: Имя пользователя - warn: Предупредить + warn: Предупреждение web: Веб whitelisted: В белом списке action_logs: actions: - assigned_to_self_report: "%{name} назначил(а) жалобу %{target} на себя" + assigned_to_self_report: "%{name} назначил(а) себя для решения жалобы %{target}" change_email_user: "%{name} сменил(а) e-mail пользователя %{target}" confirm_user: "%{name} подтвердил(а) e-mail адрес пользователя %{target}" - create_account_warning: "%{name} отправил(а) предупреждение для %{target}" + create_account_warning: "%{name} выдал(а) предупреждение %{target}" create_custom_emoji: "%{name} загрузил(а) новый эмодзи %{target}" - create_domain_allow: "%{name} внёс домен %{target} в белый список" + create_domain_allow: "%{name} внес(ла) домен %{target} в белый список" create_domain_block: "%{name} заблокировал(а) домен %{target}" create_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в чёрный список" demote_user: "%{name} разжаловал(а) пользователя %{target}" - destroy_custom_emoji: "%{name} удалил(а) эмодзи %{target}" + destroy_custom_emoji: "%{name} измельчил(а) эмодзи %{target} в пыль" destroy_domain_allow: "%{name} убрал домен %{target} из белого списка" destroy_domain_block: "%{name} разблокировал(а) домен %{target}" destroy_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в белый список" - destroy_status: "%{name} удалил(а) статус пользователя %{target}" + destroy_status: "%{name} удалил(а) пост пользователя %{target}" disable_2fa_user: "%{name} отключил(а) двухэтапную авторизацию у пользователя %{target}" disable_custom_emoji: "%{name} отключил(а) эмодзи %{target}" - disable_user: "%{name} запретил(а) вход пользователя %{target}" + disable_user: "%{name} заморозил(а) пользователя %{target}" enable_custom_emoji: "%{name} включил(а) эмодзи %{target}" - enable_user: "%{name} включил(а) вход пользователя %{target}" + enable_user: "%{name} разморозил(а) пользователя %{target}" memorialize_account: "%{name} перевел(а) учётную запись пользователя %{target} в режим памятника" promote_user: "%{name} повысил(а) пользователя %{target}" - remove_avatar_user: "%{name} удалил(а) аватар пользователя %{target}" + remove_avatar_user: "%{name} убрал(а) аватарку пользователя %{target}" reopen_report: "%{name} переоткрыл(а) жалобу %{target}" reset_password_user: "%{name} сбросил(а) пароль пользователя %{target}" resolve_report: "%{name} решил(а) жалобу %{target}" - silence_account: "%{name} заглушил(а) учётную запись %{target}" - suspend_account: "%{name} заморозил(а) учётную запись %{target}" + silence_account: "%{name} наложил(а) ограничения на видимость постов учётной записи %{target}" + suspend_account: "%{name} заблокировал(а) учётную запись %{target}" unassigned_report: "%{name} сняла назначение жалобы %{target}" - unsilence_account: "%{name} снял(а) глушение учётной записи %{target}" - unsuspend_account: "%{name} разморозил(а) учётную запись %{target}" + unsilence_account: "%{name} снял ограничения видимости постов пользователя %{target}" + unsuspend_account: "%{name} снял(а) блокировку с пользователя %{target}" update_custom_emoji: "%{name} обновил(а) эмодзи %{target}" - update_status: "%{name} изменил(а) статус пользователя %{target}" - deleted_status: "(удалённый статус)" + update_status: "%{name} изменил(а) пост пользователя %{target}" + deleted_status: "(удалённый пост)" title: Журнал событий custom_emojis: assign_category: Задать категорию @@ -260,7 +261,7 @@ ru: overwrite: Заменить shortcode: Шорткод shortcode_hint: Как минимум 2 символа, только алфавитно-цифровые символы и подчеркивания - title: Особенные эмодзи + title: Эмодзи uncategorized: Вне категорий unlist: Убрать unlisted: Не в списке @@ -311,24 +312,29 @@ ru: create: Создать блокировку hint: Блокировка домена не предотвратит создание новых учётных записей в базе данных, но ретроактивно и автоматически применит указанные методы модерации для этих учётных записей. severity: - desc_html: "Глушение сделает статусы учётной записи невидимыми для всех, кроме их подписчиков. Блокировка удалит весь контент учётной записи, включая мультимедийные вложения и данные профиля. Используйте Ничего, если хотите только запретить медиаконтент." + desc_html: |- + Используйте скрытие для того, чтобы публикуемые пользователями посты перестали быть видимыми для всех, кроме их подписчиков.
+
+ Блокировка удалит весь локальный контент учётных записей с этого домена, включая мультимедийные вложения и данные профилей.
+
+ Ничего же попросту скроет медиаконтент с домена. noop: Ничего - silence: Глушение + silence: Скрытие suspend: Блокировка - title: Новая доменная блокировка + title: Новая блокировка e-mail домена private_comment: Приватный комментарий private_comment_hint: Комментарий к доменной блокировке для внутреннего использования модераторами. public_comment: Публичный комментарий public_comment_hint: Комментарий к этой доменной блокировке для широкой публики, если включена публикация списка блокировок. - reject_media: Запретить медиаконтент + reject_media: Запретить загрузку медиафайлов reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки. reject_reports: Отклонять жалобы reject_reports_hint: Игнорировать все жалобы с этого домена. Не имеет значения в случае блокировки. rejecting_media: отклонение медиафайлов rejecting_reports: отклонение жалоб severity: - silence: заглушен - suspend: заморожен + silence: скрывается + suspend: заблокирован show: affected_accounts: few: "%{count} учетных записей в базе данных затронуты" @@ -336,7 +342,7 @@ ru: one: Влияет на одну учётную запись в базе данных other: "%{count} учетных записей в базе данных затронуты" retroactive: - silence: Снять глушение со всех существующих учётных записей этого домена + silence: Убрать скрытие постов учётных записей с этого узла suspend: Снять блокировку со всех существующих учётных записей этого домена title: Снять блокировку с домена %{domain} undo: Отменить @@ -344,14 +350,15 @@ ru: view: Посмотреть доменные блокировки email_domain_blocks: add_new: Добавить новую - created_msg: Доменная блокировка еmail успешно создана + created_msg: E-mail домен внесён в список блокировки delete: Удалить - destroyed_msg: Доменная блокировка еmail успешно удалена + destroyed_msg: Домен убран из списка e-mail блокировки domain: Домен + empty: Никакие e-mail домены не блокируются. new: create: Создать блокировку - title: Новая доменная блокировка еmail - title: Доменная блокировка email + title: Новая блокировка по домену + title: Блокировка e-mail доменов followers: back_to_account: Вернуться к учётной записи title: Подписчики пользователя %{acct} @@ -369,7 +376,7 @@ ru: title: Модерация private_comment: Приватный комментарий public_comment: Публичный комментарий - title: Известные узлы + title: Федерация total_blocked_by_us: Заблокировано нами total_followed_by_them: Их подписчиков total_followed_by_us: Наших подписчиков @@ -388,11 +395,11 @@ ru: relays: add_new: Добавить ретранслятор delete: Удалить - description_html: "Федеративный ретранслятор – это промежуточный сервер, который передаёт большие объёмы публичных статусов между серверами, которые подписываются и публикуют туда. Это может помочь небольшим и средним серверам находить записи со всей федерации, ведь в противном случае пользователям нужно будет вручную подписываться на людей с удалённых узлов." + description_html: "Федеративный ретранслятор – это промежуточный сервер, который передаёт большие объёмы публичных постов между серверами, которые подписываются и публикуют туда. Это может помочь небольшим и средним серверам находить записи со всей федерации, ведь в противном случае пользователям нужно будет вручную подписываться на людей с удалённых узлов." disable: Отключить disabled: Отключено enable: Включить - enable_hint: Если включено, ваш сервер будет подписан на все публичные статусы с этого ретранслятора и начнёт туда отправлять публичные статусы со своего узла. + enable_hint: Если включено, ваш сервер будет подписан на все публичные посты с этого ретранслятора и начнёт туда отправлять публичные посты со своего узла. enabled: Включено inbox_url: URL ретранслятора pending: Ожидание подтверждения ретранслятора @@ -405,15 +412,27 @@ ru: created_msg: Примечание жалобы создано! destroyed_msg: Примечание жалобы удалено! reports: + account: + notes: + few: "%{count} заметки" + many: "%{count} заметок" + one: "%{count} заметка" + other: "%{count} заметки" + reports: + few: "%{count} жалобы" + many: "%{count} жалоб" + one: "%{count} жалоба" + other: "%{count} жалобы" action_taken_by: 'Действие предпринято:' are_you_sure: Вы уверены? assign_to_self: Назначить себе assigned: Назначенный модератор + by_target_domain: Домен объекта жалобы comment: none: Нет - created_at: Создано - mark_as_resolved: Отметить как разрешенную - mark_as_unresolved: Отметить как неразрешённую + created_at: Создана + mark_as_resolved: Отметить как решённую + mark_as_unresolved: Отметить как нерешённую notes: create: Добавить заметку create_and_resolve: Разрешить с примечанием @@ -421,19 +440,19 @@ ru: delete: Удалить placeholder: Опишите, какие действия были приняты, или любые другие подробности… reopen: Переоткрыть жалобу - report: 'Жалоба #%{id}' + report: Жалоба №%{id} reported_account: Учётная запись нарушителя reported_by: Отправитель жалобы - resolved: Разрешенные - resolved_msg: Жалоба успешно обработана! + resolved: Решённые + resolved_msg: Жалоба обработана, спасибо! status: Статус title: Жалобы unassign: Снять назначение - unresolved: Неразрешенные + unresolved: Нерешённые updated_at: Обновлена settings: activity_api_enabled: - desc_html: Подсчёт количества локальных статусов, активных пользователей и новых регистраций на еженедельной основе + desc_html: Подсчёт количества локальных постов, активных пользователей и новых регистраций на еженедельной основе title: Публикация агрегированной статистики активности пользователей bootstrap_timeline_accounts: desc_html: Разделяйте имена пользователей запятыми. Сработает только для локальных незакрытых учётных записей. По умолчанию включены все локальные администраторы. @@ -454,6 +473,8 @@ ru: users: Залогиненным локальным пользователям domain_blocks_rationale: title: Показать обоснование + enable_bootstrap_timeline_accounts: + title: Включить подписки по умолчанию для новых пользователей hero: desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла title: Баннер узла @@ -464,8 +485,8 @@ ru: desc_html: Домены, которые были замечены этим узлом среди всей федерации title: Публикация списка обнаруженных узлов preview_sensitive_media: - desc_html: Предпросмотр ссылок с остальных веб-сайтов будет показан даже если медиаконтент отмечен как чувствительный - title: Показывать чувствительный медиаконтент в предпросмотре OpenGraph + desc_html: Предпросмотр для ссылок будет отображать миниатюры даже для содержимого, помеченного как деликатное + title: Показывать деликатные медиафайлы в превью OpenGraph profile_directory: desc_html: Позволять находить пользователей title: Включить каталог профилей @@ -487,7 +508,7 @@ ru: title: Режим регистраций show_known_fediverse_at_about_page: desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты. - title: Показывать известные узлы в предпросмотре ленты + title: Показывать контент со всей федерации в публичной ленте неавторизованным пользователям show_staff_badge: desc_html: Показывать метку персонала на странице пользователя title: Показывать метку персонала @@ -524,16 +545,16 @@ ru: back_to_account: Назад к учётной записи batch: delete: Удалить - nsfw_off: Выключить NSFW - nsfw_on: Включить NSFW + nsfw_off: Снять отметку «деликатного» + nsfw_on: Отметить как «деликатное» deleted: Удалено failed_to_execute: Не удалось выполнить media: - title: Медиаконтент - no_media: Без медиаконтента - no_status_selected: Не выбран ни один статус, ничего не изменено - title: Статусы учётной записи - with_media: С медиаконтентом + title: Файлы медиа + no_media: Без медиа + no_status_selected: Ничего не изменилось, так как ни один пост не был выделен + title: Посты пользователя + with_media: С медиа tags: accounts_today: Уникальных использований за сегодня accounts_week: Уникальных использований за эту неделю @@ -566,15 +587,15 @@ ru: new_report: body: "%{reporter} подал(а) жалобу на %{target}" body_remote: Кто-то с узла %{domain} пожаловался на %{target} - subject: Новая жалоба, узел %{instance} (#%{id}) + subject: Новая жалоба, узел %{instance} (№%{id}) new_trending_tag: body: 'Хэштег #%{name} актуален сегодня, но не был проверен. Он не будет отображаться публично, если вы не одобрите его, или просто сохраните эту форму как есть, чтоб никогда больше о нём не слышать.' subject: Новый хэштег для проверки на %{instance} (#%{name}) aliases: add_new: Создать псевдоним - created_msg: Успешно создан новый псевдоним. Теперь вы можете начать миграцию со старой учетной записи. + created_msg: Новый псевдоним установлен. Теперь мы можете начать миграцию со старой учётной записи. deleted_msg: Псевдоним успешно удалён. Миграция старой учётной записи в текущую более невозможна. - hint_html: Если вы хотите мигрировать с другой учётной записи в эту, здесь вы можете создать псевдоним, который требуется, прежде чем вы можете начать перенос подписок со старой учётной записи сюда. Это действие само по себе безвредно и обратимо. Миграция учётной записи начинается со старой учётной записи. + hint_html: Если вы собираетесь мигрировать с другой учётной записи на эту, вы можете настроить псевдоним, что требуется для переноса подписчиков со старой учётной записи. Это действие само по себе безвредно и обратимо. Миграция учётной записи начинается со старой учётной записи. remove: Отвязать псевдоним appearance: advanced_web_interface: Многоколоночный интерфейс @@ -582,15 +603,19 @@ ru: animations_and_accessibility: Анимации и доступность confirmation_dialogs: Окна подтверждений discovery: Обзор - sensitive_content: Чувствительное содержимое + localization: + body: Mastodon переводится добровольцами. + guide_link: https://sasha-sorokin.gitlab.io/mastodon-ru/ + guide_link_text: Каждый может внести свой вклад. + sensitive_content: Деликатное содержимое toot_layout: Структура постов application_mailer: - notification_preferences: Изменить настройки e-mail + notification_preferences: Настроить уведомления можно здесь salutation: "%{name}," - settings: 'Изменить настройки e-mail: %{link}' + settings: 'Настроить уведомления можно здесь: %{link}' view: 'Просмотр:' view_profile: Просмотреть профиль - view_status: Просмотреть статус + view_status: Просмотреть пост applications: created: Приложение успешно создано destroyed: Приложение успешно удалено @@ -605,7 +630,7 @@ ru: checkbox_agreement_html: Я соглашаюсь с правилами сервера и Условиями использования checkbox_agreement_without_rules_html: Я согласен с условиями использования delete_account: Удалить учётную запись - delete_account_html: Если Вы хотите удалить свою учётную запись, вы можете перейти сюда. У Вас будет запрошено подтверждение. + delete_account_html: Удалить свою учётную запись можно в два счёта здесь, но прежде у вас будет спрошено подтверждение. description: prefix_invited_by_user: "@%{name} приглашает вас присоединиться к этому узлу Mastodon." prefix_sign_up: Зарегистрируйтесь в Mastodon уже сегодня! @@ -615,8 +640,8 @@ ru: invalid_reset_password_token: Токен сброса пароля неверен или устарел. Пожалуйста, запросите новый. login: Войти logout: Выйти - migrate_account: Перенести учётную запись - migrate_account_html: Если вы хотите перенаправить подписчиков на другую учётную запись, это можно настроить здесь. + migrate_account: Перенос учётной записи + migrate_account_html: Завели новую учётную запись? Перенаправьте подписчиков на неё — настройте перенаправление тут. or_log_in_with: Или войти с помощью providers: cas: CAS @@ -647,7 +672,7 @@ ru: post_follow: close: Или просто закрыть это окно. return: Вернуться к профилю пользователя - web: Перейти к WWW + web: Открыть в веб-версии title: Подписаться на %{acct} challenge: confirm: Продолжить @@ -670,21 +695,21 @@ ru: x_seconds: "%{count}сек" deletes: challenge_not_passed: Введённая вами информация некорректна - confirm_password: Введите текущий пароль для подтверждения Вашей личности - confirm_username: Введите свой юзернейм для подтверждения + confirm_password: Введите свой пароль, чтобы подтвердить, что вы — это вы, и никто другой + confirm_username: Введите своё имя пользователя для подтверждения proceed: Удалить учётную запись success_msg: Ваша учётная запись была успешно удалена warning: before: 'Внимательно прочитайте следующую информацию перед началом:' - caches: Содержимое, которое было закэшировано другими серверами, может сохраниться - data_removal: Ваши записи и прочие данные будут безвозвратно удалены + caches: Некоторые данные, обработанные другими узлами, однако, могут храниться ещё какое-то время + data_removal: Все ваши золотые посты, шикарный профиль и прочие данные будут безвозвратно уничтожены email_change_html: Поменять свой e-mail можно не удаляя учётной записи email_contact_html: Если письмо не приходит, обратитесь за помощю на %{email} email_reconfirmation_html: Если вы не получили письмо с подтверждением, его можно запросить ещё раз - irreversible: Вы не сможете восстановить или повторно активировать свою учётную запись - more_details_html: Подробнее см. в политике конфиденциальности . - username_available: Ваш юзернейм снова станет доступным - username_unavailable: Ваш юзернейм останется недоступным + irreversible: После удаления восстановить или повторно активировать учётную запись не получится + more_details_html: За всеми подробностями, изучите политику конфиденциальности. + username_available: Ваше имя пользователя снова станет доступным + username_unavailable: Ваше имя пользователя останется недоступным для использования directories: directory: Каталог профилей explanation: Находите пользователей по интересам @@ -713,22 +738,21 @@ ru: archive_takeout: date: Дата download: Скачать ваш архив - hint_html: Вы можете запросить архив своих статусов и загруженных медиа-файлов. Экспортированные данные будут в формате ActivityPub, который можно прочесть любой соответствующей программой. Запрашивать архив можно каждые 7 дней. - in_progress: Собирается ваш архив... + hint_html: Вы можете запросить архив своих постов и загруженных медиа-файлов. Экспортированные данные будут в формате ActivityPub, который можно прочесть любой соответствующей программой. Запрашивать архив можно каждые 7 дней. + in_progress: Мы собираем этот архив... request: Запросить ваш архив size: Размер blocks: Список блокировки csv: CSV domain_blocks: Доменные блокировки - follows: Подписки lists: Списки - mutes: Список глушения - storage: Ваш медиаконтент + mutes: Ваши игнорируемые + storage: Ваши файлы featured_tags: add_new: Добавить errors: limit: Вы уже добавили максимальное число хэштегов - hint_html: "Что такое хэштеги? Они видны в вашем публичном профиле и позволяют людям просматривать публичные записи под этими хэштегами. Они являются отличным инструментом для отслеживания творчества или долгосрочных проектов." + hint_html: "Особенные хэштеги отображаются в вашем профиле и позволяют людям просматривать ваши посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ." filters: contexts: home: Домашняя лента @@ -742,6 +766,7 @@ ru: invalid_irreversible: Необратимая фильтрация работает только с лентой уведомлений и домашней лентой index: delete: Удалить + empty: У вас пока нет фильтров. title: Фильтры new: title: Добавить фильтр @@ -751,11 +776,11 @@ ru: resources: Ссылки trending_now: Актуально сейчас generic: - all: Все + all: Любой changes_saved_msg: Изменения успешно сохранены! copy: Копировать no_batch_actions_available: На этой странице нет запланированных действий - order_by: Сортировать по + order_by: Сортировка save_changes: Сохранить изменения validation_errors: few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже @@ -774,14 +799,14 @@ ru: invalid_token: Токены Keybase — это хэши от подписей и должны быть по длине в 66 hex-символов verification_failed: Keybase не распознаёт этот токен как подпись пользователя %{kb_username}. Пожалуйста, повторите на Keybase. wrong_user: Невозможно подтвердить пользователя %{proving}, будучи залогиненным как %{current}. Выполните вход как %{proving} и попробуйте ещё раз. - explanation_html: Здесь вы можете криптографически связать свои остальные идентификаторы, такие как профиль Keybase. Это позволит другим дюдям отправлять вам зашифрованные сообщения и верить отправляемым вами сообщениям. + explanation_html: На этой странице отображаются криптографически подтверждённые идентификаторы — например, привязанный профиль Keybase. Это позволяет людям отправлять вам зашифрованные сообщения, а также доверять вашим постам. i_am_html: Я %{username} на %{service}. identity: Идентификатор inactive: Неактивно publicize_checkbox: 'И опубликуйте текст:' publicize_toot: 'Подтверждено! Я %{username} на %{service}: %{url}' - status: Статус подтверждения - view_proof: Посмотреть доказательство личности + status: Статус + view_proof: Посмотреть подтверждение imports: modes: merge: Объединить @@ -796,7 +821,7 @@ ru: following: Подписки muting: Список глушения upload: Загрузить - in_memoriam_html: Памятник. + in_memoriam_html: В память о пользователе. invites: delete: Удалить expired: Истекло @@ -826,7 +851,7 @@ ru: limit: Вы достигли максимального числа списков media_attachments: validations: - images_and_video: Нельзя добавить видео к статусу с изображениями + images_and_video: Нельзя добавить видео к посту с изображениями too_many: Нельзя добавить более 4 файлов migrations: acct: имя@домен новой учётной записи @@ -841,13 +866,13 @@ ru: on_cooldown: Вы пока не можете переезжать followers_count: Подписчиков на момент переезда incoming_migrations: Переезд с другой учётной записи - incoming_migrations_html: Чтобы мигрировать с другой учётной записи на эту, сначала вам нужно создать псевдоним учетной записи. - moved_msg: Ваша учётная запись теперь перенаправляется на %{acct} и подписчики перемещаются туда. - not_redirecting: Ваша учётная запись пока что не перенаправляется на какую-либо иную. + incoming_migrations_html: Переезжаете с другой учётной записи? Настройте псевдоним для переноса подписчиков. + moved_msg: Теперь ваша учётная запись перенаправляет к %{acct}, туда же перемещаются подписчики. + not_redirecting: Для вашей учётной записи пока не настроено перенаправление. on_cooldown: Вы уже недавно переносили свою учётную запись. Эта возможность будет снова доступна через %{count} дн. past_migrations: Прошлые переезды proceed_with_move: Перенести подписчиков - redirecting_to: Ваша учётная запись перенаправлена на %{acct}. + redirecting_to: Ваша учётная запись перенаправляет к %{acct}. set_redirect: Настроить перенаправление warning: backreference_required: Новая учётная запись должна быть сначала настроена так, чтоб ссылаться на текущую @@ -863,7 +888,7 @@ ru: notification_mailer: digest: action: Просмотреть все уведомления - body: Кратко о пропущенных Вами сообщениях с Вашего последнего захода %{since} + body: Вот краткая сводка сообщений, которые вы пропустили с последнего захода %{since} mention: "%{name} упомянул(а) Вас в:" new_followers_summary: few: У вас появилось %{count} новых подписчика! Отлично! @@ -877,8 +902,8 @@ ru: other: "%{count} новых уведомлений с вашего последнего захода \U0001F418" title: В ваше отсутствие… favourite: - body: 'Ваш статус понравился %{name}:' - subject: "%{name} понравился ваш статус" + body: "%{name} добавил ваш пост в избранное:" + subject: "%{name} добавил ваш пост в избранное" title: Понравившийся статус follow: body: "%{name} теперь подписан(а) на вас!" @@ -886,18 +911,22 @@ ru: title: Новый подписчик follow_request: action: Управление запросами на подписку - body: "%{name} запросил вас о подписке" + body: "%{name} отправил(а) вам запрос на подписку" subject: "%{name} хочет подписаться на вас" - title: Новый запрос о подписке + title: Новый запрос на подписку mention: action: Ответить body: 'Вас упомянул(а) %{name} в:' subject: Вы были упомянуты %{name} title: Новое упоминание reblog: - body: 'Ваш статус был продвинут %{name}:' - subject: "%{name} продвинул(а) ваш статус" + body: 'Ваш пост был продвинут %{name}:' + subject: "%{name} продвинул(а) ваш пост" title: Новое продвижение + notifications: + email_events: События для e-mail уведомлений + email_events_hint: 'Выберите события, для которых вы хотели бы получать уведомления:' + other_settings: Остальные настройки уведомлений number: human: decimal_units: @@ -921,21 +950,24 @@ ru: duration_too_long: слишком далеко в будущем duration_too_short: слишком короткий срок expired: Опрос уже завершился + invalid_choice: Выбранного варианта голосования не существует over_character_limit: каждый не вариант не может быть длиннее %{max} символов too_few_options: должно быть больше 1 варианта too_many_options: может содержать не больше %{max} вариантов preferences: - other: Другое + other: Всё остальное posting_defaults: Настройки отправки по умолчанию public_timelines: Публичные ленты relationships: activity: Активность учётной записи - dormant: Заброшенные - last_active: Недавно активные - most_recent: Новые - moved: Переехавший - mutual: Общие - primary: Основной + dormant: Заброшенная + followers: Подписчики + following: Подписки + last_active: По последней активности + most_recent: По недавности + moved: Мигрировавшая + mutual: Взаимные подписки + primary: Основная relationship: Связь remove_selected_domains: Удалить всех подписчиков для выбранных доменов remove_selected_followers: Удалить выбранных подписчиков @@ -950,14 +982,14 @@ ru: reason_html: "Почему это необходимо? Возможно, %{instance} не является узлом, на котором вы зарегистрированы, поэтому нам сперва нужно перенаправить вас на домашний узел." remote_interaction: favourite: - proceed: Отметить как "нравится" - prompt: 'Вы собираетесь поставить отметку "нравится" этому статусу:' + proceed: Добавить в избранное + prompt: 'Вы собираетесь поставить отметку "нравится" этому посту:' reblog: - proceed: Продвинуть статус - prompt: 'Вы хотите продвинуть этот статус:' + proceed: Продвинуть пост + prompt: 'Вы хотите продвинуть этот пост:' reply: proceed: Ответить - prompt: 'Вы собираетесь ответить на этот статус:' + prompt: 'Вы собираетесь ответить на этот пост:' scheduled_statuses: over_daily_limit: Вы превысили лимит в %{limit} запланированных постов на указанный день over_total_limit: Вы превысили лимит на %{limit} запланированных постов @@ -985,7 +1017,7 @@ ru: weibo: Weibo current_session: Текущая сессия description: "%{browser} на %{platform}" - explanation: Это веб-браузеры, в которых на данный момент выполнен вход в Вашу учётную запись Mastodon. + explanation: Здесь отображаются все веб-браузеры, в которых выполнен вход в вашу учётную запись. Авторизованные приложения отображаются в другой секции. ip: IP platforms: adobe_air: Adobe Air @@ -1001,21 +1033,21 @@ ru: windows_mobile: Windows Mobile windows_phone: Windows Phone revoke: Завершить - revoke_success: Сессия завершена успешно + revoke_success: Сессия завершена title: Сессии settings: account: Учётная запись - account_settings: Настройки учётной записи + account_settings: Управление учётной записью aliases: Псевдонимы учётной записи appearance: Внешний вид - authorized_apps: Авторизованные приложения + authorized_apps: Приложения back: Назад в Mastodon delete: Удаление учётной записи development: Разработка edit_profile: Изменить профиль export: Экспорт данных featured_tags: Особенные хэштеги - identity_proofs: Подтверждения личности + identity_proofs: Идентификация import: Импорт import_and_export: Импорт и экспорт migrate: Миграция учётной записи @@ -1023,7 +1055,7 @@ ru: preferences: Настройки profile: Профиль relationships: Подписки и подписчики - two_factor_authentication: Двухфакторная аутентификация + two_factor_authentication: Подтверждение входа spam_check: spam_detected: Это автоматический отчет. Обнаружен спам. statuses: @@ -1047,13 +1079,13 @@ ru: one: 'содержался запрещённый хэштег: %{tags}' other: 'содержались запрещённые хэштеги: %{tags}' language_detection: Определять язык автоматически - open_in_web: Открыть в WWW + open_in_web: Открыть в веб-версии over_character_limit: превышен лимит символов (%{max}) pin_errors: - limit: Вы закрепили максимально возможное число статусов - ownership: Нельзя закрепить чужой статус - private: Нельзя закрепить непубличный статус - reblog: Нельзя закрепить продвинутый статус + limit: Вы закрепили максимально возможное число постов + ownership: Нельзя закрепить чужой пост + private: Нельзя закрепить непубличный пост + reblog: Нельзя закрепить продвинутый пост poll: total_people: few: "%{count} человек" @@ -1066,7 +1098,7 @@ ru: one: "%{count} голос" other: "%{count} голосов" vote: Голосовать - show_more: Ещё + show_more: Развернуть sign_in_to_participate: Войдите, чтобы принять участие в дискуссии title: '%{name}: "%{quote}"' visibilities: @@ -1077,9 +1109,9 @@ ru: unlisted: Скрывать из лент unlisted_long: Показывать всем, но не отображать в публичных лентах stream_entries: - pinned: Закреплённый статус + pinned: Закреплённый пост reblogged: продвинул(а) - sensitive_content: Чувствительный контент + sensitive_content: Деликатное содержимое tags: does_not_match_previous_name: не совпадает с предыдущим именем terms: @@ -1170,30 +1202,30 @@ ru: default: "%d %b %Y, %H:%M" month: "%m.%Y" two_factor_authentication: - code_hint: Для подтверждения введите код, сгенерированный приложением аутентификатора - description_html: При включении двухфакторной аутентификации, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены. + code_hint: Для подтверждения введите код, сгенерированный приложением-аутентификатором + description_html: 'На этой странице можно включить двухфакторную авторизацию: с ней, чтобы войти в свою учётную запись, потребуется ввести небольшой временный код, генерируемый через приложение на своём смартфоне.' disable: Отключить enable: Включить - enabled: Двухфакторная аутентификация включена - enabled_success: Двухфакторная аутентификация успешно включена + enabled: Двухфакторная аутентификация настроена + enabled_success: Двухфакторная авторизация успешно настроена generate_recovery_codes: Сгенерировать коды восстановления - instructions_html: "Отсканируйте этот QR-код с помощью Google Authenticator или другого подобного приложения на Вашем телефоне. С этого момента приложение будет генерировать токены, которые будет необходимо ввести для входа." - lost_recovery_codes: Коды восстановления позволяют вернуть доступ к учётной записи в случае утери телефона. Если Вы потеряли Ваши коды восстановления, вы можете заново сгенерировать их здесь. Ваши старые коды восстановления будут аннулированы. + instructions_html: "Отсканируйте этот QR-код с помощью Google Authenticator, Яндекс.Ключа или любого другого подобного приложения. После сканирования и добавления, приложение начнёт генерировать коды, которые потребуется вводить для завершения входа в учётную запись." + lost_recovery_codes: Коды восстановления позволяются войти в учётную запись в случае утери смартфона. Если вы потеряли свои коды восстановления, вы можете создать новые здесь. Прошлые коды работать перестанут. manual_instructions: 'Если Вы не можете отсканировать QR-код и хотите ввести его вручную, секрет представлен здесь открытым текстом:' recovery_codes: Коды восстановления recovery_codes_regenerated: Коды восстановления успешно сгенерированы - recovery_instructions_html: В случае утери доступа к Вашему телефону Вы можете использовать один из кодов восстановления, указанных ниже, чтобы вернуть доступ к учётной записи. Держите коды восстановления в безопасности, например, распечатав их и храня с другими важными документами. + recovery_instructions_html: 'Пожалуйста, сохраните коды ниже в надёжном месте: они понадобятся, чтобы войти в учётную запись, если вы потеряете доступ к своему смартфону. Вы можете вручную переписать их, распечатать и спрятать среди важных документов или, например, в любимой книжке. Каждый код действителен один раз.' setup: Настроить wrong_code: Введенный код неверен! Правильно ли установлены серверное время и время устройства? user_mailer: backup_ready: - explanation: Вы запросили полный архив вашей учётной записи Mastodon. Он готов к загрузке! + explanation: Вы запросили архив всех данных вашей учётной записи Mastodon. Что ж, он готов к скачиванию. subject: Ваш архив готов к загрузке - title: Вынос архива + title: Архив ваших данных готов warning: explanation: disable: Пока ваша учётная запись заморожена, ваши данные остаются нетронутыми, но вы не можете производить никаких действий до разблокировки. - silence: Пока ваша учётная запись ограничена, ваши посты на этом сервере увидят только ваши действующие подписчики, а ваш профиль может быть исключён из различных каталогов. Впрочем, остальные могут подписаться на вас вручную. + silence: Пока действуют данные ограничения, публикуемые вами посты будут видеть исключительно люди, которые на вас уже подписаны на этом узле, вы также можете быть исключены из различных публичных лент. Несмотря на это, остальные пользователи по-прежнему могут подписаться на вас, чтобы читать новые посты. suspend: Ваша учётная запись заблокирована и все ваши посты и загруженные медиафайлы безвозвратно удалены с этого сервера и других серверов, где у вас были подписчики. get_in_touch: Вы можете ответить на это письмо, чтобы связаться с сотрудниками %{instance}. review_server_policies: Посмотреть правила сервера @@ -1201,12 +1233,12 @@ ru: subject: disable: Ваша учётная запись %{acct} заморожена none: "%{acct}, вам вынесено предупреждение" - silence: Ваша учётная запись %{acct} была ограничена + silence: На вашу учётную запись, %{acct}, были наложены ограничения suspend: Ваша учётная запись %{acct} была заблокирована title: disable: Учётная запись заморожена none: Предупреждение - silence: Учётная запись ограничена + silence: На учётную запись наложены ограничения suspend: Учётная запись заблокирована welcome: edit_profile_action: Настроить профиль @@ -1217,7 +1249,7 @@ ru: full_handle: Ваше обращение full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла. review_preferences_action: Изменить настройки - review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности статусов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF. + review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности постов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF. subject: Добро пожаловать в Mastodon tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны вы и ваши соседи, поэтому лента может быть неполной. tip_following: По умолчанию вы подписаны на администратора(-ов) вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты. @@ -1233,5 +1265,5 @@ ru: seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны. signed_in_as: 'Выполнен вход под именем:' verification: - explanation_html: 'Вы можете подтвердить себя как владельца ссылок в вашем профиле. Для этого указанный веб-сайт должен содержать обратную ссылку на ваш профиль в Mastodon. У обратной ссылки должен быть атрибут rel="me". Сам текст ссылки не имеет значения. Пример:' + explanation_html: 'Владение ссылками в профиле можно подтвердить. Для этого на указанном сайте должна содержаться ссылка на ваш профиль Mastodon, а у самой ссылки должен быть атрибут rel="me". Что внутри ссылки — значения не имеет. Вот вам пример ссылки:' verification: Подтверждение diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 65e6a8590..e3355e8c5 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -2,6 +2,10 @@ ar: simple_form: hints: + account_alias: + acct: ادخِل عنون الحساب username@domain الذي تودّ مغادرته + account_migration: + acct: ادخِل عنون الحساب username@domain الذي تودّ الإنتقال إليه account_warning_preset: text: بإمكانك استخدام نفس القواعد التي نجدها في التبويقات كعناوين الروابط والوسوم والإشارات admin_account_action: @@ -13,6 +17,8 @@ ar: avatar: ملف PNG أو GIF أو JPG. حجمه على أقصى تصدير %{size}. سيتم تصغيره إلى %{dimensions}px bot: يُعلِم أنّ هذا الحساب لا يمثل شخصًا context: واحد أو أكثر من السياقات التي يجب أن ينطبق عليها عامل التصفية + current_password: لأسباب أمنية ، يرجى إدخال الكلمة السرية الخاصة بالحساب الحالي + current_username: يرجى إدخال اسم المستخدم الخاص بالحساب الحالي قصد التأكيد digest: تُرسَل إليك بعد مُضيّ مدة مِن خمول نشاطك و فقط إذا ما تلقيت رسائل شخصية مباشِرة أثناء فترة غيابك مِن الشبكة discoverable: سِجل الملفات التعريفية للمستخدمين هو طريقة أخرى لبلوغ جمهور أوسع email: سوف تتلقى رسالة إلكترونية للتأكيد @@ -99,6 +105,7 @@ ar: setting_aggregate_reblogs: جمع الترقيات في خيوط زمنية setting_auto_play_gif: تشغيل تلقائي لِوَسائط جيف المتحركة setting_boost_modal: إظهار مربع حوار للتأكيد قبل ترقية أي تبويق + setting_crop_images: قص الصور في التبويقات غير الموسعة إلى 16x9 setting_default_language: لغة النشر setting_default_privacy: خصوصية المنشور setting_default_sensitive: اعتبر الوسائط دائما كمحتوى حساس @@ -116,6 +123,7 @@ ar: setting_theme: سمة الموقع setting_trends: اعرض ما يُتداوَل اليوم setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب + setting_use_blurhash: أظهر ألوانًا متدرّجة على الوسائط الحساسة setting_use_pending_items: الوضع البطيء severity: القوّة type: صيغة الاستيراد diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index 4ec3935c9..1206aa465 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -5,58 +5,92 @@ ast: defaults: autofollow: La xente que se rexistre pente la invitación va siguite automáticamente bot: Esta cuenta fai principalmente aiciones automatizaes y podría nun supervisase - digest: Namái s'unvia tres un periodu llargu d'inactividá y namái si recibiesti cualesquier mensaxe personal na to ausencia + digest: Namái s'unvia dempués d'un periodu llargu d'inactividá y namái si recibiesti cualesquier mensaxe personal na to ausencia + discoverable: El direutoru de perfiles ye otru mou de facer qu'una cuenta llegué a una audiencia más amplia email: Vamos unviate un corréu de confirmación - irreversible: Los toots peñeraos van desapaecer de mou irreversible, magar que se desanicie la peñera dempués + irreversible: Los barritos peñeraos van desapaecer de mou irreversible, magar que se desanicie la peñera dempués password: Usa 8 caráuteres polo menos setting_hide_network: La xente que sigas y teas siguiendo nun va amosase nel perfil + setting_show_application: L'aplicación qu'uses pa barritar va amosase na vista detallada d'ellos username: El nome d'usuariu va ser únicu en %{domain} + featured_tag: + name: 'Quiciabes quieras usar unu d''estos:' + form_challenge: + current_password: Tas entrando nuna área segura imports: data: El ficheru CSV esportáu dende otra instancia de Mastodon + invite_request: + text: Esto va ayudanos a revisar la to aplicación + sessions: + otp: 'Introduz el códigu de dos pasos xeneráu pola aplicación autenticadora o usa unu de los códigos de recuperación:' labels: account: fields: name: Etiqueta value: Conteníu + admin_account_action: + type: Aición + types: + none: Nun facer nada defaults: + avatar: Avatar bot: Esta cuenta ye d'un robó chosen_languages: Peñera de llingües confirm_new_password: Confirmación de la contraseña nueva + confirm_password: Confirmación de la contraseña current_password: Contraseña actual data: Datos + discoverable: Llistar esta cuenta nel direutoriu display_name: Nome a amosar email: Direición de corréu - expires_in: Caduca tres - fields: Datos meta del perfil + expires_in: Caduca dempués de + fields: Metadatos del perfil header: Testera irreversible: Escartar en cuentes d'anubrir locale: Llingua de la interfaz - locked: Bloquiar cuenta + locked: Bloquiar la cuenta max_uses: Númberu máximu d'usos new_password: Contraseña nueva - otp_attempt: Códigu de verificación en dos pasos + note: Biografía + otp_attempt: Códigu de la verificación en dos pasos password: Contraseña phrase: Pallabra clave o fras + setting_advanced_layout: Activar la interfaz web avanzada setting_auto_play_gif: Reproducir GIFs automáticamente - setting_default_language: Llingua de les espublizaciones - setting_default_privacy: Privacidá d'espublizaciones - setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un toot + setting_boost_modal: Amosar el diálogu de confirmación enantes de compartir un barritu + setting_default_language: Llingua de los espublizamientos + setting_default_privacy: Privacidá de los espublizamientos + setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un barritu + setting_show_application: Dicir les aplicaciones que s'usen pa barritar setting_system_font_ui: Usar la fonte predeterminada del sistema + setting_theme: Estilu del sitiu + setting_trends: Amosar les tendencies de güei setting_unfollow_modal: Amosar el diálogu de confirmación enantes de dexar de siguir a daquién + setting_use_pending_items: Mou lentu severity: Severidá type: Triba de la importación username: Nome d'usuariu username_or_email: Nome d'usuariu o corréu + whole_word: La pallabra entera + featured_tag: + name: Etiqueta interactions: - must_be_follower: Bloquiar avisos de persones que nun son siguidores - must_be_following: Bloquiar avisos de persones que nun sigues - must_be_following_dm: Bloquiar mensaxes direutos de persones que nun sigues + must_be_follower: Bloquiar los avisos de persones que nun son siguidores + must_be_following: Bloquiar los avisos de persones que nun sigues + must_be_following_dm: Bloquiar los mensaxes direutos de persones que nun sigues + invite_request: + text: "¿Por qué quies xunite?" notification_emails: - favourite: Unviar un corréu cuando daquién conseñe como favoritu los tos estaos - follow: Unviar un corréu cuando daquién te siga - follow_request: Unviar un corréu cuando daquién solicite siguite - mention: Unviar un corréu cuando daquién te mente + favourite: Daquién marcó como favoritu un estáu de to + follow: Daquién te sigue + follow_request: Daquién solicitó siguite + mention: Daquién te mentó + reblog: Daquién compartió dalgún estáu de to + tag: + name: Etiqueta 'no': Non + recommended: Aconséyase required: + mark: "*" text: ríquese 'yes': Sí diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 80703950b..0ac4fb491 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -9,7 +9,7 @@ ca: account_warning_preset: text: Pots utilitzar totes les sintaxi com ara URL, etiquetes i mencions admin_account_action: - include_statuses: L'usuari veurà quin tuts ha causat l'acció de moderació o avís + include_statuses: L'usuari veurà quins tuts han causat l'acció de moderació o avís send_email_notification: L'usuari rebrà una explicació del que ha passat amb el seu compte text_html: Opcional. Pots utilitzar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps type_html: Tria què fer amb %{acct} @@ -27,20 +27,20 @@ ca: fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px inbox_url: Copia l'URL des de la pàgina principal del relay que vols utilitzar - irreversible: Els nodes filtrats desapareixeran de manera irreversible, fins i tot si el filtre es retira més tard + irreversible: Els tuts filtrats desapareixeran de manera irreversible, fins i tot si el filtre es retira més tard locale: El llenguatge de l’interfície d’usuari, els correus i les notificacions push locked: Requereix que aprovis manualment els seguidors password: Utilitza com a mínim 8 caràcters - phrase: Es combinarà independentment del format en el text o l'avís de contingut d'un toot - scopes: A quines API es permetrà l'accés a l'aplicació. Si selecciones un àmbit d'alt nivell, no cal que seleccionis un d'individual. - setting_aggregate_reblogs: No mostra els nous impulsos dels toots que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) + phrase: Es combinarà independentment del format en el text o l'avís de contingut del bram + scopes: A quines API es permetrà a l'aplicació accedir. Si selecciones un àmbit d'alt nivell, no cal que seleccionis un d'individual. + setting_aggregate_reblogs: No mostra els nous impulsos dels tuts que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_default_sensitive: Els mèdia sensibles estan ocults per defecte i es poden revelar amb un clic setting_display_media_default: Amaga els multimèdia marcats com a sensibles setting_display_media_hide_all: Sempre oculta tots els multimèdia setting_display_media_show_all: Mostra sempre els elements multimèdia marcats com a sensibles setting_hide_network: Qui tu segueixes i els que et segueixen a tu no es mostraran en el teu perfil setting_noindex: Afecta el teu perfil públic i les pàgines d'estat - setting_show_application: L'aplicació que fas servir per a publicar es mostrarà a la vista detallada dels teus toots + setting_show_application: L'aplicació que fas servir per a publicar es mostrarà a la vista detallada dels teus tuts setting_use_blurhash: Els degradats es basen en els colors de les imatges ocultes, però enfosqueixen els detalls setting_use_pending_items: Amaga les actualitzacions de la línia de temps després d'un clic en comptes de desplaçar-se automàticament username: El teu nom d'usuari serà únic a %{domain} @@ -60,7 +60,7 @@ ca: tag: name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible user: - chosen_languages: Quan estigui marcat, només es mostraran els toots de les llengües seleccionades en les línies de temps públiques + chosen_languages: Quan estigui marcat, només es mostraran els tuts de les llengües seleccionades en les línies de temps públiques labels: account: fields: @@ -117,16 +117,16 @@ ca: setting_default_language: Llengua de les publicacions setting_default_privacy: Privacitat de les publicacions setting_default_sensitive: Marca sempre els elements multimèdia com a sensibles - setting_delete_modal: Mostra la finestra de confirmació abans de suprimir un toot + setting_delete_modal: Mostra la finestra de confirmació abans d'esborrar un tut setting_display_media: Visualització multimèdia setting_display_media_default: Per defecte setting_display_media_hide_all: Amaga-ho tot setting_display_media_show_all: Mostra-ho tot - setting_expand_spoilers: Sempre amplia els toots marcats amb advertències de contingut + setting_expand_spoilers: Sempre amplia els tuts marcats amb advertències de contingut setting_hide_network: Amaga la teva xarxa setting_noindex: Desactivació de la indexació del motor de cerca setting_reduce_motion: Redueix el moviment en animacions - setting_show_application: Desvela l'aplicació utilitzada per enviar toots + setting_show_application: Revela l'aplicació utilitzada per enviar tuts setting_system_font_ui: Utilitza el tipus de lletra predeterminat del sistema setting_theme: Tema del lloc setting_trends: Mostra les tendències d'avui diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 7a14a78b0..06482ebd0 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -3,26 +3,26 @@ cs: simple_form: hints: account_alias: - acct: Zadejte přezdívku@doménu účtu, ze kterého se chcete přesunout + acct: Zadejte svůj účet, ze kterého se chcete přesunout jinam, ve formátu přezdívka@doména account_migration: - acct: Zadejte přezdívku@doménu účtu, na který se chcete přesunout + acct: Zadejte svůj účet, na který se chcete přesunout, ve formátu přezdívka@doména account_warning_preset: text: Můžete používat syntaxi tootů, jako například URL, hashtagy a zmínky admin_account_action: include_statuses: Uživatel uvidí, které tooty způsobily moderátorskou akci nebo varování send_email_notification: Uživatel obdrží vysvětlení toho, co se stalo s jeho účtem text_html: Volitelné. Můžete používat syntaxi tootů. Pro ušetření času si můžete přidat předlohy pro varování - type_html: Vyberte, co chcete udělat s účtem %{acct} - warning_preset_id: Volitelné. Můžete stále vložit na konec předlohy vlastní text + type_html: Vyberte, co chcete s účtem %{acct} udělat + warning_preset_id: Volitelné. Na konec předlohy můžete stále vložit vlastní text defaults: - autofollow: Lidé, kteří se zaregistrují přes pozvání, vás budou automaticky sledovat + autofollow: Lidé, kteří se zaregistrují na základě pozvánky, vás budou automaticky sledovat avatar: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšen na %{dimensions} px bot: Tento účet provádí hlavně automatizované akce a nemusí být spravován context: Jeden či více kontextů, ve kterých má být filtr uplatněn - current_password: Z bezpečnostních důvodů prosím zadejte heslo aktuálního účtu - current_username: Prosím potvrďte zadáním uživatelského jména aktuálního účtu - digest: Odesíláno pouze po dlouhé době nečinnosti a pouze, pokud jste při své nepřítomnosti obdržel/a osobní zprávy - discoverable: Adresář profilů je další způsob, díky kterému se může váš účet dostat k širšímu publiku + current_password: Z bezpečnostních důvodů prosím zadejte heslo současného účtu + current_username: Potvrďte prosím tuto akci zadáním uživatelského jména aktuálního účtu + digest: Odesíláno pouze po dlouhé době nečinnosti a pouze, pokud jste při své nepřítomnosti obdrželi osobní zprávy + discoverable: Adresář profilů je další způsob, jak se může váš účet dostat k širšímu publiku email: Bude vám poslán potvrzovací e-mail fields: Na profilu můžete mít až 4 položky zobrazené jako tabulka header: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšen na %{dimensions} px @@ -42,8 +42,8 @@ cs: setting_noindex: Ovlivňuje váš veřejný profil a stránky tootů setting_show_application: Aplikace, kterou používáte k psaní tootů, bude zobrazena v detailním zobrazení vašich tootů setting_use_blurhash: Gradienty jsou založeny na barvách skryté grafiky, ale zakrývají jakékoliv detaily - setting_use_pending_items: Skrýt aktualizace časové osy a načíst je kliknutím namísto automatického rolování proudu - username: Vaše uživatelské jméno bude na %{domain} unikátní + setting_use_pending_items: Aktualizovat časovou osu až po kliknutím namísto automatického rolování kanálu + username: Vaše uživatelské jméno bude na serveru %{domain} unikátní whole_word: Je-li klíčové slovo či fráze pouze alfanumerická, bude aplikována pouze, pokud se shoduje s celým slovem domain_allow: domain: Tato doména bude moci stahovat data z tohoto serveru a příchozí data z ní budou zpracována a uložena @@ -54,13 +54,13 @@ cs: imports: data: Soubor CSV exportovaný z jiného serveru Mastodon invite_request: - text: To nám pomůže posoudit váš požadavek + text: To nám pomůže posoudit vaši žádost sessions: - otp: 'Napište dvoufázový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:' + otp: 'Zadejte kód pro dvoufázové ověření vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:' tag: name: Můžete měnit pouze velikost písmen, například kvůli lepší čitelnosti user: - chosen_languages: Je-li tohle zaškrtnuto, budou ve veřejných časových osách zobrazeny pouze tooty ve zvolených jazycích + chosen_languages: Po zaškrtnutí budou ve veřejných časových osách zobrazeny pouze tooty ve zvolených jazycích labels: account: fields: @@ -78,10 +78,10 @@ cs: text: Vlastní varování type: Akce types: - disable: Deaktivovat + disable: Deaktivovat přihlašování none: Nic nedělat - silence: Utišit - suspend: Pozastavit a nenávratně smazat data účtu + silence: Ztišit + suspend: Pozastavit účet a nenávratně smazat jeho data warning_preset_id: Použít předlohu pro varování defaults: autofollow: Pozvat ke sledování vašeho účtu @@ -106,34 +106,34 @@ cs: max_uses: Maximální počet použití new_password: Nové heslo note: O vás - otp_attempt: Dvoufázový kód + otp_attempt: Kód pro dvoufázové ověření password: Heslo phrase: Klíčové slovo či fráze setting_advanced_layout: Povolit pokročilé webové rozhraní setting_aggregate_reblogs: Seskupovat boosty v časových osách setting_auto_play_gif: Automaticky přehrávat animace GIF - setting_boost_modal: Zobrazovat před boostnutím potvrzovací okno + setting_boost_modal: Před boostnutím zobrazovat potvrzovací okno setting_crop_images: Ořezávat obrázky v nerozbalených tootech na velikost 16x9 setting_default_language: Jazyk příspěvků setting_default_privacy: Soukromí příspěvků setting_default_sensitive: Vždy označovat média jako citlivá - setting_delete_modal: Zobrazovat před smazáním tootu potvrzovací okno + setting_delete_modal: Před smazáním tootu zobrazovat potvrzovací okno setting_display_media: Zobrazování médií setting_display_media_default: Výchozí setting_display_media_hide_all: Skrýt vše setting_display_media_show_all: Zobrazit vše setting_expand_spoilers: Vždy rozbalit tooty označené varováními o obsahu - setting_hide_network: Skrýt svou síť + setting_hide_network: Skrýt mou síť setting_noindex: Neindexovat svůj profil vyhledávači - setting_reduce_motion: Redukovat pohyb v animacích + setting_reduce_motion: Omezit pohyb v animacích setting_show_application: Zobrazit aplikaci používanou k psaní tootů setting_system_font_ui: Použít výchozí písmo systému - setting_theme: Motiv stránky + setting_theme: Vzhled stránky setting_trends: Zobrazit dnešní trendy - setting_unfollow_modal: Zobrazovat před zrušením sledování potvrzovací okno + setting_unfollow_modal: Ppřed zrušením sledování zobrazovat potvrzovací okno setting_use_blurhash: Zobrazit pro skrytá média barevné gradienty setting_use_pending_items: Pomalý režim - severity: Přísnost + severity: Vážnost type: Typ importu username: Uživatelské jméno username_or_email: Uživatelské jméno nebo e-mail @@ -150,22 +150,22 @@ cs: text: Proč se chcete připojit? notification_emails: digest: Posílat e-maily s přehledem - favourite: Posílat e-maily, když si někdo oblíbí váš toot - follow: Posílat e-maily, když vás někdo začne sledovat - follow_request: Posílat e-maily, když vás někdo požádá o sledování - mention: Posílat e-maily, když vás někdo zmíní - pending_account: Posílat e-maily, když je třeba posoudit nový účet - reblog: Posílat e-maily, když někdo boostne váš toot - report: Posílat e-maily, je-li odesláno nové nahlášení - trending_tag: Posílat e-maily, když se neschválený hashtag stane populárním + favourite: Poslat e-mail, když si někdo oblíbí váš toot + follow: Poslat e-mail, když vás někdo začne sledovat + follow_request: Poslat e-mail, když vás někdo požádá o sledování + mention: Poslat e-mail, když vás někdo zmíní + pending_account: Poslat e-mail, když je třeba posoudit nový účet + reblog: Poslat e-mail, když někdo boostne váš toot + report: Poslat e-mail, je-li nahlášeno něco nového + trending_tag: Poslat e-mail, když se neschválený hashtag stane populárním tag: - listable: Dovolit tomuto hashtagu objevovat se v hledáních a v adresáři profilů + listable: Povolit tento hashtag ve výsledcích vyhledávání a v adresáři profilů name: Hashtag - trendable: Dovolit tomuto hashtagu objevovat se v trendech - usable: Dovolit tootům používat tento hashtag + trendable: Povolit tento hashtag v trendech + usable: Povolit používat tento hashtag v tootech 'no': Ne recommended: Doporučeno required: mark: "*" - text: požadováno + text: vyžadováno 'yes': Ano diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 738d4070b..3fadd7fb9 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -9,8 +9,8 @@ da: avatar: PNG, GIF eller JPG. Højest %{size}. Vil blive skaleret ned til %{dimensions}px bot: Denne konto udfører hovedsageligt automatiserede handlinger og bliver muligvis ikke overvåget context: En eller flere sammenhænge hvor filteret skal være gældende - digest: Sendes kun efter en lang periode med inaktivitet og kun hvis du har modtaget nogle personlige beskeder mens du er væk - email: Du vil få tilsendt en bekræftelsed mail + digest: Sendes kun efter en lang periode med inaktivitet og kun hvis du har modtaget nogle personlige beskeder i dit fravær + email: Du vil få tilsendt en bekræftelses e-mail fields: Du kan have op til 4 ting vist som en tabel på din profil header: PNG, GIF eller JPG. Højest %{size}. Vil blive skaleret ned til %{dimensions}px inbox_url: Kopiere linket fra forsiden af den relay som du ønsker at bruge @@ -40,10 +40,16 @@ da: name: Etiket value: Indhold admin_account_action: + include_statuses: Inkluder rapporteret toot i email + send_email_notification: Underret brugeren per email + text: Tilpasset advarsel type: Handling types: disable: Deaktiver none: Gør intet + silence: Silence + suspend: Suspendér og slet kontodata uopretteligt + warning_preset_id: Brug en forudindstillet advarsel defaults: autofollow: Inviter til at følge din konto avatar: Profilbillede @@ -54,6 +60,7 @@ da: context: Filtrer sammenhænge current_password: Nuværende adgangskode data: Data + discoverable: Vis denne konto i oversigten display_name: Visningsnavn email: E-mail adresse expires_in: Udløber efter @@ -69,6 +76,7 @@ da: otp_attempt: To-faktor kode password: Adgangskode phrase: Nøgleord eller sætning + setting_advanced_layout: Aktivér avanceret webgrænseflade setting_auto_play_gif: Afspil automatisk animerede GIFs setting_boost_modal: Vis bekræftelses dialog før du fremhæver setting_default_language: Sprog for opslag @@ -99,6 +107,8 @@ da: must_be_follower: Bloker notifikationer fra folk der ikke følger dig must_be_following: Bloker notifikationer fra folk du ikke følger must_be_following_dm: Bloker direkte beskeder fra folk du ikke følger + invite: + comment: Kommentar invite_request: text: Hvorfor ønsker du at tilmelde dig? notification_emails: @@ -107,10 +117,14 @@ da: follow: Send e-mail når nogen følger dig follow_request: Send email når nogen anmoder om at følge dig mention: Send e-mail når nogen nævner dig - reblog: Send email når nogen fremhæver din status + pending_account: Send en email når en ny konto skal gennemgås + reblog: Send e-mail når nogen fremhæver din status report: Send email når en ny anmeldelse bliver indsendt + trending_tag: Send en email når et ikke-gennemset hashtag trender tag: + listable: Tillad at dette hashtag vises i søgninger og i bruger oversigten name: Hashtag + trendable: Tillad at dette hashtag vises under trends usable: Tillad toots at benytte dette hashtag 'no': Nej recommended: Anbefalet diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index ed30b32d3..84787a6c5 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -41,7 +41,7 @@ de: setting_hide_network: Wem du folgst und wer dir folgt, wird in deinem Profil nicht angezeigt setting_noindex: Betrifft dein öffentliches Profil und deine Beiträge setting_show_application: Die Anwendung die du nutzst wird in der detaillierten Ansicht deiner Beiträge angezeigt - setting_use_blurhash: Die Farbverläufe basieren auf den Farben der versteckten Medien, aber verstecken irgendwelche Details + setting_use_blurhash: Die Farbverläufe basieren auf den Farben der versteckten Medien, aber verstecken jegliche Details setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken anstatt automatisch zu scrollen username: Dein Benutzername wird auf %{domain} einzigartig sein whole_word: Wenn das Schlagwort nur aus Buchstaben und Zahlen besteht, wird es nur angewendet, wenn es dem ganzen Wort entspricht diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 32bb1530c..de6083e18 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -3,11 +3,11 @@ el: simple_form: hints: account_alias: - acct: Ορίστε το username@domain του λογαριασμού από τον οποίο θέλετε να μετακινηθείτε + acct: Όρισε το username@domain του λογαριασμού από τον οποίο θέλεις να μετακινηθείς account_migration: - acct: Ορίστε το username@domain του λογαριασμού στον οποίο θέλετε να μετακινηθείτε + acct: Όρισε το username@domain του λογαριασμού στον οποίο θέλεις να μετακινηθείς account_warning_preset: - text: Μπορεις να χρησιμοποιήσεις συντακτικό ενός τουτ όπως διευθύνσεις URL, ταμπέλες και αναφορές + text: Μπορείς να χρησιμοποιήσεις το ίδιο συντακτικό των τουτ όπως URL, ταμπέλες και αναφορές admin_account_action: include_statuses: Ο χρήστης θα δει ποια τουτ προκάλεσαν την προειδοποίηση ή την ενέργεια των διαχειριστών send_email_notification: Ο χρήστης θα λάβει μια εξήγηση του τι συνέβη με τον λογαριασμό του @@ -28,7 +28,7 @@ el: header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px inbox_url: Αντέγραψε το URL της αρχικής σελίδας του ανταποκριτή (relay) που θέλεις να χρησιμοποιήσεις irreversible: Τα φιλτραρισμένα τουτ θα εξαφανιστούν αμετάκλητα, ακόμα και αν το φίλτρο αργότερα αφαιρεθεί - locale: Η γλώσσα του περιβάλλοντος χρήσης, των email και των ειδοποιήσεων ώθησης + locale: Η γλώσσα χρήσης, των email και των ειδοποιήσεων ώθησης locked: Απαιτεί να εγκρίνεις χειροκίνητα τους ακόλουθούς σου password: Χρησιμοποίησε τουλάχιστον 8 χαρακτήρες phrase: Θα ταιριάζει ανεξαρτήτως πεζών/κεφαλαίων ή προειδοποίησης περιεχομένου του τουτ @@ -97,7 +97,7 @@ el: display_name: Όνομα εμφάνισης email: Διεύθυνση email expires_in: Λήξη μετά από - fields: Μετεδεδομένα προφίλ + fields: Μεταδεδομένα προφίλ header: Επικεφαλίδα inbox_url: Το URL του inbox του ανταποκριτή (relay) irreversible: Απόρριψη αντί για κρύψιμο @@ -112,12 +112,12 @@ el: setting_advanced_layout: Ενεργοποίηση προηγμένης λειτουργίας χρήσης setting_aggregate_reblogs: Ομαδοποίηση προωθήσεων στις ροές setting_auto_play_gif: Αυτόματη αναπαραγωγή των GIF - setting_boost_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν την προώθηση + setting_boost_modal: Επιβεβαίωση πριν την προώθηση setting_crop_images: Περιορισμός των εικόνων σε μη-ανεπτυγμένα τουτ σε αναλογία 16x9 setting_default_language: Γλώσσα δημοσιεύσεων setting_default_privacy: Ιδιωτικότητα δημοσιεύσεων - setting_default_sensitive: Σημείωση των πολυμέσων πάντα ως ευαίσθητου περιεχομένου - setting_delete_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν διαγράψεις ένα τουτ + setting_default_sensitive: Σημείωση όλων των πολυμέσων ως ευαίσθητου περιεχομένου + setting_delete_modal: Επιβεβαίωση πριν τη διαγραφή ενός τουτ setting_display_media: Εμφάνιση πολυμέσων setting_display_media_default: Προκαθορισμένο setting_display_media_hide_all: Απόκρυψη όλων @@ -127,11 +127,11 @@ el: setting_noindex: Επέλεξε να μην συμμετέχεις στα αποτελέσματα μηχανών αναζήτησης setting_reduce_motion: Μείωση κίνησης κινουμένων στοιχείων setting_show_application: Αποκάλυψη εφαρμογής που χρησιμοποιήθηκε για την αποστολή των τουτ - setting_system_font_ui: Χρησιμοποίησε την προεπιλεγμένη γραμματοσειρά του συστήματος + setting_system_font_ui: Χρήση της προεπιλεγμένης γραμματοσειράς του συστήματος setting_theme: Θέμα ιστότοπου setting_trends: Εμφάνιση σημερινών τάσεων - setting_unfollow_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν διακόψεις την παρακολούθηση κάποιου - setting_use_blurhash: Εμφάνιση χρωματισμών για τα κρυμμένα πολυμέσα + setting_unfollow_modal: Επιβεβαίωση πριν τη διακοπή παρακολούθησης κάποιου + setting_use_blurhash: Χρωματιστή απόκρυψη για τα κρυμμένα πολυμέσα setting_use_pending_items: Αργή λειτουργία severity: Αυστηρότητα type: Τύπος εισαγωγής @@ -141,15 +141,15 @@ el: featured_tag: name: Ταμπέλα interactions: - must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς - must_be_following: Μπλόκαρε τις ειδοποιήσεις που προέρχονται από άτομα που δεν τα ακολουθείς + must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν σε ακολουθούν + must_be_following: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς must_be_following_dm: Μπλόκαρε τα προσωπικά μηνύματα από όσους δεν ακολουθείς invite: comment: Σχόλια invite_request: text: Γιατί θέλεις να συμμετάσχεις; notification_emails: - digest: Στέλνε συνοπτικά email + digest: Αποστολή συνοπτικών email favourite: Αποστολή email όταν κάποιος σημειώνει ως αγαπημένη τη δημοσίευσή σου follow: Αποστολή email όταν κάποιος σε ακολουθεί follow_request: Αποστολή email όταν κάποιος ζητάει να σε ακολουθήσει diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 66f518c1b..65951b73b 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -150,14 +150,14 @@ en: text: Why do you want to join? notification_emails: digest: Send digest e-mails - favourite: Someone favourited your status - follow: Someone followed you - follow_request: Someone requested to follow you - mention: Someone mentioned you - pending_account: New account needs review - reblog: Someone boosted your status - report: New report is submitted - trending_tag: An unreviewed hashtag is trending + favourite: Send e-mail when someone favourites your status + follow: Send e-mail when someone follows you + follow_request: Send e-mail when someone requests to follow you + mention: Send e-mail when someone mentions you + pending_account: Send e-mail when a new account needs review + reblog: Send e-mail when someone boosts your status + report: Send e-mail when a new report is submitted + trending_tag: Send e-mail when an unreviewed hashtag is trending tag: listable: Allow this hashtag to appear in searches and on the profile directory name: Hashtag diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index c8239b230..00ecdb457 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -37,6 +37,8 @@ eo: whole_word: Kiam la vorto aŭ frazo estas nur litera aŭ cifera, ĝi estos uzata nur se ĝi kongruas kun la tuta vorto featured_tag: name: 'Vi povus uzi iun el la jenaj:' + form_challenge: + current_password: Vi eniras sekuran areon imports: data: CSV-dosiero el alia Mastodon-servilo invite_request: @@ -113,6 +115,7 @@ eo: setting_theme: Reteja etoso setting_trends: Montri hodiaŭajn furoraĵojn setting_unfollow_modal: Montri fenestron por konfirmi antaŭ ol ĉesi sekvi iun + setting_use_blurhash: Montri buntajn transirojn por kaŝitaj aŭdovidaĵoj setting_use_pending_items: Malrapida reĝimo severity: Graveco type: Importa tipo @@ -137,7 +140,7 @@ eo: mention: Sendi retmesaĝon kiam iu mencias vin pending_account: Sendi retmesaĝon kiam nova konto bezonas kontrolon reblog: Sendi retmesaĝon kiam iu diskonigas vian mesaĝon - report: Sendi retmesaĝon kiam nova signalo estas sendita + report: Nova signalo estas sendita trending_tag: Sendi retpoŝtmesaĝon kiam nekontrolita kradvorto furoras tag: name: Kradvorto diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 837ca8101..da3904680 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -7,11 +7,11 @@ es: account_migration: acct: Especifique el nombre de usuario@dominio de la cuenta a la cual se desea migrar account_warning_preset: - text: Puede usar sintaxis de toots, como URLs, hashtags y menciones + text: Puede usar sintaxis de barritadas, como URLs, etiquetas y menciones admin_account_action: - include_statuses: El usuario verá qué toots han causado la acción de moderación o advertencia + include_statuses: El usuario verá qué bramidos han causado la acción de moderación o advertencia send_email_notification: El usuario recibirá una explicación de lo que sucedió con respecto a su cuenta - text_html: Opcional. Puede usar sintaxis de toots. Puede añadir configuraciones predefinidas de advertencia para ahorrar tiempo + text_html: Opcional. Puede usar sintaxis de bramidos. Puede añadir configuraciones predefinidas de advertencia para ahorrar tiempo type_html: Elige qué hacer con %{acct} warning_preset_id: Opcional. Aún puede añadir texto personalizado al final de la configuración predefinida defaults: @@ -27,22 +27,22 @@ es: fields: Puedes tener hasta 4 elementos mostrándose como una tabla en tu perfil header: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px inbox_url: Copia la URL de la página principal del relés que quieres utilizar - irreversible: Los toots filtrados desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante + irreversible: Las bramidos filtradas desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante locale: El idioma de la interfaz de usuario, correos y notificaciones push locked: Requiere que manualmente apruebes seguidores y las publicaciones serán mostradas solamente a tus seguidores password: Utilice al menos 8 caracteres - phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de un toot + phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de una bramido scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. - setting_aggregate_reblogs: No mostrar nuevos retoots para los toots que han sido recientemente retooteados (sólo afecta a los retoots recibidos recientemente) + setting_aggregate_reblogs: No mostrar nuevas rebramidos para las bramidos que han sido recientemente rebramidos (sólo afecta a las rebramidos recibidos recientemente) setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un click setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible setting_hide_network: A quién sigues y quién te sigue no será mostrado en tu perfil setting_noindex: Afecta a tu perfil público y páginas de estado - setting_show_application: La aplicación que utiliza usted para publicar toots se mostrará en la vista detallada de sus toots + setting_show_application: La aplicación que utiliza usted para publicar bramidos se mostrará en la vista detallada de sus bramidos setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles - setting_use_pending_items: Ocultar nuevos estados detrás de un clic en lugar de desplazar automáticamente el feed + setting_use_pending_items: Ocultar actualizaciones cronológicas tras un clic en lugar de desplazar automáticamente la ristra username: Tu nombre de usuario será único en %{domain} whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra domain_allow: @@ -52,15 +52,15 @@ es: form_challenge: current_password: Estás entrando en un área segura imports: - data: Archivo CSV exportado desde otra instancia de Mastodon + data: Archivo CSV exportado desde otra instancia de Mastodonte invite_request: text: Esto nos ayudará a revisar su aplicación sessions: - otp: 'Introduce el código de autenticación de dos factores geberado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' + otp: 'Introduce el código de autenticación de dos factores generado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' tag: name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible user: - chosen_languages: Cuando se marca, solo se mostrarán los toots en los idiomas seleccionados en los timelines públicos + chosen_languages: Cuando se marca, solo se mostrarán las barritadas en los idiomas seleccionados en las cronologías públicas labels: account: fields: @@ -73,7 +73,7 @@ es: account_warning_preset: text: Texto predefinido admin_account_action: - include_statuses: Incluir en el correo electrónico a los toots denunciados + include_statuses: Incluir en el correo electrónico a los bramidos denunciados send_email_notification: Notificar al usuario por correo electrónico text: Aviso personalizado type: Acción @@ -110,23 +110,23 @@ es: password: Contraseña phrase: Palabra clave o frase setting_advanced_layout: Habilitar interfaz web avanzada - setting_aggregate_reblogs: Agrupar retoots en las líneas de tiempo + setting_aggregate_reblogs: Agrupar rebarritadas en las cronologías setting_auto_play_gif: Reproducir automáticamente los GIFs animados - setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot - setting_crop_images: Recortar a 16x9 las imágenes de los toots no expandidos + setting_boost_modal: Mostrar ventana de confirmación antes de un Rebramido + setting_crop_images: Recortar a 16x9 las imágenes de los bramidos no expandidos setting_default_language: Idioma de publicación setting_default_privacy: Privacidad de publicaciones setting_default_sensitive: Marcar siempre imágenes como sensibles - setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un toot + setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un bramido setting_display_media: Visualización multimedia setting_display_media_default: Por defecto setting_display_media_hide_all: Ocultar todo setting_display_media_show_all: Mostrar todo - setting_expand_spoilers: Siempre expandir los toots marcados con advertencias de contenido + setting_expand_spoilers: Siempre expandir los bramidos marcados con advertencias de contenido setting_hide_network: Ocultar tu red setting_noindex: Excluirse del indexado de motores de búsqueda setting_reduce_motion: Reducir el movimiento de las animaciones - setting_show_application: Mostrar aplicación usada para publicar toots + setting_show_application: Mostrar aplicación usada para publicar bramidos setting_system_font_ui: Utilizar la tipografía por defecto del sistema setting_theme: Tema del sitio setting_trends: Mostrar las tendencias de hoy @@ -157,12 +157,12 @@ es: pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión reblog: Enviar correo electrónico cuando alguien comparta su publicación report: Enviar un correo cuando se envía un nuevo informe - trending_tag: Enviar correo electrónico cuando una etiqueta no revisada está de tendencia + trending_tag: Enviar correo electrónico cuando una etiqueta no revisada es tendencia tag: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a los toots usar esta etiqueta + usable: Permitir a las barritadas usar esta etiqueta 'no': 'No' recommended: Recomendado required: diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 6beee0076..7b9e466ee 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -32,8 +32,8 @@ fr: locked: Vous devrez approuver chaque abonné⋅e et vos statuts ne s’afficheront qu’à vos abonné⋅es password: Utilisez au moins 8 caractères phrase: Sera trouvé sans que la case ou l’avertissement de contenu du pouet soit pris en compte - scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez un périmètre de haut-niveau, vous n’avez pas besoin de sélectionner les individuels. - setting_aggregate_reblogs: Ne pas afficher de nouveaux repartagés pour les pouets qui ont été récemment repartagés (n’affecte que les repartagés nouvellement reçus) + scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez une permission générale, vous n’avez pas besoin de sélectionner les permissions plus précises. + setting_aggregate_reblogs: Ne pas afficher de nouveaux partages pour les pouets qui ont été récemment partagés (n’affecte que les partages nouvellement reçus) setting_default_sensitive: Les médias sensibles sont cachés par défaut et peuvent être révélés d’un simple clic setting_display_media_default: Masquer les médias marqués comme sensibles setting_display_media_hide_all: Toujours masquer tous les médias @@ -110,7 +110,7 @@ fr: password: Mot de passe phrase: Mot-clé ou phrase setting_advanced_layout: Activer l’interface Web avancée - setting_aggregate_reblogs: Repartagés en groupe dans la ligne de temps + setting_aggregate_reblogs: Partages groupés dans les fils d’actualités setting_auto_play_gif: Lire automatiquement les GIFs animés setting_boost_modal: Afficher une fenêtre de confirmation avant de partager setting_crop_images: Recadrer les images dans les pouets non-expansés à 16x9 @@ -155,7 +155,7 @@ fr: follow_request: Envoyer un courriel lorsque quelqu’un demande à me suivre mention: Envoyer un courriel lorsque quelqu’un me mentionne pending_account: Envoyer un courriel lorsqu’un nouveau compte est en attente d’approbation - reblog: Envoyer un courriel lorsque quelqu’un partage mes statuts + reblog: Quelqu’un a partagé votre statut report: Envoyer un courriel lorsqu’un nouveau rapport est soumis trending_tag: Envoyer un e-mail quand un hashtag non contrôlé est en tendance actuelle tag: diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 19c0c7002..0fdf3e74e 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -13,7 +13,7 @@ gl: send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo type_html: Escolla que facer con %{acct} - warning_preset_id: Optativo. Poderá engadir texto personalizado ao final do preestablecido + warning_preset_id: Optativo. Poderá engadir texto persoalizado ao final do preestablecido defaults: autofollow: As persoas que se conectaron a través de un convite seguirana automáticamente a vostede avatar: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px @@ -21,18 +21,18 @@ gl: context: Un ou varios contextos onde se debería aplicar o filtro current_password: Por razóns de seguridade, introduce o contrasinal da conta actual current_username: Para confirmar, introduce o nome de usuaria da conta actual - digest: Enviar só tras un longo período de inactividade e só si recibeu algunha mensaxe persoal na súa ausencia + digest: Enviar só tras un longo período de inactividade e só se recibeu algunha mensaxe directa na súa ausencia discoverable: O directorio de perfil é outro xeito para que a túa conta alcance unha maior audiencia - email: Enviaráselle un correo-e de confirmación + email: Ímosche enviar un correo de confirmación fields: Pode ter ate 4 elementos no seu perfil mostrados como unha táboa header: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px inbox_url: Copiar o URL desde a páxina de inicio do repetidor que queres utilizar irreversible: Os toots filtrados desaparecerán de xeito irreversible, incluso si despois se elimina o filtro locale: O idioma da interface de usuaria, correos e notificacións - locked: Require que vostede acepte as seguidoras de xeito manual + locked: Require que ti aceptes as seguidoras de xeito manual password: Utilice 8 caracteres ao menos phrase: Concordará independentemente das maiúsculas ou avisos de contido no toot - scopes: A que APIs terá acceso a aplicación. Si selecciona un ámbito de alto nivel, non precisa seleccionar elementos individuais. + scopes: A que APIs terá acceso a aplicación. Se selecciona un ámbito de alto nivel, non precisa seleccionar elementos individuais. setting_aggregate_reblogs: Non mostrar novas promocións de toots que foron promocionados recentemente (só afecta a promocións recén recibidas) setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click setting_display_media_default: Ocultar medios marcados como sensibles @@ -75,7 +75,7 @@ gl: admin_account_action: include_statuses: Incluír toots reportados no correo send_email_notification: Notificar a usuaria por correo-e - text: Aviso personalizado + text: Aviso persoalizado type: Acción types: disable: Desactivar @@ -88,8 +88,8 @@ gl: avatar: Avatar bot: Esta conta é de un bot chosen_languages: Filtrar idiomas - confirm_new_password: Confirme o novo contrasinal - confirm_password: Confirme o contrasinal + confirm_new_password: Confirma o novo contrasinal + confirm_password: Confirma o contrasinal context: Contextos do filtro current_password: Contrasinal actual data: Datos @@ -105,7 +105,7 @@ gl: locked: Protexer conta max_uses: Número máximo de usos new_password: Novo contrasinal - note: Sobre vostede + note: Acerca de ti otp_attempt: Código de Dobre-Factor password: Contrasinal phrase: Palabra chave ou frase @@ -142,8 +142,8 @@ gl: name: Etiqueta interactions: must_be_follower: Bloquear as notificacións de non-seguidoras - must_be_following: Bloquea as notificacións de personas que non segue - must_be_following_dm: Bloquea as mensaxes directas de personas que non segue + must_be_following: Bloquea as notificacións de persoas que non segue + must_be_following_dm: Bloquea as mensaxes directas de persoas que non segue invite: comment: Comentar invite_request: diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml index 54d10f21a..d8b39a4d8 100644 --- a/config/locales/simple_form.id.yml +++ b/config/locales/simple_form.id.yml @@ -57,6 +57,8 @@ id: text: Ini akan membantu kami meninjau aplikasi Anda sessions: otp: Masukkan kode dua-faktor dari handphone atau gunakan kode pemulihan anda. + tag: + name: Anda hanya dapat mengubahnya ke huruf kecil/besar, misalnya, agar lebih mudah dibaca user: chosen_languages: Ketika dicentang, hanya toot dalam bahasa yang dipilih yang akan ditampilkan di linimasa publik labels: @@ -111,6 +113,7 @@ id: setting_aggregate_reblogs: Boost grup di linimasa setting_auto_play_gif: Mainkan otomatis animasi GIF setting_boost_modal: Tampilkan dialog konfirmasi dialog sebelum boost + setting_crop_images: Potong gambar ke 16x9 pada toot yang tidak dibentangkan setting_default_language: Bahasa posting setting_default_privacy: Privasi postingan setting_default_sensitive: Selalu tandai media sebagai sensitif diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml new file mode 100644 index 000000000..6a5817e7c --- /dev/null +++ b/config/locales/simple_form.is.yml @@ -0,0 +1,134 @@ +--- +is: + simple_form: + hints: + account_alias: + acct: Tilgreindu notandanafn@lén á notandaaðgangnum sem þú vilt flytjast frá + account_migration: + acct: Tilgreindu notandanafn@lén á notandaaðgangnum sem þú vilt flytjast til + admin_account_action: + type_html: Veldu hvað eigi að gera við %{acct} + defaults: + avatar: PNG, GIF eða JPG. Mest %{size}. Verður smækkað í %{dimensions}px + bot: Þessi aðgangur er aðallega til að framkvæma sjálfvirkar aðgerðir og gæti verið án þess að hann sé vaktaður reglulega + current_password: Í öryggisskyni skaltu setja inn lykiloðið fyrir þennan notandaaðgang + discoverable: Persónusniðamappan er önnur leið til að láta notandaaðganginn þinn ná til fleiri lesenda + email: Þú munt fá sendan staðfestingarpóst + header: PNG, GIF eða JPG. Mest %{size}. Verður smækkað í %{dimensions}px + locale: Tungumál notandaviðmótsins, tölvupósts og ýti-tilkynninga + locked: Krefst þess að þú samþykkir fylgjendur handvirkt + password: Notaðu minnst 8 stafi + setting_default_sensitive: Viðkvæmt myndefni er sjálfgefið falið og er hægt að birta með smelli + setting_display_media_default: Fela myndefni sem merkt er viðkvæmt + setting_display_media_hide_all: Alltaf fela allt myndefni + setting_display_media_show_all: Alltaf birta myndefni sem merkt er viðkvæmt + setting_noindex: Hefur áhrip á opinbera notandasniðið þitt og stöðusíður + setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr + setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er í stað þess að hún skruni streyminu sjálfvirkt + featured_tag: + name: 'Þú gætir viljað nota eitt af þessum:' + imports: + data: CSV-skrá sem flutt hefur verið út af öðrum Mastodon-þjóni + invite_request: + text: Þetta mun hjálpa okkur við að yfirfara umsóknina þína + labels: + account: + fields: + name: Skýring + value: Efni + admin_account_action: + include_statuses: Innifela kærð tíst í tölvupóstinum + send_email_notification: Láta notanda vita með tölvupósti + text: Sérsniðin aðvörun + type: Aðgerð + types: + disable: Gera innskráningu óvirka + none: Gera ekkert + silence: Hylja + suspend: Setja í bið og eyða endanlega gögnum notandaaðgangsins + warning_preset_id: Nota forstillta aðvörun + defaults: + autofollow: Bjóða að fylgjast með aðgangnum þínum + avatar: Auðkennismynd + bot: Þetta er aðgangur fyrir róbót + chosen_languages: Sía tungumál + confirm_new_password: Staðfestu nýja lykilorðið + confirm_password: Staðfestu lykilorðið + context: Samhengi síu + current_password: Núverandi lykilorð + data: Gögn + discoverable: Hafa þennan aðgang með í notendaskránni + display_name: Birtingarnafn + email: Tölvupóstfang + expires_in: Rennur út eftir + fields: Lýsigögn notandasniðs + header: Síðuhaus + irreversible: Fella niður í staðinn fyrir að fela + locale: Tungumál viðmóts + locked: Læsa aðgangi + max_uses: Hámarksfjöldi afnota + new_password: Nýtt lykilorð + note: Æviágrip + otp_attempt: Teggja-þátta kóði + password: Lykilorð + phrase: Stikkorð eða frasi + setting_advanced_layout: Virkja ítarlegt vefviðmót + setting_aggregate_reblogs: Hópa endurbirtingar í tímalínum + setting_auto_play_gif: Spila sjálfkrafa GIF-hreyfimyndir + setting_boost_modal: Sýna staðfestingarglugga fyrir endurbirtingu + setting_crop_images: Utansníða myndir í ekki útfelldum tístum í 16x9 + setting_default_language: Tungumál sem skrifað er á + setting_default_privacy: Gagnaleynd færslna + setting_default_sensitive: Alltaf merkja myndefni sem viðkvæmt + setting_delete_modal: Birta staðfestingarglugga áður en tísti er eytt + setting_display_media: Birting myndefnis + setting_display_media_default: Sjálfgefið + setting_display_media_hide_all: Fela allt + setting_display_media_show_all: Birta allt + setting_expand_spoilers: Alltaf útfella tíst sem eru með aðvörun vegna efnisins + setting_hide_network: Fela netkerfið þitt + setting_noindex: Afþakka atriðaskráningu í leitarvélum + setting_reduce_motion: Minnka hreyfingu í hreyfimyndum + setting_show_application: Upplýsa um forrit sem er til að senda tíst + setting_system_font_ui: Nota sjálfgefið letur kerfisins + setting_theme: Þema vefsvæðis + setting_trends: Birta það sem er efst á baugi í dag + setting_unfollow_modal: Birta staðfestingarglugga áður en hætt er að fylgjast með einhverjum + setting_use_blurhash: Sýna skæra litstigla í stað falins myndefnis + setting_use_pending_items: Rólegur hamur + severity: Mikilvægi + type: Tegund innflutnings + username: Notandanafn + username_or_email: Notandanafn eða tölvupóstfang + whole_word: Heil orð + featured_tag: + name: Myllumerki + interactions: + must_be_follower: Loka á tilkynningar frá þeim sem ekki eru fylgjendur + must_be_following: Loka á tilkynningar frá þeim sem þú fylgist ekki með + must_be_following_dm: Loka á bein skilaboð frá þeim sem þú fylgist ekki með + invite: + comment: Athugasemd + invite_request: + text: Hvers vegna viltu taka þátt? + notification_emails: + digest: Senda uppsafnaðan tölvupóst + favourite: Einhver setti stöðufærslu þína í eftirlæti + follow: Einhver fylgist núna með þér + follow_request: Einhver hefur beðið um að fylgjast með þér + mention: Einhver minntist á þig + pending_account: Nýr notandaaðgangur þarfnast yfirferðar + reblog: Einhver endurbirti stöðufærslu þína + report: Ný kæra hefur verið send inn + trending_tag: Óyfirfarið myllumerki er í umræðunni + tag: + listable: Leyfa þessu myllumerki að birtast í leitum og í persónusniðamöppunni + name: Myllumerki + trendable: Leyfa þessu myllumerki að birtast undir tilhneigingum + usable: Leyfa tístum að nota þetta myllumerki + 'no': Nei + recommended: Mælt með + required: + mark: "*" + text: nauðsynlegt + 'yes': Já diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 04358da19..21c5c144d 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -150,14 +150,14 @@ ja: text: 意気込みをお聞かせください notification_emails: digest: タイムラインからピックアップしてメールで通知する - favourite: お気に入りに登録された時にメールで通知する - follow: フォローされた時にメールで通知する - follow_request: フォローリクエストを受けた時にメールで通知する - mention: 返信が来た時にメールで通知する - pending_account: 新しいアカウントの承認が必要な時にメールで通知する - reblog: トゥートがブーストされた時にメールで通知する - report: 通報を受けた時にメールで通知する - trending_tag: 未審査のハッシュタグが人気の時にメールで通知する + favourite: お気に入り登録された時 + follow: フォローされた時 + follow_request: フォローリクエストを受けた時 + mention: 返信が来た時 + pending_account: 新しいアカウントの承認が必要な時 + reblog: トゥートがブーストされた時 + report: 通報を受けた時 + trending_tag: 未審査のハッシュタグが人気の時 tag: listable: 検索とディレクトリへの使用を許可する name: ハッシュタグ diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml new file mode 100644 index 000000000..0a6417e36 --- /dev/null +++ b/config/locales/simple_form.kab.yml @@ -0,0 +1,62 @@ +--- +kab: + simple_form: + hints: + account_alias: + acct: Specify the username@domain of the account you want to move from + account_migration: + acct: Sekcem isem n umseqdac@taɣult n umiḍan wuɣur tebɣiḍ ad tuɣaleḍ + admin_account_action: + send_email_notification: Amseqdac ad t-id-yewweḍ usefhem ɣef wayen yeḍran akked umiḍan-is + type_html: Fren d acu ara txedmeḍ s %{acct} + defaults: + autofollow: Imdanen ara ijerrden s usnebgi-inek, ad k-ḍefṛen s wudem awurman + discoverable: Tabdert n yimaɣnuten d udem-nniḍen i umiḍan-ik akken ad yettwassen ugar + email: Ad n-teṭṭfeḍ imayl i usentem + irreversible: Tibarraḥin i tessazedgeḍ ad ttwakksent i lebda, ula ma tekkseḍ imsizdeg-nni ar zdat + locale: Tutlayt n ugrudem, imaylen d tilɣa + password: Seqdec ma drus 8 n yisekkilen + setting_hide_network: Wid i teṭṭafaṛeḍ d wid i k-yeṭṭafaṛen ur d-ttwaseknen ara deg umaɣnu-inek + username: Isem-ik n umseqdac ad yili d ayiwen, ulac am netta deg %{domain} + featured_tag: + name: 'Ahat ad tebɣuḍ ad tesqedceḍ yiwen gar-asen:' + imports: + data: Afaylu CSV yekka-d seg uqeddac-nniḍen Mastudun + labels: + account: + fields: + value: Agbur + admin_account_action: + types: + silence: Sgugem + defaults: + bot: Wagi d amiḍan aṛubut + chosen_languages: Sizdeg tutlayin + confirm_new_password: Sentem awal uffir amaynut + confirm_password: Sentem awal uffir + current_password: Awal uffir n tura + data: Isefka + display_name: Isem ara d-yettwaskanen + email: Tansa imayl + header: Ixef + locale: Tutlayt n ugrudem + new_password: Awal uffir amaynut + password: Awal uffir + setting_display_media_default: Akk-a kan + setting_display_media_hide_all: Ffer kullec + setting_display_media_show_all: Sken kullec + setting_hide_network: Ffer azetta-k·m + username: Isem n useqdac + username_or_email: Isem n useqdac neγ imal + whole_word: Awal akk + featured_tag: + name: Ahacṭag + invite: + comment: Awennit + invite_request: + text: Acimi tebɣiḍ ad ternuḍ iman-ik? + 'no': Ala + required: + mark: "*" + text: ilaq + 'yes': Ih diff --git a/config/locales/simple_form.ml.yml b/config/locales/simple_form.ml.yml index 0439b2053..df04a15e8 100644 --- a/config/locales/simple_form.ml.yml +++ b/config/locales/simple_form.ml.yml @@ -6,3 +6,11 @@ ml: type_html: "%{acct} നെ എന്ത് ചെയ്യണമെന്ന് തീരുമാനിക്കുക" defaults: password: 8 അക്ഷരങ്ങൾ എങ്കിലും ഉപയോഗിക്കുക + labels: + account: + fields: + value: ഉള്ളടക്കം + account_alias: + acct: പഴയ അംഗത്വത്തിലേക്കുള്ള പിടി + account_migration: + acct: പുതിയ അംഗത്വത്തിലേക്കുള്ള പിടി diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 5c417c84e..a36970c14 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -150,14 +150,14 @@ nl: text: Waarom wil jij je aanmelden? notification_emails: digest: Periodiek e-mails met een samenvatting versturen - favourite: Een e-mail versturen wanneer iemand jouw toot aan hun favorieten heeft toegevoegd - follow: Een e-mail versturen wanneer iemand jou volgt - follow_request: Een e-mail versturen wanneer iemand jou wil volgen - mention: Een e-mail versturen wanneer iemand jou vermeld - pending_account: Een e-mail verzenden wanneer een nieuw account moet worden beoordeeld - reblog: Een e-mail versturen wanneer iemand jouw toot heeft geboost - report: Verstuur een e-mail wanneer een nieuw rapportage is ingediend - trending_tag: Een e-mail versturen wanneer een nog niet beoordeelde hashtag trending is + favourite: Wanneer iemand jouw toot aan hun favorieten heeft toegevoegd + follow: Wanneer iemand jou is gaan volgen + follow_request: Wanneer iemand jou wil volgen + mention: Wanneer iemand jou heeft vermeld + pending_account: Wanneer een nieuw account moet worden beoordeeld + reblog: Wanneer iemand jouw toot heeft geboost + report: Wanneer een nieuwe rapportage werd ingediend + trending_tag: Wanneer een nog niet beoordeelde hashtag trending is tag: listable: Toestaan dat deze hashtag in zoekopdrachten en in de gebruikersgids te zien valt name: Hashtag diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index 777f4e600..3016db14d 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -1 +1,145 @@ +--- nn: + simple_form: + hints: + admin_account_action: + include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen + type_html: Velg hva du vil gjøre med %{acct} + warning_preset_id: Valfritt. Du kan leggja inn eigen tekst på enden av føreoppsettet + defaults: + autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg + avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med + current_username: Skriv inn brukarnamnet til den noverande kontoen for å stadfesta + digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte + discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på + email: Du får snart ein stadfestings-e-post + fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din + header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet + locked: Krever at du manuelt godkjenner følgere + password: Nytt minst 8 teikn + phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut + scopes: Hvilke API-er programmet vil bli gitt tilgang til. Dersom du velger et toppnivåomfang, trenger du ikke å velge individuelle API-er. + setting_aggregate_reblogs: Ikke vis nye fremhevinger for tuter som nylig har blitt fremhever (Påvirker kun nylige fremhevinger) + setting_default_sensitive: Sensitivt media blir skjult som standard og kan bli vist med et klikk + setting_display_media_default: Skjul media som er merket som sensitivt + setting_display_media_hide_all: Alltid skjul alt media + setting_display_media_show_all: Alltid vis media som er merket som sensitivt + setting_hide_network: Kven du fylgjer og kven som fylgjer deg vert ikkje vist på profilen din + setting_noindex: Påvirker din offentlige profil og statussider + setting_show_application: Appen du brukte til å tute vil bli vist i den detaljerte visningen til tutene dine + setting_use_blurhash: Gradientene er basert på fargene til de skjulte visualitetene, men gjør alle detaljer uklare + setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle + username: Brukarnamnet ditt vert unikt på %{domain} + whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet + featured_tag: + name: 'Kanskje du vil nytta ein av desse:' + form_challenge: + current_password: Du går inn i et sikkert område + imports: + data: CSV-fil eksportert frå ein annan Mastodon-tenar + invite_request: + text: Dette kjem til å hjelpa oss med å gå gjennom søknaden din + sessions: + otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + user: + chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene + labels: + account: + fields: + name: Merkelapp + value: Innhald + account_warning_preset: + text: Føreåtstekst + admin_account_action: + send_email_notification: Varsl brukaren med e-post + text: Eigen åtvaring + type: Handling + types: + disable: Slå av innlogging + none: Gjer inkje + silence: Togn + suspend: Utvis og slett kontodata for godt + warning_preset_id: Bruk åtvaringsoppsett + defaults: + autofollow: Bed om å fylgja kontoen din + avatar: Bilete + bot: Dette er ein bot-konto + chosen_languages: Filtermål + confirm_new_password: Stadfest nytt passord + confirm_password: Stadfest passord + context: Filtrer kontekstar + current_password: Noverande passord + data: Data + discoverable: Før opp denne kontoen i mappen + display_name: Synleg namn + email: E-post-adresse + expires_in: Vert ugyldig etter + fields: Profilmetadata + header: Overskrift + locale: Språk + locked: Lås konto + max_uses: Grense på brukartal + new_password: Nytt passord + note: Om meg + otp_attempt: Tostegskode + password: Passord + phrase: Nykelord eller frase + setting_advanced_layout: Skru på det avanserte nettgrensesnittet + setting_aggregate_reblogs: Gruppefremhevinger i tidslinjer + setting_auto_play_gif: Spel av animerte GIF-ar automatisk + setting_boost_modal: Vis bekreftelse før fremheving + setting_crop_images: Klipp bilder i ikke-utvidede tuter til 16:9 + setting_default_language: Språk på innlegg + setting_default_privacy: Privatliv + setting_default_sensitive: Marker alltid media som sensitivt + setting_delete_modal: Vis bekreftelse før du sletter en tut + setting_display_media: Medievisning + setting_display_media_default: Standard + setting_display_media_hide_all: Gøym alle + setting_display_media_show_all: Vis alle + setting_expand_spoilers: Utvid alltid tuter som er merket med innholdsadvarsler + setting_hide_network: Skjul nettverket ditt + setting_noindex: Avmeld fra søkemotorindeksering + setting_reduce_motion: Reduser bevegelser i animasjoner + setting_show_application: Skryt av appen som ble brukt til å sende tuter + setting_system_font_ui: Bruk standardskrifttypen på systemet + setting_theme: Sidetema + setting_trends: Vis kva som er populært i dag + setting_unfollow_modal: Vis bekreftelse før du slutter å følge noen + setting_use_blurhash: Vis fargerike gradienter for skjulte media + setting_use_pending_items: Saktemodus + severity: Alvorsgrad + type: Importtype + username: Brukarnamn + username_or_email: Brukarnman eller E-post + whole_word: Heilt ord + featured_tag: + name: Emneknagg + interactions: + must_be_follower: Blokker varslinger fra ikke-følgere + must_be_following: Blokker varslinger fra personer du ikke følger + must_be_following_dm: Blokker direkte meldinger fra personer du ikke følger + invite: + comment: Kommentar + invite_request: + text: Kvifor vil du verta med? + notification_emails: + digest: Send samandrag på e-post + favourite: Send e-post når nokon merkjer statusen din som favoritt + follow: Send e-post når nokon fylgjer deg + follow_request: Send e-post når nokon spør om å fylgja deg + mention: Send e-post når nokon nemner deg + pending_account: Send e-post når ein ny konto treng gjennomgang + reblog: Send e-post når nokon framhevar statusen din + report: Send e-post når nokon rapporterer noko + tag: + name: Emneknagg + usable: Gje tut lov til å nytta denne emneknaggen + 'no': Nei + recommended: Tilrådt + required: + mark: "*" + text: obligatorisk + 'yes': Ja diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index 9393e37d1..fb158e9e3 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -2,24 +2,76 @@ 'no': simple_form: hints: + admin_account_action: + include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen + type_html: Velg hva du vil gjøre med %{acct} defaults: + autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med + current_username: For å bekrefte, vennligst skriv inn brukernavnet til den nåværende kontoen digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte + discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på + email: Du vil bli tilsendt en bekreftelses-E-post + fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet locked: Krever at du manuelt godkjenner følgere + password: Bruk minst 8 tegn + phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut + scopes: Hvilke API-er programmet vil bli gitt tilgang til. Dersom du velger et toppnivåomfang, trenger du ikke å velge individuelle API-er. + setting_aggregate_reblogs: Ikke vis nye fremhevinger for tuter som nylig har blitt fremhever (Påvirker kun nylige fremhevinger) + setting_default_sensitive: Sensitivt media blir skjult som standard og kan bli vist med et klikk + setting_display_media_default: Skjul media som er merket som sensitivt + setting_display_media_hide_all: Skjul alltid all media + setting_display_media_show_all: Alltid vis media som er merket som sensitivt + setting_hide_network: De som du følger, og de som følger deg, vil ikke bli vist på profilen din setting_noindex: Påvirker din offentlige profil og statussider + setting_show_application: Appen du brukte til å tute vil bli vist i den detaljerte visningen til tutene dine + setting_use_blurhash: Gradientene er basert på fargene til de skjulte visualitetene, men gjør alle detaljer uklare + setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle + username: Brukernavnet ditt vil være unikt på %{domain} + whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet + featured_tag: + name: 'Du vil kanskje ønske å bruke en av disse:' + form_challenge: + current_password: Du går inn i et sikkert område imports: data: CSV-fil eksportert fra en annen Mastodon-instans sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + user: + chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene labels: + account: + fields: + name: Etikett + value: Innhold + account_warning_preset: + text: Forhåndsvalgt tekst + admin_account_action: + send_email_notification: Si ifra til brukeren over E-post + text: Tilpasset advarsel + type: Handling + types: + disable: Deaktiver pålogging + none: Ikke gjør noe + silence: Stilne defaults: + autofollow: Inviter til å følge kontoen din + avatar: Profilbilde + bot: Dette er en botkonto + chosen_languages: Filtrer språk confirm_new_password: Bekreft nytt passord confirm_password: Bekreft passord + context: Filtersammenhenger current_password: Nåværende passord + data: Data + discoverable: Før opp denne kontoen i mappen display_name: Visningsnavn email: E-postadresse expires_in: Utløper etter + fields: Profilmetadata header: Overskrift locale: Språk locked: Lås konto @@ -28,23 +80,46 @@ note: Om meg otp_attempt: Tofaktorkode password: Passord + phrase: Nøkkelord eller frase + setting_advanced_layout: Skru på det avanserte nettgrensesnittet + setting_aggregate_reblogs: Gruppefremhevinger i tidslinjer setting_auto_play_gif: Autoavspill animert GIF-filer setting_boost_modal: Vis bekreftelse før fremheving + setting_crop_images: Klipp bilder i ikke-utvidede tuter til 16:9 + setting_default_language: Innleggsspråk setting_default_privacy: Postintegritet setting_default_sensitive: Marker alltid media som sensitivt setting_delete_modal: Vis bekreftelse før du sletter en tut - setting_noindex: Ikke delta i søkemotorsindeksering + setting_display_media: Mediavisning + setting_display_media_default: Standard + setting_display_media_hide_all: Skjul alle + setting_display_media_show_all: Vis alle + setting_expand_spoilers: Utvid alltid tuter som er merket med innholdsadvarsler + setting_hide_network: Skjul nettverket ditt + setting_noindex: Avmeld fra søkemotorindeksering setting_reduce_motion: Reduser bevegelser i animasjoner + setting_show_application: Skryt av appen som ble brukt til å sende tuter setting_system_font_ui: Bruk systemets standardfont setting_theme: Sidens tema + setting_trends: Vis dagens trender setting_unfollow_modal: Vis bekreftelse før du slutter å følge noen + setting_use_blurhash: Vis fargerike gradienter for skjulte media + setting_use_pending_items: Saktemodus severity: Alvorlighetsgrad type: Importeringstype username: Brukernavn + username_or_email: Brukernavn eller E-post + whole_word: Hele ord + featured_tag: + name: Emneknagg interactions: must_be_follower: Blokker varslinger fra ikke-følgere must_be_following: Blokker varslinger fra personer du ikke følger must_be_following_dm: Blokker direkte meldinger fra personer du ikke følger + invite: + comment: Kommentar + invite_request: + text: Hvorfor vil du bli med? notification_emails: digest: Send sammendrag på e-post favourite: Send e-post når noen setter din status som favoritt @@ -52,7 +127,12 @@ follow_request: Send e-post når noen ber om å få følge deg mention: Send e-post når noen nevner deg reblog: Send e-post når noen fremhever din status + tag: + name: Emneknagg + usable: Tillat tuter å bruke denne emneknaggen 'no': Nei + recommended: Anbefalt required: + mark: "*" text: obligatorisk 'yes': Ja diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 9b96e1b94..9e557383c 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -3,131 +3,135 @@ pt-BR: simple_form: hints: account_alias: - acct: Especifique o usuário@domínio da conta da qual você deseja mover + acct: Especifique o usuário@domínio da conta da qual você deseja se mudar account_migration: - acct: Especifique o usuário@domínio da conta para o qual você deseja mover + acct: Especifique o usuário@domínio da conta para a qual você deseja se mudar account_warning_preset: - text: Você pode usar a sintaxe de um toot, como URLs, hashtags e menções + text: Você pode usar a sintaxe do toot, como links, hashtags e menções admin_account_action: include_statuses: O usuário verá quais toots causaram o aviso ou ação da moderação - send_email_notification: O usuário vai receber uma explicação do que aconteceu com a sua conta - text_html: Opcional. Você pode usar a sintaxe de toots. Você pode adicionar avisos pré-definidos para ganhar tempo - type_html: Escolha o que fazer com %{acct} - warning_preset_id: Opcional. Você ainda pode adicionar texto customizado no fim do texto pré-definido + send_email_notification: O usuário receberá uma explicação do que aconteceu com a própria conta + text_html: Opcional. Você pode usar a sintaxe do toot e também pode adicionar avisos pré-definidos para poupar tempo + type_html: Decida o que fazer com %{acct} + warning_preset_id: Opcional. Você ainda pode adicionar texto personalizado no final do aviso pré-definido defaults: - autofollow: Pessoas que se cadastrarem através de seu convite te seguirão automaticamente - avatar: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px + autofollow: Pessoas que criarem conta através de seu convite te seguirão automaticamente + avatar: PNG, GIF or JPG. Arquivos de até %{size}. Serão redimensionados para %{dimensions}px bot: Essa conta executa principalmente ações automatizadas e pode não ser monitorada - context: Um ou mais contextos onde o filtro deve ser aplicado - current_password: Para fins de segurança digite a senha da conta atual - current_username: Para confirmar, por favor, digite o usuário da conta atual - digest: Enviado após um longo período de inatividade com um resumo das menções que você recebeu em sua ausência - discoverable: O diretório de perfis é outra maneira de sua conta alcançar um público mais vasto - email: Você receberá um email de confirmação - fields: Você pode ter até 4 itens exibidos em forma de tabela no seu perfil - header: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px - inbox_url: Copie a URL da página inicial do repetidor que você quer usar - irreversible: Os toots filtrados vão desaparecer irreversivelmente, mesmo se o filtro for removido depois - locale: O idioma das telas de usuário, e-mails e notificações push + context: Um ou mais contextos onde o filtro deve atuar + current_password: Para fins de segurança, por favor, digite a senha da conta atual + current_username: Para confirmar, por favor, digite o nome de usuário da conta atual + digest: Enviado apenas após um longo período de inatividade com um resumo das menções recebidas durante ausência + discoverable: O diretório de perfis é outra maneira de sua conta alcançar um público maior + email: Você receberá um e-mail de confirmação + fields: Você pode ter até 4 itens mostrados em forma de tabela no seu perfil + header: PNG, GIF or JPG. Arquivos de até %{size}. Serão redimensionados para %{dimensions}px + inbox_url: Copie o link da página inicial do repetidor que você deseja usar + irreversible: Toots filtrados desaparecerão irreversivelmente, mesmo se o filtro for removido depois + locale: O idioma da interface do usuário, e-mails e notificações locked: Requer aprovação manual de seguidores password: Use pelo menos 8 caracteres - phrase: Vai coincidir, independente de maiúsculas ou minúsculas, no texto ou no aviso de conteúdo de um toot - scopes: Quais APIs a aplicação vai ter permissão de acessar. Se você selecionar um escopo de alto nível, você não precisa selecionar individualmente os outros. - setting_aggregate_reblogs: Não mostrar novos compartilhamentos para toots que foram compartilhados recentemente (afeta somente novos compartilhamentos recebidos) + phrase: Corresponderá independente de maiúsculas ou minúsculas, no texto ou no aviso de conteúdo de um toot + scopes: Quais APIs o aplicativo vai ter permissão de acessar. Se você selecionar uma autorização de alto nível, você não precisa selecionar individualmente os outros. + setting_aggregate_reblogs: Não mostra novos boosts para toots que receberam boost recentemente (afeta somente os boosts mais recentes) setting_default_sensitive: Mídia sensível está oculta por padrão e pode ser revelada com um clique - setting_display_media_default: Esconder mídia marcada como sensível - setting_display_media_hide_all: Sempre esconder todas as mídias - setting_display_media_show_all: Sempre mostrar mídia marcada como sensível - setting_hide_network: Quem você segue e quem segue você não serão exibidos no seu perfil - setting_noindex: Afeta seu perfil público e as páginas de suas postagens - setting_show_application: A aplicação que você usar para enviar seus toots vai aparecer na visão detalhada dos seus toots - setting_use_blurhash: Os gradientes são baseados nas cores das imagens escondidas, mas ofuscam quaisquer detalhes - setting_use_pending_items: Ocultar atualizações de linha de tempo atrás de um clique ao invés de rolar automaticamente o feed + setting_display_media_default: Sempre ocultar mídia sensível + setting_display_media_hide_all: Sempre ocultar todas as mídias + setting_display_media_show_all: Sempre mostrar mídia sensível + setting_hide_network: Quem você segue e seus seguidores não serão mostrados no seu perfil + setting_noindex: Afeta seu perfil público e as páginas dos seus toots + setting_show_application: O aplicativo que você usar para tootar será mostrado na visão detalhada dos seus toots + setting_use_blurhash: O blur é baseado nas cores da imagem oculta, ofusca a maioria dos detalhes + setting_use_pending_items: Ocultar atualizações da linha do tempo atrás de um clique ao invés de rolar automaticamente username: Seu nome de usuário será único em %{domain} - whole_word: Quando a palavra ou frase é inteiramente alfanumérica, ela será aplicada somente se corresponder a palavra inteira + whole_word: Quando a palavra-chave ou frase é inteiramente alfanumérica, ela será aplicada somente se corresponder a palavra inteira domain_allow: - domain: Este domínio será capaz de obter dados deste servidor e os dados recebidos dele serão processados e armazenados + domain: Este domínio poderá obter dados deste servidor e os dados recebidos dele serão processados e armazenados featured_tag: name: 'Você pode querer usar um destes:' form_challenge: current_password: Você está entrando em uma área segura imports: - data: Arquivo CSV exportado de outra instância do Mastodon + data: Arquivo CSV exportado de outra instância Mastodon invite_request: - text: Isso vai nos ajudar a revisar sua aplicação + text: Isso nos ajudará a revisar seu aplicativo sessions: - otp: 'Insira o código de autenticação gerado pelo app no seu celular ou use um dos códigos de recuperação:' + otp: 'Digite o código de dois fatores gerado pelo aplicativo no seu celular ou use um dos códigos de recuperação:' tag: name: Você pode mudar a capitalização das letras, por exemplo, para torná-la mais legível user: - chosen_languages: Ao marcar, apenas toots dos idiomas selecionados serão exibidos nas timelines públicas + chosen_languages: Apenas toots dos idiomas selecionados serão mostrados nas linhas públicas labels: account: fields: name: Rótulo value: Conteúdo + account_alias: + acct: Nome de usuário da conta antiga + account_migration: + acct: Nome de usuário da nova conta account_warning_preset: - text: Texto pré-definido + text: Aviso pré-definido admin_account_action: - include_statuses: Incluir toots reportados no e-mail + include_statuses: Incluir toots denunciados no e-mail send_email_notification: Notificar o usuário por e-mail - text: Aviso customizado + text: Aviso personalizado type: Ação types: - disable: Desabilitar + disable: Bloquear conta none: Não fazer nada silence: Silenciar - suspend: Suspender e excluir irreversivelmente dados da conta + suspend: Banir e excluir irreversivelmente dados da conta warning_preset_id: Usar um aviso pré-definido defaults: autofollow: Convite para seguir a sua conta - avatar: Imagem de Perfil + avatar: Imagem de perfil bot: Esta é uma conta-robô - chosen_languages: Filtros de idioma + chosen_languages: Filtro de idiomas confirm_new_password: Confirmar nova senha confirm_password: Confirmar senha - context: Contextos de filtro + context: Contextos do filtro current_password: Senha atual data: Dados - discoverable: Listar essa conta no diretório + discoverable: Mostrar conta no diretório de perfis display_name: Nome de exibição email: Endereço de e-mail expires_in: Expira em fields: Metadados do perfil header: Cabeçalho - inbox_url: URL da caixa de entrada do repetidor - irreversible: Ignorar ao invés de esconder - locale: Idioma das telas + inbox_url: Link da caixa de entrada do repetidor + irreversible: Ignorar ao invés de ocultar + locale: Idioma da interface locked: Trancar conta max_uses: Número máximo de usos new_password: Nova senha note: Biografia - otp_attempt: Código de autenticação em dois passos + otp_attempt: Código de autenticação de dois fatores password: Senha phrase: Palavra-chave ou frase setting_advanced_layout: Ativar interface web avançada - setting_aggregate_reblogs: Agrupar compartilhamentos nas timelines + setting_aggregate_reblogs: Agrupar boosts nas linhas setting_auto_play_gif: Reproduzir GIFs automaticamente - setting_boost_modal: Mostrar diálogo de confirmação antes de compartilhar postagem + setting_boost_modal: Solicitar confirmação antes de dar boost setting_crop_images: Cortar imagens no formato 16x9 em toots não expandidos - setting_default_language: Idioma das postagens - setting_default_privacy: Privacidade das postagens + setting_default_language: Idioma dos toots + setting_default_privacy: Privacidade dos toots setting_default_sensitive: Sempre marcar mídia como sensível - setting_delete_modal: Mostrar diálogo de confirmação antes de deletar uma postagem + setting_delete_modal: Solicitar confirmação antes de excluir toot setting_display_media: Exibição das mídias setting_display_media_default: Padrão - setting_display_media_hide_all: Esconder tudo + setting_display_media_hide_all: Ocultar tudo setting_display_media_show_all: Mostrar tudo - setting_expand_spoilers: Sempre expandir toots marcados com aviso de conteúdo - setting_hide_network: Esconder as suas redes - setting_noindex: Não quero ser indexado por mecanismos de busca - setting_reduce_motion: Reduz movimento em animações - setting_show_application: Mostrar o nome da aplicação utilizada para enviar os toots - setting_system_font_ui: Usar a fonte padrão de seu sistema + setting_expand_spoilers: Sempre expandir toots com Aviso de Conteúdo + setting_hide_network: Ocultar suas relações + setting_noindex: Não quero ser indexado por mecanismos de pesquisa + setting_reduce_motion: Reduzir animações + setting_show_application: Mostrar o aplicativo usado para enviar os toots + setting_system_font_ui: Usar fonte padrão do sistema setting_theme: Tema do site - setting_trends: Mostrar tendências de hoje - setting_unfollow_modal: Mostrar diálogo de confirmação antes de deixar de seguir alguém - setting_use_blurhash: Mostrar gradientes coloridos para mídias ocultas + setting_trends: Mostrar em alta hoje + setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém + setting_use_blurhash: Mostrar blur em mídias ocultas setting_use_pending_items: Modo lento severity: Gravidade type: Tipo de importação @@ -143,22 +147,22 @@ pt-BR: invite: comment: Comentário invite_request: - text: Por que você quer se cadastrar? + text: Por que você deseja criar uma conta aqui? notification_emails: - digest: Mandar e-mails com relatórios - favourite: Mandar um e-mail quando alguém favoritar suas postagens - follow: Mandar um e-mail quando alguém te seguir - follow_request: Mandar um e-maill quando alguém solicitar ser seu seguidor - mention: Mandar um e-mail quando alguém te mencionar - pending_account: Mandar um -mail quando uma nova conta precisar ser revisada - reblog: Mandar um e-mail quando alguém compartilhar suas postagens - report: Mandar um e-mail quando uma nova denúncia é submetida + digest: Enviar e-mails de resumo + favourite: Enviar e-mail quando alguém favoritar seus toots + follow: Enviar e-mail quando alguém te seguir + follow_request: Enviar e-mail quando alguém solicitar ser seu seguidor + mention: Enviar e-mail quando alguém te mencionar + pending_account: Enviar e-mail quando uma nova conta precisar ser revisada + reblog: Enviar e-mail quando alguém der boost nos seus toots + report: Enviar e-mail quando uma nova denúncia for enviada trending_tag: Enviar e-mail quando uma hashtag não revisada estiver em alta tag: listable: Permitir que esta hashtag apareça em pesquisas e no diretório de perfis name: Hashtag trendable: Permitir que esta hashtag apareça em alta - usable: Permitir que toots usem esta hastag + usable: Permitir que toots usem esta hashtag 'no': Não recommended: Recomendado required: diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index 57acde4d9..4a4437e76 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -20,7 +20,9 @@ pt-PT: bot: Esta conta executa essencialmente acções automáticas e pode não poder ser monitorizada context: Um ou múltiplos contextos nos quais o filtro deve ser aplicado current_password: Para fins de segurança, por favor, digite a senha da conta atual + current_username: Para confirmar, por favor, introduza o nome de utilizador da conta atual digest: Enviado após um longo período de inatividade e apenas se foste mencionado na tua ausência + discoverable: O diretório de perfis é outra maneira da sua conta alcançar um público mais vasto email: Será enviado um e-mail de confirmação fields: Podes ter até 4 itens expostos, em forma de tabela, no teu perfil header: PNG, GIF or JPG. Arquivos até %{size}. Vão ser reduzidos para %{dimensions}px @@ -32,20 +34,31 @@ pt-PT: phrase: Será correspondido independentemente da capitalização ou do aviso de conteúdo duma publicação scopes: Quais as APIs a que será concedido acesso. Se escolheres uma abrangência de nível superior, não precisarás de as seleccionar individualmente. setting_aggregate_reblogs: Não mostrar novas partilhas que foram partilhadas recentemente (só afecta as novas partilhas) + setting_default_sensitive: Média sensível está oculta por padrão e pode ser revelada com um clique setting_display_media_default: Esconder media marcada como sensível setting_display_media_hide_all: Esconder sempre toda a media setting_display_media_show_all: Mostrar sempre a media marcada como sensível setting_hide_network: Quem tu segues e quem te segue não será mostrado no teu perfil setting_noindex: Afecta o teu perfil público e as páginas das tuas publicações setting_show_application: A aplicação que tu usas para publicar será mostrada na vista detalhada das tuas publicações + setting_use_blurhash: Os gradientes são baseados nas cores das imagens escondidas, mas ofuscam quaisquer detalhes + setting_use_pending_items: Ocultar atualizações da cronologia atrás de um clique ao invés de rolar automaticamente o feed username: O teu nome de utilizador será único em %{domain} whole_word: Quando a palavra-chave ou expressão-chave é somente alfanumérica, ela só será aplicada se corresponder à palavra completa + domain_allow: + domain: Este domínio será capaz de obter dados deste servidor e os dados dele recebidos serão processados e armazenados featured_tag: name: 'Poderás querer usar um destes:' + form_challenge: + current_password: Está a entrar numa área restrita imports: data: Arquivo CSV exportado de outro servidor do Mastodon + invite_request: + text: Isto vai ajudar-nos a rever o seu pedido sessions: otp: 'Insere o código de autenticação em dois passos gerado pelo teu telemóvel ou usa um dos teus códigos de recuperação:' + tag: + name: Só pode alterar a capitalização das letras, por exemplo, para torná-las mais legíveis user: chosen_languages: Quando seleccionado, só publicações nas línguas escolhidas serão mostradas nas cronologias públicas labels: @@ -53,9 +66,14 @@ pt-PT: fields: name: Rótulo value: Conteúdo + account_alias: + acct: Nome de utilizador da conta antiga + account_migration: + acct: Nome de utilizador da nova conta account_warning_preset: text: Texto pré-definido admin_account_action: + include_statuses: Incluir no e-mail os toots reportados send_email_notification: Notificar o utilizador por e-mail text: Aviso personalizado type: Acção @@ -91,9 +109,11 @@ pt-PT: otp_attempt: Código de autenticação em dois passos password: Palavra-passe phrase: Palavra ou expressão-chave + setting_advanced_layout: Ativar interface web avançada setting_aggregate_reblogs: Agrupar partilhas em cronologias setting_auto_play_gif: Reproduzir GIFs automaticamente setting_boost_modal: Solicitar confirmação antes de partilhar uma publicação + setting_crop_images: Cortar imagens em toots não expandidos para o formato 16x9 setting_default_language: Língua de publicação setting_default_privacy: Privacidade da publicação setting_default_sensitive: Sempre marcar media como sensível @@ -109,25 +129,43 @@ pt-PT: setting_show_application: Revelar sempre qual a aplicação usada para enviar as publicações setting_system_font_ui: Usar a fonte padrão do teu sistema setting_theme: Tema do site + setting_trends: Mostrar as tendências de hoje setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém + setting_use_blurhash: Mostrar gradientes coloridos para médias ocultas + setting_use_pending_items: Modo lento severity: Gravidade type: Tipo de importação username: Nome de utilizador username_or_email: Nome de utilizador ou e-mail whole_word: Palavra completa + featured_tag: + name: Hashtag interactions: must_be_follower: Bloquear notificações de não-seguidores must_be_following: Bloquear notificações de pessoas que não segues must_be_following_dm: Bloquear mensagens directas de pessoas que tu não segues + invite: + comment: Comentário + invite_request: + text: Porque se quer juntar a nós? notification_emails: digest: Enviar e-mails de resumo favourite: Enviar e-mail quando alguém adiciona uma publicação tua aos favoritos follow: Enviar e-mail quando alguém te segue follow_request: Enviar e-mail quando alguém solicita ser teu seguidor mention: Enviar e-mail quando alguém te menciona + pending_account: Enviar e-mail quando uma nova conta aguarda aprovação reblog: Enviar e-mail quando alguém partilha uma publicação tua report: Enviar um e-mail quando um novo relatório é submetido + trending_tag: Enviar e-mail quando uma hashtag não aprovada anteriormente estiver em destaque + tag: + listable: Permitir que esta hashtag apareça em pesquisas e no diretório de perfis + name: Hashtag + trendable: Permitir que esta hashtag apareça em destaque + usable: Permitir que toots utilizem esta hashtag 'no': Não + recommended: Recomendado required: + mark: "*" text: obrigatório 'yes': Sim diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index b4951dc74..918997695 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -3,52 +3,52 @@ ru: simple_form: hints: account_alias: - acct: Укажите имя пользователя@домен учетной записи, с которой вы хотите мигрировать + acct: Укажите имя_пользователя@домен учётной записи, с которой вы собираетесь мигрировать account_migration: - acct: Укажите имя пользователя@домен учетной записи, на которую вы хотите мигрировать + acct: Укажите имя_пользователя@домен учётной записи, на которую вы собираетесь мигрировать account_warning_preset: text: Вы можете использовать всё, что в обычных постах — ссылки, хэштеги, упоминания и т.д. admin_account_action: include_statuses: Пользователь будет видеть к каким постами применялись модераторские действия и выносились предупреждения - send_email_notification: Пользователь получит сообщение о том, что случилось с его/её аккаунтом - text_html: (Необязательно) Можно использовать обычный синтаксис. Для экономии времени добавьте шаблоны предупреждений - type_html: Выберите, что делать с аккаунтом %{acct} + send_email_notification: Пользователь получит сообщение о том, что случилось с его/её учётной записью + text_html: Необязательно. Вы можете использовать синтаксис постов. Для экономии времени, добавьте шаблоны предупреждений + type_html: Выберите применяемое к %{acct} действие warning_preset_id: Необязательно. Вы можете добавить собственный текст в конце шаблона defaults: autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px - bot: Этот аккаунт обычно выполяет автоматизированные действия и может не просматриваться владельцем + bot: Эта учётная запись обычно выполяет автоматизированные действия и может не просматриваться владельцем context: Один или несколько контекстов, к которым должны быть применены фильтры current_password: В целях безопасности введите пароль текущей учётной записи - current_username: Для подтверждения, пожалуйста, введите имя пользователя текущей учетной записи - digest: Отсылается лишь после длительной неактивности, если вы в это время получали личные сообщения - discoverable: Каталог профилей является другим способом, с помощью которого ваша учетная запись может стать доступной более широкой аудитории + current_username: Для подтверждения, пожалуйста, введите имя пользователя текущей учётной записи + digest: Если вы долго не заглядывали, отправим вам дайджест событий, которые происходили в период вашего отсутствия. + discoverable: Каталог профилей это один из способов получить охват вашего профиля более обширной аудиторией email: Вам будет отправлено электронное письмо с подтверждением - fields: В профиле можно отобразить до 4 пунктов как таблицу + fields: В профиле можно отобразить до 4 пунктов в виде таблицы header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать - irreversible: Отфильтрованные статусы будут утеряны навсегда, даже если в будущем фильтр будет убран + irreversible: Отфильтрованные посты будут утеряны навсегда, даже если в будущем фильтр будет убран locale: Язык интерфейса, e-mail писем и push-уведомлений locked: Подписчиков нужно будет подтверждать самостоятельно password: Укажите не менее 8 символов - phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании статуса + phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании поста scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически. - setting_aggregate_reblogs: Не показывать новые продвижения статусов, которые уже были недавно продвинуты (относится только к новым продвижениям) - setting_default_sensitive: Чувствительные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них - setting_display_media_default: Скрывать чувствительные медиафайлы + setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям) + setting_default_sensitive: Деликатные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них + setting_display_media_default: Скрывать деликатные медиафайлы setting_display_media_hide_all: Всегда скрывать любые медиафайлы - setting_display_media_show_all: Всегда показывать чувствительные медиафайлы - setting_hide_network: Те, на кого вы подписаны и кто подписан на Вас, не будут отображены в вашем профиле - setting_noindex: Относится к вашему публичному профилю и страницам статусов - setting_show_application: В окне просмотра вашего статуса будет видно, с какого приложения он был отправлен + setting_display_media_show_all: Всегда показывать деликатные медиафайлы + setting_hide_network: Другие не смогут видеть ни ваши подписки, ни ваших подписчиков + setting_noindex: Относится к вашему публичному профилю и страницам постов + setting_show_application: При просмотре поста будет видно из какого приложения он отправлен setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки - username: Ваш юзернейм будет уникальным на %{domain} + username: Ваше имя пользователя будет уникальным на %{domain} whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению domain_allow: domain: Этот домен сможет получать данные с этого сервера и его входящие данные будут обрабатываться и сохранены featured_tag: - name: 'Возможно, вы захотите выбрать из них:' + name: 'Возможно, вы захотите добавить что-то из этого:' form_challenge: current_password: Вы входите в зону безопасности imports: @@ -67,42 +67,42 @@ ru: name: Пункт value: Значение account_alias: - acct: Обработчик старой учётной записи + acct: Имя старой учётной записи account_migration: - acct: Обработчик новой учётной записи + acct: Имя новой учётной записи account_warning_preset: text: Текст шаблона admin_account_action: include_statuses: Включать в письмо жалобы на посты - send_email_notification: Уведомить юзера по e-mail - text: Свой текст предупреждения + send_email_notification: Уведомить пользователя по e-mail + text: Текст предупреждения type: Действие types: disable: Заморозить none: Ничего не делать - silence: Заглушить - suspend: Заблокировать и безвозвратно удалить все данные аккаунта + silence: Скрыть + suspend: Заблокировать и безвозвратно удалить все данные учётной записи warning_preset_id: Использовать шаблон defaults: - autofollow: С подпиской на ваш аккаунт + autofollow: С подпиской на вашу учётную запись avatar: Аватар - bot: Это аккаунт бота + bot: Это учётная запись бота chosen_languages: Фильтр языков confirm_new_password: Повторите новый пароль confirm_password: Повторите пароль context: Контекст фильтра current_password: Текущий пароль data: Данные - discoverable: Показывать этот аккаунт в каталоге + discoverable: Показывать эту учётную запись в каталоге display_name: Отображаемое имя email: Адрес e-mail expires_in: Истекает через fields: Метаданные профиля - header: Заголовок + header: Шапка inbox_url: URL для входящих от ретрансляторов irreversible: Удалять, а не скрывать locale: Язык интерфейса - locked: Сделать аккаунт закрытым + locked: Сделать учётную запись закрытой max_uses: Максимальное число использований new_password: Новый пароль note: О себе @@ -114,26 +114,26 @@ ru: setting_auto_play_gif: Автоматически проигрывать анимированные GIF setting_boost_modal: Всегда спрашивать перед продвижением setting_crop_images: Кадрировать изображения в нераскрытых постах до 16:9 - setting_default_language: Язык отправляемых статусов + setting_default_language: Язык отправляемых постов setting_default_privacy: Видимость постов - setting_default_sensitive: Всегда отмечать медиаконтент как чувствительный + setting_default_sensitive: Всегда отмечать медиафайлы как деликатные setting_delete_modal: Всегда спрашивать перед удалении поста setting_display_media: Отображение медиафайлов setting_display_media_default: По умолчанию setting_display_media_hide_all: Скрывать все setting_display_media_show_all: Показывать все - setting_expand_spoilers: Всегда раскрывать статусы, имеющие предупреждение о содержании + setting_expand_spoilers: Всегда раскрывать посты, имеющие предупреждение о содержании setting_hide_network: Скрыть свои связи setting_noindex: Отказаться от индексации в поисковых машинах setting_reduce_motion: Уменьшить движение в анимации - setting_show_application: Раскрывать приложение, с которого отправляются статусы + setting_show_application: Указывать приложение, с которого отправлен пост setting_system_font_ui: Использовать шрифт системы по умолчанию setting_theme: Тема сайта setting_trends: Показывать сегодняшние тренды - setting_unfollow_modal: Всегда спрашивать перед отпиской от аккаунта + setting_unfollow_modal: Всегда спрашивать перед отпиской от учётной записи setting_use_blurhash: Показать цветные градиенты для скрытых медиа setting_use_pending_items: Медленный режим - severity: Строгость + severity: Накладываемые ограничения type: Тип импорта username: Имя пользователя username_or_email: Имя пользователя или e-mail @@ -141,30 +141,30 @@ ru: featured_tag: name: Хэштег interactions: - must_be_follower: Заблокировать уведомления не от подписчиков - must_be_following: Заблокировать уведомления от людей, на которых вы не подписаны - must_be_following_dm: Заблокировать личные сообщения от людей, на которых вы не подписаны + must_be_follower: Присылать уведомления только от подписчиков + must_be_following: Присылать уведомления только от людей на которых вы подписаны + must_be_following_dm: Разрешить присылать личные сообщения только людям, на которых вы подписаны invite: comment: Комментарий invite_request: text: Почему вы хотите присоединиться к нам? notification_emails: digest: Присылать дайджест по e-mail - favourite: Уведомлять по e-mail, когда кому-то нравится ваш статус - follow: Уведомлять по e-mail, когда кто-то подписался на вас - follow_request: Уведомлять по e-mail, когда кто-то запрашивает разрешение на подписку - mention: Уведомлять по e-mail, когда кто-то упомянул вас - pending_account: Отправлять e-mail при наличии новых заявок на присоединение - reblog: Уведомлять по e-mail, когда кто-то продвинул ваш статус - report: Уведомлять по e-mail при создании жалобы - trending_tag: Отправлять e-mail при непроверенных хэштегах в трендах + favourite: Ваш пост добавили в избранное + follow: Новый подписчик + follow_request: Новый запрос на подписку + mention: Новое упоминание + pending_account: Новая заявка на создание аккаунта + reblog: Ваш пост продвинули + report: Поступила новая жалоба + trending_tag: Актуальный хэштег требует проверки tag: listable: Разрешить показ хэштега в поиске или в каталоге профилей name: Хэштег trendable: Разрешить показ хэштега в трендах usable: Разрешить использовать этот хэштег в постах 'no': Нет - recommended: Рекомендуется + recommended: Рекомендуем required: mark: "*" text: обязательно diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index 3d5402b88..c10df08d0 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -22,6 +22,7 @@ sk: current_password: Z bezpečtnostných dôvodov prosím zadaj heslo súčasného účtu current_username: Pre potvrdenie prosím zadaj prezývku súčasného účtu digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak si obdržal/a nejaké osobné správy kým si bol/a preč + discoverable: Zoznam profilov predstavuje ďalšiu cestu akou tvoj účet môže dosiahnúť väčšie publikum email: Bude ti odoslaný potvrdzujúci email fields: Až štyri položky môžeš mať na svojom profile zobrazené vo forme tabuľky header: PNG, GIF, alebo JPG. Maximálne %{size}. Bude zmenšený na %{dimensions}px @@ -56,6 +57,8 @@ sk: text: Toto pomôže s vyhodnocovaním tvojej žiadosti sessions: otp: 'Napíš sem dvoj-faktorový kód z telefónu, alebo použi jeden z tvojích obnovovacích kódov:' + tag: + name: Zmeniť môžeš iba veľkosť písmen, napríklad aby boli ľahšie čítateľné user: chosen_languages: Keď je zaškrtnuté, vo verejnej osi budú zobrazené iba príspevky vo vybraných jazykoch labels: diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index d310bab34..de0a14bd7 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -19,11 +19,11 @@ sv: avatar: PNG, GIF eller JPG. Högst %{size}. Kommer att skalas ner till %{dimensions}px bot: Detta konto utför huvudsakligen automatiserade åtgärder och kanske inte övervakas digest: Skickas endast efter en lång period av inaktivitet och endast om du har fått några personliga meddelanden i din frånvaro - email: Ett konfirmationsmeddelande kommer att skickas till dig via epost + email: Du kommer att få ett bekräftelsemeddelande via e-post fields: Du kan ha upp till 4 objekt visade som en tabell på din profil header: PNG, GIF eller JPG. Högst %{size}. Kommer att skalas ner till %{dimensions}px irreversible: Filtrerade inlägg kommer att försvinna oåterkalleligt, även om filter tas bort senare - locale: Användargränssnittets språk, e-post och push-aviseringar + locale: Språket för användargränssnittet, e-postmeddelanden och push-aviseringar locked: Kräver att du manuellt godkänner följare password: Använd minst 8 tecken setting_display_media_default: Dölj media markerad som känslig @@ -45,6 +45,9 @@ sv: fields: name: Etikett value: Innehåll + admin_account_action: + types: + none: Gör ingenting defaults: autofollow: Bjud in till att följa ditt konto bot: Detta är ett botkonto @@ -62,10 +65,11 @@ sv: max_uses: Högst antal användningar new_password: Nytt lösenord note: Biografi - otp_attempt: Tvåstegslösenord + otp_attempt: Tvåfaktorskod password: Lösenord phrase: Nyckelord eller fras - setting_auto_play_gif: Auto-play animerade GIF-filer + setting_advanced_layout: Aktivera avancerat webbgränssnitt + setting_auto_play_gif: Spela upp animerade GIF-bilder automatiskt setting_boost_modal: Visa bekräftelsedialog innan du knuffar setting_default_language: Språk setting_default_privacy: Postintegritet @@ -86,8 +90,8 @@ sv: username: Användarnamn username_or_email: Användarnamn eller e-mail interactions: - must_be_follower: Blockera meddelanden från icke-följare - must_be_following: Blockera meddelanden från personer du inte följer + must_be_follower: Blockera aviseringar från icke-följare + must_be_following: Blockera aviseringar från personer du inte följer must_be_following_dm: Blockera direktmeddelanden från personer du inte följer invite: comment: Kommentar diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index ba353c713..dc118a47f 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -2,19 +2,27 @@ th: simple_form: hints: + account_alias: + acct: ระบุ username@domain ของบัญชีที่คุณต้องการย้ายจาก + account_migration: + acct: ระบุ username@domain ของบัญชีที่คุณต้องการย้ายไป account_warning_preset: text: คุณสามารถใช้ไวยากรณ์โพสต์ เช่น URL, แฮชแท็ก และการกล่าวถึง admin_account_action: + include_statuses: ผู้ใช้จะเห็นว่าโพสต์ใดก่อให้เกิดการกระทำการควบคุมหรือคำเตือน send_email_notification: ผู้ใช้จะได้รับคำอธิบายว่าเกิดอะไรขึ้นกับบัญชีของเขา text_html: ตัวเลือกเพิ่มเติม คุณสามารถใช้ไวยากรณ์โพสต์ คุณสามารถ เพิ่มคำเตือนที่ตั้งไว้ล่วงหน้า เพื่อประหยัดเวลา type_html: เลือกสิ่งที่จะทำกับ %{acct} - warning_preset_id: ตัวเลือกเพิ่มเติม คุณยังคงสามารถเพิ่มข้อความที่กำหนดเองที่จุดสิ้นสุดของค่าที่ตั้งไว้ล่วงหน้า + warning_preset_id: ตัวเลือกเพิ่มเติม คุณยังสามารถเพิ่มข้อความที่กำหนดเองที่จุดสิ้นสุดของค่าที่ตั้งไว้ล่วงหน้า defaults: autofollow: ผู้คนที่ลงทะเบียนผ่านคำเชิญจะติดตามคุณโดยอัตโนมัติ avatar: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px bot: บัญชีนี้ทำการกระทำอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์ context: บริบทจำนวนหนึ่งหรือมากกว่าที่ตัวกรองควรใช้ + current_password: เพื่อวัตถุประสงค์ด้านความปลอดภัย โปรดป้อนรหัสผ่านของบัญชีปัจจุบัน + current_username: เพื่อยืนยัน โปรดป้อนชื่อผู้ใช้ของบัญชีปัจจุบัน digest: ส่งเฉพาะหลังจากไม่มีการใช้งานเป็นเวลานานและในกรณีที่คุณได้รับข้อความส่วนบุคคลใด ๆ เมื่อคุณไม่อยู่เท่านั้น + discoverable: ไดเรกทอรีโปรไฟล์เป็นอีกวิธีหนึ่งที่ทำให้บัญชีของคุณสามารถเข้าถึงผู้ชมได้กว้างขึ้น email: คุณจะได้รับอีเมลยืนยัน fields: คุณสามารถมีได้มากถึง 4 รายการแสดงเป็นตารางในโปรไฟล์ของคุณ header: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px @@ -23,7 +31,7 @@ th: locale: ภาษาของส่วนติดต่อผู้ใช้, อีเมล และการแจ้งเตือนแบบผลัก locked: คุณต้องอนุมัติผู้ติดตามด้วยตนเอง password: ใช้อย่างน้อย 8 ตัวอักษร - phrase: จะถูกจับคู่โดยไม่คำนึงถึงตัวอักษรใหญ่เล็กในข้อความหรือคำเตือนเนื้อหาของโพสต์ + phrase: จะถูกจับคู่โดยไม่คำนึงถึงตัวพิมพ์ใหญ่เล็กในข้อความหรือคำเตือนเนื้อหาของโพสต์ scopes: API ใดที่แอปพลิเคชันจะได้รับอนุญาตให้เข้าถึง หากคุณเลือกขอบเขตระดับบนสุด คุณไม่จำเป็นต้องเลือกแต่ละขอบเขต setting_aggregate_reblogs: ไม่แสดงการดันใหม่สำหรับโพสต์ที่เพิ่งดัน (มีผลต่อการดันที่ได้รับใหม่เท่านั้น) setting_default_sensitive: ซ่อนสื่อที่ละเอียดอ่อนโดยค่าเริ่มต้นและสามารถเปิดเผยได้ด้วยการคลิก @@ -36,7 +44,9 @@ th: setting_use_blurhash: การไล่ระดับสีอิงตามสีของภาพที่ซ่อนอยู่แต่ทำให้รายละเอียดใด ๆ คลุมเครือ setting_use_pending_items: ซ่อนการอัปเดตเส้นเวลาไว้หลังการคลิกแทนที่จะเลื่อนฟีดโดยอัตโนมัติ username: ชื่อผู้ใช้ของคุณจะไม่ซ้ำกันใน %{domain} - whole_word: เมื่อคำสำคัญหรือวลีมีแค่ตัวอักษรและตัวเลข จะถูกใช้หากตรงกันทั้งคำเท่านั้น + whole_word: เมื่อคำสำคัญหรือวลีเป็นตัวอักษรและตัวเลขเท่านั้น จะนำไปใช้กับคำสำคัญหรือวลีหากตรงกันทั้งคำเท่านั้น + domain_allow: + domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และข้อมูลขาเข้าจากโดเมนจะได้รับการประมวลผลและจัดเก็บ featured_tag: name: 'คุณอาจต้องการใช้หนึ่งในนี้:' form_challenge: @@ -47,6 +57,8 @@ th: text: นี่จะช่วยให้เราตรวจทานใบสมัครของคุณ sessions: otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:' + tag: + name: คุณสามารถเปลี่ยนได้เฉพาะตัวพิมพ์ใหญ่เล็กของตัวอักษรเท่านั้น ตัวอย่างเช่น เพื่อทำให้ตัวอักษรอ่านได้ง่ายขึ้น user: chosen_languages: เมื่อกาเครื่องหมาย จะแสดงเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะ labels: @@ -54,14 +66,19 @@ th: fields: name: ป้ายชื่อ value: เนื้อหา + account_alias: + acct: การจัดการบัญชีเก่า + account_migration: + acct: การจัดการบัญชีใหม่ account_warning_preset: text: ข้อความที่ตั้งไว้ล่วงหน้า admin_account_action: + include_statuses: รวมโพสต์ที่รายงานไว้ในอีเมล send_email_notification: แจ้งเตือนผู้ใช้ทางอีเมล text: คำเตือนที่กำหนดเอง type: การกระทำ types: - disable: ปิดใช้งาน + disable: ปิดใช้งานการเข้าสู่ระบบ none: ไม่ทำสิ่งใด silence: เงียบ suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร @@ -96,6 +113,7 @@ th: setting_aggregate_reblogs: จัดกลุ่มการดันในเส้นเวลา setting_auto_play_gif: เล่น GIF แบบเคลื่อนไหวโดยอัตโนมัติ setting_boost_modal: แสดงกล่องโต้ตอบการยืนยันก่อนดัน + setting_crop_images: ครอบตัดภาพในโพสต์ที่ไม่ได้ขยายเป็น 16x9 setting_default_language: ภาษาที่โพสต์ setting_default_privacy: ความเป็นส่วนตัวของโพสต์ setting_default_sensitive: ทำเครื่องหมายสื่อว่าละเอียดอ่อนเสมอ @@ -123,7 +141,7 @@ th: featured_tag: name: แฮชแท็ก interactions: - must_be_follower: ปิดกั้นการแจ้งเตือนจากที่ไม่ใช่ผู้ติดตาม + must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม must_be_following_dm: ปิดกั้นข้อความโดยตรงจากผู้คนที่คุณไม่ได้ติดตาม invite: @@ -132,15 +150,18 @@ th: text: ทำไมคุณจึงต้องการเข้าร่วม? notification_emails: digest: ส่งอีเมลสรุป - favourite: ส่งอีเมลเมื่อใครสักคนชื่นชอบสถานะของคุณ - follow: ส่งอีเมลเมื่อใครสักคนติดตามคุณ - follow_request: ส่งอีเมลเมื่อใครสักคนขอติดตามคุณ - mention: ส่งอีเมลเมื่อใครสักคนกล่าวถึงคุณ + favourite: ใครสักคนได้ชื่นชอบสถานะของคุณ + follow: ใครสักคนได้ติดตามคุณ + follow_request: ใครสักคนได้ขอติดตามคุณ + mention: ใครสักคนได้กล่าวถึงคุณ pending_account: ส่งอีเมลเมื่อบัญชีใหม่ต้องการการตรวจทาน - reblog: ส่งอีเมลเมื่อใครสักคนดันสถานะของคุณ + reblog: ใครสักคนได้ดันสถานะของคุณ report: ส่งอีเมลเมื่อมีการส่งรายงานใหม่ + trending_tag: ส่งอีเมลเมื่อแฮชแท็กที่ยังไม่ได้ตรวจทานกำลังนิยม tag: + listable: อนุญาตให้แฮชแท็กนี้ปรากฏในการค้นหาและในไดเรกทอรีโปรไฟล์ name: แฮชแท็ก + trendable: อนุญาตให้แฮชแท็กนี้ปรากฏภายใต้แนวโน้ม usable: อนุญาตให้โพสต์ใช้แฮชแท็กนี้ 'no': ไม่ recommended: แนะนำ diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml new file mode 100644 index 000000000..25af1a085 --- /dev/null +++ b/config/locales/simple_form.vi.yml @@ -0,0 +1,171 @@ +--- +vi: + simple_form: + hints: + account_alias: + acct: Chỉ định tên_người_dùng@tênmiền của tài khoản bạn muốn chuyển từ + account_migration: + acct: Chỉ định tênngườidùng@tênmiền của tài khoản bạn muốn chuyển đến + account_warning_preset: + text: Bạn có thể sử dụng cú pháp mã thông báo, chẳng hạn như URL, hashtag và đề cập + admin_account_action: + include_statuses: Người dùng sẽ thấy các toots nào đã gây ra hành động kiểm duyệt hoặc cảnh báo + send_email_notification: Người dùng sẽ nhận được lời giải thích về những gì đã xảy ra với tài khoản của họ + text_html: Không bắt buộc. Bạn có thể sử dụng cú pháp thổi còi. Bạn có thể thêm các cài đặt trước cảnh báo để tiết kiệm thời gian + type_html: Chọn làm gì với %{acct} + warning_preset_id: Không bắt buộc. Bạn vẫn có thể thêm văn bản tùy chỉnh vào cuối cài đặt trước + defaults: + autofollow: Những người đăng ký thông qua lời mời sẽ tự động theo dõi bạn + avatar: PNG, GIF hoặc JPG. Nhiều nhất là %{size}. Sẽ bị hạ thấp xuống %{dimensions}px + bot: Tài khoản này chủ yếu thực hiện các hành động tự động và có thể không được theo dõi + context: Một hoặc nhiều bối cảnh nơi bộ lọc nên áp dụng + current_password: Vì mục đích bảo mật, vui lòng nhập mật khẩu của tài khoản hiện tại + current_username: Để xác nhận, vui lòng nhập tên người dùng của tài khoản hiện tại + digest: Chỉ được gửi sau một thời gian dài không hoạt động và chỉ khi bạn đã nhận được bất kỳ tin nhắn cá nhân nào khi bạn vắng mặt + discoverable: Thư mục hồ sơ là một cách khác để tài khoản của bạn có thể tiếp cận đối tượng rộng hơn + email: Bạn sẽ được gửi một email xác nhận + fields: Bạn có thể có tối đa 4 mục được hiển thị dưới dạng bảng trên hồ sơ của bạn + header: PNG, GIF hoặc JPG. Nhiều nhất là %{size}. Sẽ bị hạ thấp xuống %{dimensions}px + inbox_url: Sao chép URL từ frontpage của rơle bạn muốn sử dụng + irreversible: Các toots được lọc sẽ biến mất không thể đảo ngược, ngay cả khi bộ lọc sau đó bị xóa + locale: Ngôn ngữ của giao diện người dùng, e-mail và thông báo đẩy + locked: Yêu cầu bạn chấp thuận thủ công người theo dõi + password: Sử dụng ít nhất 8 ký tự + phrase: Sẽ được kết hợp bất kể vỏ bọc trong văn bản hoặc cảnh báo nội dung của một toot + scopes: API nào ứng dụng sẽ được phép truy cập. Nếu bạn chọn phạm vi cấp cao nhất, bạn không cần chọn từng phạm vi. + setting_aggregate_reblogs: Không hiển thị các mức tăng mới cho các mã thông báo đã được tăng gần đây (chỉ ảnh hưởng đến các lần tăng mới nhận được) + setting_default_sensitive: Phương tiện nhạy cảm được ẩn theo mặc định và có thể được tiết lộ bằng một cú nhấp chuột + setting_display_media_default: Ẩn phương tiện được đánh dấu là nhạy cảm + setting_display_media_hide_all: Luôn ẩn tất cả các phương tiện truyền thông + setting_display_media_show_all: Luôn hiển thị phương tiện được đánh dấu là nhạy cảm + setting_hide_network: Ai bạn theo dõi và ai theo dõi bạn sẽ không được hiển thị trên hồ sơ của bạn + setting_noindex: Ảnh hưởng đến hồ sơ công khai và trang trạng thái của bạn + setting_show_application: Ứng dụng bạn sử dụng để mã thông báo sẽ được hiển thị trong chế độ xem chi tiết các mã thông báo của bạn + setting_use_blurhash: Các lớp được dựa trên màu sắc của hình ảnh ẩn nhưng che giấu bất kỳ chi tiết nào + setting_use_pending_items: Ẩn các cập nhật dòng thời gian đằng sau một nhấp chuột thay vì tự động cuộn nguồn cấp dữ liệu + username: Tên người dùng của bạn sẽ là duy nhất trên %{domain} + whole_word: Khi từ khóa hoặc cụm từ chỉ là chữ và số, nó sẽ chỉ được áp dụng nếu nó phù hợp với toàn bộ từ + domain_allow: + domain: Tên miền này sẽ có thể tìm nạp dữ liệu từ máy chủ này và dữ liệu đến từ nó sẽ được xử lý và lưu trữ + featured_tag: + name: 'Bạn có thể muốn sử dụng một trong những điều sau đây:' + form_challenge: + current_password: Bạn đang vào một khu vực an toàn + imports: + data: Tệp CSV được xuất từ máy chủ Mastodon khác + invite_request: + text: Điều này sẽ giúp chúng tôi xem xét ứng dụng của bạn + sessions: + otp: 'Nhập mã hai yếu tố được tạo bởi ứng dụng điện thoại của bạn hoặc sử dụng một trong các mã khôi phục của bạn:' + tag: + name: Bạn chỉ có thể thay đổi vỏ của các chữ cái, ví dụ, để dễ đọc hơn + user: + chosen_languages: Khi được chọn, chỉ các toots trong các ngôn ngữ được chọn sẽ được hiển thị theo các mốc thời gian công khai + labels: + account: + fields: + name: Nhãn + value: Nội dung + account_alias: + acct: Xử lý tài khoản cũ + account_migration: + acct: Xử lý tài khoản mới + account_warning_preset: + text: Văn bản cài sẵn + admin_account_action: + include_statuses: Bao gồm các mã thông báo được báo cáo trong e-mail + send_email_notification: Thông báo cho người dùng mỗi email + text: Cảnh báo tùy chỉnh + type: Hoạt động + types: + disable: Vô hiệu hóa + none: Không làm gì cả + silence: khoảng lặng + suspend: Đình chỉ và xóa dữ liệu tài khoản + warning_preset_id: Sử dụng cài đặt trước cảnh báo + defaults: + autofollow: Mời theo dõi tài khoản của bạn + avatar: hình đại diện + bot: Đây là tài khoản bot + chosen_languages: Ngôn ngữ bộ lọc + confirm_new_password: Xác nhận mật khẩu mới + confirm_password: Xác nhận mật khẩu + context: Bối cảnh bộ lọc + current_password: Mật khẩu hiện tại + data: Dữ liệu + discoverable: Liệt kê tài khoản này trên thư mục + display_name: Tên hiển thị + email: Địa chỉ email + expires_in: Hết hạn sau + fields: Hồ sơ siêu dữ liệu + header: Tiêu đề + inbox_url: URL của hộp thư đến chuyển tiếp + irreversible: Thả thay vì trốn + locale: Ngôn ngữ giao diện + locked: Khóa tài khoản + max_uses: Số lần sử dụng tối đa + new_password: Mật khẩu mới + note: Sinh học + otp_attempt: Mã hai yếu tố + password: Mật khẩu + phrase: Từ khóa hoặc cụm từ + setting_advanced_layout: Kích hoạt giao diện web nâng cao + setting_aggregate_reblogs: Nhóm tăng thời gian + setting_auto_play_gif: Tự động phát GIF động + setting_boost_modal: Hiển thị hộp thoại xác nhận trước khi tăng + setting_crop_images: Cắt bớt ảnh trong những tút không thể mở rộng về 16x9 + setting_default_language: Ngôn ngữ đăng + setting_default_privacy: Đăng quyền riêng tư + setting_default_sensitive: Luôn đánh dấu phương tiện là nhạy cảm + setting_delete_modal: Hiển thị hộp thoại xác nhận trước khi xóa mã thông báo + setting_display_media: Hiển thị đa phương tiện + setting_display_media_default: Mặc định + setting_display_media_hide_all: Giấu tất cả + setting_display_media_show_all: Hiển thị tất cả + setting_expand_spoilers: Luôn mở rộng các thẻ được đánh dấu bằng cảnh báo nội dung + setting_hide_network: Ẩn mạng của bạn + setting_noindex: Từ chối lập chỉ mục công cụ tìm kiếm + setting_reduce_motion: Giảm chuyển động trong hình ảnh động + setting_show_application: Tiết lộ ứng dụng được sử dụng để gửi toots + setting_system_font_ui: Sử dụng phông chữ mặc định của hệ thống + setting_theme: Chủ đề trang web + setting_trends: Hiển thị xu hướng ngày nay + setting_unfollow_modal: Hiển thị hộp thoại xác nhận trước khi hủy theo dõi ai đó + setting_use_blurhash: Hiển thị độ dốc đầy màu sắc cho phương tiện ẩn + setting_use_pending_items: Chế độ chậm + severity: Mức độ nghiêm trọng + type: Nhập khẩu + username: tên tài khoản + username_or_email: Tên người dùng hoặc email + whole_word: Cả từ + featured_tag: + name: Dấu thăng + interactions: + must_be_follower: Chặn thông báo từ những người không theo dõi + must_be_following: Chặn thông báo từ những người bạn không theo dõi + must_be_following_dm: Chặn tin nhắn trực tiếp từ những người bạn không theo dõi + invite: + comment: Bình luận + invite_request: + text: Tại sao bạn muốn tham gia? + notification_emails: + digest: Gửi e-mail tiêu hóa + favourite: Gửi e-mail khi ai đó yêu thích trạng thái của bạn + follow: Gửi e-mail khi ai đó theo dõi bạn + follow_request: Gửi e-mail khi ai đó yêu cầu theo dõi bạn + mention: Gửi e-mail khi ai đó nhắc đến bạn + pending_account: Gửi e-mail khi một tài khoản mới cần xem xét + reblog: Gửi e-mail khi ai đó tăng trạng thái của bạn + report: Gửi e-mail khi một báo cáo mới được gửi + trending_tag: Gửi e-mail khi một hashtag chưa được xem xét đang là xu hướng + tag: + listable: Cho phép hashtag này xuất hiện trong các tìm kiếm và trên thư mục hồ sơ + name: Dấu thăng + trendable: Cho phép hashtag này xuất hiện theo xu hướng + usable: Cho phép các toots sử dụng hashtag này + 'no': Không + recommended: Đề xuất + required: + mark: "*" + text: cần thiết + 'yes': Đúng diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index ec5486257..62bc6b2f7 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -2,10 +2,15 @@ zh-CN: simple_form: hints: + account_alias: + acct: 指定您想要迁移过来的帐号的 用户名@站点域名 + account_migration: + acct: 指定你想迁移过去的帐号的 用户名@站点域名 account_warning_preset: text: 你可以使用嘟文格式,在嘟文中加入 URL、话题标签和提及“@” admin_account_action: - send_email_notification: 用户将收到对其帐号上发生的事的解释 + include_statuses: 用户将会看到哪些嘟文导致了审核行为或警告 + send_email_notification: 用户将收到对其账号上发生的事的解释 text_html: 可选。你可以使用嘟文格式。你可以预置警告以节省时间 type_html: 用%{acct}选择做什么 warning_preset_id: 可选。你可以在预置文本末尾添加自定义文本 @@ -14,7 +19,10 @@ zh-CN: avatar: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px bot: 来自这个帐户的绝大多数操作都是自动进行的,并且可能无人监控 context: 过滤器的应用场景 + current_password: 为了安全起见,请输入当前账号的密码 + current_username: 请输入当前账号的用户名以确认 digest: 仅在你长时间未登录,且收到了私信时发送 + discoverable: 用户目录能够让您的帐号广为人知 email: 我们会向你发送一封确认邮件 fields: 这将会在个人资料页上以表格的形式展示,最多 4 个项目 header: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px @@ -34,16 +42,23 @@ zh-CN: setting_noindex: 此设置会影响到你的公开个人资料以及嘟文页面 setting_show_application: 你用来发表嘟文的应用程序将会在你嘟文的详细内容中显示 setting_use_blurhash: 渐变是基于模糊后的隐藏内容生成的 + setting_use_pending_items: 关闭自动滚动更新,时间轴会在点击后更新 username: 你的用户名在 %{domain} 上是独特的 whole_word: 如果关键词只包含字母和数字,就只会在整个词被匹配时才会套用 + domain_allow: + domain: 该站点将能够从该服务器上拉取数据,并且从那里发过来的数据也会被处理和存储。 featured_tag: name: 你可能想要使用以下之一: + form_challenge: + current_password: 您正在进入安全区域 imports: data: 从其他 Mastodon 服务器导出的 CSV 文件 invite_request: text: 这会有助于我们处理你的申请 sessions: otp: 输入你手机应用上生成的双重认证码,或者任意一个恢复代码: + tag: + name: 您只能改变字母的大小写,让它更易读 user: chosen_languages: 仅选中语言的嘟文会出现在公共时间轴上(全不选则显示所有语言的嘟文) labels: @@ -51,9 +66,14 @@ zh-CN: fields: name: 标签 value: 内容 + account_alias: + acct: 处理旧帐号 + account_migration: + acct: 处理新账号 account_warning_preset: text: 预置文本 admin_account_action: + include_statuses: 在电子邮件中包括已举报的嘟文 send_email_notification: 通过邮件提醒此用户 text: 内容警告 type: 动作 @@ -61,7 +81,7 @@ zh-CN: disable: 禁用 none: 忽略 silence: 静音 - suspend: 停用并永久删除账户数据 + suspend: 停用并永久删除账号数据 warning_preset_id: 使用预置警告 defaults: autofollow: 让被邀请人关注你的帐户 @@ -73,7 +93,7 @@ zh-CN: context: 过滤器场景 current_password: 当前密码 data: 数据文件 - discoverable: 在本站用户目录中收录此账户 + discoverable: 在本站用户目录中收录此账号 display_name: 昵称 email: 电子邮件地址 expires_in: 失效时间 @@ -93,7 +113,7 @@ zh-CN: setting_aggregate_reblogs: 在时间轴中合并转嘟 setting_auto_play_gif: 自动播放 GIF 动画 setting_boost_modal: 在转嘟前询问我 - setting_crop_images: 裁剪未展开嘟文的图片到 16x9 + setting_crop_images: 把未展开嘟文中的图片裁剪到 16x9 setting_default_language: 发布语言 setting_default_privacy: 嘟文默认可见范围 setting_default_sensitive: 总是将我发送的媒体文件标记为敏感内容 @@ -112,6 +132,7 @@ zh-CN: setting_trends: 显示今日热门 setting_unfollow_modal: 在取消关注前询问我 setting_use_blurhash: 将隐藏媒体显示为彩色渐变 + setting_use_pending_items: 慢速模式 severity: 级别 type: 导入数据类型 username: 用户名 @@ -133,17 +154,18 @@ zh-CN: follow: 当有用户关注我时,发送电子邮件提醒我 follow_request: 当有用户向我发送关注请求时,发送电子邮件提醒我 mention: 当有用户在嘟文中提及我时,发送电子邮件提醒我 - pending_account: 在有账户需要审核时,发送电子邮件提醒我 + pending_account: 在有帐号需要审核时,发送电子邮件提醒我 reblog: 当有用户转嘟了我的嘟文时,发送电子邮件提醒我 report: 在提交新举报时,发送电子邮件提醒我 - trending_tag: 当未经审核的话题当前热门时邮件提醒 + trending_tag: 当未经审核的话题成为当前热门时发邮件提醒 tag: listable: 允许这个话题标签在用户目录中显示 name: 话题标签 trendable: 允许在热门下显示此话题 - usable: 允许嘟文使用此话题 + usable: 允许嘟文使用此话题标签 'no': 否 recommended: 推荐 required: + mark: "*" text: 必填 'yes': 是 diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml index 2cb2d75b2..235d9c764 100644 --- a/config/locales/simple_form.zh-HK.yml +++ b/config/locales/simple_form.zh-HK.yml @@ -2,17 +2,44 @@ zh-HK: simple_form: hints: + account_alias: + acct: 指定欲移動之帳戶的 使用者名稱@站台 + account_migration: + acct: 指定欲移動至之帳戶的 使用者名稱@站台 + account_warning_preset: + text: 您可使用嘟文語法,例如網址、「#」標籤和提及功能 + admin_account_action: + send_email_notification: 使用者將收到帳戶發生之事情的解釋 + text_html: 選用。您能使用嘟文語法。您可 新增警告預設 來節省時間 + type_html: 設定要使用 %{acct} 做的事 + warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字 defaults: autofollow: 通過邀請網址註冊的用戶將會自動關注你 avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px bot: 提醒用戶本帳號是機械人 + context: 應該套用過濾器的一項或多項內容 digest: 僅在你長時間未登錄,且收到了私信時發送 + email: 您將收到一封確認電子郵件 fields: 個人資料頁可顯示多至 4 個項目 header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px + inbox_url: 從您想要使用的中繼首頁複製網址 + irreversible: 已過濾的嘟文將會不可逆的消失,即便過濾器移除之後也一樣 locale: 使用者介面、電郵和通知的語言 locked: 你必須人手核准每個用戶對你的關注請求,而你的文章私隱會被預設為「只有關注你的人能看」 + password: 使用至少 8 個字元 + phrase: 無論是嘟文的本文或是內容警告都會被過濾 + scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。 + setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文) + setting_display_media_default: 隱藏標為敏感的媒體 + setting_display_media_hide_all: 總是隱藏所有媒體 + setting_display_media_show_all: 總是顯示標為敏感的媒體 setting_hide_network: 你關注的人和關注你的人將不會在你的個人資料頁上顯示 setting_noindex: 此設定會影響到你的公開個人資料以及文章頁面 + setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示 + username: 您的使用者名稱將在 %{domain} 是獨一無二的 + whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用 + featured_tag: + name: 您可能想使用其中一個: imports: data: 自其他服務站匯出的 CSV 檔案 sessions: @@ -24,6 +51,18 @@ zh-HK: fields: name: 標籤 value: 內容 + account_warning_preset: + text: 預設文字 + admin_account_action: + send_email_notification: 透過電子信件通知使用者 + text: 自訂警告 + type: 動作 + types: + disable: 停用 + none: 什麼也不做 + silence: 安靜 + suspend: 停權並不可逆的刪除帳戶資料 + warning_preset_id: 使用警告預設 defaults: autofollow: 邀請別人關注你的賬號 avatar: 個人頭像 @@ -31,13 +70,17 @@ zh-HK: chosen_languages: 語言過濾 confirm_new_password: 確認新密碼 confirm_password: 確認密碼 + context: 過濾情境 current_password: 目前密碼 data: 資料 + discoverable: 在目錄列出此帳戶 display_name: 顯示名稱 email: 電郵地址 expires_in: 失效時間 fields: 資料 header: 個人頁面頂部 + inbox_url: 中繼收件匣的 URL + irreversible: 放棄而非隱藏 locale: 介面語言 locked: 將用戶轉為「私人」 max_uses: 最大使用次數 @@ -45,15 +88,23 @@ zh-HK: note: 簡介 otp_attempt: 雙重認證碼 password: 密碼 + phrase: 關鍵字或片語 + setting_aggregate_reblogs: 時間軸中的群組轉嘟 setting_auto_play_gif: 自動播放 GIF setting_boost_modal: 在轉推前詢問我 setting_default_language: 文章語言 setting_default_privacy: 文章預設為 setting_default_sensitive: 預設我的內容為敏感內容 setting_delete_modal: 刪推前詢問我 + setting_display_media: 媒體顯示 + setting_display_media_default: 預設 + setting_display_media_hide_all: 全部隱藏 + setting_display_media_show_all: 全部顯示 + setting_expand_spoilers: 永遠展開標有內容警告的嘟文 setting_hide_network: 隱藏你的社交網絡 setting_noindex: 阻止搜尋引擎檢索 setting_reduce_motion: 減低動畫效果 + setting_show_application: 顯示用來傳送嘟文的應用程式 setting_system_font_ui: 使用系統預設字型 setting_theme: 網站主題 setting_unfollow_modal: 取消關注前跳出詢問我 @@ -61,6 +112,9 @@ zh-HK: type: 匯入資料類型 username: 用戶名稱 username_or_email: 用戶名稱或電郵 + whole_word: 整個詞彙 + featured_tag: + name: "「#」標籤" interactions: must_be_follower: 隱藏沒有關注你的用戶的通知 must_be_following: 隱藏你不關注的用戶的通知 @@ -72,7 +126,9 @@ zh-HK: follow_request: 當有用戶要求關注你時,發電郵通知 mention: 當有用戶在文章提及你時,發電郵通知 reblog: 當有用戶轉推你的文章時,發電郵通知 + report: 當提交新檢舉時傳送電子郵件 'no': 否 required: + mark: "*" text: 必須填寫 'yes': 是 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index fbbbff6ca..7de349ee3 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -129,5 +129,6 @@ zh-TW: report: 當提交新檢舉時傳送電子郵件 'no': 否 required: + mark: "*" text: 必須填寫 'yes': 是 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 8339309b3..b127bee0f 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -41,6 +41,8 @@ sk: unavailable_content_description: domain: Server reason: 'Dôvod:' + rejecting_media: 'Mediálne súbory z týchto serverov nebudú spracované, alebo ukladané, a nebudú z nich zobrazované žiadne náhľady, vyžadujúc ručné prekliknutie priamo až k pôvodnému súboru:' + silenced: 'Príspevky z týchto serverov budú skryté z verejných osí a z konverzácií, a nebudú vytvorené žiadné oboznámena ohľadom aktivity ich užívateľov, pokiaľ ich nenásleduješ:' user_count_after: few: užívateľov many: užívatelia @@ -82,6 +84,7 @@ sk: roles: admin: Správca bot: Bot + group: Skupina moderator: Moderátor unavailable: Profil nieje dostupný unfollow: Prestaň sledovať @@ -202,10 +205,12 @@ sk: confirm_user: "%{name} potvrdil emailovú adresu používateľa %{target}" create_account_warning: "%{name} poslal/a varovanie užívateľovi %{target}" create_custom_emoji: "%{name} nahral nový emoji %{target}" + create_domain_allow: "%{name} pridal/a doménu %{target} na zoznam povolených" create_domain_block: "%{name} zablokoval doménu %{target}" create_email_domain_block: "%{name} pridal e-mailovú doménu %{target} na zoznam zakázaných" demote_user: "%{name} degradoval používateľa %{target}" destroy_custom_emoji: "%{name} zničil/a %{target} emoji" + destroy_domain_allow: "%{name} odstránil/a doménu %{target} zo zoznamu povolených" destroy_domain_block: "%{name} povolil doménu %{target}" destroy_email_domain_block: "%{name} pridal e-mailovú doménu %{target} na zoznam povolených" destroy_status: "%{name} zmazal status %{target}" @@ -215,7 +220,7 @@ sk: enable_custom_emoji: "%{name} povolil emoji %{target}" enable_user: "%{name} povolil prihlásenie pre používateľa %{target}" memorialize_account: "%{name} zmenil účet %{target} na pamätnú stránku" - promote_user: "%{name} povýšil/a používateľa %{target}" + promote_user: "%{name} vyzdvihli užívateľa %{target}" remove_avatar_user: "%{name} odstránil/a %{target}ov avatár" reopen_report: "%{name} znovu otvoril/a hlásenie užívateľa %{target}" reset_password_user: "%{name} resetoval/a heslo pre používateľa %{target}" @@ -237,7 +242,7 @@ sk: copy_failed_msg: Nebolo možné vytvoriť miestnu kópiu tohto emoji create_new_category: Vytvor novú kategóriu created_msg: Emoji úspešne vytvorené! - delete: Zmaž + delete: Vymaž destroyed_msg: Emoji úspešne zničené! disable: Zakáž disabled: Vypnuté @@ -305,7 +310,7 @@ sk: create: Vytvor blokovanie domény hint: Blokovanie domény stále dovolí vytvárať nové účty v databázi, ale tieto budú spätne automaticky moderované. severity: - desc_html: "Stíšenie urobí všetky príspevky daného účtu neviditeľné pre všetkých ktorí nenásledujú tento účet. Suspendácia zmaže všetky príspevky, médiá a profilové informácie. Použi Žiadne, ak chceš iba neprijímať súbory médií." + desc_html: "Stíšenie urobí všetky príspevky daného účtu neviditeľné pre všetkých ktorí nenásledujú tento účet. Vylúčenie zmaže všetky príspevky, médiá a profilové informácie. Použi Žiadne, ak chceš iba neprijímať súbory médií." noop: Nič silence: Stíš suspend: Vylúč @@ -398,10 +403,17 @@ sk: created_msg: Poznámka o nahlásení úspešne vytvorená! destroyed_msg: Poznámka o nahlásení úspešne vymazaná! reports: + account: + reports: + few: "%{count} hlásení" + many: "%{count} hlásenia" + one: "%{count} hlásenie" + other: "%{count} hlásení" action_taken_by: Zákrok vykonal/a are_you_sure: Si si istý/á? assign_to_self: Priraď sebe assigned: Priradený moderátor + by_target_domain: Doména nahláseného účtu comment: none: Žiadne created_at: Nahlásené @@ -467,7 +479,7 @@ sk: desc_html: Toto sa zobrazí na hlavnej stránke v prípade, že sú registrácie uzavreté. Možno tu použiť aj HTML kód title: Správa o uzavretých registráciách deletion: - desc_html: Dovoľ každému aby si mohli zmazať svok účet + desc_html: Dovoľ každému, aby si mohli vymazať svok účet title: Sprístupni možnosť vymazať si účet min_invite_role: disabled: Nikto @@ -573,6 +585,8 @@ sk: animations_and_accessibility: Animácie a prístupnosť confirmation_dialogs: Potvrdzovacie dialógy discovery: Nájdenie + localization: + guide_link_text: Prispievať môže každý. sensitive_content: Chúlostivý obsah toot_layout: Rozloženie príspevkov application_mailer: @@ -586,7 +600,7 @@ sk: created: Aplikácia bola vytvorená úspešne destroyed: Aplikáciu sa podarilo odstrániť invalid_url: Zadaná URL adresa je nesprávna - regenerate_token: Znovu vygenerovať prístupový token + regenerate_token: Znovu vygeneruj prístupový token token_regenerated: Prístupový token bol úspešne vygenerovaný znova warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj! your_token: Tvoj prístupový token @@ -708,7 +722,6 @@ sk: blocks: Blokujete csv: CSV domain_blocks: Blokované domény - follows: Následujete lists: Zoznamy mutes: Stíšil/a si storage: Úložisko médií @@ -729,6 +742,7 @@ sk: invalid_irreversible: Nezvratné filtrovanie funguje iba so súvislostiami domovskej osi a oboznámení index: delete: Vymaž + empty: Nemáš žiadné filtrovanie. title: Triedenia new: title: Pridaj nové triedenie @@ -841,6 +855,7 @@ sk: warning: backreference_required: Nový účet musí byť najskôr nastavený tak, aby spätne odkazoval na tento before: 'Než budeš pokračovať, prosím pozorne si prečítaj tieto poznámky:' + cooldown: Po presunutí je tu istá zahrievacia doba, počas ktorej sa nebudeš môcť znova presunúť disabled_account: Tvoj súčasný účet už po tomto nebude plne použiteľný. Stále ale budeš mať prístup ku stiahnutiu dát a možnosti znovu-aktivácie. followers: Tento úkon presunie všetkých následovateľov zo súčasného účtu na nový účet only_redirect_html: Ako alternatívu, môžeš iba nastaviť presmerovanie na tvoj profil. @@ -886,6 +901,10 @@ sk: body: 'Tvoj príspevok bol vyzdvihnutý užívateľom %{name}:' subject: "%{name} vyzdvihli tvoj príspevok" title: Novo vyzdvyhnuté + notifications: + email_events: Udalosti oznamované emailom + email_events_hint: 'Vyber si udalosti, pre ktoré chceš dostávať oboznámenia:' + other_settings: Ostatné oboznamovacie nastavenia pagination: newer: Novšie next: Ďalšie @@ -908,6 +927,8 @@ sk: relationships: activity: Aktivita účtu dormant: Spiace + followers: Následovatelia + following: Následovaní last_active: Naposledy aktívny most_recent: Najnovšie moved: Presunuli sa diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 2faaa149a..c078cea1b 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -615,7 +615,6 @@ sl: blocks: Blokirate csv: CSV domain_blocks: Bloki domene - follows: Sledite lists: Seznami mutes: Utišate storage: Shranjeni mediji diff --git a/config/locales/sq.yml b/config/locales/sq.yml index e5378082e..c4d95a6f7 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -511,7 +511,6 @@ sq: size: Madhësi blocks: Bllokoni domain_blocks: Bllokime përkatësish - follows: Ndiqni lists: Lista mutes: Heshtoni storage: Depozitim për media diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 1f3d69e21..61cea8c21 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -323,7 +323,6 @@ sr-Latn: noscript_html: Da biste koristili Mastodont veb aplikaciju, omogućite JavaScript. U suprotnom, probajte neku od originalnih aplikacija za Mastodont za Vašu platformu. exports: blocks: Blokirali ste - follows: Pratite mutes: Ućutkali ste storage: Multimedijalno skladište generic: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index d06bb214e..23a826685 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -530,7 +530,6 @@ sr: size: Величина blocks: Блокирали сте domain_blocks: Блокови домена - follows: Пратите lists: Листе mutes: Ућуткали сте storage: Мултимедијално складиште diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 911698620..764c3ace4 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -20,7 +20,7 @@ sv: documentation: Dokumentation federation_hint_html: Med ett konto på %{instance} kommer du att kunna följa personer på alla Mastodon-servers och mer än så. get_apps: Prova en mobilapp - hosted_on: Mastodon värd på %{domain} + hosted_on: Mastodon-värd på %{domain} instance_actor_flash: 'Detta konto är en virtuell agent som används för att representera servern själv och inte någon individuell användare. Det används av sammanslutningsskäl och ska inte blockeras såvitt du inte vill blockera hela instansen, och för detta fall ska domänblockering användas. ' @@ -47,6 +47,9 @@ sv: endorsements_hint: Från webbgränssnittet kan du rekommendera följare, som sedan visas här. featured_tags_hint: Du kan använda fyrkanter som visas här. follow: Följa + followers: + one: Följare + other: Följare following: Följer joined: Gick med %{date} last_active: senast aktiv @@ -66,6 +69,7 @@ sv: roles: admin: Administratör bot: Robot + group: Grupp moderator: Moderator unavailable: Profilen är inte tillgänglig unfollow: Sluta följa @@ -195,7 +199,7 @@ sv: destroy_domain_block: "%{name} avblockerade domän %{target}" destroy_email_domain_block: "%{name} vitlistade e-postdomän %{target}" destroy_status: "%{name} tog bort status av %{target}" - disable_2fa_user: "%{name} inaktiverade tvåstegsautentiseringskrav för användare %{target}" + disable_2fa_user: "%{name} inaktiverade tvåfaktorsautentiseringskrav för användare %{target}" disable_custom_emoji: "%{name} inaktiverade emoji %{target}" disable_user: "%{name} inaktiverade inloggning för användare %{target}" enable_custom_emoji: "%{name} aktiverade emoji %{target}" @@ -264,11 +268,29 @@ sv: pending_tags: hashtags som inväntar granskning pending_users: användare som inväntar granskning recent_users: Senaste användare + search: Fulltextsökning + single_user_mode: Enanvändarläge + software: Programvara + space: Utrymmesutnyttjande / Utrymmesanvändning + title: Kontrollpanel + total_users: totalt antal användare + trends: Trender + week_interactions: kommunikation denna vecka / interaktioner denna vecka + week_users_active: aktiv(a) denna vecka + week_users_new: användare denna vecka + whitelist_mode: Vitlisteläge + domain_allows: + add_new: Vitlistedomän + created_msg: Domänen har vitlistats + destroyed_msg: Domänen har tagits bort från vitlistan + undo: Tag bort från vitlistan domain_blocks: add_new: Lägg till ny created_msg: Domänblocket behandlas nu destroyed_msg: Domänblockering har återtagits domain: Domän + edit: Ändra domänblock + existing_domain_block_html: Du har redan satt begränsningar för %{name} så avblockera användaren först. new: create: Skapa block hint: Domänblocket hindrar inte skapandet av kontoposter i databasen, men kommer retroaktivt, automatiskt att tillämpa specifika modereringsmetoder på dessa konton. @@ -278,8 +300,13 @@ sv: silence: Tysta ner suspend: Suspendera title: Nytt domänblock + private_comment: Privat kommentar + private_comment_hint: Kommentar för moderatorer om denna domänbegränsning. + public_comment: Offentlig kommentar reject_media: Avvisa mediafiler reject_media_hint: Raderar lokalt lagrade mediefiler och förhindrar möjligheten att ladda ner något i framtiden. Irrelevant för suspensioner + severity: + suspend: avstängd show: affected_accounts: one: Ett konto i databasen drabbades @@ -296,11 +323,20 @@ sv: delete: Radera destroyed_msg: E-postdomän har tagits bort från domänblockslistan utan problem domain: Domän + empty: För tillfället inga svartlistade mejl. new: create: Skapa domän title: Ny E-postdomänblocklistningsinmatning title: E-postdomänblock + followers: + back_to_account: Tillbaka till konto + title: "%{acct}'s följare" instances: + by_domain: Domän + moderation: + all: Alla + limited: Begränsad + private_comment: Privat kommentar title: Kända instanser invites: filter: @@ -309,6 +345,13 @@ sv: expired: Utgångna title: Filtrera title: Inbjudningar + relays: + delete: Radera + disable: Inaktivera + enable: Aktivera + enabled: Aktivera + save_and_enable: Spara och aktivera + status: Status report_notes: created_msg: Anmälningsanteckning har skapats! destroyed_msg: Anmälningsanteckning har raderats! @@ -334,6 +377,7 @@ sv: reported_by: Anmäld av resolved: Löst resolved_msg: Anmälan har lösts framgångsrikt! + status: Status title: Anmälningar unassign: Otilldela unresolved: Olösta @@ -348,6 +392,8 @@ sv: contact_information: email: Företag E-post username: Användarnamn för kontakt + custom_css: + title: Anpassad CSS hero: desc_html: Visas på framsidan. Minst 600x100px rekommenderas. Om inte angiven faller den tillbaka på instansens miniatyrbild title: Hjältebild @@ -393,15 +439,35 @@ sv: delete: Radera nsfw_off: Markera som ej känslig nsfw_on: Markera som känslig + deleted: Raderad failed_to_execute: Misslyckades att utföra no_media: Ingen media title: Kontostatus with_media: med media + tags: + accounts_today: Unika användare idag + accounts_week: Unika användare den här veckan + last_active: Senast aktiv + warning_presets: + add_new: Lägg till ny + delete: Radera + edit: Redigera admin_mailer: new_report: body: "%{reporter} har rapporterat %{target}" body_remote: Någon från %{domain} har rapporterat %{target} subject: Ny rapport för %{instance} (#%{id}) + aliases: + add_new: Skapa alias + remove: Avlänka alias + appearance: + advanced_web_interface: Avancerat webbgränssnitt + animations_and_accessibility: Animationer och tillgänglighet + discovery: Upptäck + localization: + body: Mastodon översätts av volontärer. + guide_link_text: Alla kan bidra. + sensitive_content: Känsligt innehåll application_mailer: notification_preferences: Ändra e-postinställningar settings: 'Ändra e-postinställningar: %{link}' @@ -420,7 +486,7 @@ sv: change_password: Lösenord delete_account: Ta bort konto delete_account_html: Om du vill radera ditt konto kan du fortsätta här. Du kommer att bli ombedd att bekräfta. - didnt_get_confirmation: Fick inte instruktioner om bekräftelse? + didnt_get_confirmation: Fick du inte instruktioner om bekräftelse? forgot_password: Glömt ditt lösenord? invalid_reset_password_token: Lösenordsåterställningstoken är ogiltig eller utgått. Vänligen be om en ny. login: Logga in @@ -436,6 +502,10 @@ sv: reset_password: Återställ lösenord security: Säkerhet set_new_password: Skriv in nytt lösenord + setup: + email_settings_hint_html: Bekräftelsemeddelandet skickades till %{email}. Om den e-postadressen inte stämmer så kan du ändra den i kontoinställningarna. + status: + account_status: Kontostatus authorize_follow: already_following: Du följer redan detta konto error: Tyvärr inträffade ett fel när vi kontrollerade fjärrkontot @@ -447,6 +517,10 @@ sv: return: Visa användarens profil web: Gå till webb title: Följ %{acct} + challenge: + confirm: Fortsätt + invalid_password: Ogiltigt lösenord + prompt: Bekräfta lösenord för att fortsätta datetime: distance_in_words: about_x_hours: "%{count}tim" @@ -463,7 +537,9 @@ sv: deletes: confirm_password: Ange ditt lösenord för att verifiera din identitet proceed: Ta bort konto - success_msg: Ditt konto har tagits bort + success_msg: Ditt konto har raderats + domain_validator: + invalid_domain: är inte ett giltigt domännamn errors: '400': The request you submitted was invalid or malformed. '403': Du har inte behörighet att visa den här sidan. @@ -489,10 +565,28 @@ sv: size: Storlek blocks: Du blockerar csv: CSV - follows: Du följer + lists: Listor mutes: Du tystar storage: Medialagring + featured_tags: + add_new: Lägg till ny + filters: + contexts: + notifications: Aviseringar + thread: Konversationer + edit: + title: Redigera filter + index: + delete: Radera + empty: Du har inga filter. + title: Filter + new: + title: Lägg till nytt filter + footer: + developers: Utvecklare + more: Mer… generic: + all: Alla changes_saved_msg: Ändringar sparades framgångsrikt! save_changes: Spara ändringar validation_errors: @@ -538,11 +632,12 @@ sv: too_many: Det går inte att bifoga mer än 4 filer migrations: acct: användarnamn@domän av det nya kontot + incoming_migrations: Flyttar från ett annat konto moderation: title: Moderera notification_mailer: digest: - action: Visa alla notifieringar + action: Visa alla aviseringar body: Här är en kort sammanfattning av de meddelanden du missade sedan ditt senaste besök på %{since} mention: "%{name} nämnde dig i:" new_followers_summary: @@ -574,6 +669,8 @@ sv: body: 'Din status knuffades av %{name}:' subject: "%{name} knuffade din status" title: Ny knuff + notifications: + other_settings: Andra aviseringsinställningar pagination: newer: Nyare next: Nästa @@ -581,6 +678,11 @@ sv: prev: Tidigare preferences: other: Annat + relationships: + activity: Kontoaktivitet + followers: Följare + following: Följer + status: Kontostatus remote_follow: acct: Ange ditt användarnamn@domän du vill följa från missing_resource: Det gick inte att hitta den begärda omdirigeringsadressen för ditt konto @@ -619,16 +721,23 @@ sv: revoke_success: Sessionen återkallas framgångsrikt title: Sessioner settings: + account: Konto + account_settings: Kontoinställningar + aliases: Kontoalias + appearance: Utseende authorized_apps: Godkända appar back: Tillbaka till Mastodon delete: Konto radering development: Utveckling edit_profile: Redigera profil export: Exportera data + import_and_export: Import och export migrate: Kontoflytt - notifications: Meddelanden + notifications: Aviseringar preferences: Inställningar - two_factor_authentication: Tvåstegsautentisering + profile: Profil + relationships: Följer och följare + two_factor_authentication: Tvåfaktorsautentisering spam_check: spam_detected: Det här är en automatisk rapport. Spam har upptäckts. statuses: @@ -751,17 +860,17 @@ sv: mastodon-light: Mastodon (ljust) two_factor_authentication: code_hint: Ange koden som genererats av din autentiseringsapp för att bekräfta - description_html: Om du aktiverar tvåstegsautentisering kommer inloggningen kräva att du har din telefon tillgänglig, vilket kommer att generera tokens för dig att uppge. - disable: Avaktivera + description_html: Om du aktiverar tvåfaktorsautentisering kommer inloggningen kräva att du har din telefon tillgänglig, vilket kommer att generera tokens för dig att ange. + disable: Inaktivera enable: Aktivera enabled: Tvåfaktorsautentisering är aktiverad - enabled_success: Tvåfaktors autentisering aktiverad + enabled_success: Tvåfaktorsautentisering aktiverad generate_recovery_codes: Generera återställningskoder instructions_html: "Skanna den här QR-koden i Google Authenticator eller en liknande TOTP-app på din telefon . Från och med nu genererar den appen tokens som du måste ange när du loggar in." lost_recovery_codes: Återställningskoder tillåter dig att få tillgång till ditt konto om du förlorar din telefon. Om du har förlorat dina återställningskoder kan du regenerera dem här. Dina gamla återställningskoder kommer att ogiltigförklaras. - manual_instructions: 'Om du inte kan skanna QR-koden och behöver skriva in den manuellt, här är den enkla texten:' + manual_instructions: 'Om du inte kan skanna QR-koden och behöver skriva in den manuellt, här är den hemliga nyckeln i ren text:' recovery_codes: Backup återställningskod - recovery_codes_regenerated: Återställningskoder regenererades framgångsrikt + recovery_codes_regenerated: Återställningskoder genererades på nytt recovery_instructions_html: Om du någonsin tappar åtkomst till din telefon kan du använda någon av återställningskoderna nedan för att återställa åtkomst till ditt konto. Håll återställningskoderna säkra . Du kan till exempel skriva ut dem och lagra dem med andra viktiga dokument. setup: Ställ in wrong_code: Den angivna koden var ogiltig! Är servertid och enhetstid korrekt? @@ -784,11 +893,11 @@ sv: tip_federated_timeline: Den förenade tidslinjen är en störtflodsvy av Mastodon-nätverket. Men det inkluderar bara människor som dina grannar följer, så det är inte komplett. tip_following: Du följer din servers administratör(er) som standard. För att hitta fler intressanta personer, kolla de lokala och förenade tidslinjerna. tip_local_timeline: Den lokala tidslinjen är en störtflodsvy av personer på %{instance}. Det här är dina närmaste grannar! - tip_mobile_webapp: Om din mobila webbläsare erbjuder dig att lägga till Mastodon till ditt hemskärm kan du få push-meddelanden. Det fungerar som en inbyggd app på många sätt! + tip_mobile_webapp: Om din mobila webbläsare erbjuder dig att lägga till Mastodon på din hemskärm kan du få push-aviseringar. Det fungerar som en inbyggd app på många sätt! title: Välkommen ombord, %{name}! users: invalid_email: E-postadressen är ogiltig - invalid_otp_token: Ogiltig tvåfaktorkod + invalid_otp_token: Ogiltig tvåfaktorskod otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email} seamless_external_login: Du är inloggad via en extern tjänst, så lösenord och e-postinställningar är inte tillgängliga. signed_in_as: 'Inloggad som:' diff --git a/config/locales/ta.yml b/config/locales/ta.yml index 48252a5bb..8e8f91bd0 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -1,12 +1,24 @@ --- ta: about: + about_mastodon_html: 'எதிர்காலத்தின் சமூகப் பிணையம்: விளம்பரம் இல்லை, பொதுநிறுவனக் கண்காணிப்பு இல்லை, நெறிக்குட்பட்ட வரைவுத்திட்டம், மற்றும் பகிர்ந்தாளுதல்! மஸ்டோடோனுடன் உங்கள் தரவுகள் உங்களுக்கே சொந்தம்!' about_this: தகவல் + active_count_after: செயலில் + active_footnote: செயலிலுள்ள மாதாந்திர பயனர்கள் (செமாப) administered_by: 'நிர்வாகம்:' api: செயலிக்கான மென்பொருள் இடைமுகம் API apps: கைப்பேசி செயலிகள் + apps_platforms: மஸ்டோடோனை ஐஓஎஸ், ஆன்டிராய்டு, மற்றும் பிற இயங்குதளங்களில் பயன்படுத்துக + browse_directory: தன்விவரக் கோப்புகளைப் பார்த்து உங்கள் விருப்பங்களுக்கேற்பத் தேர்வு செய்க + browse_local_posts: நேரலையில் பொதுப் பதிவுகளை இந்த வழங்கியிலிருந்து காண்க + browse_public_posts: நேரலையில் பொதுப் பதிவுகளை மஸ்டோடோனிலிருந்து காண்க contact: தொடர்புக்கு + contact_missing: நிறுவப்படவில்லை + contact_unavailable: பொ/இ + discover_users: பயனர்களை அறிக + documentation: ஆவணச்சான்று get_apps: கைப்பேசி செயலியை முயற்சி செய்யவும் + hosted_on: மாஸ்டோடாண் %{domain} இனையத்தில் இயங்குகிறது learn_more: மேலும் அறிய privacy_policy: தனியுரிமை கொள்கை see_whats_happening: என்ன நடக்கிறது என்று பார்க்க @@ -29,6 +41,7 @@ ta: what_is_mastodon: மச்டொடன் என்றால் என்ன? accounts: choices_html: "%{name}-இன் தேர்வுகள்:" + featured_tags_hint: குறிப்பிட்ட சிட்டைகளை இங்கு நீங்கள் காட்சிப்படுத்தலாம். follow: பின்தொடர் followers: one: பின்தொடர்பவர் @@ -37,8 +50,161 @@ ta: joined: "%{date} அன்று இனைந்தார்" last_active: கடைசியாக பார்த்தது media: படங்கள் + moved_html: "%{name} %{new_profile_link}க்கு மாறியுள்ளது:" + network_hidden: இத்தகவல் கிடைக்கவில்லை never_active: எப்போதுமில்லை nothing_here: இங்கு எதுவும் இல்லை! + people_followed_by: "%{name} பின்தொடரும் நபர்கள்" + people_who_follow: "%{name}ஐ பின்தொடரும் நபர்கள்" + pin_errors: + following: தாங்கள் அங்கீகரிக்க விரும்பும் நபரை தாங்கள் ஏற்கனவே பின்தொடரந்து கொண்டு இருக்க வேண்டும் + posts_tab_heading: பிளிறல்கள் + posts_with_replies: பிளிறல்கள் மற்றும் மறுமொழிகள் + reserved_username: பயனர்பெயர் முன்பதிவு செய்யப்பட்டுள்ளது + roles: + admin: நிர்வாகி + bot: பொறி + group: குழு + moderator: மட்டுறுத்துநர் + unavailable: சுயவிவரம் கிடைக்கவில்லை + unfollow: பின்தொடராதே + admin: + account_actions: + action: நடவடிக்கை எடு + title: "%{acct}ஐ நடுநிலைப்படுத்தவும்" + account_moderation_notes: + create: குறிப்பு எழுதவும் + created_msg: நடுநிலை குறிப்பு வெற்றிகரமாக பதிவு செய்யப்பட்டது! + delete: அகற்று + destroyed_msg: நடுநிலை குறிப்பு வெற்றிகரமாக அகற்றப்பட்டது! + accounts: + approve: அங்கீகரி + approve_all: அனைத்தும் அங்கீகரி + are_you_sure: நிச்சயமா? + avatar: அவதாரம் + by_domain: தளம் + change_email: + changed_msg: உறிமை மின் அஞ்சல் வெற்றிகரமாக மாற்ற்ப்பட்டது! + current_email: தற்கால மின் அஞ்சல் + label: மின் அஞ்சலை மற்றுக + new_email: புதிய மின் அஞ்சல் + submit: மின் அஞ்சல் மாற்றுக + title: "%{username} உடைய மின் அஞ்சலை மாற்றுக" + confirm: உறுதிசெய் + confirmed: உறுதி செய்யப்பட்டது + confirming: உறுதி செய்யப்படுகிறது + deleted: நீக்கு + demote: பதவியிறக்கு + disable: முடக்கப்பட்டது + disable_two_factor_authentication: இரண்டு கட்ட உளைவுச்சொல்லை நீக்குக + disabled: முடக்கப்பட்டது + display_name: புனைப்பெயர் + domain: இனையதளப் பெயர் + edit: திருத்து + email: மின்னஞ்சல் + email_status: மின்னஞ்சல் நிலவரம் + enable: இயக்கு + enabled: செயலில்பாட்டில் உள்ளது + followers: வாசகர்கள் + follows: வாசிக்கிறார் + header: தலைப்பு + inbox_url: மின்னஞ்சல் பெட்டி முகவரி + invited_by: அழைத்தவர் + ip: இணைய முகவரி ஏன் + joined: சேர்ந்தார் + location: + all: அனைத்தும் + local: அருகாமை + remote: தொலைவு + title: இடம் + login_status: நுழைவு நிலை + media_attachments: சேர்க்கைகள் + moderation: + active: அனுமதிக்கப்பட்டுள்ளது + all: அனைத்தும் + pending: நிலுவையில் உள்ளது + silenced: தடுக்கப்பட்டுள்ளது + suspended: இடைநீக்கப்பட்டது + title: மிதமானர் + moderation_notes: நடுவர் கருத்து + most_recent_activity: மிக அண்மை நடவடிக்கை + most_recent_ip: மிக அண்மை ஐபி + no_limits_imposed: அளவுக்கட்டுப்பாடு திணிக்கப்படவில்லை + pending: திறனாய்வு நிலுவையில் உள்ளது + perform_full_suspension: தற்காலீகமாக நீக்குக + promote: பரிந்துறை + protocol: நெறிமுறை + public: பொது + reject: விலக்கு + reject_all: அனைத்தையும் மறு + remove_avatar: அவதாரத்தை நீக்குக + resend_confirmation: + already_confirmed: இப்பயனர் ஏற்கனவே உறுதி படுத்திவிட்டார் + reset: மீட்டமைக்கவும் + reset_password: கடவுச்சொல்லை மீளமைத்திடுக + role: அனுமதி + roles: + admin: நிர்வாகி + moderator: நடுவர் + staff: பணியாளர் + user: பயனர் + search: தேடு + shared_inbox_url: குழு மின்னஞ்சல் முகவரி + show: + created_reports: உறுவாக்கிய அறிக்கைகள் + targeted_reports: மற்றவர்களால் அறிவிக்கப்பட்டது + silence: அணை + silenced: அணைக்கப்பட்டது + statuses: பதிவுகள் + suspended: இடைநீக்கப்பட்டது + time_in_queue: வரிசையில் காத்திருக்கிறது %{time} + title: கணக்குகள் + username: பயனர் பெயர் + warn: எச்சரி + whitelisted: அனுமதிப்பட்டியல் + custom_emojis: + uncategorized: வகைப்படுத்தப்படாதவை + unlist: பட்டியலில் இருந்து அகற்றுக + unlisted: பட்டியலிடப்படாத + upload: பதிவேற்றம் + dashboard: + feature_registrations: பதிவுகள் + features: அம்சங்கள் + recent_users: அண்மை பயனாளர்கள் + total_users: மொத்த பயனாளர் தொகை + trends: போக்குகள் + domain_blocks: + new: + severity: + noop: எதுவுமில்லை + suspend: தற்காலீகமாக நீக்குக + email_domain_blocks: + empty: மின்னஞ்சற் களங்கள் எதுவும் தடுக்கப்படவில்லை. + invites: + filter: + all: அனைத்தும் + expired: காலாவதியானது + title: வடிகட்டி + title: அழைப்பிதழ்கள் + relays: + delete: அகற்று + disable: முடக்கு + disabled: முடக்கப்பட்டது + enabled: செயலில்பாட்டில் உள்ளது + reports: + account: + notes: + one: "%{count} குறிப்பு" + other: "%{count} குறிப்புகள்" + reports: + one: "%{count} புகார்" + other: "%{count} புகார்கள்" + comment: + none: எதுவுமில்லை + appearance: + localization: + body: மாஸ்டோடான் தன்னார்வலர்களால் மொழிபெயர்க்கப்படுகிறது. + guide_link_text: அனைவரும் பங்களிக்கலாம். errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -49,6 +215,9 @@ ta: '429': Throttled '500': '503': The page could not be served due to a temporary server failure. + filters: + index: + empty: தடுப்புகள் ஏதும் இல்லை. invites: expires_in: '1800': 30 minutes @@ -57,3 +226,7 @@ ta: '43200': 12 hours '604800': 1 week '86400': 1 day + notifications: + email_events: மின்னஞ்சல் அறிவிப்புகளுக்கான நிகழ்வுகள் + email_events_hint: 'எந்த நிகழ்வுகளுக்கு அறிவிப்புகளைப் பெற வேண்டும் என்று தேர்வு செய்க:' + other_settings: அறிவிப்புகள் குறித்த பிற அமைப்புகள் diff --git a/config/locales/th.yml b/config/locales/th.yml index 214a93acf..8a71cf557 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -4,13 +4,14 @@ th: about_hashtag_html: มีการแท็กโพสต์สาธารณะเหล่านี้ด้วย #%{hashtag} คุณสามารถโต้ตอบกับโพสต์หากคุณมีบัญชีที่ใดก็ตามในเฟดิเวิร์ส about_mastodon_html: 'เครือข่ายสังคมแห่งอนาคต: ไม่มีโฆษณา, ไม่มีการสอดแนมโดยองค์กร, การออกแบบตามหลักจริยธรรม และการกระจายศูนย์! เป็นเจ้าของข้อมูลของคุณด้วย Mastodon!' about_this: เกี่ยวกับ - active_count_after: ที่ใช้งาน + active_count_after: ใช้งานอยู่ active_footnote: ผู้ใช้งานรายเดือน (MAU) administered_by: 'ดูแลโดย:' api: API apps: แอปมือถือ apps_platforms: ใช้ Mastodon จาก iOS, Android และแพลตฟอร์มอื่น ๆ browse_directory: เรียกดูไดเรกทอรีโปรไฟล์และกรองตามความสนใจ + browse_local_posts: เรียกดูสตรีมสดของโพสต์สาธารณะจากเซิร์ฟเวอร์นี้ browse_public_posts: เรียกดูสตรีมสดของโพสต์สาธารณะใน Mastodon contact: ติดต่อ contact_missing: ไม่ได้ตั้ง @@ -30,9 +31,11 @@ th: status_count_before: ผู้สร้าง tagline: ติดตามเพื่อน ๆ และค้นพบเพื่อนใหม่ ๆ terms: เงื่อนไขการให้บริการ + unavailable_content: เนื้อหาไม่พร้อมใช้งาน unavailable_content_description: domain: เซิร์ฟเวอร์ reason: 'เหตุผล:' + rejecting_media: 'ไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้จะไม่ได้รับการประมวลผลหรือจัดเก็บ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:' user_count_after: other: ผู้ใช้ user_count_before: บ้านของ @@ -45,6 +48,7 @@ th: following: กำลังติดตาม joined: เข้าร่วมเมื่อ %{date} last_active: ใช้งานล่าสุด + link_verified_on: ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ %{date} media: สื่อ moved_html: "%{name} ได้ย้ายไปยัง %{new_profile_link}:" network_hidden: ไม่มีข้อมูลนี้ @@ -56,16 +60,19 @@ th: other: โพสต์ posts_tab_heading: โพสต์ posts_with_replies: โพสต์และการตอบกลับ - reserved_username: ชื่อผู้ใช้นี้ถูกสงวนไว้ + reserved_username: ชื่อผู้ใช้ถูกสงวนไว้ roles: admin: ผู้ดูแล bot: บอต + group: กลุ่ม moderator: ผู้ควบคุม unavailable: ไม่มีโปรไฟล์ unfollow: เลิกติดตาม admin: + account_actions: + action: ทำการกระทำ account_moderation_notes: - create: เขียนข้อความอธิบาย + create: เขียนหมายเหตุ created_msg: สร้างหมายเหตุการควบคุมสำเร็จ! delete: ลบ destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ! @@ -86,7 +93,7 @@ th: confirmed: ยืนยันแล้ว confirming: กำลังยืนยัน deleted: ลบแล้ว - demote: ลดระดับ + demote: ลดขั้น disable: ปิดใช้งาน disable_two_factor_authentication: ปิดใช้งาน 2FA disabled: ปิดใช้งานอยู่ @@ -111,10 +118,11 @@ th: title: ตำแหน่งที่ตั้ง login_status: สถานะการเข้าสู่ระบบ media_attachments: ไฟล์แนบสื่อ + memorialize: เปลี่ยนเป็นระลึกถึง moderation: active: ใช้งานอยู่ all: ทั้งหมด - pending: รอการยืนยัน + pending: รอดำเนินการ silenced: เงียบอยู่ suspended: ระงับอยู่ title: การควบคุม @@ -122,8 +130,9 @@ th: most_recent_activity: กิจกรรมล่าสุด most_recent_ip: IP ล่าสุด not_subscribed: ไม่ได้บอกรับ + pending: การตรวจทานที่รอดำเนินการ perform_full_suspension: ระงับ - promote: เลื่อนตำแหน่ง + promote: เลื่อนขั้น protocol: โปรโตคอล public: สาธารณะ push_subscription_expires: การบอกรับ PuSH หมดอายุเมื่อ @@ -145,6 +154,7 @@ th: staff: พนักงาน user: ผู้ใช้ search: ค้นหา + shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน show: created_reports: รายงานที่สร้าง targeted_reports: รายงานโดยผู้อื่น @@ -153,30 +163,41 @@ th: statuses: สถานะ subscribe: บอกรับ suspended: ระงับอยู่ + time_in_queue: กำลังรออยู่ในคิว %{time} title: บัญชี - unconfirmed_email: ยังไม่ได้ยืนยันอีเมล + unconfirmed_email: อีเมลที่ยังไม่ได้ยืนยัน undo_silenced: เลิกทำการเงียบ undo_suspension: เลิกทำการระงับ unsubscribe: เลิกบอกรับ username: ชื่อผู้ใช้ warn: เตือน web: เว็บ + whitelisted: ขึ้นบัญชีขาวแล้ว action_logs: actions: change_email_user: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}" confirm_user: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}" create_account_warning: "%{name} ได้ส่งคำเตือนไปยัง %{target}" + create_domain_allow: "%{name} ได้ขึ้นบัญชีขาวโดเมน %{target}" create_domain_block: "%{name} ได้ปิดกั้นโดเมน %{target}" + create_email_domain_block: "%{name} ได้ขึ้นบัญชีดำโดเมนอีเมล %{target}" + demote_user: "%{name} ได้ลดขั้นผู้ใช้ %{target}" destroy_custom_emoji: "%{name} ได้ทำลายอีโมจิ %{target}" + destroy_domain_allow: "%{name} ได้เอาโดเมน %{target} ออกจากบัญชีขาว" destroy_domain_block: "%{name} ได้เลิกปิดกั้นโดเมน %{target}" + destroy_email_domain_block: "%{name} ได้ขึ้นบัญชีขาวโดเมนอีเมล %{target}" destroy_status: "%{name} ได้เอาสถานะโดย %{target} ออก" + disable_2fa_user: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}" disable_custom_emoji: "%{name} ได้ปิดใช้งานอีโมจิ %{target}" disable_user: "%{name} ได้ปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}" enable_custom_emoji: "%{name} ได้เปิดใช้งานอีโมจิ %{target}" enable_user: "%{name} ได้เปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}" + promote_user: "%{name} ได้เลื่อนขั้นผู้ใช้ %{target}" remove_avatar_user: "%{name} ได้เอาภาพประจำตัวของ %{target} ออก" reopen_report: "%{name} ได้เปิดรายงาน %{target} ใหม่" + resolve_report: "%{name} ได้แก้ปัญหารายงาน %{target}" suspend_account: "%{name} ได้ระงับบัญชีของ %{target}" + unassigned_report: "%{name} ได้เลิกมอบหมายรายงาน %{target}" unsuspend_account: "%{name} ได้เลิกระงับบัญชีของ %{target}" update_custom_emoji: "%{name} ได้อัปเดตอีโมจิ %{target}" update_status: "%{name} ได้อัปเดตสถานะโดย %{target}" @@ -212,6 +233,7 @@ th: upload: อัปโหลด dashboard: authorized_fetch_mode: โหมดปลอดภัย + backlog: งานคงค้าง config: การกำหนดค่า feature_deletions: การลบบัญชี feature_invites: ลิงก์เชิญ @@ -221,6 +243,8 @@ th: feature_timeline_preview: ตัวอย่างเส้นเวลา features: คุณลักษณะ open_reports: รายงานที่เปิด + pending_tags: แฮชแท็กที่กำลังรอการตรวจทาน + pending_users: ผู้ใช้ที่กำลังรอการตรวจทาน recent_users: ผู้ใช้ล่าสุด search: การค้นหาข้อความแบบเต็ม single_user_mode: โหมดผู้ใช้เดี่ยว @@ -230,8 +254,14 @@ th: total_users: ผู้ใช้ทั้งหมด trends: แนวโน้ม week_interactions: การโต้ตอบในสัปดาห์นี้ - week_users_active: ที่ใช้งานในสัปดาห์นี้ + week_users_active: ใช้งานอยู่ในสัปดาห์นี้ week_users_new: ผู้ใช้ในสัปดาห์นี้ + whitelist_mode: โหมดบัญชีขาว + domain_allows: + add_new: ขึ้นบัญชีขาวโดเมน + created_msg: ขึ้นบัญชีขาวโดเมนสำเร็จ + destroyed_msg: เอาโดเมนออกจากบัญชีขาวแล้ว + undo: เอาออกจากบัญชีขาว domain_blocks: add_new: เพิ่มการปิดกั้นโดเมนใหม่ created_msg: กำลังประมวลผลการปิดกั้นโดเมน @@ -267,10 +297,15 @@ th: view: ดูการปิดกั้นโดเมน email_domain_blocks: add_new: เพิ่มใหม่ + created_msg: เพิ่มโดเมนอีเมลเป็นบัญชีดำสำเร็จ delete: ลบ + destroyed_msg: ลบโดเมนอีเมลออกจากบัญชีดำสำเร็จ domain: โดเมน + empty: ไม่มีโดเมนอีเมลที่ขึ้นบัญชีดำอยู่ new: create: เพิ่มโดเมน + title: รายการบัญชีดำอีเมลใหม่ + title: บัญชีดำอีเมล followers: back_to_account: กลับไปที่บัญชี title: ผู้ติดตามของ %{acct} @@ -288,6 +323,11 @@ th: total_storage: ไฟล์แนบสื่อ invites: deactivate_all: ปิดใช้งานทั้งหมด + filter: + all: ทั้งหมด + available: พร้อมใช้งาน + expired: หมดอายุแล้ว + title: ตัวกรอง title: คำเชิญ pending_accounts: title: บัญชีที่รอดำเนินการ (%{count}) @@ -299,6 +339,7 @@ th: enable: เปิดใช้งาน enabled: เปิดใช้งานอยู่ inbox_url: URL รีเลย์ + pending: กำลังรอการอนุมัติของรีเลย์ save_and_enable: บันทึกแล้วเปิดใช้งาน status: สถานะ title: รีเลย์ @@ -306,9 +347,15 @@ th: created_msg: สร้างหมายเหตุรายงานสำเร็จ! destroyed_msg: ลบหมายเหตุรายงานสำเร็จ! reports: + account: + notes: + other: "%{count} หมายเหตุ" + reports: + other: "%{count} รายงาน" are_you_sure: คุณแน่ใจหรือไม่? assign_to_self: มอบหมายให้ฉัน assigned: ผู้ควบคุมที่ได้รับมอบหมาย + by_target_domain: โดเมนของบัญชีที่ได้รับการรายงาน comment: none: ไม่มี created_at: รายงานเมื่อ @@ -340,6 +387,16 @@ th: title: CSS ที่กำหนดเอง domain_blocks: title: แสดงการปิดกั้นโดเมน + domain_blocks_rationale: + title: แสดงคำชี้แจงเหตุผล + enable_bootstrap_timeline_accounts: + title: เปิดใช้งานการติดตามเริ่มต้นสำหรับผู้ใช้ใหม่ + hero: + title: ภาพแบนเนอร์หลัก + mascot: + title: ภาพมาสคอต + peers_api_enabled: + title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบ profile_directory: desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้ title: เปิดใช้งานไดเรกทอรีโปรไฟล์ @@ -355,6 +412,7 @@ th: title: อนุญาตคำเชิญโดย registrations_mode: modes: + approved: ต้องมีการอนุมัติสำหรับการลงทะเบียน none: ไม่มีใครสามารถลงทะเบียน open: ใครก็ตามสามารถลงทะเบียน title: โหมดการลงทะเบียน @@ -370,11 +428,12 @@ th: site_short_description: title: คำอธิบายเซิร์ฟเวอร์แบบสั้น site_terms: + desc_html: คุณสามารถเขียนนโยบายความเป็นส่วนตัว, เงื่อนไขการให้บริการ หรือภาษากฎหมายอื่น ๆ ของคุณเอง คุณสามารถใช้แท็ก HTML title: เงื่อนไขการให้บริการที่กำหนดเอง site_title: ชื่อเซิร์ฟเวอร์ timeline_preview: - desc_html: แสดงเส้นเวลาสาธารณะในหน้าเริ่มต้น - title: ตัวอย่างเส้นเวลา + desc_html: แสดงลิงก์ไปยังเส้นเวลาสาธารณะในหน้าเริ่มต้นและอนุญาตการเข้าถึง API ไปยังเส้นเวลาสาธารณะโดยไม่มีการรับรองความถูกต้อง + title: อนุญาตการเข้าถึงเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง title: การตั้งค่าไซต์ trends: title: แฮชแท็กที่กำลังนิยม @@ -397,8 +456,12 @@ th: most_popular: ยอดนิยม most_recent: ล่าสุด name: แฮชแท็ก + review: สถานะการตรวจทาน + reviewed: ตรวจทานแล้ว title: แฮชแท็ก trending_right_now: กำลังนิยม + unique_uses_today: "%{count} การโพสต์วันนี้" + unreviewed: ยังไม่ได้ตรวจทาน title: การดูแล warning_presets: add_new: เพิ่มใหม่ @@ -406,6 +469,11 @@ th: edit: แก้ไข edit_preset: แก้ไขคำเตือนที่ตั้งไว้ล่วงหน้า title: จัดการคำเตือนที่ตั้งไว้ล่วงหน้า + admin_mailer: + new_report: + body: "%{reporter} ได้รายงาน %{target}" + body_remote: ใครสักคนจาก %{domain} ได้รายงาน %{target} + subject: รายงานใหม่สำหรับ %{instance} (#%{id}) aliases: add_new: สร้างนามแฝง remove: เลิกเชื่อมโยงนามแฝง @@ -414,6 +482,10 @@ th: animations_and_accessibility: ภาพเคลื่อนไหวและการช่วยการเข้าถึง confirmation_dialogs: กล่องโต้ตอบการยืนยัน discovery: ค้นพบ + localization: + body: Mastodon ได้รับการแปลโดยอาสาสมัคร + guide_link: https://crowdin.com/project/mastodon/th + guide_link_text: ทุกคนสามารถมีส่วนร่วม sensitive_content: เนื้อหาที่ละเอียดอ่อน toot_layout: เค้าโครงโพสต์ application_mailer: @@ -433,6 +505,8 @@ th: checkbox_agreement_html: ฉันยอมรับ กฎของเซิร์ฟเวอร์ และ เงื่อนไขการให้บริการ checkbox_agreement_without_rules_html: ฉันยอมรับ เงื่อนไขการให้บริการ delete_account: ลบบัญชี + description: + prefix_sign_up: ลงทะเบียนใน Mastodon วันนี้! didnt_get_confirmation: ไม่ได้รับคำแนะนำการยืนยัน? forgot_password: ลืมรหัสผ่านของคุณ? login: เข้าสู่ระบบ @@ -449,6 +523,8 @@ th: set_new_password: ตั้งรหัสผ่านใหม่ status: account_status: สถานะบัญชี + confirming: กำลังรอการยืนยันอีเมลให้เสร็จสมบูรณ์ + functional: บัญชีของคุณทำงานได้อย่างเต็มที่ trouble_logging_in: มีปัญหาในการเข้าสู่ระบบ? authorize_follow: already_following: คุณกำลังติดตามบัญชีนี้อยู่แล้ว @@ -478,12 +554,20 @@ th: x_months: "%{count} เดือน" x_seconds: "%{count} วินาที" deletes: + confirm_username: ป้อนชื่อผู้ใช้ของคุณเพื่อยืนยันกระบวนงาน proceed: ลบบัญชี success_msg: ลบบัญชีของคุณสำเร็จ + warning: + data_removal: จะเอาโพสต์และข้อมูลอื่น ๆ ของคุณออกโดยถาวร + email_change_html: คุณสามารถ เปลี่ยนที่อยู่อีเมลของคุณ โดยไม่ต้องลบบัญชีของคุณ + email_reconfirmation_html: หากคุณไม่ได้รับอีเมลยืนยัน คุณสามารถ ขออีเมลอีกครั้ง + more_details_html: สำหรับรายละเอียดเพิ่มเติม ดู นโยบายความเป็นส่วนตัว directories: directory: ไดเรกทอรีโปรไฟล์ explanation: ค้นพบผู้ใช้ตามความสนใจของเขา explore_mastodon: สำรวจ %{title} + domain_validator: + invalid_domain: ไม่ใช่ชื่อโดเมนที่ถูกต้อง errors: '400': The request you submitted was invalid or malformed. '403': คุณไม่มีสิทธิอนุญาตเพื่อดูหน้านี้ @@ -508,7 +592,6 @@ th: blocks: คุณปิดกั้น csv: CSV domain_blocks: การปิดกั้นโดเมน - follows: คุณติดตาม lists: รายการ mutes: คุณปิดเสียง storage: ที่เก็บข้อมูลสื่อ @@ -524,6 +607,7 @@ th: title: แก้ไขตัวกรอง index: delete: ลบ + empty: คุณไม่มีตัวกรอง title: ตัวกรอง new: title: เพิ่มตัวกรองใหม่ @@ -538,19 +622,24 @@ th: copy: คัดลอก order_by: เรียงลำดับตาม save_changes: บันทึกการเปลี่ยนแปลง + html_validator: + invalid_markup: 'มีมาร์กอัป HTML ที่ไม่ถูกต้อง: %{error}' identity_proofs: + active: ใช้งานอยู่ authorize: ใช่ อนุญาต + inactive: ไม่ได้ใช้งาน + status: สถานะการตรวจสอบ imports: modes: merge: ผสาน overwrite: เขียนทับ - preface: You can import certain data like all the people you are following or blocking into your account on this instance, from files created by an export on another instance. types: blocking: รายการปิดกั้น domain_blocking: รายการปิดกั้นโดเมน following: รายการติดตาม muting: รายการปิดเสียง upload: อัปโหลด + in_memoriam_html: เพื่อระลึกถึง invites: delete: ปิดใช้งาน expires_in: @@ -561,7 +650,8 @@ th: '604800': 1 สัปดาห์ '86400': 1 วัน expires_in_prompt: ไม่เลย - generate: สร้าง + generate: สร้างลิงก์เชิญ + invited_by: 'คุณได้รับเชิญโดย:' max_uses: other: "%{count} การใช้" max_uses_prompt: ไม่มีขีดจำกัด @@ -574,11 +664,12 @@ th: images_and_video: ไม่สามารถแนบวิดีโอกับสถานะที่มีภาพอยู่แล้ว too_many: ไม่สามารถแนบมากกว่า 4 ไฟล์ migrations: - acct: username@domain ของบัญชีใหม่ + acct: ย้ายไปยัง cancel: ยกเลิกการเปลี่ยนเส้นทาง errors: move_to_self: ไม่สามารถเป็นบัญชีปัจจุบัน not_found: ไม่พบ + incoming_migrations: การย้ายจากบัญชีอื่น proceed_with_move: ย้ายผู้ติดตาม redirecting_to: บัญชีของคุณกำลังเปลี่ยนเส้นทางไปยัง %{acct} set_redirect: ตั้งการเปลี่ยนเส้นทาง @@ -588,8 +679,6 @@ th: digest: action: ดูการแจ้งเตือนทั้งหมด mention: "%{name} ได้กล่าวถึงคุณใน:" - new_followers_summary: - other: You have gotten %{count} new followers! Amazing! title: เมื่อคุณไม่อยู่... favourite: body: 'สถานะของคุณได้รับการชื่นชอบโดย %{name}:' @@ -613,6 +702,9 @@ th: body: 'สถานะของคุณได้รับการดันโดย %{name}:' subject: "%{name} ได้ดันสถานะของคุณ" title: การดันใหม่ + notifications: + email_events: เหตุการณ์สำหรับการแจ้งเตือนอีเมล + other_settings: การตั้งค่าการแจ้งเตือนอื่น ๆ pagination: newer: ใหม่กว่า next: ถัดไป @@ -621,14 +713,18 @@ th: truncate: "…" polls: errors: - already_voted: คุณได้ลงคะแนนในโพลนี้อยู่แล้ว + already_voted: คุณได้ลงคะแนนในการสำรวจความคิดเห็นนี้อยู่แล้ว duplicate_options: มีรายการที่ซ้ำกัน + too_few_options: ต้องมีมากกว่าหนึ่งรายการ + too_many_options: ไม่สามารถมีมากกว่า %{max} รายการ preferences: other: อื่น ๆ posting_defaults: ค่าเริ่มต้นการโพสต์ public_timelines: เส้นเวลาสาธารณะ relationships: activity: กิจกรรมบัญชี + followers: ผู้ติดตาม + following: กำลังติดตาม last_active: ใช้งานล่าสุด most_recent: ล่าสุด moved: ย้ายแล้ว @@ -714,15 +810,20 @@ th: two_factor_authentication: การรับรองความถูกต้องด้วยสองปัจจัย statuses: attached: - description: 'แนบ: %{attached}' + description: 'แนบอยู่: %{attached}' image: other: "%{count} ภาพ" video: other: "%{count} วิดีโอ" + boosted_from_html: ดันจาก %{acct_link} content_warning: 'คำเตือนเนื้อหา: %{warning}' + disallowed_hashtags: + other: 'มีแฮชแท็กที่ไม่อนุญาต: %{tags}' language_detection: ตรวจหาภาษาโดยอัตโนมัติ open_in_web: เปิดในเว็บ pin_errors: + ownership: ไม่สามารถปักหมุดโพสต์ของคนอื่น + private: ไม่สามารถปักหมุดโพสต์ที่ไม่เป็นสาธารณะ reblog: ไม่สามารถปักหมุดการดัน poll: total_people: @@ -739,9 +840,14 @@ th: public: สาธารณะ public_long: ทุกคนสามารถเห็น unlisted: ไม่อยู่ในรายการ + unlisted_long: ทุกคนสามารถเห็น แต่ไม่แสดงรายการในเส้นเวลาสาธารณะ stream_entries: pinned: โพสต์ที่ปักหมุด sensitive_content: เนื้อหาที่ละเอียดอ่อน + tags: + does_not_match_previous_name: ไม่ตรงกับชื่อก่อนหน้า + terms: + title: เงื่อนไขการให้บริการและนโยบายความเป็นส่วนตัวของ %{instance} themes: contrast: Mastodon (ความคมชัดสูง) default: Mastodon (มืด) @@ -749,17 +855,21 @@ th: time: formats: default: "%d %b %Y, %H:%M" + month: "%b %Y" two_factor_authentication: disable: ปิดใช้งาน enable: เปิดใช้งาน enabled: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว enabled_success: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำเร็จ generate_recovery_codes: สร้างรหัสกู้คืน - recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe, for example by printing them and storing them with other important documents. + recovery_codes: รหัสกู้คืนข้อมูลสำรอง setup: ตั้งค่า wrong_code: รหัสที่ป้อนไม่ถูกต้อง! เวลาเซิร์ฟเวอร์และเวลาอุปกรณ์ถูกต้องหรือไม่? user_mailer: warning: + review_server_policies: ตรวจทานนโยบายของเซิร์ฟเวอร์ + subject: + none: คำเตือนสำหรับ %{acct} title: none: คำเตือน silence: จำกัดบัญชีอยู่ @@ -769,6 +879,7 @@ th: subject: ยินดีต้อนรับสู่ Mastodon tips: เคล็ดลับ users: + follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน invalid_email: ที่อยู่อีเมลไม่ถูกต้อง invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง signed_in_as: 'ลงชื่อเข้าเป็น:' diff --git a/config/locales/tr.yml b/config/locales/tr.yml index f3a2817ec..1e80315c0 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -56,7 +56,7 @@ tr: followers: one: Takipçi other: Takipçi - following: Takip ediliyor + following: Takip ettikleri joined: "%{date} tarihinde katıldı" last_active: son aktivite link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi @@ -78,6 +78,7 @@ tr: roles: admin: Yönetici bot: Bot + group: Grup moderator: Denetleyici unavailable: Profil kullanılamıyor unfollow: Takibi bırak @@ -338,6 +339,7 @@ tr: delete: Sil destroyed_msg: E-posta alan adı kara listeden başarıyla silindi domain: Alan adı + empty: Şu anda hiçbir e-posta alan adı kara listeye alınmadı. new: create: Alan adı ekle title: Yeni e-posta kara liste girişi @@ -393,10 +395,18 @@ tr: created_msg: Şikayet notu başarıyla oluşturuldu! destroyed_msg: Şikayet notu başarıyla silindi! reports: + account: + notes: + one: "%{count} not" + other: "%{count} not" + reports: + one: "%{count} şikayet" + other: "%{count} şikayet" action_taken_by: tarafından gerçekleştirilen eylem are_you_sure: Emin misiniz? assign_to_self: Bana ata assigned: Denetleyici atandı + by_target_domain: Şikayet edilen hesabın alan adı comment: none: Yok created_at: Şikayet edildi @@ -442,6 +452,8 @@ tr: users: Oturum açan yerel kullanıcılara domain_blocks_rationale: title: Gerekçeyi göster + enable_bootstrap_timeline_accounts: + title: Yeni kullanıcılar için varsayılan takipleri etkinleştir hero: desc_html: Önsayfada görüntülenir. En az 600x100px önerilir. Ayarlanmadığında, sunucu küçük resmi kullanılır title: Kahraman görseli @@ -529,7 +541,7 @@ tr: context: İçerik directory: Dizinde in_directory: Dizinde %{count} - last_active: Son aktiflik + last_active: Son aktivite most_popular: En popüler most_recent: En yeni name: Etiket @@ -570,6 +582,10 @@ tr: animations_and_accessibility: Animasyonlar ve erişilebilirlik confirmation_dialogs: Onay iletişim kutuları discovery: Keşfet + localization: + body: Mastodon, gönüllüler tarafından çevrilmektedir. + guide_link: https://crowdin.com/project/mastodon + guide_link_text: Herkes katkıda bulunabilir. sensitive_content: Hassas içerik toot_layout: Toot yerleşimi application_mailer: @@ -708,7 +724,6 @@ tr: blocks: Blokladıklarınız csv: CSV domain_blocks: Alan adı blokları - follows: Takip ettikleriniz lists: Listeler mutes: Susturduklarınız storage: Ortam deposu @@ -730,6 +745,7 @@ tr: invalid_irreversible: Geri dönüşümsüz filtreleme sadece anasayfa ya da bildirim bağlamında çalışır index: delete: Sil + empty: Hiç filtreniz yok. title: Filtreler new: title: Yeni filtre ekle @@ -878,6 +894,10 @@ tr: body: "%{name} durumunuzu boost etti:" subject: "%{name} durumunuzu boost etti" title: Yeni gönderi + notifications: + email_events: E-posta bildirimi gönderilecek etkinlikler + email_events_hint: 'Bildirim almak istediğiniz olayları seçin:' + other_settings: Diğer bildirim ayarları number: human: decimal_units: @@ -901,6 +921,7 @@ tr: duration_too_long: ileriye doğru çok geç duration_too_short: çok erken expired: Anket çoktan sona erdi + invalid_choice: Seçilen oylama seçeneği mevcut değil over_character_limit: her biri %{max} karakterden daha uzun olamaz too_few_options: birden fazla öğeye sahip olmalı too_many_options: "%{max} öğeden fazla öğe içeremez" @@ -911,6 +932,8 @@ tr: relationships: activity: Hesap etkinliği dormant: Atıl + followers: Takipçiler + following: Takip edilenler last_active: Son aktivite most_recent: En son moved: Taşındı diff --git a/config/locales/uk.yml b/config/locales/uk.yml index edcc289da..32b38067b 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -41,6 +41,10 @@ uk: unavailable_content_description: domain: Сервер reason: Причина + rejecting_media: 'Медіа файли з цих серверів не будуть оброблятися або зберігатись, а мініатюри відображатись. Щоб побачити оригінальний файл, треба буде натиснути на посилання:' + silenced: 'Повідомлення з цих серверів будуть приховані в публічних стрічках та розмовах, також ви не отримуватимете сповіщень щодо взаємодій з їх користувачами, якщо ви їх не відстежуєте:' + suspended: 'Жодна інформація з цих серверів не буде оброблена, збережена чи передана, що робить спілкування з користувачами цих серверів неможливим:' + unavailable_content_html: Mastodon зазвичай дозволяє вам взаємодіяти з користувачами будь-яких серверів в Федіверсі та переглядати їх контент. Ось винятки, які було зроблено на цьому конкретному сервері. user_count_after: few: користувача many: користувачів @@ -50,6 +54,8 @@ uk: what_is_mastodon: Що таке Mastodon? accounts: choices_html: 'Вподобання %{name}:' + endorsements_hint: У веб-інтерфейсі ви можете рекомендувати людей, на яких підписані, і вони з'являться тут. + featured_tags_hint: Ви можете вказати хештеги, які будуть відображатись тут. follow: Підписатися followers: few: Підписника @@ -80,6 +86,7 @@ uk: roles: admin: Адміністратор bot: Бот + group: Група moderator: Мод unavailable: Профіль недоступний unfollow: Відписатися @@ -173,6 +180,7 @@ uk: staff: Персонал user: Користувач search: Пошук + search_same_ip: Інші користувачі з тим самим IP shared_inbox_url: URL спільного вхідного кошика show: created_reports: Скарги, створені цим аккаунтом @@ -199,10 +207,12 @@ uk: confirm_user: "%{name} підтвердив(-ла) статус поштової адреси користувача %{target}" create_account_warning: "%{name} надіслав попередження до %{target}" create_custom_emoji: "%{name} вивантажив(-ла) нове емодзі %{target}" + create_domain_allow: "%{name} додав(-ла) домен %{target} до білого списку" create_domain_block: "%{name} заблокував(-ла) домен %{target}" create_email_domain_block: "%{name} додав(-ла) поштовий домен %{target} до чорного списку" demote_user: "%{name} понизив(-ла) %{target}" destroy_custom_emoji: "%{name} знищив(-ла) емодзі %{target}" + destroy_domain_allow: "%{name} видалив(-ла) домен %{target} з білого списку" destroy_domain_block: "%{name} розблокував(-ла) домен %{target}" destroy_email_domain_block: "%{name} додав(-ла) поштовий домен %{target} до білого списку" destroy_status: "%{name} видалив(-ла) статус користувача %{target}" @@ -395,10 +405,22 @@ uk: created_msg: Скарга успішно створена! destroyed_msg: Скарга успішно видалена! reports: + account: + notes: + few: "%{count} приміток" + many: "%{count} приміток" + one: "%{count} примітка" + other: "%{count} приміток" + reports: + few: "%{count} скарги" + many: "%{count} скарг" + one: "%{count} скарга" + other: "%{count} скарг" action_taken_by: Дія виконана are_you_sure: Ви впевнені? assign_to_self: Призначити мені assigned: Призначений модератор + by_target_domain: Домен облікового запису, на який скаржаться comment: none: Немає created_at: Створено @@ -440,6 +462,7 @@ uk: all: Всi disabled: Нікого title: Показати, які домени заблоковані + users: Для авторизованих локальних користувачів domain_blocks_rationale: title: Обґрунтування hero: @@ -485,6 +508,7 @@ uk: desc_html: Відображається на сторінці додаткової информації
Можна використовувати HTML-теги title: Розширений опис сайту site_short_description: + desc_html: Відображається в бічній панелі та мета-тегах. Опишіть, що таке Mastodon і що робить цей сервер особливим, в одному абзаці. title: Короткий опис сервера site_terms: desc_html: |- @@ -502,6 +526,9 @@ uk: desc_html: Показувати публічну стрічку на головній сторінці title: Передпоказ фіду title: Налаштування сайту + trendable_by_default: + desc_html: Впливає на хештеги, які не були заборонені раніше + title: Дозволити хештегам потрапляти в тренди без попереднього перегляду trends: desc_html: Відображати розглянуті хештеґи, які популярні зараз title: Популярні хештеги @@ -558,13 +585,19 @@ uk: add_new: Створити псевдонім created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису. deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе. + remove: Від'єднати псевдонім appearance: advanced_web_interface: Розширений web-інтерфейс advanced_web_interface_hint: 'Розширений веб-інтерфейс дає змогу бачити багато стовпчиків одночасно: основна сторінка, сповіщення, глобальна стрічка, будь-які списки та хештеґи. Потребує широкого екрана.' animations_and_accessibility: Анімація та доступність confirmation_dialogs: Діалоги підтвердження discovery: Виявлення + localization: + body: Mastodon перекладено волонтерами. + guide_link: https://uk.crowdin.com/project/mastodon + guide_link_text: Кожен може взяти участь. sensitive_content: Дражливий вміст + toot_layout: Зовнішній вигляд дмухів application_mailer: notification_preferences: Змінити налаштування e-mail salutation: "%{name}," @@ -701,7 +734,6 @@ uk: blocks: Список блокувань csv: CSV domain_blocks: Блокування доменів - follows: Підписки lists: Списки mutes: Список глушення storage: Ваш медіаконтент @@ -723,6 +755,7 @@ uk: invalid_irreversible: Незворотне фільтрування працює тільки в контексті свого фіду або сповіщень index: delete: Видалити + empty: У вас немає фільтрів. title: Фільтри new: title: Додати фільтр @@ -806,12 +839,19 @@ uk: migrations: acct: username@domain нового облікового запису cancel: Скасувати перенаправлення + cancelled_msg: Перенаправлення успішно скасовано. errors: + already_moved: той самий обліковий запис, до якого ви вже переміщені + move_to_self: неможливо перемістити обліковий запис до самого себе not_found: не знайдено + on_cooldown: Ви у витверезнику followers_count: Підписників на час міграції incoming_migrations: Переїзд з іншого облікового запису incoming_migrations_html: Щоб переїхати з іншого облікового запису на цей, ви маєте створити псевдонім облікового запису. + moved_msg: Ваш обліковий запис зараз перенаправляється до %{acct}. Ваші підписники також будуть переміщені. not_redirecting: Наразі ваш обліковий запис не перенаправлений до іншого облікового запису. + on_cooldown: Нещодавно ви вже перенесли ваш обліковий запис. Функція переносу стане доступною знову через %{count} днів. + past_migrations: Попередні міграції proceed_with_move: Перемістити підписників redirecting_to: Ваш обліковий запис перенаправляється до %{acct}. set_redirect: Встановити перенаправлення @@ -819,6 +859,9 @@ uk: backreference_required: Спочатку має бути налаштовано зворотне посилання поточного облікового запису на новий обліковий запис before: 'Перш ніж продовжити, уважно прочитайте ці нотатки:' cooldown: Після переїзду ви деякий час не можете переїжджати знову + disabled_account: Поточний обліковий запис не буде повністю придатний до використання. Проте ви матимете доступ до експорту даних та повторної активації. + followers: Ця дія призведе до переміщення всіх підписників з поточного облікового запису до нового облікового запису + other_data: Ніякі інші дані не будуть переміщені автоматично moderation: title: Модерація notification_mailer: @@ -859,6 +902,10 @@ uk: body: 'Ваш статус було передмухнуто %{name}:' subject: "%{name} передмухнув(-ла) ваш статус" title: Нове передмухування + notifications: + email_events: Події, про які сповіщати електронною поштою + email_events_hint: 'Оберіть події, про які ви хочете отримувати сповіщення:' + other_settings: Інші налаштування сповіщень number: human: decimal_units: @@ -892,6 +939,8 @@ uk: relationships: activity: Діяльність облікового запису dormant: Неактивні + followers: Підписники + following: Підписник(-ця) last_active: Крайня активність most_recent: За часом створення moved: Переміщено diff --git a/config/locales/vi.yml b/config/locales/vi.yml new file mode 100644 index 000000000..b8ef6fe43 --- /dev/null +++ b/config/locales/vi.yml @@ -0,0 +1,1113 @@ +--- +vi: + about: + about_hashtag_html: Đây là các tút công khai được gắn thẻ # %{hashtag} . Bạn có thể tương tác với họ nếu bạn có tài khoản ở bất cứ đâu trong fediverse. + about_mastodon_html: 'Mạng xã hội của tương lai: Không quảng cáo, không giám sát doanh nghiệp, thiết kế đạo đức và phân cấp! Sở hữu dữ liệu của bạn với Mastodon!' + about_this: Trong khoảng + active_count_after: Hoạt động + active_footnote: Người dùng hoạt động hàng tháng (MAU) + administered_by: 'Điều hành bởi:' + api: API + apps: Ứng dụng di động + apps_platforms: Sử dụng Mastodon từ iOS, Android và các nền tảng khác + browse_directory: Duyệt một thư mục hồ sơ và lọc theo sở thích + browse_local_posts: Duyệt một luồng trực tiếp các bài đăng công khai trên trang + browse_public_posts: Duyệt một luồng trực tiếp các bài đăng công khai trên Mastodon + contact: Tiếp xúc + contact_missing: Không được thiết lập + contact_unavailable: Không có + discover_users: Khám phá người dùng + documentation: Tài liệu + federation_hint_html: Với tài khoản trên %{instance}, bạn sẽ có thể theo dõi mọi người trên bất kỳ máy chủ Mastodon nào và hơn thế nữa. + get_apps: Dùng thử ứng dụng di động + hosted_on: " %{domain} được vận hành trên Mastodon" + instance_actor_flash: "Tài khoản này là một tác nhân ảo được sử dụng để đại diện cho chính máy chủ chứ không phải bất kỳ người dùng cá nhân nào. Nó được sử dụng cho mục đích liên kết và không nên bị chặn trừ khi bạn muốn chặn toàn bộ phiên bản, trong trường hợp đó bạn nên sử dụng một khối miền. \n" + learn_more: Tìm hiểu thêm + privacy_policy: Chính sách bảo mật + see_whats_happening: Xem những gì đang xảy ra + server_stats: 'Số liệu thống kê máy chủ:' + source_code: Mã nguồn + status_count_after: + other: trạng thái + status_count_before: Ai là tác giả + tagline: Theo dõi bạn bè và khám phá những cái mới + terms: Điều khoản dịch vụ + unavailable_content: Nội dung không khả dụng + unavailable_content_description: + domain: Người phục vụ + reason: Lý do + rejecting_media: 'Các tệp phương tiện từ các máy chủ này sẽ không được xử lý hoặc lưu trữ và không có hình thu nhỏ nào được hiển thị, yêu cầu nhấp thủ công vào tệp gốc:' + silenced: 'Các bài đăng từ các máy chủ này sẽ bị ẩn trong các dòng thời gian và cuộc trò chuyện công khai và không có thông báo nào được tạo từ các tương tác của người dùng của họ, trừ khi bạn đang theo dõi họ:' + suspended: 'Không có dữ liệu từ các máy chủ này sẽ được xử lý, lưu trữ hoặc trao đổi, khiến cho bất kỳ tương tác hoặc giao tiếp với người dùng từ các máy chủ này đều không thể:' + unavailable_content_html: Mastodon thường cho phép bạn xem nội dung từ và tương tác với người dùng từ bất kỳ máy chủ nào khác trong fediverse. Đây là những ngoại lệ đã được thực hiện trên máy chủ cụ thể này. + user_count_after: + other: người dùng + user_count_before: Nhà + what_is_mastodon: Mastodon là gì? + accounts: + choices_html: 'lựa chọn của %{name}:' + endorsements_hint: Bạn có thể xác nhận những người bạn theo dõi từ giao diện web và họ sẽ hiển thị ở đây. + featured_tags_hint: Bạn có thể làm nổi bật các hashtag cụ thể sẽ được hiển thị ở đây. + follow: Theo + followers: + other: Người theo dõi + following: Tiếp theo + joined: Đã tham gia %{date} + last_active: hoạt động cuối cùng + link_verified_on: Quyền sở hữu của liên kết này đã được kiểm tra trên %{date} + media: Phương tiện truyền thông + moved_html: "%{name} đã chuyển sang %{new_profile_link}:" + network_hidden: Thông tin này không có sẵn + never_active: Không bao giờ + nothing_here: Không có cái gì ở đây cả! + people_followed_by: Những người mà %{name} theo dõi + people_who_follow: Những người theo dõi %{name} + pin_errors: + following: Bạn phải theo dõi người bạn muốn chứng thực + posts: + other: Tút + posts_tab_heading: Tút + posts_with_replies: Tút và trả lời + reserved_username: Tên người dùng được bảo lưu + roles: + admin: quản trị viên + bot: Người máy + moderator: Phép chia lấy phần dư + unavailable: Hồ sơ không có sẵn + unfollow: Hủy theo dõi + admin: + account_actions: + action: Diễn + title: Thực hiện hành động kiểm duyệt trên %{acct} + account_moderation_notes: + create: Để lại ghi chú + created_msg: Lưu ý kiểm duyệt được tạo thành công! + delete: Xóa bỏ + destroyed_msg: Lưu ý kiểm duyệt thành công! + accounts: + approve: Phê duyệt + approve_all: Phê duyệt tất cả + are_you_sure: Bạn có chắc không? + avatar: hình đại diện + by_domain: Miền + change_email: + changed_msg: Email tài khoản đã thay đổi thành công! + current_email: Email hiện tại + label: Thay đổi e-mail + new_email: Email mới + submit: Thay đổi e-mail + title: Thay đổi email cho %{username} + confirm: Xác nhận + confirmed: Đã xác nhận + confirming: Khẳng định + deleted: Đã xóa + demote: Hạ cấp + disable: Vô hiệu hóa + disable_two_factor_authentication: Vô hiệu hóa 2FA + disabled: Tàn tật + display_name: Tên hiển thị + domain: Miền + edit: Biên tập + email: E-mail + email_status: Trạng thái email + enable: Kích hoạt + enabled: Đã bật + followers: Người theo dõi + follows: Theo sau + header: Tiêu đề + inbox_url: URL hộp thư đến + invited_by: Được mời bởi + ip: IP + joined: Đã tham gia + location: + all: Tất cả + local: Địa phương + remote: Xa + title: Vị trí + login_status: Trạng thái đăng nhập + media_attachments: Tệp đính kèm phương tiện + memorialize: Biến thành bản ghi nhớ + moderation: + active: Hoạt động + all: Tất cả + pending: Đang chờ xử lý + silenced: Im lặng + suspended: Đình chỉ + title: Điều độ + moderation_notes: Ghi chú kiểm duyệt + most_recent_activity: Hoạt động gần đây nhất + most_recent_ip: IP gần đây nhất + no_account_selected: Không có tài khoản nào được thay đổi vì không có tài khoản nào được chọn + no_limits_imposed: Không giới hạn áp đặt + not_subscribed: Chưa đăng ký + pending: Đang chờ xem xét + perform_full_suspension: Đình chỉ + promote: Khuyến khích + protocol: Giao thức + public: Công cộng + push_subscription_expires: Đăng ký PuSH hết hạn + redownload: Làm mới hồ sơ + reject: Từ chối + reject_all: Từ chối tất cả + remove_avatar: Xóa hình đại diện + remove_header: Xóa tiêu đề + resend_confirmation: + already_confirmed: Người dùng này đã được xác nhận + send: Gửi lại email xác nhận + success: Email xác nhận đã được gửi thành công! + reset: Cài lại + reset_password: Đặt lại mật khẩu + resubscribe: Đăng ký lại + role: Quyền + roles: + admin: Người quản lý + moderator: Người điều hành + staff: Nhân viên + user: Người dùng + search: Tìm kiếm + search_same_ip: Thành viên khác cùng IP + shared_inbox_url: URL hộp thư đến được chia sẻ + show: + created_reports: Làm báo cáo + targeted_reports: Báo cáo bởi người khác + silence: khoảng lặng + silenced: Im lặng + statuses: Trạng thái + subscribe: Đăng ký + suspended: Đình chỉ + time_in_queue: Chờ đợi trong hàng đợi %{time} + title: Tài khoản + unconfirmed_email: Email chưa được xác nhận + undo_silenced: Hoàn tác im lặng + undo_suspension: Hoàn tác hệ thống treo + unsubscribe: Hủy đăng ký + username: tên tài khoản + warn: Cảnh báo + web: Web + whitelisted: Danh sách trắng + action_logs: + actions: + assigned_to_self_report: "%{name} được chỉ định báo cáo %{target} cho chính họ" + change_email_user: "%{name} đã thay đổi địa chỉ email của người dùng %{target}" + confirm_user: "%{name} xác nhận địa chỉ email của người dùng %{target}" + create_account_warning: "%{name} đã gửi cảnh báo tới %{target}" + create_custom_emoji: "%{name} đã tải lên biểu tượng cảm xúc mới %{target}" + create_domain_allow: "%{name} tên miền trong danh sách trắng %{target}" + create_domain_block: "%{name} tên miền bị chặn %{target}" + create_email_domain_block: "%{name} tên miền e-mail trong danh sách đen %{target}" + demote_user: "%{name} hạ cấp người dùng %{target}" + destroy_custom_emoji: "%{name} biểu tượng cảm xúc bị phá hủy %{target}" + destroy_domain_allow: "%{name} đã xóa tên miền %{target} khỏi danh sách trắng" + destroy_domain_block: "%{name} tên miền không bị chặn %{target}" + destroy_email_domain_block: "%{name} tên miền e-mail được liệt kê trắng %{target}" + destroy_status: "%{name} đã xóa trạng thái bởi %{target}" + disable_2fa_user: "%{name} đã vô hiệu hóa yêu cầu hai yếu tố cho người dùng %{target}" + disable_custom_emoji: "%{name} biểu tượng cảm xúc bị vô hiệu hóa %{target}" + disable_user: "%{name} đăng nhập bị vô hiệu hóa cho người dùng %{target}" + enable_custom_emoji: "%{name} kích hoạt biểu tượng cảm xúc %{target}" + enable_user: "%{name} kích hoạt đăng nhập cho người dùng %{target}" + memorialize_account: "%{name} đã biến tài khoản của %{target} thành một trang ghi nhớ" + promote_user: "%{name} người dùng được quảng cáo %{target}" + remove_avatar_user: "%{name} đã xóa hình đại diện của %{target}" + reopen_report: "%{name} mở lại báo cáo %{target}" + reset_password_user: "%{name} đặt lại mật khẩu của người dùng %{target}" + resolve_report: "%{name} đã giải quyết báo cáo %{target}" + silence_account: "%{name} im lặng tài khoản của %{target}" + suspend_account: "%{name} bị treo tài khoản của %{target}" + unassigned_report: "%{name} báo cáo chưa được chỉ định %{target}" + unsilence_account: "%{name} chưa được phân loại tài khoản của %{target}" + unsuspend_account: "%{name} không có tài khoản %{target} của tài khoản" + update_custom_emoji: "%{name} đã cập nhật biểu tượng cảm xúc %{target}" + update_status: "%{name} trạng thái được cập nhật bởi %{target}" + deleted_status: "(trạng thái đã xóa)" + title: Sổ ghi chép đánh giá + custom_emojis: + assign_category: Chỉ định danh mục + by_domain: Miền + copied_msg: Tạo thành công bản sao biểu tượng cảm xúc cục bộ + copy: Sao chép + copy_failed_msg: Không thể tạo một bản sao cục bộ của biểu tượng cảm xúc đó + create_new_category: Tạo danh mục mới + created_msg: Biểu tượng cảm xúc được tạo thành công! + delete: Xóa bỏ + destroyed_msg: Emojo phá hủy thành công! + disable: Vô hiệu hóa + disabled: Tàn tật + disabled_msg: Vô hiệu hóa thành công biểu tượng cảm xúc đó + emoji: Biểu tượng cảm xúc + enable: Kích hoạt + enabled: Đã bật + enabled_msg: Kích hoạt thành công biểu tượng cảm xúc đó + image_hint: PNG lên tới 50KB + list: Danh sách + listed: Liệt kê + new: + title: Thêm biểu tượng cảm xúc tùy chỉnh mới + overwrite: Ghi đè + shortcode: Mã ngắn + shortcode_hint: Ít nhất 2 ký tự, chỉ các ký tự chữ và số và dấu gạch dưới + title: Biểu tượng cảm xúc tùy chỉnh + uncategorized: Chưa phân loại + unlist: Bỏ danh sách + unlisted: Chưa niêm yết + update_failed_msg: Không thể cập nhật biểu tượng cảm xúc đó + updated_msg: Biểu tượng cảm xúc được cập nhật thành công! + upload: Tải lên + dashboard: + authorized_fetch_mode: Chế độ bảo mật + backlog: công việc tồn đọng + config: Cấu hình + feature_deletions: Xóa tài khoản + feature_invites: Mời liên kết + feature_profile_directory: Thư mục hồ sơ + feature_registrations: Đăng ký + feature_relay: Liên đoàn tiếp sức + feature_spam_check: Chống thư rác + feature_timeline_preview: Xem trước dòng thời gian + features: Đặc trưng + hidden_service: Liên kết với các dịch vụ ẩn + open_reports: mở báo cáo + pending_tags: hashtag đang chờ xem xét + pending_users: người dùng đang chờ xem xét + recent_users: Người dùng gần đây + search: Tìm kiếm toàn văn + single_user_mode: Chế độ người dùng đơn + software: Phần mềm + space: Sử dụng không gian + title: bảng điều khiển + total_users: tổng số người dùng + trends: Xu hướng + week_interactions: tương tác trong tuần này + week_users_active: hoạt động trong tuần này + week_users_new: người dùng trong tuần này + whitelist_mode: Chế độ danh sách trắng + domain_allows: + add_new: Tên miền trắng + created_msg: Tên miền đã được đưa vào danh sách trắng thành công + destroyed_msg: Tên miền đã bị xóa khỏi danh sách trắng + undo: Xóa khỏi danh sách trắng + domain_blocks: + add_new: Thêm khối miền mới + created_msg: Khối tên miền hiện đang được xử lý + destroyed_msg: Khối tên miền đã được hoàn tác + domain: Miền + edit: Chỉnh sửa khối miền + existing_domain_block_html: Bạn đã áp đặt các giới hạn chặt chẽ hơn trên %{name}, trước tiên bạn cần bỏ chặn nó . + new: + create: Tạo khối + hint: Khối miền sẽ không ngăn việc tạo các mục nhập tài khoản trong cơ sở dữ liệu, nhưng sẽ hồi tố và tự động áp dụng các phương pháp kiểm duyệt cụ thể trên các tài khoản đó. + severity: + desc_html: "Im lặng sẽ làm cho bài đăng của tài khoản trở nên vô hình đối với bất kỳ ai không theo dõi họ. Đình chỉ sẽ xóa tất cả nội dung, phương tiện và dữ liệu hồ sơ của tài khoản. Sử dụng Không nếu bạn chỉ muốn từ chối các tập tin phương tiện truyền thông." + noop: không ai + silence: khoảng lặng + suspend: Đình chỉ + title: Khối miền mới + private_comment: Bình luận riêng + private_comment_hint: Nhận xét về giới hạn miền này để sử dụng nội bộ của người điều hành. + public_comment: Nhận xét công khai + public_comment_hint: Nhận xét về giới hạn tên miền này cho công chúng, nếu quảng cáo danh sách các giới hạn tên miền được bật. + reject_media: Từ chối các tập tin phương tiện truyền thông + reject_media_hint: Xóa các tệp phương tiện được lưu trữ cục bộ và từ chối tải xuống bất kỳ trong tương lai. Không liên quan cho đình chỉ + reject_reports: Từ chối báo cáo + reject_reports_hint: Bỏ qua tất cả các báo cáo đến từ tên miền này. Không liên quan cho đình chỉ + rejecting_media: từ chối các tập tin phương tiện truyền thông + rejecting_reports: từ chối báo cáo + severity: + silence: im lặng + suspend: bị đình chỉ + show: + affected_accounts: + other: "%{count} tài khoản trong cơ sở dữ liệu bị ảnh hưởng" + retroactive: + silence: Tài khoản bị ảnh hưởng hiện có từ miền này + suspend: Hủy bỏ các tài khoản bị ảnh hưởng hiện có từ miền này + title: Hoàn tác khối miền cho %{domain} + undo: Hủy bỏ + undo: Hoàn tác khối tên miền + view: Xem khối tên miền + email_domain_blocks: + add_new: Thêm mới + created_msg: Đã thêm thành công tên miền e-mail vào danh sách đen + delete: Xóa bỏ + destroyed_msg: Đã xóa thành công tên miền e-mail khỏi danh sách đen + domain: Miền + new: + create: Thêm tên miền + title: Mục nhập danh sách đen e-mail mới + title: Danh sách đen e-mail + followers: + back_to_account: Quay lại tài khoản + title: Người theo dõi của %{acct} + instances: + by_domain: Miền + delivery_available: Giao hàng tận nơi + known_accounts: + other: "%{count} tài khoản đã biết" + moderation: + all: Tất cả + limited: Hạn chế + title: Điều độ + private_comment: Bình luận riêng + public_comment: Nhận xét công khai + title: Liên đoàn + total_blocked_by_us: Bị chặn bởi chúng tôi + total_followed_by_them: Theo sau họ + total_followed_by_us: Theo dõi chúng tôi + total_reported: Báo cáo về họ + total_storage: Tệp đính kèm phương tiện + invites: + deactivate_all: Vô hiệu hóa tất cả + filter: + all: Tất cả + available: Có sẵn + expired: Đã hết hạn + title: Bộ lọc + title: Mời + pending_accounts: + title: Tài khoản đang chờ xử lý (%{count}) + relays: + add_new: Thêm rơle mới + delete: Xóa bỏ + description_html: "Rơle liên kết là một máy chủ trung gian trao đổi khối lượng lớn các tút công khai giữa các máy chủ đăng ký và xuất bản lên nó. Nó có thể giúp các máy chủ vừa và nhỏ khám phá nội dung từ fediverse , nếu không sẽ yêu cầu người dùng cục bộ theo dõi thủ công người khác trên các máy chủ từ xa." + disable: Vô hiệu hóa + disabled: Tàn tật + enable: Kích hoạt + enable_hint: Sau khi được bật, máy chủ của bạn sẽ đăng ký tất cả các tút công khai từ rơle này và sẽ bắt đầu gửi các tút công khai của máy chủ này tới nó. + enabled: Đã bật + inbox_url: Chuyển tiếp URL + pending: Chờ phê duyệt của rơle + save_and_enable: Lưu và kích hoạt + setup: Thiết lập kết nối chuyển tiếp + signatures_not_enabled: Rơle sẽ không hoạt động chính xác trong khi chế độ bảo mật hoặc chế độ danh sách trắng được bật + status: Trạng thái + title: Rơle + report_notes: + created_msg: Báo cáo ghi chú được tạo thành công! + destroyed_msg: Báo cáo đã xóa thành công! + reports: + action_taken_by: Hành động được thực hiện bởi + are_you_sure: Bạn có chắc không? + assign_to_self: Giao cho tôi + assigned: Người điều hành được phân công + comment: + none: không ai + created_at: Báo cáo + mark_as_resolved: Đánh dấu là đã giải quyết + mark_as_unresolved: Đánh dấu là chưa giải quyết + notes: + create: Thêm ghi chú + create_and_resolve: Giải quyết với ghi chú + create_and_unresolve: Mở lại với ghi chú + delete: Xóa bỏ + placeholder: Mô tả những hành động đã được thực hiện, hoặc bất kỳ cập nhật liên quan khác ... + reopen: Mở lại báo cáo + report: 'Báo cáo # %{id}' + reported_account: Tài khoản báo cáo + reported_by: Báo cáo bởi + resolved: Đã giải quyết + resolved_msg: Báo cáo giải quyết thành công! + status: Trạng thái + title: Báo cáo + unassign: Bỏ qua + unresolved: Chưa giải quyết + updated_at: Đã cập nhật + settings: + activity_api_enabled: + desc_html: Số lượng trạng thái được đăng tại địa phương, người dùng hoạt động và đăng ký mới trong nhóm hàng tuần + title: Xuất bản số liệu thống kê tổng hợp về hoạt động của người dùng + bootstrap_timeline_accounts: + desc_html: Phân tách nhiều tên người dùng bằng dấu phẩy. Chỉ các tài khoản địa phương và mở khóa sẽ hoạt động. Mặc định khi trống là tất cả quản trị viên địa phương. + title: Theo mặc định cho người dùng mới + contact_information: + email: Email kinh doanh + username: Liên hệ tên người dùng + custom_css: + desc_html: Sửa đổi giao diện với CSS được tải trên mỗi trang + title: CSS tùy chỉnh + default_noindex: + desc_html: Ảnh hưởng đến tất cả người dùng không tự thay đổi cài đặt này + title: Chọn người dùng không tham gia lập chỉ mục công cụ tìm kiếm theo mặc định + domain_blocks: + all: Tới mọi người + disabled: Không ai + title: Hiển thị khối miền + users: Để đăng nhập người dùng cục bộ + domain_blocks_rationale: + title: Hiển thị lý do + hero: + desc_html: Hiển thị trên frontpage. Khuyến nghị ít nhất 600x100px. Khi không được đặt, quay lại hình thu nhỏ của máy chủ + title: Hình ảnh anh hùng + mascot: + desc_html: Hiển thị trên nhiều trang. Khuyến nghị ít nhất 293 × 205px. Khi không được đặt, rơi trở lại linh vật mặc định + title: Hình ảnh linh vật + peers_api_enabled: + desc_html: Tên miền mà máy chủ này đã gặp phải trong fediverse + title: Xuất bản danh sách các máy chủ được phát hiện + preview_sensitive_media: + desc_html: Liên kết xem trước trên các trang web khác sẽ hiển thị hình thu nhỏ ngay cả khi phương tiện được đánh dấu là nhạy cảm + title: Hiển thị phương tiện nhạy cảm trong bản xem trước OpenGraph + profile_directory: + desc_html: Cho phép người dùng có thể khám phá + title: Cho phép thư mục hồ sơ + registrations: + closed_message: + desc_html: Hiển thị trên frontpage khi đăng ký được đóng lại. Bạn có thể sử dụng thẻ HTML + title: Tin nhắn đăng ký đã đóng + deletion: + desc_html: Cho phép mọi người xóa tài khoản của họ + title: Xóa tài khoản + min_invite_role: + disabled: Không một ai + title: Cho phép lời mời bằng cách + registrations_mode: + modes: + approved: Yêu cầu phê duyệt để đăng ký + none: Không ai có thể đăng ký + open: Bất cứ ai cũng có thể đăng ký + title: Chế độ đăng ký + show_known_fediverse_at_about_page: + desc_html: Khi bị tắt, hãy giới hạn dòng thời gian công khai được liên kết từ trang đích để chỉ hiển thị nội dung cùng miền + title: Bao gồm nội dung được liên kết trên trang dòng thời gian công cộng không được xác thực + show_staff_badge: + desc_html: Hiển thị huy hiệu nhân viên trên trang người dùng + title: Hiển thị huy hiệu nhân viên + site_description: + desc_html: Đoạn giới thiệu về API. Mô tả những gì làm cho máy chủ Mastodon này đặc biệt và bất cứ điều gì quan trọng khác. Bạn có thể sử dụng các thẻ HTML, đặc biệt là <a><em> . + title: Mô tả máy chủ + site_description_extended: + desc_html: Một nơi tốt cho quy tắc ứng xử, quy tắc, hướng dẫn và những thứ khác khiến máy chủ của bạn khác biệt. Bạn có thể sử dụng thẻ HTML + title: Thông tin mở rộng tùy chỉnh + site_short_description: + desc_html: Hiển thị trong thanh bên và thẻ meta. Mô tả Mastodon là gì và điều gì làm cho máy chủ này trở nên đặc biệt trong một đoạn văn duy nhất. + title: Mô tả máy chủ ngắn + site_terms: + desc_html: Bạn có thể viết chính sách bảo mật của riêng bạn, điều khoản dịch vụ hoặc pháp lý khác. Bạn có thể sử dụng thẻ HTML + title: Điều khoản dịch vụ tùy chỉnh + site_title: Tên máy chủ + spam_check_enabled: + desc_html: Mastodon có thể tự động báo cáo các tài khoản gửi tin nhắn không mong muốn lặp đi lặp lại. Có thể có dương tính giả. + title: Tự động chống thư rác + thumbnail: + desc_html: Được sử dụng để xem trước thông qua OpenGraph và API. Khuyến nghị 1200x630px + title: Hình thu nhỏ của máy chủ + timeline_preview: + desc_html: Hiển thị liên kết đến dòng thời gian công khai trên trang đích và cho phép API truy cập vào dòng thời gian công khai mà không cần xác thực + title: Cho phép truy cập không xác thực vào dòng thời gian công cộng + title: Cài đặt Trang web + trendable_by_default: + desc_html: Ảnh hưởng đến các hashtag chưa được cho phép trước đây + title: Cho phép hashtags theo xu hướng mà không cần xem xét trước + trends: + desc_html: Hiển thị công khai các hashtag được xem xét trước đây hiện đang là xu hướng + title: Xu hướng hashtags + statuses: + back_to_account: Quay lại trang tài khoản + batch: + delete: Xóa bỏ + nsfw_off: Đánh dấu là không nhạy cảm + nsfw_on: Đánh dấu là nhạy cảm + deleted: Đã xóa + failed_to_execute: Không thể thực thi + media: + title: Phương tiện truyền thông + no_media: Không có phương tiện truyền thông + no_status_selected: Không có trạng thái nào được thay đổi vì không có trạng thái nào được chọn + title: Trạng thái tài khoản + with_media: Với phương tiện truyền thông + tags: + accounts_today: Sử dụng độc đáo ngày nay + accounts_week: Sử dụng độc đáo trong tuần này + breakdown: Phân tích sử dụng ngày nay theo nguồn + context: Bối cảnh + directory: Trong thư mục + in_directory: "%{count} trong thư mục" + last_active: Hoạt động lần cuối + most_popular: Phổ biến nhất + most_recent: Gần đây nhất + name: Dấu thăng + review: Xem lại tình trạng + reviewed: Đã đánh giá + title: Hashtags + trending_right_now: Xu hướng ngay bây giờ + unique_uses_today: "%{count} đăng ngày hôm nay" + unreviewed: Chưa được xem xét + updated_msg: Cài đặt hashtag được cập nhật thành công + title: Quản trị + warning_presets: + add_new: Thêm mới + delete: Xóa bỏ + edit: Biên tập + edit_preset: Chỉnh sửa cảnh báo đặt trước + title: Quản lý cài đặt trước cảnh báo + admin_mailer: + new_pending_account: + body: Các chi tiết của tài khoản mới dưới đây. Bạn có thể phê duyệt hoặc từ chối ứng dụng này. + subject: Tài khoản mới được xem xét trên %{instance} (%{username}) + new_report: + body: "%{reporter} đã báo cáo %{target}" + body_remote: Ai đó từ %{domain} đã báo cáo %{target} + subject: Báo cáo mới cho %{instance} (# %{id}) + new_trending_tag: + body: 'Hashtag # %{name} đang là xu hướng ngày nay, nhưng chưa được xem xét trước đây. Nó sẽ không được hiển thị công khai trừ khi bạn cho phép hoặc chỉ lưu biểu mẫu vì nó sẽ không bao giờ nghe về nó nữa.' + subject: Hashtag mới được xem xét trên %{instance} (# %{name}) + aliases: + add_new: Tạo bí danh + created_msg: Tạo thành công một bí danh mới. Bây giờ bạn có thể bắt đầu di chuyển từ tài khoản cũ. + deleted_msg: Xóa thành công bí danh. Chuyển từ tài khoản này sang tài khoản này sẽ không còn có thể. + hint_html: Nếu bạn muốn chuyển từ tài khoản khác sang tài khoản này, tại đây bạn có thể tạo bí danh, điều này là bắt buộc trước khi bạn có thể tiến hành chuyển người theo dõi từ tài khoản cũ sang tài khoản này. Hành động này của chính nó là vô hại và có thể đảo ngược . Việc di chuyển tài khoản được bắt đầu từ tài khoản cũ . + remove: Bỏ liên kết bí danh + appearance: + advanced_web_interface: Giao diện web nâng cao + advanced_web_interface_hint: 'Nếu bạn muốn sử dụng toàn bộ chiều rộng màn hình của mình, giao diện web nâng cao cho phép bạn định cấu hình nhiều cột khác nhau để xem nhiều thông tin cùng lúc như bạn muốn: Trang chủ, thông báo, dòng thời gian được liên kết, bất kỳ số lượng danh sách và hashtag nào.' + animations_and_accessibility: Ảnh động và khả năng tiếp cận + confirmation_dialogs: Hộp thoại xác nhận + discovery: Khám phá + sensitive_content: Nội dung nhạy cảm + toot_layout: Bố cục Tút + application_mailer: + notification_preferences: Thay đổi tùy chọn email + salutation: "%{name}," + settings: 'Thay đổi tùy chọn email: %{link}' + view: 'Lượt xem:' + view_profile: Xem lí lịch + view_status: Trạng thái xem + applications: + created: Ứng dụng được tạo thành công + destroyed: Ứng dụng đã xóa thành công + invalid_url: URL được cung cấp không hợp lệ + regenerate_token: Tạo lại mã thông báo truy cập + token_regenerated: Mã thông báo truy cập được tạo lại thành công + warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai! + your_token: Mã thông báo truy cập của bạn + auth: + apply_for_account: Yêu cầu một lời mời + change_password: Mật khẩu + checkbox_agreement_html: Tôi đồng ý với các quy tắcđiều khoản dịch vụ của máy chủ + checkbox_agreement_without_rules_html: Tôi đồng ý với các điều khoản dịch vụ + delete_account: Xóa tài khoản + delete_account_html: Nếu bạn muốn xóa tài khoản của mình, bạn có thể tiến hành tại đây . Bạn sẽ được yêu cầu xác nhận. + description: + prefix_invited_by_user: "@ %{name} mời bạn tham gia máy chủ này của Mastodon!" + prefix_sign_up: Đăng ký trên Mastodon ngay hôm nay! + suffix: Với một tài khoản, bạn sẽ có thể theo dõi mọi người, đăng cập nhật và trao đổi tin nhắn với người dùng từ bất kỳ máy chủ Mastodon nào và hơn thế nữa! + didnt_get_confirmation: Không nhận được hướng dẫn xác nhận? + forgot_password: Quên mật khẩu? + invalid_reset_password_token: Mã thông báo đặt lại mật khẩu không hợp lệ hoặc hết hạn. Vui lòng yêu cầu một cái mới. + login: Đăng nhập + logout: Đăng xuất + migrate_account: Chuyển đến một tài khoản khác + migrate_account_html: Nếu bạn muốn chuyển hướng tài khoản này sang một tài khoản khác, bạn có thể định cấu hình nó ở đây . + or_log_in_with: Hoặc đăng nhập bằng + providers: + cas: CAS + saml: SAML + register: Đăng ký + registration_closed: "%{instance} không chấp nhận thành viên mới" + resend_confirmation: Gửi lại hướng dẫn xác nhận + reset_password: Đặt lại mật khẩu + security: Bảo vệ + set_new_password: Đặt mật khẩu mới + setup: + email_below_hint_html: Nếu địa chỉ email dưới đây không chính xác, bạn có thể thay đổi địa chỉ tại đây và nhận email xác nhận mới. + email_settings_hint_html: Email xác nhận đã được gửi tới %{email}. Nếu địa chỉ email đó không chính xác, bạn có thể thay đổi nó trong cài đặt tài khoản. + title: Thiết lập + status: + account_status: Tình trạng tài khoản + confirming: Chờ xác nhận e-mail được hoàn thành. + functional: Tài khoản của bạn đã hoạt động đầy đủ. + pending: Ứng dụng của bạn đang chờ xem xét bởi nhân viên của chúng tôi. Điều này có thể mất một thời gian. Bạn sẽ nhận được e-mail nếu đơn đăng ký của bạn được chấp thuận. + redirecting_to: Tài khoản của bạn không hoạt động vì hiện đang chuyển hướng đến %{acct}. + trouble_logging_in: Gặp sự cố khi đăng nhập? + authorize_follow: + already_following: Bạn đã theo dõi tài khoản này + error: Thật không may, đã xảy ra lỗi khi tra cứu tài khoản từ xa + follow: Theo + follow_request: 'Bạn đã gửi yêu cầu theo dõi tới:' + following: 'Sự thành công! Bạn đang theo dõi:' + post_follow: + close: Hoặc, bạn chỉ có thể đóng cửa sổ này. + return: Hiển thị hồ sơ của người dùng + web: Truy cập web + title: Thực hiện theo %{acct} + challenge: + confirm: Tiếp tục + hint_html: "Mẹo: Chúng tôi sẽ không hỏi lại mật khẩu của bạn trong giờ tiếp theo." + invalid_password: Mật khẩu không hợp lệ + prompt: Xác nhận mật khẩu để tiếp tục + datetime: + distance_in_words: + about_x_hours: "%{count}g" + about_x_months: "%{count}th" + about_x_years: "%{count}n" + almost_x_years: "%{count}n" + half_a_minute: Vừa nãy + less_than_x_minutes: "%{count}p" + less_than_x_seconds: Vừa nãy + over_x_years: "%{count}n" + x_days: "%{count}n" + x_minutes: "%{count}p" + x_months: "%{count}th" + x_seconds: "%{count}g" + deletes: + challenge_not_passed: Thông tin bạn nhập không chính xác + confirm_password: Nhập mật khẩu hiện tại của bạn để xác minh danh tính của bạn + confirm_username: Nhập tên người dùng của bạn để xác nhận thủ tục + proceed: Xóa tài khoản + success_msg: Tài khoản của bạn đã được xóa thành công + warning: + before: 'Trước khi tiếp tục, xin vui lòng đọc các ghi chú cẩn thận:' + caches: Nội dung đã được lưu trữ bởi các máy chủ khác có thể tồn tại + data_removal: Bài viết của bạn và dữ liệu khác sẽ bị xóa vĩnh viễn + email_change_html: Bạn có thể thay đổi địa chỉ email mà không cần xóa tài khoản của bạn + email_contact_html: Nếu nó vẫn không đến, bạn có thể gửi e-mail %{email} để được giúp đỡ + email_reconfirmation_html: Nếu bạn không nhận được email xác nhận, bạn có thể yêu cầu lại + irreversible: Bạn sẽ không thể khôi phục hoặc kích hoạt lại tài khoản của mình + more_details_html: Để biết thêm chi tiết, xem chính sách bảo mật . + username_available: Tên người dùng của bạn sẽ có sẵn một lần nữa + username_unavailable: Tên người dùng của bạn sẽ không có sẵn + directories: + directory: Thư mục hồ sơ + explanation: Khám phá người dùng dựa trên sở thích của họ + explore_mastodon: Khám phá %{title} + domain_validator: + invalid_domain: không phải là một tên miền hợp lệ + errors: + '400': Yêu cầu bạn gửi không hợp lệ hoặc không đúng. + '403': Bạn không có quyền xem trang này. + '404': Trang bạn đang tìm kiếm không có ở đây. + '406': Trang này không có sẵn ở định dạng được yêu cầu. + '410': Trang bạn đang tìm kiếm không còn tồn tại ở đây nữa. + '422': + content: Xác minh bảo mật thất bại. Bạn đang chặn cookie? + title: Xác minh bảo mật không thành công + '429': Điều chỉnh + '500': + content: Chúng tôi xin lỗi, nhưng đã xảy ra sự cố. + title: Trang này không đúng + '503': Trang không thể được phục vụ do lỗi máy chủ tạm thời. + noscript_html: Để sử dụng ứng dụng web Mastodon, vui lòng bật JavaScript. Ngoài ra, hãy thử một trong những ứng dụng gốc cho Mastodon cho nền tảng của bạn. + existing_username_validator: + not_found: không thể tìm thấy người dùng cục bộ với tên người dùng đó + not_found_multiple: không thể tìm thấy %{usernames} + exports: + archive_takeout: + date: Ngày + download: Tải về kho lưu trữ của bạn + hint_html: Bạn có thể yêu cầu một kho lưu trữ các tút và phương tiện được tải lên . Dữ liệu đã xuất sẽ ở định dạng ActivityPub, có thể đọc được bởi bất kỳ phần mềm tuân thủ nào. Bạn có thể yêu cầu một kho lưu trữ cứ sau 7 ngày. + in_progress: Biên dịch kho lưu trữ của bạn ... + request: Yêu cầu kho lưu trữ của bạn + size: Kích thước + blocks: Bạn chặn + csv: CSV + domain_blocks: Khối miền + lists: Danh sách + mutes: Bạn câm + storage: Phương tiện lưu trữ + featured_tags: + add_new: Thêm mới + errors: + limit: Bạn đã làm nổi bật số lượng hashtag tối đa + hint_html: "Hashtags đặc trưng là gì? Chúng được hiển thị nổi bật trên hồ sơ công khai của bạn và cho phép mọi người duyệt các bài đăng công khai của bạn cụ thể theo các hashtag đó. Chúng là một công cụ tuyệt vời để theo dõi các công trình sáng tạo hoặc các dự án dài hạn." + filters: + contexts: + home: Dòng thời gian + notifications: Thông báo + public: Mốc thời gian công cộng + thread: Cuộc trò chuyện + edit: + title: Chỉnh sửa bộ lọc + errors: + invalid_context: Không có hoặc bối cảnh không hợp lệ được cung cấp + invalid_irreversible: Lọc không thể đảo ngược chỉ hoạt động với bối cảnh nhà hoặc thông báo + index: + delete: Xóa bỏ + title: Bộ lọc + new: + title: Thêm bộ lọc mới + footer: + developers: Nhà phát triển + more: Hơn… + resources: Tài nguyên + trending_now: Đang là xu hướng + generic: + all: Tất cả + changes_saved_msg: Thay đổi được lưu thành công! + copy: Sao chép + no_batch_actions_available: Không có hành động hàng loạt có sẵn trên trang này + order_by: Đặt bởi + save_changes: Lưu thay đổi + validation_errors: + other: Một cái gì đó không hoàn toàn đúng! Vui lòng xem lại lỗi %{count} bên dưới + html_validator: + invalid_markup: 'chứa đánh dấu HTML không hợp lệ: %{error}' + identity_proofs: + active: Hoạt động + authorize: Vâng, ủy quyền + authorize_connection_prompt: Cho phép kết nối mật mã này? + errors: + failed: Kết nối mật mã không thành công. Vui lòng thử lại từ %{provider}. + keybase: + invalid_token: Mã thông báo cơ sở chính là băm chữ ký và phải là 66 ký tự hex + verification_failed: Keybase không nhận ra mã thông báo này là chữ ký của người dùng Keybase %{kb_username}. Vui lòng thử lại từ Keybase. + wrong_user: Không thể tạo bằng chứng cho %{proving} trong khi đăng nhập là %{current}. Đăng nhập bằng %{proving} và thử lại. + explanation_html: Tại đây, bạn có thể kết nối mật mã các danh tính khác của mình, chẳng hạn như hồ sơ Keybase. Điều này cho phép người khác gửi cho bạn tin nhắn được mã hóa và tin tưởng nội dung bạn gửi cho họ. + i_am_html: Tôi là %{username} trên %{service}. + identity: Danh tính + inactive: Không hoạt động + publicize_checkbox: 'Và tút này:' + publicize_toot: 'Nó đã được chứng minh! Tôi là %{username} trên %{service}: %{url}' + status: Tình trạng xác minh + view_proof: Xem bằng chứng + imports: + modes: + merge: Hợp nhất + merge_long: Giữ hồ sơ hiện có và thêm những cái mới + overwrite: Ghi đè + overwrite_long: Thay thế các bản ghi hiện tại bằng những cái mới + preface: Bạn có thể nhập dữ liệu mà bạn đã xuất từ một máy chủ khác, chẳng hạn như danh sách những người bạn đang theo dõi hoặc chặn. + success: Dữ liệu của bạn đã được tải lên thành công và bây giờ sẽ được xử lý trong thời gian tới hạn + types: + blocking: Danh sách chặn + domain_blocking: Danh sách chặn tên miền + following: Theo danh sach + muting: Danh sách tắt tiếng + upload: Tải lên + in_memoriam_html: Trong bản ghi nhớ. + invites: + delete: Vô hiệu hóa + expired: Đã hết hạn + expires_in: + '1800': 30 phút + '21600': 6 tiếng + '3600': 1 giờ + '43200': 12 giờ + '604800': 1 tuần + '86400': 1 ngày + expires_in_prompt: Không bao giờ + generate: Tạo liên kết mời + invited_by: 'Bạn đã được mời bởi:' + max_uses: + other: "%{count} sử dụng" + max_uses_prompt: Không giới hạn + prompt: Tạo và chia sẻ liên kết với những người khác để cấp quyền truy cập vào máy chủ này + table: + expires_at: Hết hạn + uses: Công dụng + title: Mời mọi người + lists: + errors: + limit: Bạn đã đạt đến số lượng danh sách tối đa + media_attachments: + validations: + images_and_video: Không thể đính kèm video vào trạng thái đã chứa hình ảnh + too_many: Không thể đính kèm hơn 4 tệp + migrations: + acct: Chuyển đến + cancel: Hủy chuyển hướng + cancel_explanation: Hủy chuyển hướng sẽ kích hoạt lại tài khoản hiện tại của bạn, nhưng sẽ không mang lại những người theo dõi đã được chuyển đến tài khoản đó. + cancelled_msg: Đã hủy thành công chuyển hướng. + errors: + already_moved: là cùng một tài khoản bạn đã chuyển đến + missing_also_known_as: không tham chiếu lại tài khoản này + move_to_self: không thể là tài khoản hiện tại + not_found: không thể được tìm thấy + on_cooldown: Bạn đang trong thời gian hồi chiêu + followers_count: Người theo dõi tại thời điểm di chuyển + incoming_migrations: Chuyển từ một tài khoản khác + incoming_migrations_html: Để chuyển từ tài khoản khác sang tài khoản này, trước tiên bạn cần tạo bí danh tài khoản . + moved_msg: Tài khoản của bạn hiện đang chuyển hướng đến %{acct} và những người theo dõi của bạn đang được chuyển đi. + not_redirecting: Tài khoản của bạn hiện không chuyển hướng đến bất kỳ tài khoản nào khác. + on_cooldown: Gần đây bạn đã di chuyển tài khoản của bạn. Chức năng này sẽ trở nên khả dụng một lần nữa sau %{count} ngày. + past_migrations: Di cư trong quá khứ + proceed_with_move: Di chuyển người theo dõi + redirecting_to: Tài khoản của bạn đang chuyển hướng đến %{acct}. + set_redirect: Đặt chuyển hướng + warning: + backreference_required: Tài khoản mới trước tiên phải được cấu hình để tham chiếu lại tài khoản này + before: 'Trước khi tiếp tục, xin vui lòng đọc các ghi chú cẩn thận:' + cooldown: Sau khi di chuyển, có thời gian hồi chiêu, trong đó bạn sẽ không thể di chuyển nữa + disabled_account: Tài khoản hiện tại của bạn sẽ không thể sử dụng đầy đủ sau đó. Tuy nhiên, bạn sẽ có quyền truy cập để xuất dữ liệu cũng như kích hoạt lại. + followers: Hành động này sẽ chuyển tất cả người theo dõi từ tài khoản hiện tại sang tài khoản mới + only_redirect_html: Ngoài ra, bạn chỉ có thể đưa ra một chuyển hướng trên hồ sơ của bạn . + other_data: Không có dữ liệu khác sẽ được di chuyển tự động + redirect: Hồ sơ tài khoản hiện tại của bạn sẽ được cập nhật với thông báo chuyển hướng và bị loại khỏi các tìm kiếm + moderation: + title: Điều độ + notification_mailer: + digest: + action: Xem tất cả các thông báo + body: Dưới đây là một bản tóm tắt ngắn gọn về các tin nhắn bạn đã bỏ lỡ kể từ lần truy cập trước vào %{since} + mention: "%{name} đã đề cập đến bạn trong:" + new_followers_summary: + other: Ngoài ra, bạn đã có được %{count} người theo dõi mới trong khi đi xa! Kinh ngạc! + subject: + other: "%{count} thông báo mới kể từ lần truy cập trước của bạn" + title: Khi bạn vắng mặt ... + favourite: + body: 'Trạng thái của bạn đã được yêu thích bởi %{name}:' + subject: "%{name} yêu thích trạng thái của bạn" + title: Yêu thích mới + follow: + body: "%{name} hiện đang theo dõi bạn!" + subject: "%{name} hiện đang theo dõi bạn" + title: Người theo dõi mới + follow_request: + action: Quản lý theo yêu cầu + body: "%{name} đã yêu cầu theo dõi bạn" + subject: 'Người theo dõi đang chờ xử lý: %{name}' + title: Yêu cầu theo dõi mới + mention: + action: Đáp lại + body: 'Bạn đã được đề cập bởi %{name} trong:' + subject: Bạn đã được đề cập bởi %{name} + title: Đề cập mới + reblog: + body: 'Trạng thái của bạn đã được loan tin bởi %{name}:' + subject: "%{name} đã loan tin trạng thái của bạn" + title: Tăng mới + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T + pagination: + newer: Mới hơn + next: Kế tiếp + older: Lớn hơn + prev: Trước đó + truncate: Giáo dục + polls: + errors: + already_voted: Bạn đã bình chọn trong cuộc bình chọn này + duplicate_options: chứa các mục trùng lặp + duration_too_long: quá xa trong tương lai + duration_too_short: quá sớm + expired: Cuộc thăm dò đã kết thúc + over_character_limit: không thể dài hơn %{max} ký tự mỗi ký tự + too_few_options: phải có nhiều hơn một mục + too_many_options: không thể chứa nhiều hơn %{max} + preferences: + other: Khác + posting_defaults: Đăng mặc định + public_timelines: Mốc thời gian công cộng + relationships: + activity: Hoạt động tài khoản + dormant: Không hoạt động + last_active: Hoạt động lần cuối + most_recent: Gần đây nhất + moved: Đã chuyển + mutual: Tương thân + primary: Sơ cấp + relationship: Mối quan hệ + remove_selected_domains: Xóa tất cả người theo dõi khỏi các miền đã chọn + remove_selected_followers: Xóa những người theo dõi đã chọn + remove_selected_follows: Hủy theo dõi người dùng đã chọn + status: Tình trạng tài khoản + remote_follow: + acct: Nhập tên người dùng @ tên miền bạn muốn hành động từ + missing_resource: Không thể tìm thấy URL chuyển hướng cần thiết cho tài khoản của bạn + no_account_html: Không có tài khoản? Bạn có thể đăng ký tại đây + proceed: Tiến hành theo + prompt: 'Bạn sẽ làm theo:' + reason_html: "Tại sao bước này là cần thiết? %{instance} có thể không phải là máy chủ nơi bạn đã đăng ký, vì vậy chúng tôi cần chuyển hướng bạn đến máy chủ nhà của bạn trước." + remote_interaction: + favourite: + proceed: Tiếp tục yêu thích + prompt: 'Bạn muốn yêu thích tút này:' + reblog: + proceed: Tiến hành để loan tin + prompt: 'Bạn muốn loan tin hoạt động này:' + reply: + proceed: Tiến hành trả lời + prompt: 'Bạn muốn trả lời tút này:' + scheduled_statuses: + over_daily_limit: Bạn đã vượt quá giới hạn của các tút được lên lịch %{limit} cho ngày hôm đó + over_total_limit: Bạn đã vượt quá giới hạn của các tút theo lịch trình %{limit} + too_soon: Ngày dự kiến phải trong tương lai + sessions: + activity: Hoạt động cuối + browser: Trình duyệt + browsers: + alipay: Alipay + blackberry: Blackberry + chrome: Chrome + edge: Microsoft Edge + electron: Điện tử + firefox: Firefox + generic: Trình duyệt không xác định + ie: trình duyệt web IE + micro_messenger: MicroMes hành khách + nokia: Trình duyệt Nokia S40 Ovi + opera: Opera + otter: Rái cá + phantom_js: PhantomJS + qq: Trình duyệt QQ + safari: cuộc đi săn, cuộc hành trình + uc_browser: Trình duyệt UC + weibo: Weibo + current_session: Phiên hiện tại + description: "%{browser} trên %{platform}" + explanation: Đây là các trình duyệt web hiện đang đăng nhập vào tài khoản Mastodon của bạn. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Hệ điều hành Firefox + ios: iOS + linux: Linux + mac: Mac + other: chưa rõ nền tảng + windows: các cửa sổ + windows_mobile: Windows di động + windows_phone: Điện thoại Windows + revoke: Thu hồi + revoke_success: Phiên thu hồi thành công + title: Phiên + settings: + account: Tài khoản + account_settings: Cài đặt tài khoản + aliases: Bí danh tài khoản + appearance: Xuất hiện + authorized_apps: Ứng dụng được ủy quyền + back: Quay lại Mastodon + delete: Xóa tài khoản + development: Phát triển + edit_profile: Chỉnh sửa hồ sơ + export: Xuất dữ liệu + featured_tags: Hashtags nổi bật + identity_proofs: Bằng chứng nhận dạng + import: Nhập khẩu + import_and_export: Nhập khẩu và xuất khẩu + migrate: Di chuyển tài khoản + notifications: Thông báo + preferences: Sở thích + profile: Hồ sơ + relationships: Theo dõi và theo dõi + two_factor_authentication: Xác thực hai yếu tố + spam_check: + spam_detected: Đây là một báo cáo tự động. Thư rác đã được phát hiện. + statuses: + attached: + description: 'Đã đính kèm: %{attached}' + image: + other: hình ảnh %{count} + video: + other: video %{count} + boosted_from_html: Được loan tin từ %{acct_link} + content_warning: 'Cảnh báo nội dung: %{warning}' + disallowed_hashtags: + other: 'chứa các hashtag không được phép: %{tags}' + language_detection: Tự động phát hiện ngôn ngữ + open_in_web: Mở trên web + over_character_limit: vượt quá giới hạn ký tự của %{max} + pin_errors: + limit: Bạn đã ghim số lượng tút tối đa + ownership: Tút của người khác không thể được ghim + private: tút không công khai không thể được ghim + reblog: Không thể được ghim Loan in + poll: + total_people: + other: "%{count} người" + total_votes: + other: "%{count} phiếu bầu" + vote: Bỏ phiếu + show_more: Cho xem nhiều hơn + sign_in_to_participate: Đăng nhập để tham gia vào cuộc trò chuyện + title: "%{name}: "%{quote}"" + visibilities: + private: Chỉ theo dõi + private_long: Chỉ hiển thị cho người theo dõi + public: Công cộng + public_long: Mọi người có thể thấy + unlisted: Chưa niêm yết + unlisted_long: Mọi người đều có thể xem, nhưng không được liệt kê trên các mốc thời gian công khai + stream_entries: + pinned: Tút đã ghim + reblogged: loan tin + sensitive_content: Nội dung nhạy cảm + tags: + does_not_match_previous_name: không khớp với tên trước + terms: + body_html: "

Chính sách bảo mật

Chúng ta đã thu thập được thông tin gì rồi?

  • Thông tin tài khoản cơ bản : Nếu bạn đăng ký trên máy chủ này, bạn có thể được yêu cầu nhập tên người dùng, địa chỉ email và mật khẩu. Bạn cũng có thể nhập thông tin hồ sơ bổ sung như tên hiển thị và tiểu sử và tải lên hình ảnh hồ sơ và hình ảnh tiêu đề. Tên người dùng, tên hiển thị, tiểu sử, ảnh hồ sơ và hình ảnh tiêu đề luôn được liệt kê công khai.
  • Bài đăng, theo dõi và thông tin công khai khác : Danh sách những người bạn theo dõi được liệt kê công khai, điều này cũng đúng với những người theo dõi bạn. Khi bạn gửi tin nhắn, ngày và giờ được lưu trữ cũng như ứng dụng bạn đã gửi tin nhắn từ đó. Tin nhắn có thể chứa tệp đính kèm phương tiện, chẳng hạn như hình ảnh và video. Bài viết công khai và chưa niêm yết có sẵn công khai. Khi bạn có một bài đăng trên hồ sơ của bạn, đó cũng là thông tin có sẵn công khai. Bài đăng của bạn được gửi đến những người theo dõi của bạn, trong một số trường hợp, điều đó có nghĩa là chúng được gửi đến các máy chủ khác nhau và các bản sao được lưu trữ ở đó. Khi bạn xóa bài viết, điều này cũng được gửi đến những người theo dõi của bạn. Hành động đăng ký lại hoặc yêu thích một bài đăng khác luôn được công khai.
  • Bài đăng trực tiếp và chỉ dành cho người theo dõi : Tất cả các bài đăng được lưu trữ và xử lý trên máy chủ. Các bài đăng chỉ dành cho người theo dõi được gửi đến những người theo dõi và người dùng của bạn được đề cập trong đó và các bài đăng trực tiếp chỉ được gửi cho người dùng được đề cập trong đó. Trong một số trường hợp, điều đó có nghĩa là chúng được gửi đến các máy chủ khác nhau và các bản sao được lưu trữ ở đó. Chúng tôi thực hiện một nỗ lực thiện chí để giới hạn quyền truy cập vào các bài đăng đó chỉ cho những người được ủy quyền, nhưng các máy chủ khác có thể không làm như vậy. Do đó, điều quan trọng là phải xem xét các máy chủ mà người theo dõi của bạn thuộc về. Bạn có thể chuyển đổi tùy chọn để phê duyệt và từ chối người theo dõi mới theo cách thủ công trong cài đặt. Xin lưu ý rằng các nhà khai thác của máy chủ và bất kỳ máy chủ nhận nào cũng có thể xem các tin nhắn đó và người nhận có thể chụp màn hình, sao chép hoặc chia sẻ lại chúng. Không chia sẻ bất kỳ thông tin nguy hiểm nào trên Mastodon.
  • IP và siêu dữ liệu khác : Khi bạn đăng nhập, chúng tôi ghi lại địa chỉ IP bạn đăng nhập, cũng như tên của ứng dụng trình duyệt của bạn. Tất cả các phiên đăng nhập có sẵn để bạn xem xét và hủy bỏ trong cài đặt. Địa chỉ IP mới nhất được sử dụng được lưu trữ tối đa 12 tháng. Chúng tôi cũng có thể giữ lại nhật ký máy chủ bao gồm địa chỉ IP của mọi yêu cầu đến máy chủ của chúng tôi.

Chúng tôi sử dụng thông tin của bạn để làm gì?

Bất kỳ thông tin nào chúng tôi thu thập từ bạn có thể được sử dụng theo các cách sau:

  • Để cung cấp các chức năng cốt lõi của Mastodon. Bạn chỉ có thể tương tác với nội dung của người khác và đăng nội dung của riêng bạn khi bạn đăng nhập. Ví dụ: bạn có thể theo dõi người khác để xem các bài đăng kết hợp của họ trong dòng thời gian tại nhà được cá nhân hóa của bạn.
  • Để hỗ trợ kiểm duyệt cộng đồng, ví dụ so sánh địa chỉ IP của bạn với các địa chỉ đã biết khác để xác định trốn tránh hoặc vi phạm khác.
  • Địa chỉ email bạn cung cấp có thể được sử dụng để gửi cho bạn thông tin, thông báo về những người khác tương tác với nội dung của bạn hoặc gửi tin nhắn cho bạn và để trả lời các câu hỏi cũng như / hoặc các yêu cầu hoặc câu hỏi khác.

Làm thế nào để chúng tôi bảo vệ thông tin của bạn?

Chúng tôi thực hiện nhiều biện pháp bảo mật để duy trì sự an toàn của thông tin cá nhân của bạn khi bạn nhập, gửi hoặc truy cập thông tin cá nhân của bạn. Trong số những thứ khác, phiên trình duyệt của bạn, cũng như lưu lượng giữa các ứng dụng và API của bạn, được bảo mật bằng SSL và mật khẩu của bạn được băm bằng thuật toán một chiều mạnh mẽ. Bạn có thể kích hoạt xác thực hai yếu tố để tiếp tục truy cập an toàn vào tài khoản của mình.


Chính sách lưu giữ dữ liệu của chúng tôi là gì?

Chúng tôi sẽ thực hiện một nỗ lực đức tin tốt để:

  • Giữ lại nhật ký máy chủ chứa địa chỉ IP của tất cả các yêu cầu đến máy chủ này, cho đến khi các nhật ký đó được lưu giữ, không quá 90 ngày.
  • Giữ lại các địa chỉ IP được liên kết với người dùng đã đăng ký không quá 12 tháng.

Bạn có thể yêu cầu và tải xuống một kho lưu trữ nội dung của bạn, bao gồm các bài đăng, tệp đính kèm phương tiện, ảnh hồ sơ và hình ảnh tiêu đề.

Bạn có thể xóa tài khoản của mình bất cứ lúc nào.


Chúng ta có sử dụng cookie không?

Đúng. Cookies là các tệp nhỏ mà một trang web hoặc nhà cung cấp dịch vụ của nó chuyển vào ổ cứng máy tính của bạn thông qua trình duyệt Web (nếu bạn cho phép). Những cookie này cho phép trang web nhận ra trình duyệt của bạn và, nếu bạn có tài khoản đã đăng ký, hãy liên kết nó với tài khoản đã đăng ký của bạn.

Chúng tôi sử dụng cookie để hiểu và lưu các tùy chọn của bạn cho các lần truy cập trong tương lai.


Chúng tôi có được công bố bất cứ thông tin nào ra bên ngoài không?

Chúng tôi không bán, trao đổi hoặc chuyển nhượng cho các bên ngoài thông tin nhận dạng cá nhân của bạn. Điều này không bao gồm các bên thứ ba đáng tin cậy hỗ trợ chúng tôi điều hành trang web của chúng tôi, tiến hành kinh doanh hoặc phục vụ bạn, miễn là các bên đó đồng ý giữ bí mật thông tin này. Chúng tôi cũng có thể tiết lộ thông tin của bạn khi chúng tôi tin rằng việc phát hành là phù hợp để tuân thủ luật pháp, thực thi chính sách trang web của chúng tôi hoặc bảo vệ quyền, tài sản hoặc an toàn của chúng tôi hoặc của người khác.

Nội dung công khai của bạn có thể được tải xuống bởi các máy chủ khác trong mạng. Các bài đăng công khai và chỉ dành cho người theo dõi của bạn được gửi đến các máy chủ nơi người theo dõi của bạn cư trú và tin nhắn trực tiếp được gửi đến máy chủ của người nhận, cho đến khi những người theo dõi hoặc người nhận đó cư trú trên một máy chủ khác với máy chủ này.

Khi bạn cho phép ứng dụng sử dụng tài khoản của mình, tùy thuộc vào phạm vi quyền bạn phê duyệt, ứng dụng có thể truy cập thông tin hồ sơ công khai, danh sách sau đây, người theo dõi, danh sách của bạn, tất cả bài đăng và mục yêu thích của bạn. Các ứng dụng không bao giờ có thể truy cập địa chỉ e-mail hoặc mật khẩu của bạn.


Sử dụng trang web của trẻ em

Nếu máy chủ này ở EU hoặc EEA: Trang web của chúng tôi, các sản phẩm và dịch vụ đều hướng đến những người ít nhất 16 tuổi. Nếu bạn dưới 16 tuổi, theo các yêu cầu của GDPR ( Quy định bảo vệ dữ liệu chung ) không sử dụng trang web này.

Nếu máy chủ này ở Hoa Kỳ: Trang web của chúng tôi, các sản phẩm và dịch vụ đều hướng đến những người ít nhất 13 tuổi. Nếu bạn dưới 13 tuổi, theo các yêu cầu của COPPA ( Đạo luật bảo vệ quyền riêng tư trực tuyến của trẻ em ) không sử dụng trang web này.

Yêu cầu pháp luật có thể khác nhau nếu máy chủ này ở khu vực tài phán khác.


Thay đổi chính sách bảo mật của chúng tôi

Nếu chúng tôi quyết định thay đổi chính sách bảo mật của mình, chúng tôi sẽ đăng những thay đổi đó trên trang này.

Tài liệu này là CC-BY-SA. Nó được cập nhật lần cuối vào ngày 7 tháng 3 năm 2018.

Ban đầu được điều chỉnh từ chính sách quyền riêng tư của Nghị luận .

\n" + title: "%{instance} Điều khoản dịch vụ và chính sách bảo mật" + themes: + contrast: Mastodon (Độ tương phản cao) + default: Mastodon (Tối) + mastodon-light: Mastodon (Ánh sáng) + time: + formats: + default: "% b %d,% Y,% H:% M" + month: "% b% Y" + two_factor_authentication: + code_hint: Nhập mã được tạo bởi ứng dụng xác thực của bạn để xác nhận + description_html: Nếu bạn kích hoạt xác thực hai yếu tố , đăng nhập sẽ yêu cầu bạn phải sở hữu điện thoại của mình, điều này sẽ tạo ra các mã thông báo để bạn nhập. + disable: Vô hiệu hóa + enable: Kích hoạt + enabled: Xác thực hai yếu tố được kích hoạt + enabled_success: Xác thực hai yếu tố được kích hoạt thành công + generate_recovery_codes: Tạo mã khôi phục + instructions_html: "Quét mã QR này vào Google Authenticator hoặc ứng dụng TOTP tương tự trên điện thoại của bạn . Từ giờ trở đi, ứng dụng đó sẽ tạo mã thông báo mà bạn sẽ phải nhập khi đăng nhập." + lost_recovery_codes: Mã khôi phục cho phép bạn lấy lại quyền truy cập vào tài khoản của mình nếu bạn mất điện thoại. Nếu bạn bị mất mã khôi phục, bạn có thể tạo lại chúng ở đây. Mã khôi phục cũ của bạn sẽ bị vô hiệu. + manual_instructions: 'Nếu bạn không thể quét mã QR và cần nhập thủ công, đây là bí mật văn bản đơn giản:' + recovery_codes: Mã phục hồi dự phòng + recovery_codes_regenerated: Mã khôi phục được phục hồi thành công + recovery_instructions_html: Nếu bạn mất quyền truy cập vào điện thoại, bạn có thể sử dụng một trong các mã khôi phục bên dưới để lấy lại quyền truy cập vào tài khoản của mình. Giữ mã khôi phục an toàn . Ví dụ, bạn có thể in chúng và lưu trữ chúng với các tài liệu quan trọng khác. + setup: Thiết lập + wrong_code: Mã đã nhập không hợp lệ! Thời gian máy chủ và thời gian thiết bị có đúng không? + user_mailer: + backup_ready: + explanation: Bạn đã yêu cầu sao lưu toàn bộ tài khoản Mastodon của mình. Bây giờ đã sẵn sàng để tải về! + subject: Kho lưu trữ của bạn đã sẵn sàng để tải về + title: Lưu trữ mang đi + warning: + explanation: + disable: Trong khi tài khoản của bạn bị đóng băng, dữ liệu tài khoản của bạn vẫn còn nguyên, nhưng bạn không thể thực hiện bất kỳ hành động nào cho đến khi được mở khóa. + silence: Mặc dù tài khoản của bạn bị hạn chế, nhưng chỉ những người đã theo dõi bạn mới thấy tút của bạn trên máy chủ này và bạn có thể bị loại khỏi các danh sách công khai khác nhau. Tuy nhiên, những người khác vẫn có thể tự theo dõi bạn. + suspend: Tài khoản của bạn đã bị treo và tất cả các tút và tệp phương tiện đã tải lên của bạn đã bị xóa khỏi máy chủ này và các máy chủ nơi bạn có người theo dõi. + get_in_touch: Bạn có thể trả lời e-mail này để liên lạc với nhân viên của %{instance}. + review_server_policies: Xem lại chính sách máy chủ + statuses: 'Cụ thể, cho:' + subject: + disable: Tài khoản của bạn %{acct} đã bị đóng băng + none: Cảnh báo cho %{acct} + silence: Tài khoản của bạn %{acct} đã bị giới hạn + suspend: Tài khoản của bạn %{acct} đã bị treo + title: + disable: Tài khoản bị đóng băng + none: Cảnh báo + silence: Tài khoản bị giới hạn + suspend: Toàn khoản bị đình chỉ + welcome: + edit_profile_action: Cài đặt hồ sơ + edit_profile_step: Bạn có thể tùy chỉnh hồ sơ của mình bằng cách tải lên hình đại diện, tiêu đề, thay đổi tên hiển thị và hơn thế nữa. Nếu bạn muốn xem lại những người theo dõi mới trước khi họ được phép theo dõi bạn, bạn có thể khóa tài khoản của mình. + explanation: Dưới đây là một số lời khuyên để giúp bạn bắt đầu + final_action: Bắt đầu đăng bài + final_step: 'Bắt đầu đăng bài! Ngay cả khi không có người theo dõi, tin nhắn công khai của bạn có thể bị người khác nhìn thấy, ví dụ như trên dòng thời gian cùng miền và trong hashtag. Bạn có thể muốn giới thiệu bản thân về hashtag #intributiontions.' + full_handle: Xử lý đầy đủ của bạn + full_handle_hint: Đây là những gì bạn sẽ nói với bạn bè của mình để họ có thể nhắn tin hoặc theo dõi bạn từ một máy chủ khác. + review_preferences_action: Thay đổi sở thích + review_preferences_step: Đảm bảo đặt tùy chọn của bạn, chẳng hạn như email nào bạn muốn nhận hoặc mức độ riêng tư mà bạn muốn bài đăng của mình được mặc định. Nếu bạn không bị say tàu xe, bạn có thể chọn bật tự động phát GIF. + subject: Chào mừng đến với Mastodon + tip_federated_timeline: Dòng thời gian được liên kết là một khung nhìn rực lửa của mạng Mastodon. Nhưng nó chỉ bao gồm những người mà hàng xóm của bạn đã đăng ký, vì vậy nó không hoàn thành. + tip_following: Bạn theo dõi (các) quản trị viên máy chủ của bạn theo mặc định. Để tìm những người thú vị hơn, hãy kiểm tra các mốc thời gian cùng miền và liên kết. + tip_local_timeline: Dòng thời gian cùng miền là chế độ xem lửa của mọi người trên %{instance}. Đây là những người hàng xóm trực tiếp của bạn! + tip_mobile_webapp: Nếu trình duyệt trên điện thoại di động của bạn cung cấp cho bạn thêm Mastodon vào màn hình chính, bạn có thể nhận được thông báo đẩy. Nó hoạt động như một ứng dụng bản địa theo nhiều cách! + tips: Lời khuyên + title: Chào mừng bạn, %{name}! + users: + follow_limit_reached: Bạn không thể theo dõi nhiều hơn %{limit} người + invalid_email: Địa chỉ email không hợp lệ + invalid_otp_token: Mã hai yếu tố không hợp lệ + otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể liên lạc với %{email} + seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy cài đặt mật khẩu và e-mail không khả dụng. + signed_in_as: 'Đăng ký với tư cách là:' + verification: + explanation_html: 'Bạn có thể xác minh mình là chủ sở hữu của các liên kết trong siêu dữ liệu hồ sơ của bạn . Vì vậy, trang web được liên kết phải chứa một liên kết trở lại hồ sơ Mastodon của bạn. Liên kết trở lại phải có thuộc tính rel="me" . Nội dung văn bản của liên kết không quan trọng. Đây là một ví dụ:' + verification: xác minh diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 49dd31bac..a1deb13e2 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -18,9 +18,12 @@ zh-CN: contact_unavailable: 未公开 discover_users: 发现用户 documentation: 文档 - federation_hint_html: 在%{instance} 上拥有账户后,你可以关注任何 Mastodon 服务器或其他服务器上的人。 + federation_hint_html: 在%{instance} 上拥有账号后,你可以关注任何 Mastodon 服务器或其他服务器上的人。 get_apps: 尝试移动应用 hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例 + instance_actor_flash: '这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 + +' learn_more: 了解详情 privacy_policy: 隐私政策 see_whats_happening: 看一看现在在发生什么 @@ -36,12 +39,16 @@ zh-CN: domain: 服务器 reason: 原因 rejecting_media: 来自这些服务器的媒体文件将不会被处理或存储,缩略图也不会显示,需要手动点击打开原始文件。 + silenced: 来自这些服务器上的帖子将不会出现在公共时间线和会话中;此外,除非你关注了这些服务器上的用户,否则他们的互动不会产生通知。 + suspended: 这些服务器的数据将不会被处理、存储或者交换,本站也将无法和来自这些服务器的用户互动或者交流。 + unavailable_content_html: 通常来说,在Mastodon上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但是这台服务器上会有一些挟制。 user_count_after: other: 位用户 user_count_before: 这里共注册有 what_is_mastodon: Mastodon 是什么? accounts: choices_html: "%{name} 的推荐:" + endorsements_hint: 您可以以在web界面上推荐你关注的人,他们会出现在这里。 featured_tags_hint: 您可以精选一些话题标签展示在这里。 follow: 关注 followers: @@ -54,7 +61,7 @@ zh-CN: moved_html: "%{name} 已经迁移到 %{new_profile_link}:" network_hidden: 此信息不可用 never_active: 从未活跃 - nothing_here: 这里神马都没有! + nothing_here: 这里什么都没有! people_followed_by: "%{name} 关注的人" people_who_follow: 关注 %{name} 的人 pin_errors: @@ -67,6 +74,7 @@ zh-CN: roles: admin: 管理员 bot: 机器人 + group: 群组 moderator: 监察员 unavailable: 个人资料不可用 unfollow: 取消关注 @@ -132,7 +140,7 @@ zh-CN: moderation_notes: 管理备忘 most_recent_activity: 最后一次活跃的时间 most_recent_ip: 最后一次活跃的 IP 地址 - no_account_selected: 因为没有账户被选择,所以没有更改 + no_account_selected: 因为没有帐号被选择,所以没有更改 no_limits_imposed: 无限制 not_subscribed: 未订阅 pending: 待审核 @@ -298,8 +306,9 @@ zh-CN: suspend: 自动封禁 title: 添加域名屏蔽 private_comment: 私密评论 - private_comment_hint: 版主只允许内部用户评论此域名 + private_comment_hint: 给这一域名限制添加备注,供监察员内部使用 public_comment: 公开评论 + public_comment_hint: 给这一域名限制添加公开的评论,如果你推广你的域名限制列表的话,这些评论就会显示出来。 reject_media: 拒绝接收媒体文件 reject_media_hint: 删除本地已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁 reject_reports: 拒绝接收举报 @@ -372,17 +381,23 @@ zh-CN: pending: 等待中继确认 save_and_enable: 保存并启用 setup: 设置中继连接 - signatures_not_enabled: 安全模式或白名单模式启用时中继将不会正常工作 + signatures_not_enabled: 安全模式或白名单模式启用时,中继将不会正常工作 status: 状态 title: 中继 report_notes: created_msg: 举报记录建立成功! destroyed_msg: 举报记录删除成功! reports: + account: + notes: + other: "%{count} 条笔记" + reports: + other: "%{count} 个报告" action_taken_by: 操作执行者 are_you_sure: 你确定吗? assign_to_self: 接管 assigned: 已接管的监察员 + by_target_domain: 被举报账户的域名 comment: none: 没有 created_at: 举报时间 @@ -420,14 +435,16 @@ zh-CN: title: 自定义 CSS default_noindex: desc_html: 影响所有尚未更改此设置的用户 - title: 默认将不会对用户建立索引 + title: 默认不让用户被搜索引擎索引 domain_blocks: all: 对所有人 disabled: 不对任何人 title: 查看域名屏蔽 - users: 本地已登录用户 + users: 对本地已登录用户 domain_blocks_rationale: - title: 显示原理 + title: 显示理由 + enable_bootstrap_timeline_accounts: + title: 开启新用户默认关注功能 hero: desc_html: 用于在首页展示。推荐分辨率 600×100px 以上。未指定的情况下将默认使用本站缩略图 title: 主题图片 @@ -479,7 +496,7 @@ zh-CN: title: 自定义使用条款 site_title: 本站名称 spam_check_enabled: - desc_html: Mastodon可以自动隐藏和举报重复发送垃圾消息的账户。但是本功能有可能误伤无辜。 + desc_html: Mastodon可以自动隐藏和举报重复发送垃圾消息的帐号。但是本功能有可能误伤无辜。 title: 自动反垃圾 thumbnail: desc_html: 用于在 OpenGraph 和 API 中显示预览图。推荐分辨率 1200×630px @@ -492,7 +509,7 @@ zh-CN: desc_html: 影响以前未禁止的话题标签 title: 允许在未审查的情况下将话题置为热门 trends: - desc_html: 公开显示先前已审查的但当前热门的话题 + desc_html: 公开显示先前已通过审核的当前热门话题 title: 热门标签 statuses: back_to_account: 返回帐户信息页 @@ -512,6 +529,7 @@ zh-CN: accounts_today: 今日活跃用户 accounts_week: 本周活跃用户 breakdown: 按来源分类今天的使用情况 + context: 上下文 directory: 在目录中 in_directory: 目录中 %{count} 条 last_active: 最近活动 @@ -522,9 +540,9 @@ zh-CN: reviewed: 已审核 title: 话题标签 trending_right_now: 当前热门 - unique_uses_today: 今天发布 %{count} 条 + unique_uses_today: 今天发布了 %{count} 条 unreviewed: 未审核 - updated_msg: 话题设置更新成功 + updated_msg: 话题标签设置更新成功 title: 管理 warning_presets: add_new: 添加新条目 @@ -535,16 +553,19 @@ zh-CN: admin_mailer: new_pending_account: body: 新帐户的详细信息如下。您可以批准或拒绝此申请。 - subject: 在 %{instance} 上有新账户 ( %{username}) 需要审核 + subject: 在 %{instance} 上有新帐号 ( %{username}) 需要审核 new_report: body: "%{reporter} 举报了用户 %{target}" body_remote: 来自 %{domain} 的用户举报了用户 %{target} subject: 来自 %{instance} 的用户举报(#%{id}) new_trending_tag: - body: '今日的热门话题 #%{name} 之前未审核。直到你允许之前这个话题将不会公开显示,或保持原样让它石沉大海。' - subject: 在 %{instance} 有话题 (#%{name}) 待审核 + body: '今日的热门话题 #%{name} 之前未经审核。直到你允许之前这个话题将不会公开显示,活着就保持原样让它石沉大海。' + subject: 在 %{instance} 有新话题 (#%{name}) 待审核 aliases: add_new: 创建别名 + created_msg: 成功创建了一个新别名。您现在可以从旧账户开始迁移了。 + deleted_msg: 成功移除别名。已经无法从该帐户移动到此帐户了。 + hint_html: 如果你想把另一个帐号迁移到这里,你可以先在这里创建一个别名。如果你想把关注者迁移过来,这一步是必须的。设置别名的操作时无害而且可以恢复的帐号迁移的操作会从旧帐号开始。 remove: 取消关联别名 appearance: advanced_web_interface: 高级 web 界面 @@ -552,6 +573,10 @@ zh-CN: animations_and_accessibility: 动画和访问选项 confirmation_dialogs: 确认对话框 discovery: 发现 + localization: + body: Mastdown 由志愿者翻译。 + guide_link: https://crowdin.com/project/mastodon + guide_link_text: 每个人都可以参与翻译。 sensitive_content: 敏感内容 toot_layout: 嘟文布局 application_mailer: @@ -579,6 +604,7 @@ zh-CN: description: prefix_invited_by_user: "@%{name} 邀请您加入这个Mastodon服务器!" prefix_sign_up: 现在就注册 Mastodon! + suffix: 注册一个帐号,你就可以关注别人、发布嘟文、并和其它任何Mastodon服务器上的用户交流,而且还有其它更多功能! didnt_get_confirmation: 没有收到确认邮件? forgot_password: 忘记密码? invalid_reset_password_token: 密码重置令牌无效或已过期。请重新发起重置密码请求。 @@ -597,10 +623,15 @@ zh-CN: security: 帐户安全 set_new_password: 设置新密码 setup: + email_below_hint_html: 如果下面的电子邮箱地址是错误的,你可以在这里修改并重新发送新的确认邮件。 + email_settings_hint_html: 确认邮件已经发送到%{email}。如果该邮箱地址不对,你可以在帐号设置里面修改。 title: 初始设置 status: account_status: 帐户状态 confirming: 等待电子邮件确认完成。 + functional: 您的帐号可以正常使用了。 + pending: 工作人员正在审核您的申请。这需要花点时间。在申请被批准后,您将收到一封电子邮件。 + redirecting_to: 您的帐户无效,因为它已被设置为跳转到 %{acct} trouble_logging_in: 登录有问题? authorize_follow: already_following: 你已经在关注此用户了 @@ -614,6 +645,8 @@ zh-CN: web: 返回本站 title: 关注 %{acct} challenge: + confirm: 继续 + hint_html: "注意:接下来一小时内我们不会再次要求您输入密码。" invalid_password: 无效密码 prompt: 确认密码以继续 datetime: @@ -631,11 +664,20 @@ zh-CN: x_months: "%{count}个月" x_seconds: "%{count}秒" deletes: + challenge_not_passed: 您输入的信息不正确 confirm_password: 输入你当前的密码来验证身份 + confirm_username: 输入您的用户名以继续 proceed: 删除帐户 success_msg: 你的帐户已经成功删除 warning: + before: 在删除前,请仔细阅读下列说明: + caches: 已被其他服务器缓存的内容可能还会保留 + data_removal: 您的嘟文和其他数据将被永久删除 + email_change_html: 您可以 更换邮箱地址 无需删除账号 + email_contact_html: 如果它还没送到,你可以发邮件给 %{email} 寻求帮助。 + email_reconfirmation_html: 如果您没有收到确认邮件,请点击 重新发送 。 irreversible: 您将无法恢复或重新激活您的帐户 + more_details_html: 更多细节,请查看 隐私政策 。 username_available: 您的用户名现在又可以使用了 username_unavailable: 您的用户名仍将无法使用 directories: @@ -648,7 +690,7 @@ zh-CN: '400': 您提交的请求无效或格式不正确。 '403': 你没有访问这个页面的权限。 '404': 无法找到你所要访问的页面。 - '406': This page is not available in the requested format. + '406': 页面无法处理请求。 '410': 你所要访问的页面此处已不存在。 '422': content: 无法确认登录信息。你是不是屏蔽了 Cookie? @@ -657,7 +699,7 @@ zh-CN: '500': content: 抱歉,我们的后台出错了。 title: 这个页面有问题 - '503': The page could not be served due to a temporary server failure. + '503': 服务暂时不可用,无法请求该页面。 noscript_html: 使用 Mastodon 网页版应用需要启用 JavaScript。你也可以选择适用于你的平台的 Mastodon 应用。 existing_username_validator: not_found: 在本站找不到此用户 @@ -673,7 +715,6 @@ zh-CN: blocks: 屏蔽的用户 csv: CSV domain_blocks: 域名屏蔽 - follows: 关注的用户 lists: 列表 mutes: 隐藏的用户 storage: 媒体文件存储 @@ -707,6 +748,7 @@ zh-CN: all: 全部 changes_saved_msg: 更改保存成功! copy: 复制 + no_batch_actions_available: 本页面无可用批量操作 order_by: 排序方式 save_changes: 保存更改 validation_errors: @@ -777,21 +819,33 @@ zh-CN: migrations: acct: 新帐户的 用户名@域名 cancel: 取消跳转 + cancel_explanation: 取消跳转将会重新激活您当前的帐号,但是已经迁移到新账号的关注者不会回来。 cancelled_msg: 成功取消跳转 errors: + already_moved: 和您已经迁移过的帐号相同 + missing_also_known_as: 没有引用此帐号 move_to_self: 不能是当前帐户 not_found: 找不到 on_cooldown: 您正处于冷却状态 + followers_count: 迁移时的关注者 + incoming_migrations: 从其他帐号迁移 + incoming_migrations_html: 要把另一个帐号移动到本帐号,首先您需要 创建一个帐号别名 。 + moved_msg: 您的帐号现在会跳转到%{acct} ,同时关注者也会迁移过去 。 + not_redirecting: 您的帐号当前未跳转到其他帐户。 + on_cooldown: 您最近已经迁移过您的帐号。此功能将在%{count} 天后再次可用。 past_migrations: 迁移记录 proceed_with_move: 移动关注者 redirecting_to: 您的帐户被跳转到了 %{acct}。 set_redirect: 设置跳转 warning: - backreference_required: 新账号必须先引用现在这个账号 + backreference_required: 新账号必须先引用现在这个帐号 before: 在继续前,请仔细阅读下列说明: cooldown: 移动后会有一个冷却期,在此期间您将无法再次移动 disabled_account: 此后,您的当前帐户将无法使用。但是,您仍然有权导出数据或者重新激活。 followers: 这步操作将把所有关注者从当前账户移动到新账户 + only_redirect_html: 或者,你可以只在你的帐号资料上设置一个跳转。 + other_data: 不会自动移动其他数据 + redirect: 在收到一个跳转通知后,您当前的帐号资料将会更新,并被排除在搜索范围外 moderation: title: 运营 notification_mailer: @@ -826,6 +880,10 @@ zh-CN: body: 你的嘟文被 %{name} 转嘟了: subject: "%{name} 转嘟了你的嘟文" title: 新的转嘟 + notifications: + email_events: 电子邮件通知事件 + email_events_hint: 选择你想要收到通知的事件: + other_settings: 其它通知设置 number: human: decimal_units: @@ -857,8 +915,10 @@ zh-CN: posting_defaults: 发布默认值 public_timelines: 公共时间轴 relationships: - activity: 账户活动 + activity: 帐号活动 dormant: 休眠 + followers: 关注者 + following: 正在关注 last_active: 最近活动 most_recent: 最近的 moved: 已迁移 @@ -875,7 +935,7 @@ zh-CN: no_account_html: 还没有帐号?你可以注册一个 proceed: 确认关注 prompt: 你正准备关注: - reason_html: "为什么需要这个步骤? %{instance} 可能不是您所注册的服务器,所以我们需要先重定向到您所在的服务器。" + reason_html: "为什么需要这个步骤? %{instance} 可能不是您所注册的服务器,所以我们需要先跳转到您所在的服务器。" remote_interaction: favourite: proceed: 确认标记为喜欢 @@ -932,9 +992,9 @@ zh-CN: revoke_success: 会话注销成功 title: 会话 settings: - account: 账户 + account: 帐号 account_settings: 帐户设置 - aliases: 账户别名 + aliases: 帐号别名 appearance: 外观 authorized_apps: 已授权的应用 back: 返回 Mastodon @@ -974,6 +1034,8 @@ zh-CN: private: 不能置顶非公开的嘟文 reblog: 不能置顶转嘟 poll: + total_people: + other: "%{count} 人" total_votes: other: "%{count} 票" vote: 投票 @@ -1110,17 +1172,19 @@ zh-CN: disable: 虽然您的帐户被冻结,您的帐户数据仍然完整;但是您无法在解锁前执行任何操作。 silence: 当您的帐户受限时,只有已经关注过你的人才会这台服务器上看到你的嘟文,并且您会被排除在各种公共列表之外。但是,其他人仍然可以手动关注你。 suspend: 您的帐户已被封禁,所有的嘟文和您上传的媒体文件都已经从该服务器和您的关注者的服务器上删除并且不可恢复。 + get_in_touch: 您可回复该邮件以联系 %{instance} 的工作人员。 review_server_policies: 查看服务器政策 + statuses: 具体来说,适用于: subject: disable: 您的帐户 %{acct} 已被冻结 none: 对 %{acct} 的警告 silence: 您的帐户 %{acct} 已经受限 suspend: 您的帐户 %{acct} 已被封禁。 title: - disable: 账户已冻结 + disable: 账号已冻结 none: 警示 silence: 帐户受限 - suspend: 账户被封禁 + suspend: 账号被封禁 welcome: edit_profile_action: 设置个人资料 edit_profile_step: 你可以自定义你的个人资料,包括上传头像、横幅图片、更改昵称等等。如果你想在新的关注者关注你之前对他们进行审核,你也可以选择为你的帐户开启保护。 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 4b7ca52e1..8dd4c346b 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -4,28 +4,57 @@ zh-HK: about_hashtag_html: 這些是包含「#%{hashtag}」標籤的公開文章。只要你有任何 Mastodon 服務站、或者聯盟網站的用戶,便可以與他們互動。 about_mastodon_html: Mastodon(萬象)是自由、開源的社交網絡。服務站各自獨立而互連,避免單一商業機構壟斷。找你所信任的服務站,建立帳號,你即可與任何服務站上的用戶溝通,享受無縫的網絡交流。 about_this: 關於本服務站 + active_count_after: 活躍 + active_footnote: 每月活躍使用者 (MAU) administered_by: 管理者: + api: API + apps: 行動應用程式 + apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon + browse_directory: 依興趣瀏覽個人資料目錄和過濾器 + browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流 contact: 聯絡 contact_missing: 未設定 contact_unavailable: 未公開 + discover_users: 探索使用者 + documentation: 文件 + get_apps: 嘗試行動應用程式 hosted_on: 在 %{domain} 運作的 Mastodon 服務站 learn_more: 了解更多 + privacy_policy: 隱私權政策 + see_whats_happening: 看看發生什麼事 + server_stats: 伺服器統計: source_code: 源代碼 + status_count_after: + other: 條嘟文 status_count_before: 他們共發佈了 tagline: 關注朋友並探索新朋友 + terms: 使用條款 + unavailable_content_description: + domain: 伺服器 + reason: 原因 + user_count_after: + other: 位使用者 user_count_before: 這裏共註冊有 what_is_mastodon: Mastodon 是甚麼? accounts: + choices_html: "%{name} 的選擇:" follow: 關注 followers: other: 關注者 following: 正在關注 + joined: 加入於 %{date} + last_active: 上次活躍時間 + link_verified_on: 此連結的所有權已在 %{date} 檢查過 media: 媒體 moved_html: "%{name} 已經轉移到 %{new_profile_link}:" network_hidden: 此信息不可用 + never_active: 永不 nothing_here: 暫時未有內容可以顯示。 people_followed_by: "%{name} 關注的人" people_who_follow: 關注 %{name} 的人 + posts: + other: 嘟文 + posts_tab_heading: 嘟文 posts_with_replies: 文章和回覆 reserved_username: 此用戶名已被保留 roles: @@ -34,12 +63,17 @@ zh-HK: moderator: 監察員 unfollow: 取消關注 admin: + account_actions: + action: 執行動作 + title: 在 %{acct} 執行管理員動作 account_moderation_notes: create: 記錄 created_msg: 管理記錄已新增 delete: 刪除 destroyed_msg: 管理記錄已被刪除 accounts: + approve: 核准 + approve_all: 全部批准 are_you_sure: 你確定嗎? avatar: 頭像 by_domain: 域名 @@ -53,6 +87,7 @@ zh-HK: confirm: 確定 confirmed: 已確定 confirming: 確定 + deleted: 已刪除 demote: 降任 disable: 停用 disable_two_factor_authentication: 停用雙重認證 @@ -66,8 +101,11 @@ zh-HK: enabled: 已啟用 followers: 關注者 follows: 正在關注 + header: 開頭 inbox_url: 收件箱(Inbox)URL + invited_by: 邀請者 ip: IP 位域 + joined: 已加入 location: all: 全部 local: 本地 @@ -77,21 +115,28 @@ zh-HK: media_attachments: 媒體檔案 memorialize: 設定為追悼帳戶 moderation: + active: 活躍 all: 全部 + pending: 等待中 silenced: 被靜音的 suspended: 被停權的 title: 管理操作 moderation_notes: 管理記錄 most_recent_activity: 最新活動 most_recent_ip: 最新 IP 位域 + no_limits_imposed: 未受限制 not_subscribed: 未訂閱 + pending: 等待審核中 perform_full_suspension: 完全停權 promote: 升任 protocol: 協議 public: 公共 push_subscription_expires: PuSH 訂閱過期 redownload: 更新頭像 + reject: 拒絕 + reject_all: 全部拒絕 remove_avatar: 取消頭像 + remove_header: 移除開頭 resend_confirmation: already_confirmed: 该用户已被确认 send: 重发确认邮件 @@ -111,24 +156,29 @@ zh-HK: created_reports: 此用戶所提舉報的紀錄 targeted_reports: 此用戶被舉報的紀錄 silence: 靜音 + silenced: 已靜音 statuses: 文章 subscribe: 訂閱 + suspended: 已停權 title: 用戶 unconfirmed_email: 未確認的電郵 undo_silenced: 解除靜音 undo_suspension: 解除停權 unsubscribe: 取消訂閱 username: 用戶名稱 + warn: 警告 web: 用戶頁面 action_logs: actions: assigned_to_self_report: "%{name} 指派了 %{target} 的舉報給自己" change_email_user: "%{name} 改變了用戶 %{target} 的電郵地址" confirm_user: "%{name} 確認了用戶 %{target} 的電郵地址" + create_account_warning: "%{name} 已對 %{target} 送出警告" create_custom_emoji: "%{name} 加入自訂表情符號 %{target}" create_domain_block: "%{name} 阻隔了網域 %{target}" create_email_domain_block: "%{name} 阻隔了電郵網域 %{target}" demote_user: "%{name} 把用戶 %{target} 降任" + destroy_custom_emoji: "%{name} 破壞了 %{target} 表情符號" destroy_domain_block: "%{name} 取消了對網域 %{target} 的阻隔" destroy_email_domain_block: "%{name} 取消了對電郵網域 %{target} 的阻隔" destroy_status: "%{name} 刪除了 %{target} 的文章" @@ -150,6 +200,7 @@ zh-HK: unsuspend_account: "%{name} 取消了用戶 %{target} 的停權狀態" update_custom_emoji: "%{name} 更新了自訂表情符號 %{target}" update_status: "%{name} 刷新了 %{target} 的文章" + deleted_status: "(已刪除嘟文)" title: 營運日誌 custom_emojis: by_domain: 網域 @@ -160,11 +211,14 @@ zh-HK: delete: 刪除 destroyed_msg: 已刪除表情符號 disable: 停用 + disabled: 已停用 disabled_msg: 已停用表情符號 emoji: emoji enable: 啟用 + enabled: 已啟用 enabled_msg: 已啟用表情符號 image_hint: PNG 格式,最大 50KB + list: 列表 listed: 已顯示 new: title: 加入新的自訂表情符號 @@ -176,6 +230,28 @@ zh-HK: update_failed_msg: 無法更新表情符號 updated_msg: 已更新表情符號 upload: 上傳新的表情符號 + dashboard: + backlog: 未處理工作數 + config: 設定 + feature_deletions: 帳戶刪除 + feature_invites: 邀請連結 + feature_profile_directory: 個人資料目錄 + feature_registrations: 註冊 + feature_relay: 聯邦中繼站 + features: 功能 + hidden_service: 與隱密服務互連 + open_reports: 待處理檢舉數 + recent_users: 最近加入的使用者 + search: 全文搜尋 + single_user_mode: 單一使用者模式 + software: 軟體 + space: 儲存空間用量 + title: 儀表板 + total_users: 總使用者數 + trends: 趨勢 + week_interactions: 本週互動次數 + week_users_active: 本週活躍使用者數 + week_users_new: 本週新使用者數 domain_blocks: add_new: 新增 created_msg: 正處理域名阻隔 @@ -192,7 +268,16 @@ zh-HK: title: 新增域名阻隔 reject_media: 拒絕媒體檔案 reject_media_hint: 刪除本地緩存的媒體檔案,再也不在未來下載這個站點的檔案。和自動刪除無關 + reject_reports: 拒絕檢舉 + reject_reports_hint: 忽略所有來自此站點的檢舉。與停權無關 + rejecting_media: 拒絕媒體檔案 + rejecting_reports: 拒絕檢舉中 + severity: + silence: 已靜音 + suspend: 已停權 show: + affected_accounts: + other: 將影響到資料庫中的 %{count} 個帳戶 retroactive: silence: 對此域名的所有用戶取消靜音 suspend: 對此域名的所有用戶取消除名 @@ -213,6 +298,10 @@ zh-HK: back_to_account: 返回帳戶 title: "%{acct} 的關注者" instances: + moderation: + all: 全部 + limited: 限制 + title: 版主 title: 已知服務站 total_followed_by_us: 開始關注你 invites: @@ -224,6 +313,8 @@ zh-HK: title: 邀請用戶 relays: description_html: "聯邦中繼站 是種中繼伺服器,會在訂閱並推送至此中繼站的伺服器之間交換大量的公開嘟文。中繼站也能協助小型或中型伺服器從聯邦中探索內容,而無須本地使用者手動關注遠端伺服器的其他使用者。" + disabled: 停用 + enable: 啟用 report_notes: created_msg: 舉報筆記已建立。 destroyed_msg: 舉報筆記已刪除。 @@ -315,12 +406,23 @@ zh-HK: no_media: 不含媒體檔案 title: 帳戶文章 with_media: 含有媒體檔案 + tags: + name: Hashtag title: 管理 + warning_presets: + add_new: 新增 + delete: 刪除 + edit: 編輯 admin_mailer: new_report: body: "%{reporter} 舉報了用戶 %{target}" body_remote: 來自 %{domain} 的用戶舉報了用戶 %{target} subject: 來自 %{instance} 的用戶舉報(#%{id}) + appearance: + localization: + body: Mastodon 是由志願者翻譯的。 + guide_link: https://crowdin.com/project/mastodon + guide_link_text: 每個人都能貢獻。 application_mailer: notification_preferences: 更改電郵首選項 salutation: "%{name}:" @@ -348,6 +450,8 @@ zh-HK: migrate_account: 轉移到另一個帳號 migrate_account_html: 想要將這個帳號指向另一個帳號可到這裡設定。 or_log_in_with: 或登入於 + providers: + saml: SAML register: 登記 resend_confirmation: 重發確認指示電郵 reset_password: 重設密碼 @@ -406,11 +510,19 @@ zh-HK: request: 下載檔案 size: 檔案大小 blocks: 被你封鎖的用戶 - follows: 你所關注的用戶 + csv: CSV + lists: 列表 mutes: 你所靜音的用戶 storage: 媒體容量大小 + filters: + index: + empty: 您沒有過濾器。 + footer: + more: 更多...... generic: + all: 全部 changes_saved_msg: 已成功儲存修改。 + copy: 複製 save_changes: 儲存修改 validation_errors: other: 提交的資料有 %{count} 項問題 @@ -487,6 +599,16 @@ zh-HK: body: 您的文章被 %{name} 轉推: subject: "%{name} 轉推了你的文章" title: 新的轉推 + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T pagination: newer: 較新 next: 下一頁 @@ -505,6 +627,7 @@ zh-HK: browser: 瀏覽器 browsers: alipay: 支付寶 + blackberry: 黑莓機 chrome: Chrome 瀏覽器 edge: Microsoft Edge 瀏覽器 electron: Electron 瀏覽器 @@ -513,14 +636,20 @@ zh-HK: ie: Internet Explorer 瀏覽器 micro_messenger: 微信 nokia: Nokia S40 Ovi 瀏覽器 + opera: Opera 瀏覽器 otter: Otter 瀏覽器 + phantom_js: PhantomJS 瀏覽器 qq: QQ瀏覽器 + safari: Safari 瀏覽器 uc_browser: UC瀏覽器 weibo: 新浪微博 current_session: 目前的作業階段 description: "%{platform} 上的 %{browser}" explanation: 這些是現在正登入於你的 Mastodon 帳號的瀏覽器。 ip: IP 位址 + platforms: + ios: iOS + mac: Mac revoke: 取消 revoke_success: 作業階段成功取消 title: 作業階段 @@ -555,6 +684,8 @@ zh-HK: ownership: 不能置頂他人的文章 private: 不能置頂非公開的文章 reblog: 不能置頂轉推 + poll: + vote: 投票 show_more: 顯示更多 title: "%{name}:「%{quote}」" visibilities: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 7a5627c30..1ba2c82c8 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -417,6 +417,11 @@ zh-TW: body: "%{reporter} 檢舉了使用者 %{target}" body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target} subject: 來自 %{instance} 的使用者檢舉(#%{id}) + appearance: + localization: + body: Mastodon 是由志願者翻譯的。 + guide_link: https://crowdin.com/project/mastodon + guide_link_text: 每個人都能貢獻。 application_mailer: notification_preferences: 變更電子信件設定 salutation: "%{name}、" @@ -444,6 +449,8 @@ zh-TW: migrate_account: 轉移到另一個帳戶 migrate_account_html: 如果你希望引導他人關注另一個帳戶,請到這裡設定。 or_log_in_with: 或透過其他方式登入 + providers: + saml: SAML register: 註冊 resend_confirmation: 重新寄送確認指引 reset_password: 重設密碼 @@ -502,11 +509,19 @@ zh-TW: request: 下載存檔 size: 大小 blocks: 您封鎖的使用者 - follows: 您關注的使用者 + csv: CSV + lists: 列表 mutes: 您靜音的使用者 storage: 儲存空間大小 + filters: + index: + empty: 您沒有過濾器。 + footer: + more: 更多...... generic: + all: 全部 changes_saved_msg: 已成功儲存修改! + copy: 複製 save_changes: 儲存修改 imports: preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括關注的使用者、封鎖的使用者名單。 @@ -575,6 +590,16 @@ zh-TW: body: '你的嘟文被 %{name} 轉嘟:' subject: "%{name} 轉嘟了你的嘟文" title: 新的轉嘟 + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T pagination: newer: 較新 next: 下一頁 @@ -610,6 +635,9 @@ zh-TW: description: "%{platform} 上的 %{browser}" explanation: 這些是現在正登入於你的 Mastodon 帳戶的瀏覽器。 ip: IP 位址 + platforms: + ios: iOS + mac: Mac revoke: 取消 revoke_success: Session 取消成功 title: 作業階段 @@ -638,6 +666,8 @@ zh-TW: ownership: 不能置頂他人的嘟文 private: 不能置頂非公開的嘟文 reblog: 不能置頂轉嘟 + poll: + vote: 投票 show_more: 顯示更多 visibilities: private: 僅關注者 From 24cd2126c6cfb80844ef9ffbf61647b3d9afdc68 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 12 Jan 2020 15:49:30 +0100 Subject: [PATCH 103/207] Fix Ruby 2.7 support (#12831) - update http gem to avoid errors - update blurhash gem to avoid shared object loading error - update goldfinger gem so the http gem could be updated - update json gem to avoid warnings --- Gemfile | 2 +- Gemfile.lock | 25 +++++++++++++++---------- app/lib/request.rb | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Gemfile b/Gemfile index f0adf610c..316ebb81d 100644 --- a/Gemfile +++ b/Gemfile @@ -56,7 +56,7 @@ gem 'hiredis', '~> 0.6' gem 'redis-namespace', '~> 1.7' gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b' 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' diff --git a/Gemfile.lock b/Gemfile.lock index a14b6ec93..44682002a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -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) @@ -248,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) @@ -271,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) @@ -294,14 +297,16 @@ GEM hiredis (0.6.3) hkdf (0.3.0) 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) @@ -323,7 +328,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) @@ -722,7 +727,7 @@ DEPENDENCIES health_check! hiredis (~> 0.6) htmlentities (~> 4.3) - http (~> 3.3) + http (~> 4.3) http_accept_language (~> 2.1) http_parser.rb (~> 0.6)! httplog (~> 1.3) diff --git a/app/lib/request.rb b/app/lib/request.rb index d82bbb075..c476e7785 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -96,7 +96,7 @@ class Request end def http_client - HTTP.use(:auto_inflate).timeout(:per_operation, TIMEOUT.dup).follow(max_hops: 2) + HTTP.use(:auto_inflate).timeout(TIMEOUT.dup).follow(max_hops: 2) end end From d20eddc6b51fa893395cdbf3b6d5f7824783695e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2020 02:53:57 +0900 Subject: [PATCH 104/207] Bump rubocop-rails from 2.4.0 to 2.4.1 (#12780) Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.4.0 to 2.4.1. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.4.0...v2.4.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 44682002a..a75940804 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -428,7 +428,7 @@ GEM parallel (1.19.1) parallel_tests (2.30.0) parallel - parser (2.6.5.0) + parser (2.7.0.2) ast (~> 2.4.0) parslet (1.8.2) pastel (0.7.3) @@ -460,7 +460,7 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) raabro (1.1.6) - rack (2.0.8) + rack (2.1.1) rack-attack (6.2.2) rack (>= 1.0, < 3) rack-cors (1.1.1) @@ -569,7 +569,7 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) - rubocop-rails (2.4.0) + rubocop-rails (2.4.1) rack (>= 1.1) rubocop (>= 0.72.0) ruby-progressbar (1.10.1) From 3a6f9860fcbaaec488bd645a8150a514e4260efa Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 13 Jan 2020 12:02:37 +0100 Subject: [PATCH 105/207] New Crowdin translations (#12830) * New translations en.yml (Telugu) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations doorkeeper.en.yml (Norwegian) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations simple_form.en.yml (Occitan) [ci skip] * New translations doorkeeper.en.yml (Occitan) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations doorkeeper.en.yml (Slovenian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations simple_form.en.yml (Serbian (Latin)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Latin)) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.json (Thai) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Icelandic) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations doorkeeper.en.yml (Kabyle) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations doorkeeper.en.yml (Dutch) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations doorkeeper.en.yml (Croatian) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations en.json (Danish) [ci skip] * New translations doorkeeper.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Arabic) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations doorkeeper.en.yml (Asturian) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations doorkeeper.en.yml (Bulgarian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations activerecord.en.yml (Icelandic) [ci skip] * New translations devise.en.yml (Icelandic) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations devise.en.yml (Estonian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations devise.en.yml (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations devise.en.yml (Catalan) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * i18n-tasks normalize * yarn manage:translations --- app/javascript/mastodon/locales/ca.json | 24 ++--- app/javascript/mastodon/locales/co.json | 6 +- app/javascript/mastodon/locales/cs.json | 6 +- .../mastodon/locales/defaultMessages.json | 17 ++++ app/javascript/mastodon/locales/eo.json | 6 +- app/javascript/mastodon/locales/es-AR.json | 6 +- app/javascript/mastodon/locales/es.json | 74 +++++++-------- app/javascript/mastodon/locales/et.json | 92 +++++++++---------- app/javascript/mastodon/locales/fr.json | 6 +- app/javascript/mastodon/locales/gl.json | 6 +- app/javascript/mastodon/locales/id.json | 6 +- app/javascript/mastodon/locales/is.json | 6 +- app/javascript/mastodon/locales/it.json | 4 +- app/javascript/mastodon/locales/ja.json | 4 +- app/javascript/mastodon/locales/ko.json | 6 +- app/javascript/mastodon/locales/pt-BR.json | 6 +- app/javascript/mastodon/locales/pt-PT.json | 6 +- app/javascript/mastodon/locales/ru.json | 6 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 6 +- app/javascript/mastodon/locales/vi.json | 6 +- config/locales/ca.yml | 83 ++++++++--------- config/locales/co.yml | 1 + config/locales/cs.yml | 1 + config/locales/devise.ca.yml | 10 +- config/locales/devise.et.yml | 4 +- config/locales/doorkeeper.ar.yml | 1 - config/locales/doorkeeper.ca.yml | 5 +- config/locales/doorkeeper.co.yml | 1 - config/locales/doorkeeper.cs.yml | 1 - config/locales/doorkeeper.de.yml | 1 - config/locales/doorkeeper.el.yml | 1 - config/locales/doorkeeper.eo.yml | 3 +- config/locales/doorkeeper.es-AR.yml | 1 - config/locales/doorkeeper.es.yml | 1 - config/locales/doorkeeper.et.yml | 1 - config/locales/doorkeeper.eu.yml | 1 - config/locales/doorkeeper.fa.yml | 1 - config/locales/doorkeeper.gl.yml | 1 - config/locales/doorkeeper.id.yml | 1 - config/locales/doorkeeper.it.yml | 1 - config/locales/doorkeeper.ja.yml | 1 - config/locales/doorkeeper.kk.yml | 1 - config/locales/doorkeeper.ko.yml | 1 - config/locales/doorkeeper.pt-BR.yml | 1 - config/locales/doorkeeper.pt-PT.yml | 1 - config/locales/doorkeeper.ru.yml | 1 - config/locales/doorkeeper.sv.yml | 1 - config/locales/doorkeeper.ta.yml | 1 - config/locales/doorkeeper.th.yml | 1 - config/locales/doorkeeper.tr.yml | 1 - config/locales/eo.yml | 5 + config/locales/es-AR.yml | 1 + config/locales/es.yml | 24 ++--- config/locales/et.yml | 1 + config/locales/fa.yml | 1 + config/locales/fr.yml | 1 + config/locales/hu.yml | 1 + config/locales/id.yml | 1 + config/locales/is.yml | 54 +++++++++-- config/locales/kk.yml | 1 + config/locales/ko.yml | 2 +- config/locales/pt-BR.yml | 5 +- config/locales/pt-PT.yml | 1 + config/locales/simple_form.ca.yml | 2 +- config/locales/simple_form.eo.yml | 2 + config/locales/simple_form.is.yml | 2 + config/locales/simple_form.ja.yml | 2 +- config/locales/simple_form.nl.yml | 2 +- config/locales/sv.yml | 3 + config/locales/ta.yml | 3 + config/locales/th.yml | 1 + config/locales/vi.yml | 2 + 73 files changed, 307 insertions(+), 241 deletions(-) diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 1557d8460..ceb5c39e4 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Afegir o Treure de les llistes", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grup", "account.block": "Bloqueja @{name}", "account.block_domain": "Amaga-ho tot de {domain}", "account.blocked": "Bloquejat", @@ -84,8 +84,8 @@ "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.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.poll.switch_to_multiple": "Canvía l’enquesta per a permetre diverses opcions", + "compose_form.poll.switch_to_single": "Canvía l’enquesta per a permetre una sola opció", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar mèdia com a sensible", @@ -110,7 +110,7 @@ "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 tut i tornar a redactar-lo? Perdràs totes els impulsos i favorits, i les respostes al tut original es quedaran orfes.", + "confirmations.redraft.message": "Estàs segur que vols esborrar aquest tut i tornar a redactar-lo? Perdràs tots 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", @@ -147,7 +147,7 @@ "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 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.favourites": "Ningú no ha marcat aquest tut 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.", @@ -181,8 +181,8 @@ "hashtag.column_settings.tag_mode.none": "Cap d’aquests", "hashtag.column_settings.tag_toggle": "Inclou etiquetes addicionals per a aquesta columna", "home.column_settings.basic": "Bàsic", - "home.column_settings.show_reblogs": "Mostrar impulsos", - "home.column_settings.show_replies": "Mostrar respostes", + "home.column_settings.show_reblogs": "Mostra els impulsos", + "home.column_settings.show_replies": "Mostra les respostes", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", @@ -211,7 +211,7 @@ "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 tut", + "keyboard_shortcuts.enter": "per a obrir 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", @@ -231,8 +231,8 @@ "keyboard_shortcuts.requests": "per a obrir la llista de sol·licituds de seguiment", "keyboard_shortcuts.search": "per a centrar la cerca", "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.toggle_hidden": "per a mostrar o amagar text sota CW", + "keyboard_shortcuts.toggle_sensitivity": "per a mostrar o amagar contingut multimèdia", "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", @@ -298,7 +298,7 @@ "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.show": "Mostra en la columna", "notifications.column_settings.sound": "Reproduir so", "notifications.filter.all": "Tots", "notifications.filter.boosts": "Impulsos", @@ -348,7 +348,7 @@ "search_popout.tips.user": "usuari", "search_results.accounts": "Gent", "search_results.hashtags": "Etiquetes", - "search_results.statuses": "Barritades", + "search_results.statuses": "Tuts", "search_results.statuses_fts_disabled": "La cerca de tuts pel seu contingut no està habilitada en aquest servidor Mastodon.", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", "status.admin_account": "Obre l'interfície de moderació per a @{name}", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 9ec566d54..2afd0f1fa 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Aghjunghje o toglie da e liste", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Gruppu", "account.block": "Bluccà @{name}", "account.block_domain": "Piattà tuttu da {domain}", "account.blocked": "Bluccatu", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Durata di u scandagliu", "compose_form.poll.option_placeholder": "Scelta {number}", "compose_form.poll.remove_option": "Toglie sta scelta", - "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.poll.switch_to_multiple": "Cambià u scandagliu per accittà parechje scelte", + "compose_form.poll.switch_to_single": "Cambià u scandagliu per ùn accittà ch'una scelta", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Indicà u media cum'è sensibile", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 82c17efe7..8b9b5a86b 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Skupina", "account.block": "Zablokovat uživatele @{name}", "account.block_domain": "Skrýt vše ze serveru {domain}", "account.blocked": "Blokováno", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Doba trvání ankety", "compose_form.poll.option_placeholder": "Volba {number}", "compose_form.poll.remove_option": "Odstranit tuto volbu", - "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.poll.switch_to_multiple": "Povolit u ankety více možností", + "compose_form.poll.switch_to_single": "Povolit u ankety jedinou možnost", "compose_form.publish": "Tootnout", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označit média jako citlivá", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 49afec45c..0cb67c08c 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1550,6 +1550,23 @@ ], "path": "app/javascript/mastodon/features/following/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Close", + "id": "lightbox.close" + }, + { + "defaultMessage": "Previous", + "id": "lightbox.previous" + }, + { + "defaultMessage": "Next", + "id": "lightbox.next" + } + ], + "path": "app/javascript/mastodon/features/getting_started/components/announcements.json" + }, { "descriptors": [ { diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 20d4e7935..f921b263c 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj", "account.badges.bot": "Roboto", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloki @{name}", "account.block_domain": "Kaŝi ĉion de {domain}", "account.blocked": "Blokita", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Balotenketa daŭro", "compose_form.poll.option_placeholder": "Elekteblo {number}", "compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon", - "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.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn", + "compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton", "compose_form.publish": "Hup", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marki la aŭdovidaĵojn kiel tiklaj", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 1de5ec8ce..ee46e24dd 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Agregar o quitar de las listas", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloquear a @{name}", "account.block_domain": "Ocultar todo de {domain}", "account.blocked": "Bloqueado", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.option_placeholder": "Opción {number}", "compose_form.poll.remove_option": "Quitá esta opción", - "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.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples", + "compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción", "compose_form.publish": "Tootear", "compose_form.publish_loud": "¡{publish}!", "compose_form.sensitive.hide": "Marcar medio como sensible", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 825956d25..d056a843c 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Agregar o eliminar de listas", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloquear a @{name}", "account.block_domain": "Ocultar todo de {domain}", "account.blocked": "Bloqueado", @@ -16,7 +16,7 @@ "account.follows": "Sigue", "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", - "account.hide_reblogs": "Ocultar rebarritadas de @{name}", + "account.hide_reblogs": "Ocultar retoots de @{name}", "account.last_status": "Última actividad", "account.link_verified_on": "El proprietario de este link fue comprobado el {date}", "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.", @@ -27,12 +27,12 @@ "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", "account.never_active": "Nunca", - "account.posts": "Bramidos", - "account.posts_with_replies": "Bramidos con respuestas", + "account.posts": "Toots", + "account.posts_with_replies": "Toots con respuestas", "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación", "account.share": "Compartir el perfil de @{name}", - "account.show_reblogs": "Mostrar rebramidos de @{name}", + "account.show_reblogs": "Mostrar retoots de @{name}", "account.unblock": "Desbloquear a @{name}", "account.unblock_domain": "Mostrar a {domain}", "account.unendorse": "No mostrar en el perfil", @@ -57,13 +57,13 @@ "column.direct": "Mensajes directos", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", - "column.favourites": "Favoritos", + "column.favourites": "Levantar la trompa", "column.follow_requests": "Solicitudes de seguimiento", "column.home": "Inicio", "column.lists": "Listas", "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", - "column.pins": "Bramidos fijados", + "column.pins": "Toots fijados", "column.public": "Cronología federada", "column_back_button.label": "Atrás", "column_header.hide_settings": "Ocultar configuración", @@ -74,19 +74,19 @@ "column_header.unpin": "Dejar de fijar", "column_subheading.settings": "Ajustes", "community.column_settings.media_only": "Solo media", - "compose_form.direct_message_warning": "Este bramido solo será enviado a las usuarias mencionadas.", + "compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.", "compose_form.direct_message_warning_learn_more": "Aprender mas", - "compose_form.hashtag_warning": "Este bramido no se mostrará bajo etiquetas porque no es público. Sólo los bramidos públicos se pueden buscar por etiqueta.", - "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todas pueden seguirte para ver tus barritadas para solo seguidoras.", + "compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.", + "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "¿En qué estás pensando?", "compose_form.poll.add_option": "Añadir una opción", "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.option_placeholder": "Elección {number}", "compose_form.poll.remove_option": "Eliminar esta opción", - "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": "Barritar", + "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", + "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", + "compose_form.publish": "Ipoxta", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar multimedia como sensible", "compose_form.sensitive.marked": "Material marcado como sensible", @@ -99,7 +99,7 @@ "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", "confirmations.delete.confirm": "Eliminar", - "confirmations.delete.message": "¿Estás seguro de que quieres borrar este estado?", + "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?", "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.domain_block.confirm": "Ocultar dominio entero", @@ -123,7 +123,7 @@ "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", - "embed.instructions": "Añade este estado a tu sitio web con el siguiente código.", + "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", "emoji_button.custom": "Personalizado", @@ -139,15 +139,15 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", - "empty_column.account_timeline": "¡No hay barritadas aquí!", + "empty_column.account_timeline": "¡No hay toots aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Aún no has bloqueado a ningún usuario.", "empty_column.bookmarked_statuses": "Aún no tienes ninguna barritada guardada como marcador. Cuando guardes una, se mostrará aquí.", "empty_column.community": "La cronología local está vacía. ¡Escribe algo para empezar la fiesta!", "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", - "empty_column.favourited_statuses": "Aún no tienes barritadas preferidas. Cuando marques una como favorita, aparecerá aquí.", - "empty_column.favourites": "Nadie ha marcado esta barritada como preferida. Cuando alguien lo haga, aparecerá aquí.", + "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.", + "empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.hashtag": "No hay nada en esta etiqueta aún.", "empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.", @@ -181,7 +181,7 @@ "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluya etiquetas adicionales para esta columna", "home.column_settings.basic": "Básico", - "home.column_settings.show_reblogs": "Mostrar rebarritadas", + "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", @@ -195,17 +195,17 @@ "introduction.federation.local.text": "Los mensajes públicos de personas en el mismo servidor que aparecerán en la cronología local.", "introduction.interactions.action": "¡Terminar tutorial!", "introduction.interactions.favourite.headline": "Favorito", - "introduction.interactions.favourite.text": "Puedes guardar una barritada para más tarde, y hacer saber a la persona autora que te gustó, dándole a favorita.", - "introduction.interactions.reblog.headline": "Rebarritar", - "introduction.interactions.reblog.text": "Puedes compartir las barritadas de otras personas con tus seguidoras rebarritando las mismas.", + "introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.", + "introduction.interactions.reblog.headline": "Retootear", + "introduction.interactions.reblog.text": "Puedes compartir los toots de otras personas con tus seguidores retooteando los mismos.", "introduction.interactions.reply.headline": "Responder", - "introduction.interactions.reply.text": "Puedes responder a tus propias barritadas y los de otras personas, que se encadenarán juntos en una conversación.", + "introduction.interactions.reply.text": "Puedes responder a tus propios toots y los de otras personas, que se encadenarán juntos en una conversación.", "introduction.welcome.action": "¡Vamos!", "introduction.welcome.headline": "Primeros pasos", "introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.", "keyboard_shortcuts.back": "volver atrás", "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados", - "keyboard_shortcuts.boost": "rebarritar", + "keyboard_shortcuts.boost": "reipoxta", "keyboard_shortcuts.column": "enfocar un estado en una de las columnas", "keyboard_shortcuts.compose": "enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", @@ -225,7 +225,7 @@ "keyboard_shortcuts.my_profile": "abrir tu perfil", "keyboard_shortcuts.notifications": "abrir la columna de notificaciones", "keyboard_shortcuts.open_media": "para abrir archivos multimedia", - "keyboard_shortcuts.pinned": "abrir la lista de barritadas destacadas", + "keyboard_shortcuts.pinned": "abrir la lista de toots destacados", "keyboard_shortcuts.profile": "abrir el perfil del autor", "keyboard_shortcuts.reply": "para responder", "keyboard_shortcuts.requests": "abrir la lista de peticiones de seguidores", @@ -233,7 +233,7 @@ "keyboard_shortcuts.start": "abrir la columna \"comenzar\"", "keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)", "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios", - "keyboard_shortcuts.toot": "para comenzar un nuevo bramido", + "keyboard_shortcuts.toot": "para comenzar un nuevo toot", "keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda", "keyboard_shortcuts.up": "para ir hacia arriba en la lista", "lightbox.close": "Cerrar", @@ -259,7 +259,7 @@ "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronología local", - "navigation_bar.compose": "Barrita", + "navigation_bar.compose": "Escribir un nuevo toot", "navigation_bar.direct": "Mensajes directos", "navigation_bar.discover": "Descubrir", "navigation_bar.domain_blocks": "Dominios ocultos", @@ -274,7 +274,7 @@ "navigation_bar.logout": "Cerrar sesión", "navigation_bar.mutes": "Usuarios silenciados", "navigation_bar.personal": "Personal", - "navigation_bar.pins": "Barritadas fijadas", + "navigation_bar.pins": "Toots fijados", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Cronología federada", "navigation_bar.security": "Seguridad", @@ -284,7 +284,7 @@ "notification.mention": "{name} te ha mencionado", "notification.own_poll": "Tu encuesta ha terminado", "notification.poll": "Una encuesta en la que has votado ha terminado", - "notification.reblog": "{name} ha rebarritado tu estado", + "notification.reblog": "{name} ha retooteado tu estado", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", "notifications.column_settings.alert": "Notificaciones de escritorio", @@ -297,11 +297,11 @@ "notifications.column_settings.mention": "Menciones:", "notifications.column_settings.poll": "Resultados de la votación:", "notifications.column_settings.push": "Notificaciones push", - "notifications.column_settings.reblog": "Rebarritadas:", + "notifications.column_settings.reblog": "Retoots:", "notifications.column_settings.show": "Mostrar en columna", "notifications.column_settings.sound": "Reproducir sonido", "notifications.filter.all": "Todos", - "notifications.filter.boosts": "Rebarritadas", + "notifications.filter.boosts": "Retoots", "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", @@ -341,14 +341,14 @@ "report.target": "Reportando", "search.placeholder": "Buscar", "search_popout.search_format": "Formato de búsqueda avanzada", - "search_popout.tips.full_text": "Búsquedas de texto recuperan entradas que has escrito, marcado como favoritas, rebarritado o en los que has sido mencionada, así como usuarias, nombres y etiquetas.", + "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", "search_popout.tips.hashtag": "etiqueta", "search_popout.tips.status": "estado", "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, persona usuaria y etiqueta", "search_popout.tips.user": "usuario", "search_results.accounts": "Gente", "search_results.hashtags": "Etiquetas", - "search_results.statuses": "Barritadas", + "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Buscar bramidos por su contenido no está disponible en este servidor de Mastodonte.", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "status.admin_account": "Abrir interfaz de moderación para @{name}", @@ -372,12 +372,12 @@ "status.mute_conversation": "Silenciar conversación", "status.open": "Expandir estado", "status.pin": "Fijar", - "status.pinned": "Barritada fijada", + "status.pinned": "Toot fijado", "status.read_more": "Leer más", - "status.reblog": "Rebarritar", + "status.reblog": "ReIpoxta", "status.reblog_private": "Implusar a la audiencia original", - "status.reblogged_by": "Rebarritado por {name}", - "status.reblogs.empty": "Nadie impulsó esta barritada todavía. Cuando alguien lo haga, aparecerá aqui.", + "status.reblogged_by": "Retooteado por {name}", + "status.reblogs.empty": "Nadie impulsó este toot todavía. Cuando alguien lo haga, aparecerá aqui.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", "status.reply": "Responder", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index c5bc1f214..94e73ae3d 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Grupp", "account.block": "Blokeeri @{name}", "account.block_domain": "Peida kõik domeenist {domain}", "account.blocked": "Blokeeritud", @@ -15,7 +15,7 @@ "account.followers.empty": "Keegi ei jälgi seda kasutajat veel.", "account.follows": "Jälgib", "account.follows.empty": "See kasutaja ei jälgi veel kedagi.", - "account.follows_you": "Jälgib sind", + "account.follows_you": "Jälgib Teid", "account.hide_reblogs": "Peida upitused kasutajalt @{name}", "account.last_status": "Viimati aktiivne", "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", @@ -44,8 +44,8 @@ "alert.unexpected.message": "Tekkis ootamatu viga.", "alert.unexpected.title": "Oih!", "autosuggest_hashtag.per_week": "{count} nädalas", - "boost_modal.combo": "Saad vajutada {combo}, et see järgmine kord vahele jätta", - "bundle_column_error.body": "Mindagi läks valesti selle komponendi laadimisel.", + "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta", + "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.", "bundle_column_error.retry": "Proovi uuesti", "bundle_column_error.title": "Võrgu viga", "bundle_modal_error.close": "Sulge", @@ -63,7 +63,7 @@ "column.lists": "Nimekirjad", "column.mutes": "Vaigistatud kasutajad", "column.notifications": "Teated", - "column.pins": "Kinnitatud upitused", + "column.pins": "Kinnitatud tuututused", "column.public": "Föderatiivne ajajoon", "column_back_button.label": "Tagasi", "column_header.hide_settings": "Peida sätted", @@ -77,15 +77,15 @@ "compose_form.direct_message_warning": "See tuut saadetakse ainult mainitud kasutajatele.", "compose_form.direct_message_warning_learn_more": "Vaata veel", "compose_form.hashtag_warning": "Seda tuuti ei kuvata ühegi sildi all, sest see on kirjendamata. Ainult avalikud tuutid on sildi järgi otsitavad.", - "compose_form.lock_disclaimer": "Sinu konto ei ole {locked}. Igaüks saab sind jälgida ja näha su ainult-jälgijatele postitusi.", + "compose_form.lock_disclaimer": "Teie konto ei ole {locked}. Igaüks saab Teid jälgida ja näha Teie ainult-jälgijatele postitusi.", "compose_form.lock_disclaimer.lock": "lukus", - "compose_form.placeholder": "Millest mõtled?", + "compose_form.placeholder": "Millest mõtlete?", "compose_form.poll.add_option": "Lisa valik", "compose_form.poll.duration": "Küsitluse kestus", "compose_form.poll.option_placeholder": "Valik {number}", "compose_form.poll.remove_option": "Eemalda see valik", - "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.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut", + "compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut", "compose_form.publish": "Tuut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Märgista meedia tundlikuks", @@ -93,28 +93,28 @@ "compose_form.sensitive.unmarked": "Meedia ei ole sensitiivseks märgitud", "compose_form.spoiler.marked": "Tekst on hoiatuse taha peidetud", "compose_form.spoiler.unmarked": "Tekst ei ole peidetud", - "compose_form.spoiler_placeholder": "Kirjuta oma hoiatus siia", + "compose_form.spoiler_placeholder": "Kirjutage oma hoiatus siia", "confirmation_modal.cancel": "Katkesta", "confirmations.block.block_and_report": "Blokeeri & Teata", "confirmations.block.confirm": "Blokeeri", - "confirmations.block.message": "Oled kindel, et soovid blokkida {name}?", + "confirmations.block.message": "Olete kindel, et soovite blokeerida {name}?", "confirmations.delete.confirm": "Kustuta", - "confirmations.delete.message": "Oled kindel, et soovid selle staatuse kustutada?", + "confirmations.delete.message": "Olete kindel, et soovite selle staatuse kustutada?", "confirmations.delete_list.confirm": "Kustuta", - "confirmations.delete_list.message": "Oled kindel, et soovid selle nimekirja püsivalt kustutada?", + "confirmations.delete_list.message": "Olete kindel, et soovite selle nimekirja püsivalt kustutada?", "confirmations.domain_block.confirm": "Peida terve domeen", - "confirmations.domain_block.message": "Oled ikka päris kindel, et soovid blokeerida terve {domain}? Enamikul juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatav. Sa ei näe selle domeeni sisu üheski avalikus ajajoones või teadetes. Sinu jälgijad sellest domeenist eemaldatakse.", + "confirmations.domain_block.message": "Olete ikka päris kindel, et soovite blokeerida terve {domain}? Enamikul juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatav. Te ei näe selle domeeni sisu üheski avalikus ajajoones või teadetes. Teie jälgijad sellest domeenist eemaldatakse.", "confirmations.logout.confirm": "Välju", - "confirmations.logout.message": "Kas oled kindel, et soovid välja logida?", + "confirmations.logout.message": "Kas olete kindel, et soovite välja logida?", "confirmations.mute.confirm": "Vaigista", "confirmations.mute.explanation": "See peidab postitusi temalt ning postitusi, kus mainitakse neid, kuid see lubab neil ikka näha Teie postitusi ning Teid jälgida.", - "confirmations.mute.message": "Oled kindel, et soovid {name} vaigistada?", + "confirmations.mute.message": "Olete kindel, et soovite {name} vaigistada?", "confirmations.redraft.confirm": "Kustuta & taasalusta", - "confirmations.redraft.message": "Oled kindel, et soovid selle staatuse kustutada ja alustada uuesti? Lemmikud ja upitused lähevad kaotsi ja vastused originaaalpostitusele jäävad orvuks.", + "confirmations.redraft.message": "Olete kindel, et soovite selle staatuse kustutada ja alustada uuesti? Lemmikud ja upitused lähevad kaotsi ja vastused originaaalpostitusele jäävad orvuks.", "confirmations.reply.confirm": "Vasta", - "confirmations.reply.message": "Kohene vastamine kirjutab üle sõnumi, mida hetkel koostad. Oled kindel, et soovid jätkata?", + "confirmations.reply.message": "Praegu vastamine kirjutab üle sõnumi, mida hetkel koostate. Olete kindel, et soovite jätkata?", "confirmations.unfollow.confirm": "Ära jälgi", - "confirmations.unfollow.message": "Oled kindel, et ei soovi jälgida {name}?", + "confirmations.unfollow.message": "Olete kindel, et ei soovi rohkem jälgida kasutajat {name}?", "conversation.delete": "Kustuta vestlus", "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", @@ -142,20 +142,20 @@ "empty_column.account_timeline": "Siin tuute ei ole!", "empty_column.account_unavailable": "Profiil pole saadaval", "empty_column.blocks": "Sa ei ole veel ühtegi kasutajat blokeerinud.", - "empty_column.bookmarked_statuses": "Sul pole veel järjehoidjatesse lisatud tuututusi. Kui lisad mõne, näed neid siin.", - "empty_column.community": "Kohalik ajajoon on tühi. Kirjuta midagi avalikult, et pall veerema saada!", - "empty_column.direct": "Sul ei veel otsesõnumeid. Kui saadad või võtad mõne vastu, ilmuvad nad siia.", + "empty_column.bookmarked_statuses": "Teil pole veel järjehoidjatesse lisatud tuututusi. Kui lisate mõne, näete neid siin.", + "empty_column.community": "Kohalik ajajoon on tühi. Kirjutage midagi avalikult, et pall veerema ajada!", + "empty_column.direct": "Teil ei ole veel otsesõnumeid. Kui saadate või võtate mõne vastu, ilmuvad nad siia.", "empty_column.domain_blocks": "Siin ei ole veel peidetud domeene.", - "empty_column.favourited_statuses": "Sul pole veel lemmikuid tuute. Kui märgid mõne, näed neid siin.", + "empty_column.favourited_statuses": "Teil pole veel lemmikuid tuute. Kui märgite mõne, näete neid siin.", "empty_column.favourites": "Keegi pole veel seda tuuti lemmikuks märkinud. Kui seegi seda teeb, näed seda siin.", - "empty_column.follow_requests": "Sul pole veel ühtegi jälgimise taotlust. Kui saad mõne, näed seda siin.", + "empty_column.follow_requests": "Teil pole veel ühtegi jälgimise taotlust. Kui saate mõne, näete neid siin.", "empty_column.hashtag": "Selle sildiga pole veel midagi.", - "empty_column.home": "Sinu kodu ajajoon on tühi! Külasta {public} või kasuta otsingut alustamaks ja kohtamaks teisi kasutajaid.", + "empty_column.home": "Teie kodu ajajoon on tühi! Külastage {public} või kasutage otsingut alustamaks ja kohtamaks teisi kasutajaid.", "empty_column.home.public_timeline": "avalik ajajoon", "empty_column.list": "Siin nimstus pole veel midagi. Kui selle nimistu liikmed postitavad uusi staatusi, näed neid siin.", - "empty_column.lists": "Sul ei ole veel ühtegi nimekirja. Kui lood mõne, näed seda siin.", - "empty_column.mutes": "Sa pole veel ühtegi kasutajat vaigistanud.", - "empty_column.notifications": "Sul ei ole veel teateid. Suhtle teistega alustamaks vestlust.", + "empty_column.lists": "Teil ei ole veel ühtegi nimekirja. Kui loote mõne, näete neid siin.", + "empty_column.mutes": "Te pole veel ühtegi kasutajat vaigistanud.", + "empty_column.notifications": "Teil ei ole veel teateid. Suhelge teistega alustamaks vestlust.", "empty_column.public": "Siin pole midagi! Kirjuta midagi avalikut või jälgi ise kasutajaid täitmaks seda ruumi", "error.unexpected_crash.explanation": "Meie poolse probleemi või veebilehitseja ühilduvus probleemi tõttu ei suutnud me Teile seda lehekülge korrektselt näidata.", "error.unexpected_crash.next_steps": "Proovige lehekülge uuesti avada. Kui see ei aita, võite proovida kasutada Mastodoni mõne muu veebilehitseja või äppi kaudu.", @@ -168,7 +168,7 @@ "getting_started.documentation": "Dokumentatsioon", "getting_started.heading": "Alustamine", "getting_started.invite": "Kutsu inimesi", - "getting_started.open_source_notice": "Mastodon on avatud lähtekoodiga tarkvara. Saad panustada või teatada probleemidest GitHubis {github}.", + "getting_started.open_source_notice": "Mastodon on avatud lähtekoodiga tarkvara. Saate panustada või teatada probleemidest GitHubis {github}.", "getting_started.security": "Turvalisus", "getting_started.terms": "Kasutustingimused", "hashtag.column_header.tag_mode.all": "ja {additional}", @@ -190,19 +190,19 @@ "introduction.federation.federated.headline": "Föderatiivne", "introduction.federation.federated.text": "Avalikud postitused teistest föderatsiooni serveritest kuvatakse föderatiivsel ajajoonel.", "introduction.federation.home.headline": "Kodu", - "introduction.federation.home.text": "Inimest postitused keda jälgid kuvatakse sinu koduajajoonel. Saad jälgida igaüht igas serveris!", + "introduction.federation.home.text": "Inimeste, keda jälgite, postitused kuvatakse Teie koduajajoonel. Saate jälgida igaüht igas serveris!", "introduction.federation.local.headline": "Kohalik", "introduction.federation.local.text": "Samas serveris olevate inimeste postitused kuvatakse kohalikul ajajoonel.", "introduction.interactions.action": "Välju õpetusest!", "introduction.interactions.favourite.headline": "Lemmik", - "introduction.interactions.favourite.text": "Saad tuuti salvestada ja anda autorile teada, et meeldis märkides selle lemmikuks.", + "introduction.interactions.favourite.text": "Saate tuuti salvestada ja anda autorile teada, et see meeldis Teile, märkides selle lemmikuks.", "introduction.interactions.reblog.headline": "Upita", - "introduction.interactions.reblog.text": "Saad jagada teiste inimeste tuute oma jälgijatega upitades neid.", + "introduction.interactions.reblog.text": "Saate jagada teiste inimeste tuute oma jälgijatega neid upitades.", "introduction.interactions.reply.headline": "Vasta", - "introduction.interactions.reply.text": "Saad vastata teiste ja enda tuutidele, mis ühendab nad kokku aruteluks.", + "introduction.interactions.reply.text": "Saate vastata teiste ja enda tuutidele, mis ühendab nad kokku aruteluks.", "introduction.welcome.action": "Lähme!", "introduction.welcome.headline": "Esimesed sammud", - "introduction.welcome.text": "Teretulemast fediversumisse! Mõne aja pärast saad avaldada sõnumeid ja rääkida oma sõpradega läbi laia valiku serverite. Aga see server, {domain}, on eriline—ta majutab sinu profiili. Seega jäta ta nimi meelde.", + "introduction.welcome.text": "Teretulemast fediversumisse! Mõne aja pärast saate avaldada sõnumeid ja rääkida oma sõpradega läbi laia valiku serverite. Aga see server, {domain}, on eriline—see majutab sinu profiili. Seega jäta selle nimi meelde.", "keyboard_shortcuts.back": "tagasiminekuks", "keyboard_shortcuts.blocked": "avamaks blokeeritud kasutajate nimistut", "keyboard_shortcuts.boost": "upitamiseks", @@ -247,8 +247,8 @@ "lists.edit.submit": "Muuda pealkiri", "lists.new.create": "Lisa nimistu", "lists.new.title_placeholder": "Uus nimistu pealkiri", - "lists.search": "Otsi sinu poolt jälgitavate inimese hulgast", - "lists.subheading": "Sinu nimistud", + "lists.search": "Otsi Teie poolt jälgitavate inimese hulgast", + "lists.subheading": "Teie nimistud", "load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}", "loading_indicator.label": "Laeb..", "media_gallery.toggle_visible": "Lülita nähtavus", @@ -278,15 +278,15 @@ "navigation_bar.preferences": "Eelistused", "navigation_bar.public_timeline": "Föderatiivne ajajoon", "navigation_bar.security": "Turvalisus", - "notification.favourite": "{name} märkis su staatuse lemmikuks", - "notification.follow": "{name} jälgib sind", + "notification.favourite": "{name} märkis Teie staatuse lemmikuks", + "notification.follow": "{name} jälgib nüüd Teid", "notification.follow_request": "{name} soovib Teid jälgida", - "notification.mention": "{name} mainis sind", + "notification.mention": "{name} mainis Teid", "notification.own_poll": "Teie küsitlus on lõppenud", - "notification.poll": "Küsitlus, milles osalesid, on lõppenud", - "notification.reblog": "{name} upitas su staatust", + "notification.poll": "Küsitlus, milles osalesite, on lõppenud", + "notification.reblog": "{name} upitas Teie staatust", "notifications.clear": "Puhasta teated", - "notifications.clear_confirmation": "Oled kindel, et soovid püsivalt kõik oma teated puhastada?", + "notifications.clear_confirmation": "Olete kindel, et soovite püsivalt kõik oma teated eemaldada?", "notifications.column_settings.alert": "Töölauateated", "notifications.column_settings.favourite": "Lemmikud:", "notifications.column_settings.filter_bar.advanced": "Kuva kõik kategooriad", @@ -326,7 +326,7 @@ "privacy.unlisted.short": "Määramata", "refresh": "Värskenda", "regeneration_indicator.label": "Laeb…", - "regeneration_indicator.sublabel": "Sinu kodu voog on ettevalmistamisel!", + "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!", "relative_time.days": "{number}p", "relative_time.hours": "{number}t", "relative_time.just_now": "nüüd", @@ -335,7 +335,7 @@ "reply_indicator.cancel": "Tühista", "report.forward": "Edasta kasutajale {target}", "report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?", - "report.hint": "See teade saadetakse sinu serveri moderaatoritele. Te saate lisada selgituse selle kohta, miks selle kasutaja kohta teate esitasite, siin:", + "report.hint": "See teade saadetakse Teie serveri moderaatoritele. Te saate lisada selgituse selle kohta, miks selle kasutaja kohta teate esitasite, siin:", "report.placeholder": "Lisaks kommentaarid", "report.submit": "Saada", "report.target": "Teatamine {target} kohta", @@ -394,7 +394,7 @@ "status.unmute_conversation": "Ära vaigista vestlust", "status.unpin": "Kinnita profiililt lahti", "suggestions.dismiss": "Eira soovitust", - "suggestions.header": "Sind võib huvitada…", + "suggestions.header": "Teid võib huvitada…", "tabs_bar.federated_timeline": "Föderatiivne", "tabs_bar.home": "Kodu", "tabs_bar.local_timeline": "Kohalik", @@ -407,7 +407,7 @@ "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {inimene} other {inimesed}} talking", "trends.trending_now": "Praegu populaarne", - "ui.beforeunload": "Sinu mustand läheb kaotsi, kui lahkud Mastodonist.", + "ui.beforeunload": "Teie mustand läheb kaotsi, kui lahkute Mastodonist.", "upload_area.title": "Lohista & aseta üleslaadimiseks", "upload_button.label": "Lisa meedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Faili üleslaadimise limiit ületatud.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 6d2da8569..ffb77d9f6 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Ajouter ou retirer des listes", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Groupe", "account.block": "Bloquer @{name}", "account.block_domain": "Tout masquer venant de {domain}", "account.blocked": "Bloqué·e", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Durée du sondage", "compose_form.poll.option_placeholder": "Choix {number}", "compose_form.poll.remove_option": "Supprimer ce choix", - "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.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix", + "compose_form.poll.switch_to_single": "Changer le sondage pour autoriser qu'un seul choix", "compose_form.publish": "Pouet", "compose_form.publish_loud": "{publish} !", "compose_form.sensitive.hide": "Marquer le média comme sensible", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 4bfb6b5c8..695017b0e 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Engadir ou eliminar das listaxes", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloquear @{name}", "account.block_domain": "Agochar todo de {domain}", "account.blocked": "Bloqueado", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Duración da enquisa", "compose_form.poll.option_placeholder": "Opción {number}", "compose_form.poll.remove_option": "Eliminar esta opción", - "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.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas", + "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index aa4c9bc84..8e7b492fe 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grup", "account.block": "Blokir @{name}", "account.block_domain": "Sembunyikan segalanya dari {domain}", "account.blocked": "Terblokir", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Durasi jajak pendapat", "compose_form.poll.option_placeholder": "Pilihan {number}", "compose_form.poll.remove_option": "Hapus opsi ini", - "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.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda", + "compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Tandai sebagai media sensitif", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 0fd5be2ac..c1f1b3720 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Bæta á eða fjarlægja af listum", "account.badges.bot": "Róbót", - "account.badges.group": "Group", + "account.badges.group": "Hópur", "account.block": "Útiloka @{name}", "account.block_domain": "Fela allt frá {domain}", "account.blocked": "Útilokaður", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Tímalengd könnunar", "compose_form.poll.option_placeholder": "Valkostur {number}", "compose_form.poll.remove_option": "Fjarlægja þennan valkost", - "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.poll.switch_to_multiple": "Breyta könnun svo hægt sé að hafa marga valkosti", + "compose_form.poll.switch_to_single": "Breyta könnun svo hægt sé að hafa einn stakan valkost", "compose_form.publish": "Tíst", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Merkja myndir sem viðkvæmar", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index d4980d51c..3d5353f2a 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Durata del sondaggio", "compose_form.poll.option_placeholder": "Scelta {number}", "compose_form.poll.remove_option": "Rimuovi questa scelta", - "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.poll.switch_to_multiple": "Modifica sondaggio per consentire scelte multiple", + "compose_form.poll.switch_to_single": "Modifica sondaggio per consentire una singola scelta", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Segna media come sensibile", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 941917fb1..4cb405a89 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -84,8 +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.poll.switch_to_multiple": "複数選択用に変更", + "compose_form.poll.switch_to_single": "単一選択用に変更", "compose_form.publish": "トゥート", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "メディアを閲覧注意にする", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 66d899b2f..635a6c8bd 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제", "account.badges.bot": "봇", - "account.badges.group": "Group", + "account.badges.group": "그룹", "account.block": "@{name}을 차단", "account.block_domain": "{domain} 전체를 숨김", "account.blocked": "차단됨", @@ -84,8 +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.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경", + "compose_form.poll.switch_to_single": "단일 선택 투표로 변경", "compose_form.publish": "툿", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "미디어를 민감함으로 설정하기", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 0708c83ab..7dedbe2cc 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloquear @{name}", "account.block_domain": "Bloquear {domain}", "account.blocked": "Bloqueado", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Duração da enquete", "compose_form.poll.option_placeholder": "Opção {number}", "compose_form.poll.remove_option": "Remover opção", - "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.poll.switch_to_multiple": "Alterar para múltiplos votos", + "compose_form.poll.switch_to_single": "Alterar para voto único", "compose_form.publish": "TOOT", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar mídia como sensível", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index dfcb63fd8..72eebaa1f 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", - "account.badges.group": "Group", + "account.badges.group": "Grupo", "account.block": "Bloquear @{name}", "account.block_domain": "Esconder tudo do domínio {domain}", "account.blocked": "Bloqueado", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Duração da votação", "compose_form.poll.option_placeholder": "Opção {number}", "compose_form.poll.remove_option": "Eliminar esta opção", - "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.poll.switch_to_multiple": "Alterar a votação para permitir múltiplas escolhas", + "compose_form.poll.switch_to_single": "Alterar a votação para permitir uma única escolha", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar multimédia como sensível", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 72c85169a..89f364947 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Управление списками", "account.badges.bot": "Бот", - "account.badges.group": "Group", + "account.badges.group": "Группа", "account.block": "Заблокировать @{name}", "account.block_domain": "Заблокировать {domain}", "account.blocked": "Заблокирован(а)", @@ -84,8 +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.poll.switch_to_multiple": "Переключить в режим выбора нескольких ответов", + "compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа", "compose_form.publish": "Запостить", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Отметить медиафайл как деликатный", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 0c42944ee..56e383da7 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ", "account.badges.bot": "บอต", - "account.badges.group": "Group", + "account.badges.group": "กลุ่ม", "account.block": "ปิดกั้น @{name}", "account.block_domain": "ซ่อนทุกอย่างจาก {domain}", "account.blocked": "ปิดกั้นอยู่", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 6920d10da..514e7b956 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Listelere ekle veya kaldır", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grup", "account.block": "@{name} adlı kişiyi engelle", "account.block_domain": "{domain} alanından her şeyi gizle", "account.blocked": "Engellenmiş", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Anket süresi", "compose_form.poll.option_placeholder": "Seçim {number}", "compose_form.poll.remove_option": "Bu seçimi kaldır", - "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.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir", + "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir", "compose_form.publish": "Tootla", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Medyayı hassas olarak işaretle", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 2d972cf04..d94be9f5b 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Nhóm", "account.block": "Chặn @{name}", "account.block_domain": "Ẩn mọi thứ từ {domain}", "account.blocked": "Đã chặn", @@ -84,8 +84,8 @@ "compose_form.poll.duration": "Thời hạn", "compose_form.poll.option_placeholder": "Lựa chọn {number}", "compose_form.poll.remove_option": "Xóa lựa chọn này", - "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.poll.switch_to_multiple": "Sửa thăm dò để cho phép nhiều lựa chọn", + "compose_form.poll.switch_to_single": "Sửa thăm dò để cho phép một lựa chọn", "compose_form.publish": "Tút", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Đánh dấu hình ảnh nhạy cảm", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index b8e55776d..e25172d6b 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -25,7 +25,7 @@ ca: Aquest compte és un actor virtual utilitzat per a representar al propi servidor i no cap usuari individual. S'utilitza per a propòsits de federació i no ha de ser bloquejat si no voleu bloquejar tota la instància, en aquest cas hauríeu d'utilitzar un bloqueig de domini. learn_more: Més informació - privacy_policy: Política de privacitat + privacy_policy: Política de privadesa see_whats_happening: Mira què està passant server_stats: 'Estadístiques del servidor:' source_code: Codi font @@ -71,9 +71,9 @@ ca: following: Has d'estar seguint la persona que vulguis avalar posts: one: Barrita - other: Barritadas - posts_tab_heading: Barritadas - posts_with_replies: Barritades i respostes + other: Tuts + posts_tab_heading: Tuts + posts_with_replies: Tuts i respostes reserved_username: El nom d'usuari està reservat roles: admin: Administrador @@ -98,12 +98,12 @@ ca: avatar: Avatar by_domain: Domini change_email: - changed_msg: El correu electrònic del compte s'ha canviat correctament! - current_email: Correu electrònic actual - label: Canviar l'adreça de correu - new_email: Nova adreça de correu - submit: Canviar adreça de correu - title: Canviar adreça de correu de %{username} + changed_msg: L'adreça electrònica del compte s'ha canviat correctament! + current_email: Adreça electrònica actual + label: Canvia l'adreça electrònica + new_email: Adreça electrònica nova + submit: Canvia l'adreça electrònica + title: Canvia l'adreça electrònica de %{username} confirm: Confirma confirmed: Confirmat confirming: Confirmant @@ -112,11 +112,11 @@ ca: disable: Inhabilita disable_two_factor_authentication: Desactiva 2FA disabled: Inhabilitat - display_name: Nom de visualització + display_name: Nom visible domain: Domini edit: Edita - email: Correu electrònic - email_status: Estat del correu electrònic + email: Adreça electrònica + email_status: Estat de l'adreça electrònica enable: Habilita enabled: Habilitat followers: Seguidors @@ -345,7 +345,7 @@ ca: title: Nova adreça de correu en la llista negra title: Llista negra de correus electrònics followers: - back_to_account: Tornar al compte + back_to_account: Torna al compte title: Seguidors de %{acct} instances: by_domain: Domini @@ -411,14 +411,14 @@ ca: none: Cap created_at: Reportat mark_as_resolved: Marca com a resolt - mark_as_unresolved: Marcar sense resoldre + mark_as_unresolved: Marcar com a sense resoldre notes: - create: Afegir nota - create_and_resolve: Resoldre amb nota - create_and_unresolve: Reobrir amb nota - delete: Esborrar + create: Afegeix una nota + create_and_resolve: Resol amb una nota + create_and_unresolve: Reobre amb una nota + delete: Esborra placeholder: Descriu les accions que s'han pres o qualsevol altra actualització relacionada… - reopen: Reobrir informe + reopen: Reobre l'informe report: 'Informe #%{id}' reported_account: Compte reportat reported_by: Reportat per @@ -426,25 +426,25 @@ ca: resolved_msg: Informe resolt amb èxit! status: Estat title: Informes - unassign: Treure assignació + unassign: Treu l'assignació unresolved: No resolt updated_at: Actualitzat settings: activity_api_enabled: - desc_html: Compte d'estatus publicats localment, usuaris actius i registres nous en períodes setmanals + desc_html: Nombre d'estats publicats localment, usuaris actius i registres nous en períodes setmanals title: Publica estadístiques agregades sobre l'activitat de l'usuari bootstrap_timeline_accounts: desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals. title: El seguiment per defecte per als usuaris nous contact_information: - email: Introdueix una adreça de correu electrònic pública + email: Adreça electrònica d'empresa username: Nom d'usuari del contacte custom_css: desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina title: CSS personalitzat default_noindex: desc_html: Afecta a tots els usuaris que no han canviat aquest ajustament ells mateixos - title: Configurar per defecte als usuaris fora de l'indexació dels motor de cerca + title: Configura per defecte als usuaris fora de la indexació del motor de cerca domain_blocks: all: Per a tothom disabled: Per a ningú @@ -554,7 +554,7 @@ ca: updated_msg: Ajustaments d'etiquetes actualitzats amb èxit title: Administració warning_presets: - add_new: Afegir nou + add_new: Afegeix-ne un de nou delete: Esborra edit: Edita edit_preset: Edita l'avís predeterminat @@ -571,11 +571,11 @@ ca: body: 'La etiqueta #%{name} està actualment en tendència però no s''ha revisat prèviament. No es mostrarà públicament tret que ho permetis o guardis el formulari tal com està per a no tornar a escoltar res al respecte.' subject: Nova etiqueta pendent de revisió a %{instance} (#%{name}) aliases: - add_new: Crear àlies + add_new: Crea un àlies created_msg: Nou àlies creat amb èxit. Ara pots iniciar el moviment des de'l compte vell. deleted_msg: Àlies eliminat amb èxit. Moure't des d'aquell compte a aquests ja no serà possible. hint_html: Si et vols moure des d'un altre compte a aquest, aquí pots crear un àlies, el qual és requerit abans que puguis procedir a moure els seguidors del compte vell a aquest. Aquesta acció és per si mateixa inofensiva i reversible. La migració del compte és iniciada des de'l compte vell. - remove: Desvincular l'àlies + remove: Desvincula l'àlies appearance: advanced_web_interface: Interfície web avançada advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, cronología federada i qualsevol número de llistes i etiquetes.' @@ -587,7 +587,7 @@ ca: guide_link: https://crowdin.com/project/mastodon guide_link_text: Tothom hi pot contribuir. sensitive_content: Contingut sensible - toot_layout: Disseny de la barritada + toot_layout: Disseny del tut application_mailer: notification_preferences: Canvia les preferències de correu salutation: "%{name}," @@ -618,7 +618,7 @@ ca: forgot_password: Has oblidat la contrasenya? invalid_reset_password_token: L'enllaç de restabliment de la contrasenya no és vàlid o ha caducat. Torna-ho a provar. login: Inicia sessió - logout: Tanca sessió + logout: Surt migrate_account: Mou a un compte diferent migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots configurar aquí. or_log_in_with: O inicia sessió amb @@ -720,7 +720,7 @@ ca: hint_html: Pots sol·licitar un arxiu de les teves barritades i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies. in_progress: S'està compilant el teu arxiu... request: Sol·licita el teu arxiu - size: Tamany + size: Mida blocks: Persones que has blocat csv: CSV domain_blocks: Bloquejos de dominis @@ -748,7 +748,7 @@ ca: empty: No hi tens cap filtre. title: Filtres new: - title: Afegir nou filtre + title: Afegeix un filtre footer: developers: Desenvolupadors more: Més… @@ -862,7 +862,7 @@ ca: title: Moderació notification_mailer: digest: - action: Veure totes les notificacions + action: Mostra totes les notificacions body: Un resum del que et vas perdre desde la darrera visita el %{since} mention: "%{name} t'ha mencionat en:" new_followers_summary: @@ -921,6 +921,7 @@ ca: duration_too_long: està massa lluny en el futur duration_too_short: és massa aviat expired: L'enquesta ja ha finalitzat + invalid_choice: L’opció de vot escollida no existeix over_character_limit: no pot ser superior a %{max} caràcters cadascun too_few_options: ha de tenir més d'una opció too_many_options: no pot contenir més de %{max} opcions @@ -1009,12 +1010,12 @@ ca: account: Compte account_settings: Ajustos del compte aliases: Àlies de compte - appearance: Aparènça + appearance: Aparença authorized_apps: Aplicacions autoritzades back: Torna a Mastodont delete: Eliminació del compte development: Desenvolupament - edit_profile: Editar perfil + edit_profile: Edita el perfil export: Exportació de dades featured_tags: Etiquetes destacades identity_proofs: Proves d'identitat @@ -1058,7 +1059,7 @@ ca: one: "%{count} vot" other: "%{count} vots" vote: Vota - show_more: Mostrar més + show_more: Mostra'n més sign_in_to_participate: Inicia la sessió per participar a la conversa title: '%{name}: "%{quote}"' visibilities: @@ -1069,7 +1070,7 @@ ca: unlisted: No llistat unlisted_long: Tothom ho pot veure, però no es mostra en la cronología federada stream_entries: - pinned: Barritada fixada + pinned: Tut fixat reblogged: ha impulsat sensitive_content: Contingut sensible tags: @@ -1158,9 +1159,9 @@ ca:

Originalment adaptat des del Discourse privacy policy.

title: "%{instance} Condicions del servei i política de privadesa" themes: - contrast: Mastodont (Alt contrast) - default: Mastodont (Fosc) - mastodon-light: Mastodont (Clar) + contrast: Mastodon (alt contrast) + default: Mastodon (fosc) + mastodon-light: Mastodon (clar) time: formats: default: "%b %d, %Y, %H:%M" @@ -1205,7 +1206,7 @@ ca: silence: Compte limitat suspend: Compte suspès welcome: - edit_profile_action: Configurar perfil + edit_profile_action: Configura el perfil edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots blocar el teu compte. explanation: Aquests són alguns consells per a començar final_action: Comença a publicar @@ -1214,7 +1215,7 @@ ca: full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor. review_preferences_action: Canviar preferències review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. - subject: Benvingut/da a Mastodont + subject: Et donem la benvinguda a Mastodont tip_federated_timeline: La cronología federada és el cabal principal de la xarxa Mastodont. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! diff --git a/config/locales/co.yml b/config/locales/co.yml index 0d6a23a45..4cc1ed5fb 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -921,6 +921,7 @@ co: duration_too_long: hè troppu luntanu indè u futuru duration_too_short: hè troppu prossimu expired: U scandagliu hè digià finitu + invalid_choice: L'uzzione di votu scelta ùn esista micca over_character_limit: ùn ponu micca esse più longhi chè %{max} caratteri too_few_options: deve avè più d'un'uzzione too_many_options: ùn pò micca avè più di %{max} uzzione diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 678aac7ee..a9b101758 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -945,6 +945,7 @@ cs: duration_too_long: je příliš daleko v budoucnosti duration_too_short: je příliš brzy expired: Anketa již skončila + invalid_choice: Zvolená možnost hlasování neexistuje over_character_limit: nesmí být žádná delší než %{max} znaků too_few_options: musí mít více než jednu položku too_many_options: nesmí obsahovat více než %{max} položek diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml index 637edc2cd..573d055de 100644 --- a/config/locales/devise.ca.yml +++ b/config/locales/devise.ca.yml @@ -40,7 +40,7 @@ ca: reconfirmation_instructions: explanation: Confirma la nova adreça per canviar el teu correu electrònic. extra: Si no has iniciat aquest canvi, ignora aquest correu electrònic. L'adreça electrònica del compte de Mastodon no canviarà fins que accedeixis a l'enllaç de dalt. - subject: 'Mastodon: Confirma el correu electrònic per a %{instance}' + subject: 'Mastodon: confirma l''adreça electrònica per a %{instance}' title: Verifica l'adreça de correu electrònic reset_password_instructions: action: Canviar contrasenya @@ -76,8 +76,8 @@ ca: signed_up: Benvingut! T'has registrat amb èxit. signed_up_but_inactive: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte encara no s'ha activat. signed_up_but_locked: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte està blocat. - signed_up_but_pending: S'ha enviat un missatge amb un enllaç de confirmació a la teva adreça de correu electrònic. Després de que hagis fet clic a l'enllaç, revisarem la teva sol·licitud. Se't notificarà si s'aprova. - signed_up_but_unconfirmed: Un missatge amb un enllaç de confirmació ha estat enviat per correu electrònic. Si us plau segueixi l'enllaç per activar el seu compte. + signed_up_but_pending: S'ha enviat un missatge amb un enllaç de confirmació a la teva adreça de correu electrònic. Després que hagis fet clic a l'enllaç, revisarem la sol·licitud. Se't notificarà si s'aprova. + signed_up_but_unconfirmed: S'ha enviat per correu electrònic un missatge amb un enllaç de confirmació. Fes clic a l'enllaç per a activar el compte. update_needs_confirmation: Ha actualitzat el seu compte amb èxit, però necessitem verificar la nova adreça de correu. Si us plau comprovi el correu i segueixi l'enllaç per confirmar la nova adreça de correu. updated: El seu compte ha estat actualitzat amb èxit. sessions: @@ -86,8 +86,8 @@ ca: signed_out: Has tancat la sessió amb èxit. unlocks: send_instructions: En pocs minuts rebràs un correu electrònic amb instruccions sobre com desbloquejar el teu compte. Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu. - send_paranoid_instructions: Si el compte existeix, rebràs en pocs minuts un correu electrònic amb instruccions sobre com desbloquejar-lo. Si us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu. - unlocked: El compte s'ha blocat correctament. Inicia sessió per a continuar. + send_paranoid_instructions: Si el compte existeix, rebràs en pocs minuts un correu electrònic amb instruccions sobre com desbloquejar-lo. Verifica la carpeta de correu brossa si no has rebut aquest correu. + unlocked: El compte s'ha desblocat correctament. Inicia sessió per a continuar. errors: messages: already_confirmed: ja està confirmat. Intenta d'iniciar sessió diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index cc5ef3867..6772443b0 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -2,7 +2,7 @@ et: devise: confirmations: - confirmed: Sinu e-postiaadress on edukalt kinnitatud. + confirmed: Teie e-postiaadress on edukalt kinnitatud. send_instructions: Te saate paari minuti pärast e-kirja juhistega, kuidas oma e-posti aadressit kinnitada. Palun kontrollige oma rämpsposti kausta juhul, kui Te ei saanud seda e-kirja. send_paranoid_instructions: Kui Teie e-postiaadress eksisteerib meie andmebaasis, saate paari minuti pärast e-kirja juhistega, kuidas oma e-posti aadressit kinnitada. Palun kontrollige oma rämpsposti kausta juhul, kui Te ei saanud seda e-kirja. failure: @@ -10,7 +10,7 @@ et: inactive: Teie konto pole veel aktiveeritud. invalid: Valed %{authentication_keys} või parool. last_attempt: Teil on veel üks katse kuni teie konto on lukustatud. - locked: Sinu konto on lukustatud. + locked: Teie konto on lukustatud. not_found_in_database: Valed %{authentication_keys} või parool. pending: Teie konto on siiani läbivaatlusel. timeout: Teie sessioon on aegunud. Jätkamiseks palun sisenege uuesti. diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 49c7cade9..204ac429b 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -38,7 +38,6 @@ ar: application: تطبيق callback_url: رابط رد النداء delete: حذف - empty: ليس لديك أية تطبيقات. name: التسمية new: تطبيق جديد scopes: المجالات diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index 728780406..3c69cf8e7 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -38,7 +38,6 @@ ca: application: Aplicació callback_url: URL de retorn delete: Suprimeix - empty: No tens cap aplicació. name: Nom new: Aplicació nova scopes: Àmbits @@ -69,13 +68,13 @@ ca: buttons: revoke: Revoca confirmations: - revoke: Estàs segur? + revoke: N'estàs segur? index: application: Aplicació created_at: Creat el date_format: "%A-%m-%d %H:%M:%S" scopes: Àmbits - title: Les teves aplicacions autoritzades + title: Les aplicacions autoritzades errors: messages: access_denied: El propietari del recurs o servidor d'autorizació ha denegat la petició. diff --git a/config/locales/doorkeeper.co.yml b/config/locales/doorkeeper.co.yml index 4f03c0c32..a64a07931 100644 --- a/config/locales/doorkeeper.co.yml +++ b/config/locales/doorkeeper.co.yml @@ -38,7 +38,6 @@ co: application: Applicazione callback_url: URL di richjama delete: Toglie - empty: Ùn avete micca d'applicazione. name: Nome new: Applicazione nova scopes: Scopi diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index 00345db76..8c5c175f5 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -38,7 +38,6 @@ cs: application: Aplikace callback_url: Zpáteční URL delete: Smazat - empty: Nemáte žádné aplikace. name: Název new: Nová aplikace scopes: Rozsahy diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 8b850b56a..65fb2de88 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -38,7 +38,6 @@ de: application: Anwendung callback_url: Callback-URL delete: Löschen - empty: Du hast keine Anwendungen. name: Name new: Neue Anwendung scopes: Befugnisse diff --git a/config/locales/doorkeeper.el.yml b/config/locales/doorkeeper.el.yml index 7423606d4..d4bf0ae77 100644 --- a/config/locales/doorkeeper.el.yml +++ b/config/locales/doorkeeper.el.yml @@ -38,7 +38,6 @@ el: application: Εφαρμογή callback_url: URL επιστροφής (Callback) delete: Διαγραφή - empty: Δεν έχετε αιτήσεις. name: Όνομα new: Νέα εφαρμογή scopes: Εύρος εφαρμογής diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml index 5f54f1a5f..cb12d0e82 100644 --- a/config/locales/doorkeeper.eo.yml +++ b/config/locales/doorkeeper.eo.yml @@ -38,7 +38,6 @@ eo: application: Aplikaĵo callback_url: Revena URL delete: Forigi - empty: Vi havas neniun aplikaĵon. name: Nomo new: Nova aplikaĵo scopes: Ampleksoj @@ -119,6 +118,8 @@ eo: admin:read:accounts: legas senteman informacion de ĉiuj kontoj admin:read:reports: legas konfidencajn informojn de ĉiuj signaloj kaj signalitaj kontoj admin:write: modifu ĉiujn datumojn en la servilo + admin:write:accounts: plenumi agojn de kontrolo sur kontoj + admin:write:reports: plenumi agojn de kontrolo sur signaloj follow: ŝanĝi rilatojn al aliaj kontoj push: ricevi viajn puŝ-sciigojn read: legi ĉiujn datumojn de via konto diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index 85ab7729d..61b14ba16 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -38,7 +38,6 @@ es-AR: application: Aplicación callback_url: Dirección web de respuesta ("callback") delete: Eliminar - empty: No tenés aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index ba437ca9b..75a04eccf 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -38,7 +38,6 @@ es: application: Aplicación callback_url: URL de callback delete: Eliminar - empty: No tienes aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml index d3b011a67..8fb944631 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -38,7 +38,6 @@ et: application: Rakendus callback_url: Ümbersuunamise URL delete: Kustuta - empty: Teil pole rakendusi. name: Nimi new: Uus rakendus scopes: Ulatused diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml index 10ef75dc4..19cc40992 100644 --- a/config/locales/doorkeeper.eu.yml +++ b/config/locales/doorkeeper.eu.yml @@ -38,7 +38,6 @@ eu: application: Aplikazioa callback_url: Itzulera URLa delete: Ezabatu - empty: Ez duzu eskaerarik. name: Izena new: Aplikazio berria scopes: Irismena diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml index c9ca1895e..03a8d7963 100644 --- a/config/locales/doorkeeper.fa.yml +++ b/config/locales/doorkeeper.fa.yml @@ -38,7 +38,6 @@ fa: application: برنامه callback_url: نشانی Callback delete: حذف - empty: شما هیچ برنامه‌ای ندارید. name: نام new: برنامهٔ تازه scopes: دامنه‌ها diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 71547b984..9cb5d754c 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -38,7 +38,6 @@ gl: application: Aplicativo callback_url: URL de chamada delete: Eliminar - empty: Non tes aplicacións. name: Nome new: Novo aplicativo scopes: Permisos diff --git a/config/locales/doorkeeper.id.yml b/config/locales/doorkeeper.id.yml index b461a77b6..efaeaae16 100644 --- a/config/locales/doorkeeper.id.yml +++ b/config/locales/doorkeeper.id.yml @@ -38,7 +38,6 @@ id: application: Aplikasi callback_url: URL Callback delete: Hapus - empty: Anda tidak punya aplikasi. name: Nama new: Aplikasi baru scopes: Cakupan diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml index 68e2b57f3..122b38c04 100644 --- a/config/locales/doorkeeper.it.yml +++ b/config/locales/doorkeeper.it.yml @@ -38,7 +38,6 @@ it: application: Applicazione callback_url: URL di callback delete: Elimina - empty: Non hai applicazioni. name: Nome new: Nuova applicazione scopes: Visibilità diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml index 72c98c00c..67eadbf2d 100644 --- a/config/locales/doorkeeper.ja.yml +++ b/config/locales/doorkeeper.ja.yml @@ -38,7 +38,6 @@ ja: application: アプリ callback_url: コールバックURL delete: 削除 - empty: アプリがありません name: 名前 new: 新規アプリ scopes: アクセス権 diff --git a/config/locales/doorkeeper.kk.yml b/config/locales/doorkeeper.kk.yml index 75f8de542..2c3346b6e 100644 --- a/config/locales/doorkeeper.kk.yml +++ b/config/locales/doorkeeper.kk.yml @@ -38,7 +38,6 @@ kk: application: Қосымша callback_url: Callbаck URL delete: Өшіру - empty: Сізде ешқандай қосымша жоқ. name: Аты new: Жаңа қосымша scopes: Scopеs diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 3d4cb4441..3f9e12857 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -38,7 +38,6 @@ ko: application: 애플리케이션 callback_url: 콜백 URL delete: 삭제 - empty: 어플리케이션이 없습니다 name: 이름 new: 새 애플리케이션 scopes: 범위 diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml index 90d8f9358..215c8795d 100644 --- a/config/locales/doorkeeper.pt-BR.yml +++ b/config/locales/doorkeeper.pt-BR.yml @@ -38,7 +38,6 @@ pt-BR: application: Aplicativos callback_url: Link de retorno delete: Excluir - empty: Não tem aplicações. name: Nome new: Novo aplicativo scopes: Autorizações diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml index 2433f23e9..e23310a18 100644 --- a/config/locales/doorkeeper.pt-PT.yml +++ b/config/locales/doorkeeper.pt-PT.yml @@ -38,7 +38,6 @@ pt-PT: application: Aplicações callback_url: URL de retorno delete: Eliminar - empty: Não tem aplicações. name: Nome new: Nova Aplicação scopes: Autorizações diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index 532e2c9ac..f04a1306d 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -38,7 +38,6 @@ ru: application: Приложение callback_url: Callback URL delete: Удалить - empty: У вас нет созданных приложений. name: Название new: Новое приложение scopes: Разрешения diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index d9367ce5e..af98020c1 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -38,7 +38,6 @@ sv: application: Applikation callback_url: Återkalls URL delete: Ta bort - empty: Du har inga program. name: Namn new: Ny applikation scopes: Omfattning diff --git a/config/locales/doorkeeper.ta.yml b/config/locales/doorkeeper.ta.yml index 2f266a754..879b6ab21 100644 --- a/config/locales/doorkeeper.ta.yml +++ b/config/locales/doorkeeper.ta.yml @@ -16,7 +16,6 @@ ta: error: அய்யோ! உள்ளீடுகளில் உள்ள தவறுகளைச் சரி செய்யுங்கள் index: application: பயன்பாடு - empty: செயலிகள் எதுவும் இல்லை. title: உங்களது பயன்பாடுகள் new: title: புதிய பயன்பாடு diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index 597a65038..33d6944f0 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -36,7 +36,6 @@ th: application: แอปพลิเคชัน callback_url: URL เรียกกลับ delete: ลบ - empty: คุณไม่มีแอปพลิเคชัน name: ชื่อ new: แอปพลิเคชันใหม่ scopes: ขอบเขต diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index a218e3157..b4362f2a2 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -38,7 +38,6 @@ tr: application: Uygulama callback_url: Geri Dönüş URL delete: Sil - empty: Hiç uygulamanız yok. name: İsim new: Yeni uygulama scopes: Kapsam diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 3c640074d..f9374272f 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -652,6 +652,7 @@ eo: success_msg: Via konto estis sukcese forigita warning: email_change_html: Vi povas ŝanĝi vian retadreson sen forigi vian konton + more_details_html: Por pli da detaloj, vidi la privatecan politikon. username_available: Via uzantnomo iĝos denove disponebla username_unavailable: Via uzantnomo restos nedisponebla directories: @@ -850,6 +851,7 @@ eo: title: Nova diskonigo notifications: email_events: Eventoj por retpoŝtaj sciigoj + email_events_hint: 'Elekti la eventojn pri kioj vi volas ricevi sciigojn:' other_settings: Aliaj agordoj de sciigoj number: human: @@ -874,6 +876,7 @@ eo: duration_too_long: estas tro for en la estonteco duration_too_short: estas tro frue expired: La enketo jam finiĝis + invalid_choice: La elektita voĉdono ne ekzistas over_character_limit: ne povas esti po pli longa ol %{max} signoj too_few_options: devas enhavi pli da unu propono too_many_options: ne povas enhavi pli da %{max} proponoj @@ -1023,6 +1026,8 @@ eo: pinned: Alpinglita reblogged: diskonigita sensitive_content: Tikla enhavo + tags: + does_not_match_previous_name: ne kongruas kun la antaŭa nomo terms: title: Uzkondiĉoj kaj privateca politiko de %{instance} themes: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 20c0aff03..da1ad126f 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -921,6 +921,7 @@ es-AR: duration_too_long: está demasiado lejos en el futuro duration_too_short: es demasiado pronto expired: La encuesta ya finalizó + invalid_choice: La opción elegida no existe over_character_limit: no puede ser más largo de %{max} caracteres, cada uno too_few_options: debe tener más de un elemento too_many_options: no puede contener más de %{max} elementos diff --git a/config/locales/es.yml b/config/locales/es.yml index 1c56cff6a..113ea3672 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -70,10 +70,10 @@ es: pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: - one: Barritar + one: Toot other: Toots - posts_tab_heading: Bramidos - posts_with_replies: Bramidos con respuestas + posts_tab_heading: Toots + posts_with_replies: Toots con respuestas reserved_username: El nombre de usuario está reservado roles: admin: Administrador @@ -382,7 +382,7 @@ es: disable: Deshabilitar disabled: Deshabilitado enable: Hablitar - enable_hint: Una vez conectado, tu servidor se suscribirá a todos los bramidos públicos de este relés, y comenzará a enviar los bramidos públicos de este servidor hacia él. + enable_hint: Una vez conectado, tu servidor se suscribirá a todos los toots públicos de este relés, y comenzará a enviar los toots públicos de este servidor hacia él. enabled: Habilitado inbox_url: URL del relés pending: Esperando la aprobación del relés @@ -717,7 +717,7 @@ es: archive_takeout: date: Fecha download: Descargar tu archivo - hint_html: Puedes solicitar un archivo de tus bramidos y materiales subidos. Los datos exportados estarán en formato ActivityPub, legibles por cualquier programa compatible. + hint_html: Puedes solicitar un archivo de tus toots y archivos multimedia subidos. Los datos exportados estarán en formato ActivityPub, legibles por cualquier software compatible. in_progress: Recopilando tu archivo... request: Solicitar tu archivo size: Tamaño @@ -891,8 +891,8 @@ es: subject: Fuiste mencionado por %{name} title: Nueva mención reblog: - body: "%{name} ha rebarritado tu estado:" - subject: "%{name} ha rebarritado tu estado" + body: "%{name} ha retooteado tu estado:" + subject: "%{name} ha retooteado tu estado" title: Nueva difusión notifications: email_events: Eventos para notificaciones por correo electrónico @@ -1047,9 +1047,9 @@ es: open_in_web: Abrir en web over_character_limit: Límite de caracteres de %{max} superado pin_errors: - limit: Ya has fijado el número máximo de bramidos - ownership: El bramido de alguien más no puede fijarse - private: Los bramidos no-públicos no pueden fijarse + limit: Ya has fijado el número máximo de publicaciones + ownership: El toot de alguien más no puede fijarse + private: Los toots no-públicos no pueden fijarse reblog: Un boost no puede fijarse poll: total_people: @@ -1070,8 +1070,8 @@ es: unlisted: Público, pero no mostrar en la historia federada unlisted_long: Todos pueden ver, pero no está listado en las cronologías públicas stream_entries: - pinned: Bramido fijado - reblogged: rebramido + pinned: Toot fijado + reblogged: retooteado sensitive_content: Contenido sensible tags: does_not_match_previous_name: no coincide con el nombre anterior diff --git a/config/locales/et.yml b/config/locales/et.yml index 02bfb636c..16e80ae35 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -924,6 +924,7 @@ et: duration_too_long: kestab liiga kaua duration_too_short: on liiga vara expired: See küsitlus on juba lõppenud + invalid_choice: Valitud küsitluse valikut pole olemas over_character_limit: igaüks ei saa olla rohkem kui %{max} tähemärki too_few_options: peab olema rohkem kui üks vastus too_many_options: ei saa sisaldada rohkem kui %{max} vastust diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 1a24275ee..81c163f7f 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -923,6 +923,7 @@ fa: duration_too_long: در آیندهٔ خیلی دور است duration_too_short: در آیندهٔ خیلی نزدیک است expired: این نظرسنجی به پایان رسیده است + invalid_choice: گزینه رای دادن وجود ندارد over_character_limit: هر کدام نمی‌تواند از %{max} نویسه طولانی‌تر باشد too_few_options: حتماً باید بیش از یک گزینه داشته باشد too_many_options: نمی‌تواند بیشتر از %{max} گزینه داشته باشد diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 705236e7d..9c8f56889 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -339,6 +339,7 @@ fr: delete: Supprimer destroyed_msg: Le blocage de domaine de courriel a été désactivé domain: Domaine + empty: Aucun domaine de courriel n’est actuellement sur liste noire. new: create: Créer le blocage title: Nouveau blocage de domaine de courriel diff --git a/config/locales/hu.yml b/config/locales/hu.yml index ba6fbed7c..ae3cc479c 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -922,6 +922,7 @@ hu: duration_too_long: túl távoli időpont duration_too_short: túl közeli időpont expired: A szavazásnak már vége + invalid_choice: A kiválasztott szavazási lehetőség nem létezik over_character_limit: egyik sem lehet %{max} karakternél hosszabb too_few_options: több, mint egy opciónak kell lennie too_many_options: nem lehet több, mint %{max} opció diff --git a/config/locales/id.yml b/config/locales/id.yml index 99d274122..2a759bc5f 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -892,6 +892,7 @@ id: duplicate_options: berisi item ganda duration_too_short: terlalu cepat expired: Japat telah berakhir + invalid_choice: Opsi pilihan yang dipilih tidak ada over_character_limit: tidak boleh lebih dari %{max} karakter too_few_options: harus punya lebih dari satu item too_many_options: tidak boleh berisi lebih dari %{max} item diff --git a/config/locales/is.yml b/config/locales/is.yml index 424be5ce9..a4d21deb2 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -59,7 +59,7 @@ is: following: Fylgist með joined: Gerðist þátttakandi %{date} last_active: síðasta virkni - link_verified_on: Eignarhald á þessum tengli var athugað þann {date} + link_verified_on: Eignarhald á þessum tengli var athugað þann %{date} media: Myndskrár moved_html: "%{name} hefur verið færður í %{new_profile_link}:" network_hidden: Þessar upplýsingar ekki tiltækar @@ -223,7 +223,7 @@ is: suspend_account: "%{name} setti notandaaðganginn %{target} í bið" unassigned_report: "%{name} fjarlægði úthlutun af skýrslu %{target}" unsilence_account: "%{name} hætti að hylja notandaaðganginn %{target}" - unsuspend_account: "%{name} tók notandaaðganginn {target} úr bið" + unsuspend_account: "%{name} tók notandaaðganginn %{target} úr bið" update_custom_emoji: "%{name} uppfærði tjáningartákn %{target}" update_status: "%{name} uppfærði stöðufærslu frá %{target}" deleted_status: "(eydd stöðufærsla)" @@ -452,6 +452,8 @@ is: users: Til innskráðra staðværra notenda domain_blocks_rationale: title: Birta röksemdafærslu + enable_bootstrap_timeline_accounts: + title: Virkja sjálfgefnar fylgnistillingar fyrir nýja notendur hero: desc_html: Birt á forsíðunni. Mælt með að hún sé a.m.k. 600×100 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins title: Aðalmynd @@ -483,6 +485,9 @@ is: none: Enginn getur nýskráð sig open: Allir geta nýskráð sig title: Nýskráningarhamur + show_known_fediverse_at_about_page: + desc_html: Þegar þetta er óvirkt, takmarkast opinbera tímalínan sem tengt er í af upphafssíðunni við að birta einungis staðvært efni (af sama vefþjóni) + title: Hafa með efni úr skýjasambandi á síðu fyrir óauðkennda opinbera tímalínu show_staff_badge: desc_html: Sýna starfsmannamerki á síðu notandans title: Sýna starfsmannamerki @@ -505,11 +510,15 @@ is: thumbnail: desc_html: Notað við forskoðun í gegnum OpenGraph og API-kerfisviðmót. Mælt með 1200×630 mynddílum title: Smámynd vefþjóns + timeline_preview: + desc_html: Birta tengil í opinbera tímalínu á upphafssíðu og leyfa aðgang API-kerfisviðmóts að opinberri tímalínu án auðkenningar + title: Leyfa óauðkenndan aðgang að opinberri tímalínu title: Stillingar vefsvæðis trendable_by_default: desc_html: Hefur áhrif á myllumerki sem ekki hafa áður verið gerð óleyfileg title: Leyfa myllumerkjum að fara í umræðuna án þess að þau séu fyrst yfirfarin trends: + desc_html: Birta opinberlega þau áður yfirförnu myllumerki sem eru núna í umræðunni title: Myllumerki í umræðunni statuses: back_to_account: Fara aftur á síðu notandaaðgangsins @@ -522,11 +531,13 @@ is: media: title: Myndefni no_media: Ekkert myndefni + no_status_selected: Engum stöðufærslum var breytt þar sem engar voru valdar title: Staða notendaaðganga with_media: Með myndefni tags: accounts_today: Einstök afnot í dag accounts_week: Einstök afnot í þessari viku + breakdown: Samantekt á notkun dagsins eftir uppruna context: Samhengi directory: Í möppunni in_directory: "%{count} í möppunni" @@ -540,6 +551,7 @@ is: trending_right_now: Í umræðunni nákvæmlega núna unique_uses_today: "%{count} færslur í dag" unreviewed: Ekki yfirfarið + updated_msg: Það tókst að uppfæra stillingar myllumerkja title: Stjórnendur warning_presets: add_new: Bæta við nýju @@ -549,15 +561,20 @@ is: title: Sýsla með forstilltar aðvaranir admin_mailer: new_pending_account: + body: Nákvæmari upplýsingar um nýja notandaaðganginn eru hér fyrir neðan. Þú getur samþykkt eða hafnað þessari umsókn. subject: Nýr notandaaðgangur er kominn til yfirferðar á %{instance} (%{username}) new_report: body: "%{reporter} hefur kært %{target}" body_remote: Einhver frá %{domain} hefur kært %{target} subject: Ný kæra vegna %{instance} (#%{id}) new_trending_tag: + body: 'Myllumerkið #%{name} er í umræðunni í dag, en hefur ekki verið yfirfarið áður. Það mun ekki verða birt opinberlega nema að þú samþykkir það, annars geturðu vistað eyðublaðið óbreytt og aldrei heyrt á þetta minnst framar.' subject: Nýtt myllumerki er komið til yfirferðar á %{instance} (#%{name}) aliases: - add_new: Búa til samnefni + add_new: Búa til samnefni (alias) + created_msg: Tókst að búa til samnefni. Þú getur núna byrjað að færa gögn af gamla aðgangnum. + deleted_msg: Tókst að fjarlægja samnefnið. Flutningur af þeim notandaaðgangi yfir á þennan er ekki lengur mögulegur. + hint_html: Ef þú vilt flytjast af öðrum notandaaðgangi yfir á þennan, þá geturðu búið hér til samnefni, sem er nauðsynlegt áður en þú getur haldið áfram við að flytja fylgjendur af gamla notandaaðgangnum yfir á þennan aðgang. Þessi aðgerð er í sjálfu sér skaðlaus og afturkræf. Yfirfærsla notandaaðgangsins er síðan ræst á gamla notandaaðgangnum. remove: Aftengja samnefni appearance: advanced_web_interface: Ítarlegt vefviðmót @@ -596,12 +613,14 @@ is: description: prefix_invited_by_user: "@%{name} býður þér að taka þátt á þessum Mastodon-vefþjóni!" prefix_sign_up: Skráðu þig á Mastodon strax í dag! + suffix: Með notandaaðgangi geturðu fylgst með fólki, sent inn stöðufærslur og skipst á skilaboðum við notendur á hvaða Mastodon-vefþjóni sem er, auk margs fleira! didnt_get_confirmation: Fékkstu ekki leiðbeiningar um hvernig eigi að staðfesta aðganginn? forgot_password: Gleymdirðu lykilorðinu? - invalid_reset_password_token: Teikn fyrir endurstillingu lykilorðs er ógilt eðaútrunnið. Biddu um nýtt. + invalid_reset_password_token: Teikn fyrir endurstillingu lykilorðs er ógilt eða útrunnið. Biddu um nýtt teikn. login: Skrá inn logout: Skrá út migrate_account: Færa á annan notandaaðgang + migrate_account_html: Ef þú vilt endurbeina þessum aðgangi á einhvern annan, geturðu stillt það hér. or_log_in_with: Eða skráðu inn með providers: cas: CAS @@ -613,14 +632,19 @@ is: security: Öryggi set_new_password: Stilla nýtt lykilorð setup: + email_below_hint_html: Ef tölvupóstfangið hér fyrir neðan er rangt, skaltu breyta því hér og fá nýjan staðfestingarpóst. + email_settings_hint_html: Staðfestingarpósturinn var sendur til %{email}. Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins. title: Uppsetning status: account_status: Staða notandaaðgangs confirming: Bíð eftir að staðfestingu tölvupósts sé lokið. functional: Notandaaðgangurinn þinn er með fulla virkni. + pending: Umsóknin þín bíður eftir að starfsfólkið okkar fari yfir hana. Það gæti tekið nokkurn tíma. Þú munt fá tölvupóst ef umsóknin er samþykkt. + redirecting_to: Notandaaðgangurinn þinn er óvirkur vegna þess að hann endurbeinist á %{acct}. trouble_logging_in: Vandræði við að skrá inn? authorize_follow: already_following: Þú ert að þegar fylgjast með þessum aðgangi + error: Því miður, það kom upp villa við að fletta upp fjartengda notandaaðgangnum follow: Fylgja follow_request: 'Þú sendir beiðni um að fylgjast með til:' following: 'Tókst! Þú ert núna að fylgjast með:' @@ -657,6 +681,10 @@ is: warning: before: 'Áður en haldið er áfram, skaltu lesa þessa minnispunkta gaumgæfilega:' caches: Efni sem aðrir netþjónar hafa sett í skyndiminni gæti verið til staðar áfram + data_removal: Færslurnar þínar og önnur gögn verða endanlega fjarlægð + email_change_html: Þú getur breytt tölvupóstfanginu þínu án þess að eyða aðgangnum þínum + email_contact_html: Ef hann berst ekki geturðu sent póst á %{email} til að fá aðstoð + email_reconfirmation_html: Ef staðfestingarpósturinn berst ekki geturðu beðið um hann aftur irreversible: Þú munt ekki getað endurheimt eða endurvirkjað aðganginn þinn more_details_html: Til að skoða þetta nánar, er gott að líta á persónuverndarstefnuna. username_available: Notandanafnið þitt mun verða tiltækt aftur @@ -676,11 +704,12 @@ is: '422': content: Öryggisprófun mistókst. Ertu að loka á vefkökur/fótspor? title: Öryggisprófun mistókst - '429': Throttled + '429': Í hægagangi '500': content: Því miður, en eitthvað fór úrskeiðis á okkar enda. title: Þessi síða er ekki rétt - '503': The page could not be served due to a temporary server failure. + '503': Ekki var hægt að afgreiða síðuna vegna tímabundinnar bilunar á vefþjóni. + noscript_html: Til að nota vefútgáfu Mastodon þarftu að virkja JavaScript. Þú getur líka prófað eitt af Mastodon forritunum fyrir stýrikerfið þitt. existing_username_validator: not_found: Fann ekki staðværan notanda með þetta notandanafn not_found_multiple: tókst ekki að finna %{usernames} @@ -714,6 +743,7 @@ is: invalid_context: Ekkert eða ógilt samhengi var gefið index: delete: Eyða + empty: Þú ert ekki með neinar síur. title: Síur new: title: Bæta við nýrri síu @@ -777,6 +807,7 @@ is: one: 1 afnot other: "%{count} afnot" max_uses_prompt: Engin takmörk + prompt: Útbúðu og deildu tenglum með öðrum til að veita aðgang að þessum vefþjóni table: expires_at: Rennur út uses: Afnot @@ -791,18 +822,29 @@ is: migrations: acct: Færði í cancel: Hætta við endurbeiningu + cancel_explanation: Sé hætt við endurbeiningu verður núverandi aðgangur þinn endurvirkjaður, en það mun ekki ná til baka þeim fylgjendum sem hafa verið fluttir á þann aðgang. cancelled_msg: Tókst að hætta við endurbeiningu. errors: + already_moved: er sami aðgangur og þú hefur þegar flutt þig á + missing_also_known_as: er ekki að bakvísa í þennan aðgang move_to_self: getur ekki verið núverandi aðgangur not_found: fannst ekki on_cooldown: Þú ert í kælingu followers_count: Fylgjendur þegar flutningur átti sér stað + incoming_migrations: Flytjast frá öðrum aðgangi + incoming_migrations_html: Til að flytjast af öðrum notandaaðgangi yfir á þennan, þarftu fyrst að útbúa samnefni fyrir aðgang. + moved_msg: Notandaaðgangurinn þinn endurbeinist núna á %{acct} og er verið að yfirfæra fylgjendurna þína. + not_redirecting: Notandaaðgangurinn þinn er ekki að endurbeinast á neinn annan aðgang. + on_cooldown: Þú hefur nýverið yfirfært aðganginn þinn. Þessi aðgerð verður tiltæk aftur eftir %{count} daga. past_migrations: Fyrri yfirfærslur proceed_with_move: Færa fylgjendur redirecting_to: Notandaaðgangurinn þinn endurbeinist á %{acct}. set_redirect: Stilla endurbeiningu warning: + backreference_required: Það verður fyrst að stilla nýja aðganginn til að bakvísa á þennan aðgang before: 'Áður en haldið er áfram, skaltu lesa þessa minnispunkta gaumgæfilega:' + cooldown: Eftir yfirfærslu/flutning kemur kælingartímabil á meðan þú getur ekki flutt þig aftur + followers: Þessi aðgerð mun flytja alla fylgjendur af núverandi aðgangi yfir á nýja aðganginn only_redirect_html: Einnig geturðu einungis sett upp endurbeiningu á notandasniðið þitt. other_data: Engin önnur gögn munu flytjast sjálfvirkt moderation: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 02bd80092..4ef87a5bc 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -910,6 +910,7 @@ kk: duration_too_long: тым ұзақ екен duration_too_short: тым аз екен expired: Сауалнама уақыты аяқталған + invalid_choice: Таңдалған жауап енді жоқ екен over_character_limit: "%{max} таңбадан артық болмайды" too_few_options: бір жауаптан көп болуы керек too_many_options: "%{max} жауаптан көп болмайды" diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 92eb364cd..25bb714ef 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -911,7 +911,7 @@ ko: duration_too_long: 너무 먼 미래입니다 duration_too_short: 너무 가깝습니다 expired: 투표가 이미 끝났습니다 - invalid_choice: 선택한 옵션이 존재하지 않습니다 + invalid_choice: 선택한 투표 항목이 존재하지 않습니다 over_character_limit: 각각 %{max} 글자를 넘을 수 없습니다 too_few_options: 한가지 이상의 항목을 포함해야 합니다 too_many_options: 항목은 %{max}개를 넘을 수 없습니다 diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index c3ddd69a7..7fe2c8946 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -339,7 +339,7 @@ pt-BR: delete: Excluir destroyed_msg: Domínio de e-mail desbloqueado domain: Domínio - empty: Nenhum domínio de e-mail atualmente na lista negra. + empty: Sem domínios de e-mail bloqueados. new: create: Adicionar domínio title: Novo domínio de e-mail bloqueado @@ -745,7 +745,7 @@ pt-BR: invalid_irreversible: O filtro irreversível só funciona com os contextos página inicial e notificações index: delete: Remover - empty: Não tem filtros. + empty: Sem filtros. title: Filtros new: title: Adicionar filtro @@ -921,6 +921,7 @@ pt-BR: duration_too_long: é muito longe no futuro duration_too_short: é curto demais expired: A enquete já terminou + invalid_choice: Opção inválida over_character_limit: não pode ter mais que %{max} caracteres em cada too_few_options: deve ter mais que um item too_many_options: não pode ter mais que %{max} itens diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 4be5024ad..8628c5774 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -921,6 +921,7 @@ pt-PT: duration_too_long: está demasiado à frente no futuro duration_too_short: é demasiado cedo expired: A sondagem já terminou + invalid_choice: A opção de voto escolhida não existe over_character_limit: não pode ter mais do que %{max} caracteres cada um too_few_options: tem de ter mais do que um item too_many_options: não pode conter mais do que %{max} itens diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 0ac4fb491..3fae05830 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -36,7 +36,7 @@ ca: setting_aggregate_reblogs: No mostra els nous impulsos dels tuts que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_default_sensitive: Els mèdia sensibles estan ocults per defecte i es poden revelar amb un clic setting_display_media_default: Amaga els multimèdia marcats com a sensibles - setting_display_media_hide_all: Sempre oculta tots els multimèdia + setting_display_media_hide_all: Oculta sempre tot el contingut multimèdia setting_display_media_show_all: Mostra sempre els elements multimèdia marcats com a sensibles setting_hide_network: Qui tu segueixes i els que et segueixen a tu no es mostraran en el teu perfil setting_noindex: Afecta el teu perfil públic i les pàgines d'estat diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index 00ecdb457..994cb1b84 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -14,6 +14,8 @@ eo: avatar: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px bot: Tiu konto ĉefe faras aŭtomatajn agojn, kaj povas esti ne kontrolata context: Unu ol pluraj kuntekstoj kie la filtrilo devus agi + current_password: Pro sekuraj kialoj, bonvolu enigi la pasvorton de la nuna konto + current_username: Por konfirmi, bonvolu enigi la uzantnomon de la nuna konto digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto email: Vi ricevos konfirman retmesaĝon fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 6a5817e7c..c6a89fb40 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -36,6 +36,8 @@ is: fields: name: Skýring value: Efni + account_alias: + acct: Auðkenni gamla aðgangsins admin_account_action: include_statuses: Innifela kærð tíst í tölvupóstinum send_email_notification: Láta notanda vita með tölvupósti diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 21c5c144d..63475167c 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -157,7 +157,7 @@ ja: pending_account: 新しいアカウントの承認が必要な時 reblog: トゥートがブーストされた時 report: 通報を受けた時 - trending_tag: 未審査のハッシュタグが人気の時 + trending_tag: 未審査のハッシュタグが人気の時にメールで通知する tag: listable: 検索とディレクトリへの使用を許可する name: ハッシュタグ diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index a36970c14..2fe515f55 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -156,7 +156,7 @@ nl: mention: Wanneer iemand jou heeft vermeld pending_account: Wanneer een nieuw account moet worden beoordeeld reblog: Wanneer iemand jouw toot heeft geboost - report: Wanneer een nieuwe rapportage werd ingediend + report: Bij het indienen van een nieuwe rapportage trending_tag: Wanneer een nog niet beoordeelde hashtag trending is tag: listable: Toestaan dat deze hashtag in zoekopdrachten en in de gebruikersgids te zien valt diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 764c3ace4..b94277825 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -676,6 +676,9 @@ sv: next: Nästa older: Äldre prev: Tidigare + polls: + errors: + invalid_choice: Det valda röstalternativet finns inte preferences: other: Annat relationships: diff --git a/config/locales/ta.yml b/config/locales/ta.yml index 8e8f91bd0..71bf225d8 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -230,3 +230,6 @@ ta: email_events: மின்னஞ்சல் அறிவிப்புகளுக்கான நிகழ்வுகள் email_events_hint: 'எந்த நிகழ்வுகளுக்கு அறிவிப்புகளைப் பெற வேண்டும் என்று தேர்வு செய்க:' other_settings: அறிவிப்புகள் குறித்த பிற அமைப்புகள் + polls: + errors: + invalid_choice: நீங்கள் தேர்வு செய்த விருப்பம் கிடைக்கவில்லை diff --git a/config/locales/th.yml b/config/locales/th.yml index 8a71cf557..b7f4a5f34 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -554,6 +554,7 @@ th: x_months: "%{count} เดือน" x_seconds: "%{count} วินาที" deletes: + challenge_not_passed: ข้อมูลที่คุณป้อนไม่ถูกต้อง confirm_username: ป้อนชื่อผู้ใช้ของคุณเพื่อยืนยันกระบวนงาน proceed: ลบบัญชี success_msg: ลบบัญชีของคุณสำเร็จ diff --git a/config/locales/vi.yml b/config/locales/vi.yml index b8ef6fe43..b01c1ea20 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -72,6 +72,7 @@ vi: roles: admin: quản trị viên bot: Người máy + group: Nhóm moderator: Phép chia lấy phần dư unavailable: Hồ sơ không có sẵn unfollow: Hủy theo dõi @@ -888,6 +889,7 @@ vi: duration_too_long: quá xa trong tương lai duration_too_short: quá sớm expired: Cuộc thăm dò đã kết thúc + invalid_choice: Lựa chọn không tồn tại over_character_limit: không thể dài hơn %{max} ký tự mỗi ký tự too_few_options: phải có nhiều hơn một mục too_many_options: không thể chứa nhiều hơn %{max} From 3287ec8ca3bf8baad6cea0cc497753ff003d2d35 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 13 Jan 2020 12:54:33 +0100 Subject: [PATCH 106/207] Fix file names being obfuscated on update when file didn't change (#12857) Fix #12849 --- app/models/concerns/attachmentable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb index 1e8c4806f..43ff8ac12 100644 --- a/app/models/concerns/attachmentable.rb +++ b/app/models/concerns/attachmentable.rb @@ -74,7 +74,7 @@ module Attachmentable self.class.attachment_definitions.each_key do |attachment_name| attachment = send(attachment_name) - next if attachment.blank? + next if attachment.blank? || attachment.queued_for_write[:original].blank? attachment.instance_write :file_name, SecureRandom.hex(8) + File.extname(attachment.instance_read(:file_name)) end From 512f5f9b2bf5da9d5b7b43a16223f16fb4c3e6c0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:53:42 +0900 Subject: [PATCH 107/207] Bump sass-loader from 8.0.0 to 8.0.2 (#12860) Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 8.0.0 to 8.0.2. - [Release notes](https://github.com/webpack-contrib/sass-loader/releases) - [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/sass-loader/compare/v8.0.0...v8.0.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2726fd1c0..d8555e3aa 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "reselect": "^4.0.0", "rimraf": "^3.0.0", "sass": "^1.24.2", - "sass-loader": "^8.0.0", + "sass-loader": "^8.0.2", "stringz": "^2.0.0", "substring-trie": "^1.0.2", "terser-webpack-plugin": "^2.3.1", diff --git a/yarn.lock b/yarn.lock index 807f80a4c..8e0a71314 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9369,15 +9369,15 @@ sass-lint@^1.13.1: path-is-absolute "^1.0.0" util "^0.10.3" -sass-loader@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.0.tgz#e7b07a3e357f965e6b03dd45b016b0a9746af797" - integrity sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== dependencies: clone-deep "^4.0.1" loader-utils "^1.2.3" neo-async "^2.6.1" - schema-utils "^2.1.0" + schema-utils "^2.6.1" semver "^6.3.0" sass@^1.24.2: @@ -9409,7 +9409,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.1.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: +schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== From 923ae7067b469157cc911690197c4bb0a567f98d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:54:45 +0900 Subject: [PATCH 108/207] Bump terser-webpack-plugin from 2.3.1 to 2.3.2 (#12839) Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.3.1...v2.3.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d8555e3aa..4b72bf361 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "sass-loader": "^8.0.2", "stringz": "^2.0.0", "substring-trie": "^1.0.2", - "terser-webpack-plugin": "^2.3.1", + "terser-webpack-plugin": "^2.3.2", "tesseract.js": "^2.0.0-alpha.16", "throng": "^4.0.0", "tiny-queue": "^0.2.1", diff --git a/yarn.lock b/yarn.lock index 8e0a71314..113a2a24e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10163,10 +10163,10 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.1.tgz#6a63c27debc15b25ffd2588562ee2eeabdcab923" - integrity sha512-dNxivOXmDgZqrGxOttBH6B4xaxT4zNC+Xd+2K8jwGDMK5q2CZI+KZMA1AAnSRT+BTRvuzKsDx+fpxzPAmAMVcA== +terser-webpack-plugin@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.2.tgz#6d3d1b0590c8f729bfbaeb7fb2528b8b62db4c74" + integrity sha512-SmvB/6gtEPv+CJ88MH5zDOsZdKXPS/Uzv2//e90+wM1IHFUhsguPKEILgzqrM1nQ4acRXN/SV4Obr55SXC+0oA== dependencies: cacache "^13.0.1" find-cache-dir "^3.2.0" From 940b58eb9e2607b903d91c323790c2b5765fdf34 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:55:30 +0900 Subject: [PATCH 109/207] Bump @babel/plugin-proposal-decorators from 7.7.4 to 7.8.0 (#12844) Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel) from 7.7.4 to 7.8.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 163 +++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 138 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 4b72bf361..292d0b490 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "dependencies": { "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.7.4", - "@babel/plugin-proposal-decorators": "^7.7.4", + "@babel/plugin-proposal-decorators": "^7.8.0", "@babel/plugin-transform-react-inline-elements": "^7.7.4", "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.7.7", diff --git a/yarn.lock b/yarn.lock index 113a2a24e..b57455bf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.0.tgz#8c98d4ac29d6f80f28127b1bc50970a72086c5ac" + integrity sha512-AN2IR/wCUYsM+PdErq6Bp3RFTXl8W0p9Nmymm7zkpsCmh+r/YYcckaCGpU8Q/mEKmST19kkGRaG42A/jxOWwBA== + dependencies: + "@babel/highlight" "^7.8.0" + "@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" @@ -39,6 +46,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.0.tgz#40a1244677be58ffdc5cd01e22634cd1d5b29edf" + integrity sha512-2Lp2e02CV2C7j/H4n4D9YvsvdhPVVg9GDIamr6Tu4tU35mL3mzOrzl1lZ8ZJtysfZXh+y+AGORc2rPS7yHxBUg== + dependencies: + "@babel/types" "^7.8.0" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" @@ -71,17 +88,17 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-create-class-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz#fce60939fd50618610942320a8d951b3b639da2d" - integrity sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA== +"@babel/helper-create-class-features-plugin@^7.7.4", "@babel/helper-create-class-features-plugin@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.0.tgz#b3ddf557ed4656e0d296c3b0f3fcd381ea8de72c" + integrity sha512-ctCvqYBTlwEl2uF4hCxE0cd/sSw71Zfag0jKa39y4HDLh0BQ4PVBX1384Ye8GqrEZ69xgLp9fwPbv3GgIDDF2Q== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-member-expression-to-functions" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/helper-function-name" "^7.8.0" + "@babel/helper-member-expression-to-functions" "^7.8.0" + "@babel/helper-optimise-call-expression" "^7.8.0" + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-replace-supers" "^7.8.0" + "@babel/helper-split-export-declaration" "^7.8.0" "@babel/helper-create-regexp-features-plugin@^7.7.4": version "7.7.4" @@ -117,6 +134,15 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-function-name@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.0.tgz#dde5cf0d6b15c21817a67dd66fe7350348e023bf" + integrity sha512-x9psucuU0Xalw+0Vpr2FYJMLB7/KnPSLZhlkUyOGbYAWRDfmtZBrguYpJYiaNCRV7vGkYjO/gF6/J6yMvdWTDw== + dependencies: + "@babel/helper-get-function-arity" "^7.8.0" + "@babel/template" "^7.8.0" + "@babel/types" "^7.8.0" + "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" @@ -124,6 +150,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-get-function-arity@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.0.tgz#90977f61d76d2225d1ae0208def7df22ea92792e" + integrity sha512-eUP5grliToMapQiTaYS2AAO/WwaCG7cuJztR1v/a1aPzUzUeGt+AaI9OvLATc/AfFkF8SLJ10d5ugGt/AQ9d6w== + dependencies: + "@babel/types" "^7.8.0" + "@babel/helper-hoist-variables@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" @@ -138,6 +171,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-member-expression-to-functions@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.0.tgz#50d0ed445d2da11beb60e2dbc2c428254bd5a4ae" + integrity sha512-0m1QabGrdXuoxX/g+KOAGndoHwskC70WweqHRQyCsaO67KOEELYh4ECcGw6ZGKjDKa5Y7SW4Qbhw6ly4Fah/jQ== + dependencies: + "@babel/types" "^7.8.0" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" @@ -176,10 +216,17 @@ dependencies: "@babel/types" "^7.7.4" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== +"@babel/helper-optimise-call-expression@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.0.tgz#3df62773cf210db9ed34c2bb39fece5acd1e1733" + integrity sha512-aiJt1m+K57y0n10fTw+QXcCXzmpkG+o+NoQmAZqlZPstkTE0PZT+Z27QSd/6Gf00nuXJQO4NiJ0/YagSW5kC2A== + dependencies: + "@babel/types" "^7.8.0" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz#59ec882d43c21c544ccb51decaecb306b34a8231" + integrity sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": version "7.4.4" @@ -209,6 +256,16 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-replace-supers@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.0.tgz#d83cb117edb820eebe9ae6c970a8ad5eac09d19f" + integrity sha512-R2CyorW4tcO3YzdkClLpt6MS84G+tPkOi0MmiCn1bvYVnmDpdl9R15XOi3NQW2mhOAEeBnuQ4g1Bh7pT2sX8fg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.0" + "@babel/helper-optimise-call-expression" "^7.8.0" + "@babel/traverse" "^7.8.0" + "@babel/types" "^7.8.0" + "@babel/helper-simple-access@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" @@ -224,6 +281,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-split-export-declaration@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.0.tgz#ed10cb03b07454c0d40735fad4e9c9711e739588" + integrity sha512-YhYFhH4T6DlbT6CPtVgLfC1Jp2gbCawU/ml7WJvUpBg01bCrXSzTYMZZXbbIGjq/kHmK8YUATxTppcRGzj31pA== + dependencies: + "@babel/types" "^7.8.0" + "@babel/helper-wrap-function@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" @@ -252,11 +316,25 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.0.tgz#4cc003dc10359919e2e3a1d9459150942913dd1a" + integrity sha512-OsdTJbHlPtIk2mmtwXItYrdmalJ8T0zpVzNAbKSkHshuywj7zb29Y09McV/jQsQunc/nEyHiPV2oy9llYMLqxw== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== +"@babel/parser@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.0.tgz#54682775f1fb25dd29a93a02315aab29a6a292bb" + integrity sha512-VVtsnUYbd1+2A2vOVhm4P2qNXQE8L/W859GpUHfUcdhX8d3pEKThZuIr6fztocWx9HbK+00/CR0tXnhAggJ4CA== + "@babel/plugin-proposal-async-generator-functions@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" @@ -274,14 +352,14 @@ "@babel/helper-create-class-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-decorators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.7.4.tgz#58c1e21d21ea12f9f5f0a757e46e687b94a7ab2b" - integrity sha512-GftcVDcLCwVdzKmwOBDjATd548+IE+mBo7ttgatqNDR7VG7GqIuZPtRWlMLHbhTXhcnFZiGER8iIYl1n/imtsg== +"@babel/plugin-proposal-decorators@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.0.tgz#2f1661712c557de8bc65c0b58876a2b47ff886d5" + integrity sha512-HKltBhhrRigrHYkDrO/9rg+ZerXSAtZjepm8URUrNxgzTzEfuOb06fUU311chMkahZHSfASNUxWVwRzIwGt/uw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.7.4" + "@babel/helper-create-class-features-plugin" "^7.8.0" + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-decorators" "^7.8.0" "@babel/plugin-proposal-dynamic-import@^7.7.4": version "7.7.4" @@ -330,12 +408,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-decorators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.7.4.tgz#3c91cfee2a111663ff3ac21b851140f5a52a4e0b" - integrity sha512-0oNLWNH4k5ZbBVfAwiTU53rKFWIeTh6ZlaWOXWJc4ywxs0tjz5fc3uZ6jKAnZSxN98eXVgg7bJIuzjX+3SXY+A== +"@babel/plugin-syntax-decorators@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.0.tgz#4a2930ef597c5bc5c5ae9a97d7883d03eeb48eb2" + integrity sha512-Qz68qh9jJqQePGWqbNW9PA7vkE2gvnWkYtx32jgPOszpE7u+xObPkRGm3B80oXAjQlBdTa4ktqjkOIRiKRuapw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-dynamic-import@^7.7.4": version "7.7.4" @@ -771,6 +849,15 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/template@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.0.tgz#a32f57ad3be89c0fa69ae87b53b4826844dc6330" + integrity sha512-0NNMDsY2t3ltAVVK1WHNiaePo3tXPUeJpCX4I3xSKFoEl852wJHG8mrgHVADf8Lz1y+8al9cF7cSSfzSnFSYiw== + dependencies: + "@babel/code-frame" "^7.8.0" + "@babel/parser" "^7.8.0" + "@babel/types" "^7.8.0" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" @@ -786,6 +873,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.0.tgz#d85266fdcff553c10e57b672604b36383a127c1f" + integrity sha512-d/6sPXFLGlJHZO/zWDtgFaKyalCOHLedzxpVJn6el1cw+f2TZa7xZEszeXdOw6EUemqRFBAn106BWBvtSck9Qw== + dependencies: + "@babel/code-frame" "^7.8.0" + "@babel/generator" "^7.8.0" + "@babel/helper-function-name" "^7.8.0" + "@babel/helper-split-export-declaration" "^7.8.0" + "@babel/parser" "^7.8.0" + "@babel/types" "^7.8.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" @@ -795,6 +897,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.0.tgz#1a2039a028057a2c888b668d94c98e61ea906e7f" + integrity sha512-1RF84ehyx9HH09dMMwGWl3UTWlVoCPtqqJPjGuC4JzMe1ZIVDJ2DT8mv3cPv/A7veLD6sgR7vi95lJqm+ZayIg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@clusterws/cws@^0.17.3": version "0.17.3" resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.17.3.tgz#64ce6a34b2bd357c29bdc0675f27b37279e8661f" From e6c2254701e65b564626815e3bc1b985bd807872 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:56:21 +0900 Subject: [PATCH 110/207] Bump css-loader from 3.4.1 to 3.4.2 (#12842) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.1 to 3.4.2. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.1...v3.4.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 292d0b490..799b540d6 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "compression-webpack-plugin": "^3.0.1", "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", - "css-loader": "^3.4.1", + "css-loader": "^3.4.2", "cssnano": "^4.1.10", "detect-passive-events": "^1.0.2", "dotenv": "^8.2.0", diff --git a/yarn.lock b/yarn.lock index b57455bf2..03a604dd7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3056,10 +3056,10 @@ css-list-helpers@^1.0.1: dependencies: tcomb "^2.5.0" -css-loader@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.1.tgz#dfb7968aa9bffb26bd20375afdffe77d5a234b77" - integrity sha512-+ybmv7sVxxNEenQhkifQDvny/1iNQM7YooJbSfVUdQQvisyg1aKIqgGjCjoFSyVLJMp17z9rfZFQaR5HGHcMbw== +css-loader@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" + integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" From 392e84abe6a46d891437286accd14cec7e1da58f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:56:47 +0900 Subject: [PATCH 111/207] Bump @babel/runtime from 7.7.7 to 7.8.0 (#12847) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.7.7 to 7.8.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.8.0/packages/babel-runtime) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 799b540d6..0fbfa693d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", - "@babel/runtime": "^7.7.7", + "@babel/runtime": "^7.8.0", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.17.3", "array-includes": "^3.1.1", diff --git a/yarn.lock b/yarn.lock index 03a604dd7..b9ef68907 100644 --- a/yarn.lock +++ b/yarn.lock @@ -833,10 +833,10 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" - integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.0.tgz#8c81711517c56b3d00c6de706b0fb13dc3531549" + integrity sha512-Z7ti+HB0puCcLmFE3x90kzaVgbx6TRrYIReaygW6EkBEnJh1ajS4/inhF7CypzWeDV3NFl1AfWj0eMtdihojxw== dependencies: regenerator-runtime "^0.13.2" From a0ad1f5cda01b1c95b19d243a9f5342036fd2722 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 02:58:56 +0900 Subject: [PATCH 112/207] Bump rubocop from 0.78.0 to 0.79.0 (#12851) Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.78.0 to 0.79.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.78.0...v0.79.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 316ebb81d..ee4ec1617 100644 --- a/Gemfile +++ b/Gemfile @@ -137,7 +137,7 @@ group :development do gem 'letter_opener', '~> 1.7' gem 'letter_opener_web', '~> 1.3' gem 'memory_profiler' - gem 'rubocop', '~> 0.78', require: false + gem 'rubocop', '~> 0.79', require: false gem 'rubocop-rails', '~> 2.4', require: false gem 'brakeman', '~> 4.7', require: false gem 'bundler-audit', '~> 0.6', require: false diff --git a/Gemfile.lock b/Gemfile.lock index a75940804..4b588e68e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -562,10 +562,10 @@ GEM rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) rspec-support (3.9.0) - rubocop (0.78.0) + rubocop (0.79.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) - parser (>= 2.6) + parser (>= 2.7.0.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) @@ -783,7 +783,7 @@ DEPENDENCIES rqrcode (~> 1.1) rspec-rails (~> 3.9) rspec-sidekiq (~> 3.0) - rubocop (~> 0.78) + rubocop (~> 0.79) rubocop-rails (~> 2.4) ruby-progressbar (~> 1.10) sanitize (~> 5.1) From 2950b0970672ee54d85515485653976ea157abc8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 03:01:43 +0900 Subject: [PATCH 113/207] Bump json-ld from e742697a0906e74e8bb777ef98137bc3955d981d to 3.1.0 (#12852) Bumps [json-ld](https://github.com/ruby-rdf/json-ld) from e742697a0906e74e8bb777ef98137bc3955d981d to 3.1.0. This release includes the previously tagged commit. - [Release notes](https://github.com/ruby-rdf/json-ld/releases) - [Commits](https://github.com/ruby-rdf/json-ld/compare/e742697a0906e74e8bb777ef98137bc3955d981d...3.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 26 ++++++++++---------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/Gemfile b/Gemfile index ee4ec1617..6e71e0e96 100644 --- a/Gemfile +++ b/Gemfile @@ -99,7 +99,7 @@ gem 'tzinfo-data', '~> 1.2019' gem 'webpacker', '~> 4.2' gem 'webpush' -gem 'json-ld', git: 'https://github.com/ruby-rdf/json-ld.git', ref: 'e742697a0906e74e8bb777ef98137bc3955d981d' +gem 'json-ld' gem 'json-ld-preloaded', '~> 3.0' gem 'rdf-normalize', '~> 0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 4b588e68e..1cdb22b0a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,19 +13,6 @@ GIT specs: posix-spawn (0.3.13) -GIT - remote: https://github.com/ruby-rdf/json-ld.git - revision: e742697a0906e74e8bb777ef98137bc3955d981d - ref: e742697a0906e74e8bb777ef98137bc3955d981d - specs: - json-ld (3.0.2) - htmlentities (~> 4.3) - json-canonicalization (~> 0.1) - link_header (~> 0.0, >= 0.0.8) - multi_json (~> 1.13) - rack (>= 1.6, < 3.0) - rdf (~> 3.0, >= 3.0.8) - GIT remote: https://github.com/tmm1/http_parser.rb revision: 54b17ba8c7d8d20a16dfc65d1775241833219cf2 @@ -329,7 +316,14 @@ GEM jaro_winkler (1.5.4) jmespath (1.4.0) json (2.3.0) - json-canonicalization (0.1.0) + json-canonicalization (0.2.0) + json-ld (3.1.0) + htmlentities (~> 4.3) + json-canonicalization (~> 0.1) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) json-ld-preloaded (3.0.6) json-ld (~> 3.0) multi_json (~> 1.12) @@ -506,7 +500,7 @@ GEM thor (>= 0.19.0, < 2.0) rainbow (3.0.0) rake (13.0.1) - rdf (3.1.0) + rdf (3.1.1) hamster (~> 3.0) link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.4.0) @@ -734,7 +728,7 @@ DEPENDENCIES i18n-tasks (~> 0.9) idn-ruby iso-639 - json-ld! + json-ld json-ld-preloaded (~> 3.0) kaminari (~> 1.1) letter_opener (~> 1.7) From 031a43255913eb25f573c465a691f88daeaafc14 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 03:02:20 +0900 Subject: [PATCH 114/207] Bump ox from 2.11.0 to 2.12.1 (#12853) Bumps [ox](https://github.com/ohler55/ox) from 2.11.0 to 2.12.1. - [Release notes](https://github.com/ohler55/ox/releases) - [Changelog](https://github.com/ohler55/ox/blob/master/CHANGELOG.md) - [Commits](https://github.com/ohler55/ox/compare/v2.11.0...v2.12.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6e71e0e96..5e5969c4e 100644 --- a/Gemfile +++ b/Gemfile @@ -68,7 +68,7 @@ gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b gem 'nokogiri', '~> 1.10' gem 'nsa', '~> 0.2' gem 'oj', '~> 3.10' -gem 'ox', '~> 2.11' +gem 'ox', '~> 2.12' gem 'parslet' gem 'parallel', '~> 1.19' gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c' diff --git a/Gemfile.lock b/Gemfile.lock index 1cdb22b0a..a66a84a96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -409,7 +409,7 @@ GEM omniauth (~> 1.3, >= 1.3.2) ruby-saml (~> 1.7) orm_adapter (0.5.0) - ox (2.11.0) + ox (2.12.1) paperclip (6.0.0) activemodel (>= 4.2.0) activesupport (>= 4.2.0) @@ -748,7 +748,7 @@ DEPENDENCIES omniauth (~> 1.9) omniauth-cas (~> 1.1) omniauth-saml (~> 1.10) - ox (~> 2.11) + ox (~> 2.12) paperclip (~> 6.0) paperclip-av-transcoder (~> 0.6) parallel (~> 1.19) From f82e028bfd8f0657fbfcf9f7cffee14a6bbdb6cf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 03:05:14 +0900 Subject: [PATCH 115/207] Bump axios from 0.19.0 to 0.19.1 (#12846) Bumps [axios](https://github.com/axios/axios) from 0.19.0 to 0.19.1. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.19.0...0.19.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0fbfa693d..4196ecb7c 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "array-includes": "^3.1.1", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", - "axios": "^0.19.0", + "axios": "^0.19.1", "babel-loader": "^8.0.6", "babel-plugin-lodash": "^3.3.4", "babel-plugin-preval": "^4.0.0", diff --git a/yarn.lock b/yarn.lock index b9ef68907..efe744574 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1874,13 +1874,12 @@ axios@^0.18.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -axios@^0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" - integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== +axios@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.1.tgz#8a6a04eed23dfe72747e1dd43c604b8f1677b5aa" + integrity sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw== dependencies: follow-redirects "1.5.10" - is-buffer "^2.0.2" axobject-query@^2.0.2: version "2.0.2" From 08e540f01d55eadf14310608e52c035f9d5c1221 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 03:09:31 +0900 Subject: [PATCH 116/207] Bump pg from 1.2.1 to 1.2.2 (#12854) Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.1...v1.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a66a84a96..7e8e51c5a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -428,7 +428,7 @@ GEM pastel (0.7.3) equatable (~> 0.6) tty-color (~> 0.5) - pg (1.2.1) + pg (1.2.2) pghero (2.4.1) activerecord (>= 5) pkg-config (1.4.0) From 114ee287dc82fda018ee391fa50dc9107191a435 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Tue, 14 Jan 2020 08:43:12 +0900 Subject: [PATCH 117/207] Remove derailed_benchmarks dependency (#12861) --- Gemfile | 1 - Gemfile.lock | 15 --------------- 2 files changed, 16 deletions(-) diff --git a/Gemfile b/Gemfile index 5e5969c4e..a2d851491 100644 --- a/Gemfile +++ b/Gemfile @@ -147,7 +147,6 @@ group :development do gem 'capistrano-rbenv', '~> 2.1' gem 'capistrano-yarn', '~> 2.0' - gem 'derailed_benchmarks' gem 'stackprof' end diff --git a/Gemfile.lock b/Gemfile.lock index 7e8e51c5a..cdb6fa48c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,7 +108,6 @@ GEM aws-sigv4 (1.1.0) aws-eventstream (~> 1.0, >= 1.0.2) bcrypt (3.1.12) - benchmark-ips (2.7.2) better_errors (2.5.1) coderay (>= 1.0.0) erubi (>= 1.0.0) @@ -175,15 +174,6 @@ GEM css_parser (1.7.1) addressable debug_inspector (0.0.3) - derailed_benchmarks (1.4.3) - benchmark-ips (~> 2) - get_process_mem (~> 0) - heapy (~> 0) - memory_profiler (~> 0) - rack (>= 1) - rake (> 10, < 14) - ruby-statistics (>= 2.1) - thor (~> 0.19) devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -257,8 +247,6 @@ GEM fuubar (2.5.0) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - get_process_mem (0.2.5) - ffi (~> 1.0) globalid (0.4.2) activesupport (>= 4.2.0) goldfinger (2.1.1) @@ -279,7 +267,6 @@ GEM concurrent-ruby (~> 1.0) hashdiff (1.0.0) hashie (3.6.0) - heapy (0.1.4) highline (2.0.1) hiredis (0.6.3) hkdf (0.3.0) @@ -569,7 +556,6 @@ GEM ruby-progressbar (1.10.1) ruby-saml (1.9.0) nokogiri (>= 1.5.10) - ruby-statistics (2.1.1) rufus-scheduler (3.5.2) fugit (~> 1.1, >= 1.1.5) safe_yaml (1.0.5) @@ -701,7 +687,6 @@ DEPENDENCIES climate_control (~> 0.2) concurrent-ruby connection_pool - derailed_benchmarks devise (~> 4.7) devise-two-factor (~> 3.1) devise_pam_authenticatable2 (~> 9.2) From 1fd74ba09e3802ab54910d3d95a6c272bfdec8c2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 11:34:09 +0900 Subject: [PATCH 118/207] Bump @babel/plugin-transform-react-inline-elements from 7.7.4 to 7.8.0 (#12848) Bumps [@babel/plugin-transform-react-inline-elements](https://github.com/babel/babel) from 7.7.4 to 7.8.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 4196ecb7c..c2a254493 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.7.4", "@babel/plugin-proposal-decorators": "^7.8.0", - "@babel/plugin-transform-react-inline-elements": "^7.7.4", + "@babel/plugin-transform-react-inline-elements": "^7.8.0", "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", diff --git a/yarn.lock b/yarn.lock index efe744574..4977ed46a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -71,12 +71,12 @@ "@babel/helper-explode-assignable-expression" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-builder-react-jsx@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz#da188d247508b65375b2c30cf59de187be6b0c66" - integrity sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA== +"@babel/helper-builder-react-jsx@^7.7.4", "@babel/helper-builder-react-jsx@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.0.tgz#4b9111eb862f5fd8840c37d200610fa95ab0aad8" + integrity sha512-Zg7VLtZzcAHoQ13S0pEIGKo8OAG3s5kjsk/4keGmUeNuc810T9fVp6izIaL8ZVeAErRFWJdvqFItY3QMTHMsSg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.0" esutils "^2.0.0" "@babel/helper-call-delegate@^7.7.4": @@ -649,13 +649,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-react-inline-elements@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.7.4.tgz#356c48c44b22bb9db7ed205800c04d65976f59cd" - integrity sha512-x6Gao9Ef3TCItoh1MsotH25mBAz/CjS3uECoprrgJX5poXTqKsH3Od3M8DlRotSNTp48nuniztkE8thWY/MKIA== +"@babel/plugin-transform-react-inline-elements@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.8.0.tgz#851799e0f66708563b9ada01b175affa1085f0d5" + integrity sha512-LZCsQfeoF8qqc6IaxJfAe4iSgWlbsdKeEkdxDtb8uzvcDbtXxUYjgUcSsqWgbpC88PIEv65SNzlQZo9/mymgQw== dependencies: - "@babel/helper-builder-react-jsx" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-react-jsx" "^7.8.0" + "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-transform-react-jsx-self@^7.7.4": version "7.7.4" From 37b5139822c7db0eb36e075bdbc0cde2e01ae4ef Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 12:05:32 +0900 Subject: [PATCH 119/207] Bump @babel/preset-env from 7.7.7 to 7.8.3 (#12866) Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 1016 ++++++++++++++++++++++++++++---------------------- 2 files changed, 567 insertions(+), 451 deletions(-) diff --git a/package.json b/package.json index c2a254493..c9004ca4e 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@babel/plugin-proposal-decorators": "^7.8.0", "@babel/plugin-transform-react-inline-elements": "^7.8.0", "@babel/plugin-transform-runtime": "^7.7.6", - "@babel/preset-env": "^7.7.7", + "@babel/preset-env": "^7.8.3", "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.8.0", "@gamestdio/websocket": "^0.3.2", diff --git a/yarn.lock b/yarn.lock index 4977ed46a..3da5e20c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,6 +16,22 @@ dependencies: "@babel/highlight" "^7.8.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.0", "@babel/compat-data@^7.8.1": + version "7.8.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.1.tgz#fc0bbbb7991e4fb2b47e168e60f2cc2c41680be9" + integrity sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw== + dependencies: + browserslist "^4.8.2" + invariant "^2.2.4" + semver "^5.5.0" + "@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" @@ -56,20 +72,30 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" - integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== +"@babel/generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" + integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-builder-react-jsx@^7.7.4", "@babel/helper-builder-react-jsx@^7.8.0": version "7.8.0" @@ -79,14 +105,25 @@ "@babel/types" "^7.8.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== +"@babel/helper-call-delegate@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" + integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-compilation-targets@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz#2deedc816fd41dca7355ef39fd40c9ea69f0719a" + integrity sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw== + dependencies: + "@babel/compat-data" "^7.8.1" + browserslist "^4.8.2" + invariant "^2.2.4" + levenary "^1.1.0" + semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.7.4", "@babel/helper-create-class-features-plugin@^7.8.0": version "7.8.0" @@ -100,30 +137,30 @@ "@babel/helper-replace-supers" "^7.8.0" "@babel/helper-split-export-declaration" "^7.8.0" -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== +"@babel/helper-create-regexp-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" + integrity sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q== dependencies: - "@babel/helper-regex" "^7.4.4" + "@babel/helper-regex" "^7.8.3" regexpu-core "^4.6.0" -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== dependencies: - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-function-name@^7.7.4": version "7.7.4" @@ -143,6 +180,15 @@ "@babel/template" "^7.8.0" "@babel/types" "^7.8.0" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" @@ -157,19 +203,19 @@ dependencies: "@babel/types" "^7.8.0" -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" - integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" "@babel/helper-member-expression-to-functions@^7.8.0": version "7.8.0" @@ -178,44 +224,32 @@ dependencies: "@babel/types" "^7.8.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" - integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a" - integrity sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.7.4", "@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" + integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-module-transforms@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" - integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== - dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" - integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== - dependencies: - "@babel/types" "^7.7.4" - "@babel/helper-optimise-call-expression@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.0.tgz#3df62773cf210db9ed34c2bb39fece5acd1e1733" @@ -223,38 +257,35 @@ dependencies: "@babel/types" "^7.8.0" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz#59ec882d43c21c544ccb51decaecb306b34a8231" - integrity sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" - integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== dependencies: - lodash "^4.17.11" + "@babel/types" "^7.8.3" -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== -"@babel/helper-replace-supers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" - integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-replace-supers@^7.8.0": version "7.8.0" @@ -266,13 +297,23 @@ "@babel/traverse" "^7.8.0" "@babel/types" "^7.8.0" -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== +"@babel/helper-replace-supers@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" + integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-split-export-declaration@^7.7.4": version "7.7.4" @@ -288,15 +329,22 @@ dependencies: "@babel/types" "^7.8.0" -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helpers@^7.7.4": version "7.7.4" @@ -325,6 +373,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" @@ -335,14 +392,19 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.0.tgz#54682775f1fb25dd29a93a02315aab29a6a292bb" integrity sha512-VVtsnUYbd1+2A2vOVhm4P2qNXQE8L/W859GpUHfUcdhX8d3pEKThZuIr6fztocWx9HbK+00/CR0tXnhAggJ4CA== -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== +"@babel/parser@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" + integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-proposal-class-properties@^7.7.4": version "7.7.4" @@ -361,52 +423,68 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-decorators" "^7.8.0" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" - integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== +"@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" + integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" - integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== +"@babel/plugin-proposal-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" + integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" + integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-decorators@^7.8.0": version "7.8.0" @@ -415,19 +493,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.4": version "7.7.4" @@ -436,211 +514,226 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" - integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== +"@babel/plugin-transform-classes@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" + integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== +"@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" + integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" - integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== +"@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== +"@babel/plugin-transform-for-of@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz#15f17bce2fc95c7d59a24b299e83e81cedc22e18" + integrity sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" - integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== +"@babel/plugin-transform-modules-amd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" + integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" - integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== +"@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" + integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== +"@babel/plugin-transform-modules-systemjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" + integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== +"@babel/plugin-transform-modules-umd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" + integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" - integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== +"@babel/plugin-transform-parameters@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz#7890576a13b17325d8b7d44cb37f21dc3bbdda59" + integrity sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q== dependencies: - "@babel/helper-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-call-delegate" "^7.8.3" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-display-name@^7.7.4": version "7.7.4" @@ -682,19 +775,19 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.7.4" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" - integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== +"@babel/plugin-transform-regenerator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" + integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== dependencies: regenerator-transform "^0.14.0" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-runtime@^7.7.6": version "7.7.6" @@ -706,106 +799,112 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== +"@babel/plugin-transform-typeof-symbol@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz#5cffb216fb25c8c64ba6bf5f76ce49d3ab079f4d" + integrity sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" - integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== +"@babel/preset-env@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.3.tgz#dc0fb2938f52bbddd79b3c861a4b3427dd3a6c54" + integrity sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.7" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.7.5" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.7" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.5" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.6.0" + "@babel/compat-data" "^7.8.0" + "@babel/helper-compilation-targets" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.8.3" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.8.3" + "@babel/plugin-transform-modules-systemjs" "^7.8.3" + "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.3" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.3" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/types" "^7.8.3" + browserslist "^4.8.2" + core-js-compat "^3.6.2" invariant "^2.2.2" - js-levenshtein "^1.1.3" + levenary "^1.1.0" semver "^5.5.0" "@babel/preset-react@^7.7.4": @@ -858,6 +957,15 @@ "@babel/parser" "^7.8.0" "@babel/types" "^7.8.0" +"@babel/template@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" + integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" @@ -888,19 +996,25 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" - integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== +"@babel/traverse@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" + integrity sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg== dependencies: - esutils "^2.0.2" + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + debug "^4.1.0" + globals "^11.1.0" lodash "^4.17.13" - to-fast-properties "^2.0.0" -"@babel/types@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.0.tgz#1a2039a028057a2c888b668d94c98e61ea906e7f" - integrity sha512-1RF84ehyx9HH09dMMwGWl3UTWlVoCPtqqJPjGuC4JzMe1ZIVDJ2DT8mv3cPv/A7veLD6sgR7vi95lJqm+ZayIg== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.4", "@babel/types@^7.8.0", "@babel/types@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -2260,14 +2374,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0, browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.0.0, browserslist@^4.8.0, browserslist@^4.8.2, browserslist@^4.8.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" + integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== dependencies: - caniuse-lite "^1.0.30001015" + caniuse-lite "^1.0.30001017" electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + node-releases "^1.1.44" bser@^2.0.0: version "2.0.0" @@ -2441,10 +2555,10 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72" integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg== -caniuse-lite@^1.0.30001015: - version "1.0.30001016" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" - integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== +caniuse-lite@^1.0.30001017: + version "1.0.30001020" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" + integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== capture-exit@^1.2.0: version "1.2.0" @@ -2881,12 +2995,12 @@ copy-webpack-plugin@^5.1.1: serialize-javascript "^2.1.2" webpack-log "^2.0.0" -core-js-compat@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" - integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== dependencies: - browserslist "^4.8.2" + browserslist "^4.8.3" semver "7.0.0" core-js@^1.0.0: @@ -6302,11 +6416,6 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz#42255ba183ab67ce59a0dee640afdc00ab5ae93e" integrity sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g== -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - js-string-escape@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -6536,6 +6645,13 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levenary@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210" + integrity sha512-VHcwhO0UTpUW7rLPN2/OiWJdgA1e9BqEDALhrgCe/F+uUJnep6CoUsTzMeP8Rh0NGr9uKquXxqe7lwLZo509nQ== + dependencies: + leven "^3.1.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -7227,10 +7343,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.42: - version "1.1.42" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" - integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA== +node-releases@^1.1.44: + version "1.1.45" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" + integrity sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg== dependencies: semver "^6.3.0" From 02d272cf496e12b1c7f72d46799243309d222250 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 14 Jan 2020 08:52:32 +0100 Subject: [PATCH 120/207] Fix access to OEmbed endpoint in secure mode (#12864) --- app/controllers/api/oembed_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/api/oembed_controller.rb b/app/controllers/api/oembed_controller.rb index 37a163cd3..c8c60b1cf 100644 --- a/app/controllers/api/oembed_controller.rb +++ b/app/controllers/api/oembed_controller.rb @@ -3,6 +3,8 @@ class Api::OEmbedController < Api::BaseController respond_to :json + skip_before_action :require_authenticated_user! + def show @status = status_finder.status render json: @status, serializer: OEmbedSerializer, width: maxwidth_or_default, height: maxheight_or_default From dcf7d86378bf07681ff180033465af8e14720a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Guillou?= Date: Tue, 14 Jan 2020 20:20:13 +1000 Subject: [PATCH 121/207] 2019 -> 2020 (#12867) happy new year :tada: --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44694b288..7db66abfa 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ You can open issues for bugs you've found or features you think are missing. You ## License -Copyright (C) 2016-2019 Eugen Rochko & other Mastodon contributors (see [AUTHORS.md](AUTHORS.md)) +Copyright (C) 2016-2020 Eugen Rochko & other Mastodon contributors (see [AUTHORS.md](AUTHORS.md)) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. From 2c15f9aaa2d15cd3c4831b10f15d2b5678e5019e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2020 21:17:21 +0900 Subject: [PATCH 122/207] Bump @babel/preset-react from 7.7.4 to 7.8.3 (#12865) Bumps [@babel/preset-react](https://github.com/babel/babel) from 7.7.4 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 86 ++++++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index c9004ca4e..11a6cca6e 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@babel/plugin-transform-react-inline-elements": "^7.8.0", "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.8.3", - "@babel/preset-react": "^7.7.4", + "@babel/preset-react": "^7.8.3", "@babel/runtime": "^7.8.0", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.17.3", diff --git a/yarn.lock b/yarn.lock index 3da5e20c5..27428188b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,7 +97,7 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-builder-react-jsx@^7.7.4", "@babel/helper-builder-react-jsx@^7.8.0": +"@babel/helper-builder-react-jsx@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.0.tgz#4b9111eb862f5fd8840c37d200610fa95ab0aad8" integrity sha512-Zg7VLtZzcAHoQ13S0pEIGKo8OAG3s5kjsk/4keGmUeNuc810T9fVp6izIaL8ZVeAErRFWJdvqFItY3QMTHMsSg== @@ -105,6 +105,14 @@ "@babel/types" "^7.8.0" esutils "^2.0.0" +"@babel/helper-builder-react-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz#dee98d7d79cc1f003d80b76fe01c7f8945665ff6" + integrity sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ== + dependencies: + "@babel/types" "^7.8.3" + esutils "^2.0.0" + "@babel/helper-call-delegate@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" @@ -507,12 +515,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec" - integrity sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg== +"@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" @@ -735,12 +743,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-react-display-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz#9f2b80b14ebc97eef4a9b29b612c58ed9c0d10dd" - integrity sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw== +"@babel/plugin-transform-react-display-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-inline-elements@^7.8.0": version "7.8.0" @@ -750,30 +758,30 @@ "@babel/helper-builder-react-jsx" "^7.8.0" "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-react-jsx-self@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz#81b8fbfd14b2215e8f1c2c3adfba266127b0231c" - integrity sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A== +"@babel/plugin-transform-react-jsx-self@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz#c4f178b2aa588ecfa8d077ea80d4194ee77ed702" + integrity sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" -"@babel/plugin-transform-react-jsx-source@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz#8994b1bf6014b133f5a46d3b7d1ee5f5e3e72c10" - integrity sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg== +"@babel/plugin-transform-react-jsx-source@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz#951e75a8af47f9f120db731be095d2b2c34920e0" + integrity sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" -"@babel/plugin-transform-react-jsx@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz#d91205717fae4e2f84d020cd3057ec02a10f11da" - integrity sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw== +"@babel/plugin-transform-react-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a" + integrity sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g== dependencies: - "@babel/helper-builder-react-jsx" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.7.4" + "@babel/helper-builder-react-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" "@babel/plugin-transform-regenerator@^7.8.3": version "7.8.3" @@ -907,16 +915,16 @@ levenary "^1.1.0" semver "^5.5.0" -"@babel/preset-react@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.4.tgz#3fe2ea698d8fb536d8e7881a592c3c1ee8bf5707" - integrity sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g== +"@babel/preset-react@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.8.3.tgz#23dc63f1b5b0751283e04252e78cf1d6589273d2" + integrity sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.7.4" - "@babel/plugin-transform-react-jsx" "^7.7.4" - "@babel/plugin-transform-react-jsx-self" "^7.7.4" - "@babel/plugin-transform-react-jsx-source" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.8.3" + "@babel/plugin-transform-react-jsx-self" "^7.8.3" + "@babel/plugin-transform-react-jsx-source" "^7.8.3" "@babel/runtime@7.0.0": version "7.0.0" From a31139c9f15727e28961f4256ea7f24999d9cd38 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2020 10:24:35 +0900 Subject: [PATCH 123/207] Bump browser from 2.7.1 to 3.0.3 (#12850) Bumps [browser](https://github.com/fnando/browser) from 2.7.1 to 3.0.3. - [Release notes](https://github.com/fnando/browser/releases) - [Changelog](https://github.com/fnando/browser/blob/master/CHANGELOG.md) - [Commits](https://github.com/fnando/browser/compare/v2.7.1...v3.0.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index cdb6fa48c..eb12426f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,7 +119,7 @@ GEM bootsnap (1.4.5) msgpack (~> 1.0) brakeman (4.7.2) - browser (2.7.1) + browser (3.0.3) builder (3.2.4) bullet (6.1.0) activesupport (>= 3.0.0) From 827e590d8ecf3b736e7a0ee16c7962e1e1cb78bb Mon Sep 17 00:00:00 2001 From: Shlee Date: Wed, 15 Jan 2020 14:45:00 +0800 Subject: [PATCH 124/207] Drop support for Ruby 2.4 from CircleCI (#12834) * Update config.yml * Update Gemfile * Update README.md * Update Gemfile * Update Gemfile * Update Gemfile * Update README.md * Update README.md --- .circleci/config.yml | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6a948d8c1..5b61b7453 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -116,13 +116,6 @@ jobs: environment: *ruby_environment <<: *install_ruby_dependencies - install-ruby2.4: - <<: *defaults - docker: - - image: circleci/ruby:2.4-buster-node - environment: *ruby_environment - <<: *install_ruby_dependencies - build: <<: *defaults steps: @@ -187,17 +180,6 @@ jobs: - image: circleci/redis:5-alpine <<: *test_steps - test-ruby2.4: - <<: *defaults - docker: - - image: circleci/ruby:2.4-buster-node - environment: *ruby_environment - - image: circleci/postgres:10.6-alpine - environment: - POSTGRES_USER: root - - image: circleci/redis:5-alpine - <<: *test_steps - test-webui: <<: *defaults docker: @@ -232,10 +214,6 @@ workflows: requires: - install - install-ruby2.7 - - install-ruby2.4: - requires: - - install - - install-ruby2.7 - build: requires: - install-ruby2.7 @@ -254,10 +232,6 @@ workflows: requires: - install-ruby2.5 - build - - test-ruby2.4: - requires: - - install-ruby2.4 - - build - test-webui: requires: - install From 345bba481259a508f546cf6c506560e05cdeb1c6 Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 17 Jan 2020 07:50:30 +0100 Subject: [PATCH 125/207] Exempt staff members from spam check (#12874) Consider admins and moderators as trusted, for the purpose of the spam checker. Fixes #12872 --- app/lib/spam_check.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/spam_check.rb b/app/lib/spam_check.rb index 5b40514fd..652d03615 100644 --- a/app/lib/spam_check.rb +++ b/app/lib/spam_check.rb @@ -143,7 +143,7 @@ class SpamCheck end def trusted? - @account.trust_level > Account::TRUST_LEVELS[:untrusted] + @account.trust_level > Account::TRUST_LEVELS[:untrusted] || (@account.local? && @account.user_staff?) end def no_unsolicited_mentions? From 709ca0496d750b66d78b61d78c5e5050be220e3f Mon Sep 17 00:00:00 2001 From: mayaeh Date: Fri, 17 Jan 2020 18:53:53 +0900 Subject: [PATCH 126/207] Undo translations restored to its previous state (#12876) --- config/locales/doorkeeper.en.yml | 1 + config/locales/simple_form.en.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index 4e9c83a8f..2be2ef036 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -38,6 +38,7 @@ en: application: Application callback_url: Callback URL delete: Delete + empty: You have no applications. name: Name new: New application scopes: Scopes diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 65951b73b..66f518c1b 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -150,14 +150,14 @@ en: text: Why do you want to join? notification_emails: digest: Send digest e-mails - favourite: Send e-mail when someone favourites your status - follow: Send e-mail when someone follows you - follow_request: Send e-mail when someone requests to follow you - mention: Send e-mail when someone mentions you - pending_account: Send e-mail when a new account needs review - reblog: Send e-mail when someone boosts your status - report: Send e-mail when a new report is submitted - trending_tag: Send e-mail when an unreviewed hashtag is trending + favourite: Someone favourited your status + follow: Someone followed you + follow_request: Someone requested to follow you + mention: Someone mentioned you + pending_account: New account needs review + reblog: Someone boosted your status + report: New report is submitted + trending_tag: An unreviewed hashtag is trending tag: listable: Allow this hashtag to appear in searches and on the profile directory name: Hashtag From 1ded3bb752916fe87755d80a832af39431a42438 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 18 Jan 2020 19:50:43 +0100 Subject: [PATCH 127/207] Change reported media attachments to always be hidden in admin UI (#12879) Also: - Fix Mastodon logo not showing up in status embeds - Fix blurhash not being used in status embeds - Fix blurhash not being used in admin UI - Fix autoplay param not working correctly on status embeds --- .../mastodon/components/media_gallery.js | 16 +++++++++++----- app/views/admin/reports/_status.html.haml | 7 +++++-- app/views/layouts/admin.html.haml | 1 + app/views/layouts/embedded.html.haml | 4 ++++ app/views/statuses/_detailed_status.html.haml | 4 ++-- app/views/statuses/_simple_status.html.haml | 4 ++-- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.js index 12b7e5b66..cfe164a50 100644 --- a/app/javascript/mastodon/components/media_gallery.js +++ b/app/javascript/mastodon/components/media_gallery.js @@ -23,6 +23,7 @@ class Item extends React.PureComponent { onClick: PropTypes.func.isRequired, displayWidth: PropTypes.number, visible: PropTypes.bool.isRequired, + autoplay: PropTypes.bool, }; static defaultProps = { @@ -48,9 +49,13 @@ class Item extends React.PureComponent { } } + getAutoPlay() { + return this.props.autoplay || autoPlayGif; + } + hoverToPlay () { const { attachment } = this.props; - return !autoPlayGif && attachment.get('type') === 'gifv'; + return !this.getAutoPlay() && attachment.get('type') === 'gifv'; } handleClick = (e) => { @@ -201,7 +206,7 @@ class Item extends React.PureComponent { ); } else if (attachment.get('type') === 'gifv') { - const autoPlay = !isIOS() && autoPlayGif; + const autoPlay = !isIOS() && this.getAutoPlay(); thumbnail = (
@@ -248,6 +253,7 @@ class MediaGallery extends React.PureComponent { defaultWidth: PropTypes.number, cacheWidth: PropTypes.func, visible: PropTypes.bool, + autoplay: PropTypes.bool, onToggleVisibility: PropTypes.func, }; @@ -297,7 +303,7 @@ class MediaGallery extends React.PureComponent { } render () { - const { media, intl, sensitive, height, defaultWidth, standalone } = this.props; + const { media, intl, sensitive, height, defaultWidth, standalone, autoplay } = this.props; const { visible } = this.state; const width = this.state.width || defaultWidth; @@ -320,9 +326,9 @@ class MediaGallery extends React.PureComponent { const uncached = media.every(attachment => attachment.get('type') === 'unknown'); if (standalone && this.isFullSizeEligible()) { - children = ; + children = ; } else { - children = media.take(4).map((attachment, i) => ); + children = media.take(4).map((attachment, i) => ); } if (uncached) { diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index 425d315e1..105352e46 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -14,9 +14,12 @@ - unless status.proper.media_attachments.empty? - if status.proper.media_attachments.first.video? - video = status.proper.media_attachments.first - = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), sensitive: !current_account&.user&.show_all_media? && status.proper.sensitive? || current_account&.user&.hide_all_media?, width: 610, height: 343, inline: true, alt: video.description + = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: status.proper.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description + - elsif status.media_attachments.first.audio? + - audio = status.proper.media_attachments.first + = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) - else - = react_component :media_gallery, height: 343, sensitive: !current_account&.user&.show_all_media? && status.proper.sensitive? || current_account&.user&.hide_all_media?, 'autoPlayGif': current_account&.user&.setting_auto_play_gif, media: status.proper.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } + = react_component :media_gallery, height: 343, sensitive: status.proper.sensitive?, visible: false, media: status.proper.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } .detailed-status__meta = link_to ActivityPub::TagManager.instance.url_for(status), class: 'detailed-status__datetime', target: stream_link_target, rel: 'noopener noreferrer' do diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index d1de2e80f..b1a2d0617 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -1,4 +1,5 @@ - content_for :header_tags do + = render_initial_state = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous' - content_for :content do diff --git a/app/views/layouts/embedded.html.haml b/app/views/layouts/embedded.html.haml index 0503dcdc1..d7e74ade5 100644 --- a/app/views/layouts/embedded.html.haml +++ b/app/views/layouts/embedded.html.haml @@ -14,6 +14,10 @@ = stylesheet_pack_tag Setting.default_settings['theme'], media: 'all' = javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous' = javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous' + = render_initial_state = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous' %body.embed = yield + + %div{ style: 'display: none'} + = render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg') diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml index 3fa52d3f2..021390e47 100644 --- a/app/views/statuses/_detailed_status.html.haml +++ b/app/views/statuses/_detailed_status.html.haml @@ -29,14 +29,14 @@ - if !status.media_attachments.empty? - if status.media_attachments.first.video? - video = status.media_attachments.first - = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, width: 670, height: 380, detailed: true, inline: true, alt: video.description do + = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: status.sensitive?, width: 670, height: 380, detailed: true, inline: true, alt: video.description do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - elsif status.media_attachments.first.audio? - audio = status.media_attachments.first = react_component :audio, src: audio.file.url(:original), height: 130, alt: audio.description, preload: true, duration: audio.file.meta.dig(:original, :duration) do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - else - = react_component :media_gallery, height: 380, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, standalone: true, 'autoPlayGif': current_account&.user&.setting_auto_play_gif || autoplay, 'reduceMotion': current_account&.user&.setting_reduce_motion, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do + = react_component :media_gallery, height: 380, sensitive: status.sensitive?, standalone: true, autoplay: autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - elsif status.preview_card = react_component :card, 'maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_card, serializer: REST::PreviewCardSerializer).as_json diff --git a/app/views/statuses/_simple_status.html.haml b/app/views/statuses/_simple_status.html.haml index edcfbba2b..66c9412af 100644 --- a/app/views/statuses/_simple_status.html.haml +++ b/app/views/statuses/_simple_status.html.haml @@ -33,14 +33,14 @@ - if !status.media_attachments.empty? - if status.media_attachments.first.video? - video = status.media_attachments.first - = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, width: 610, height: 343, inline: true, alt: video.description do + = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: status.sensitive?, width: 610, height: 343, inline: true, alt: video.description do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - elsif status.media_attachments.first.audio? - audio = status.media_attachments.first = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - else - = react_component :media_gallery, height: 343, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, 'autoPlayGif': current_account&.user&.setting_auto_play_gif || autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do + = react_component :media_gallery, height: 343, sensitive: status.sensitive?, autoplay: autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do = render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments } - elsif status.preview_card = react_component :card, 'maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_card, serializer: REST::PreviewCardSerializer).as_json From a7d34d49ada5bb2dea982a36537bfccdcee27da2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 18 Jan 2020 23:22:35 +0100 Subject: [PATCH 128/207] Add is to available locales (#12882) Fix #12869 --- app/helpers/settings_helper.rb | 1 + config/application.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 39eb4180e..10aaf3aca 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -32,6 +32,7 @@ module SettingsHelper hy: 'Հայերեն', id: 'Bahasa Indonesia', io: 'Ido', + is: 'Íslenska', it: 'Italiano', ja: '日本語', ka: 'ქართული', diff --git a/config/application.rb b/config/application.rb index 58e59fd51..c1bc18a30 100644 --- a/config/application.rb +++ b/config/application.rb @@ -70,6 +70,7 @@ module Mastodon :hy, :id, :io, + :is, :it, :ja, :ka, From 69d510a980e340b4317dd396ba61a02544f4f9ed Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 12:43:52 +0100 Subject: [PATCH 129/207] Bump oj from 3.10.0 to 3.10.1 (#12897) Bumps [oj](https://github.com/ohler55/oj) from 3.10.0 to 3.10.1. - [Release notes](https://github.com/ohler55/oj/releases) - [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ohler55/oj/compare/v3.10.0...v3.10.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index eb12426f9..0d89bc62c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -384,7 +384,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.10.0) + oj (3.10.1) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) From 4078eda312e0e0cb6c86cd4b0c5e6ca127065442 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 12:45:23 +0100 Subject: [PATCH 130/207] Bump i18n-tasks from 0.9.29 to 0.9.30 (#12903) Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 0.9.29 to 0.9.30. - [Release notes](https://github.com/glebm/i18n-tasks/releases) - [Changelog](https://github.com/glebm/i18n-tasks/blob/master/CHANGES.md) - [Commits](https://github.com/glebm/i18n-tasks/compare/v0.9.29...v0.9.30) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0d89bc62c..f71511634 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -170,7 +170,7 @@ GEM connection_pool (2.2.2) crack (0.4.3) safe_yaml (~> 1.0.0) - crass (1.0.5) + crass (1.0.6) css_parser (1.7.1) addressable debug_inspector (0.0.3) @@ -267,7 +267,7 @@ GEM concurrent-ruby (~> 1.0) hashdiff (1.0.0) hashie (3.6.0) - highline (2.0.1) + highline (2.0.3) hiredis (0.6.3) hkdf (0.3.0) htmlentities (4.3.4) @@ -285,9 +285,9 @@ GEM httplog (1.3.3) rack (>= 1.0) rainbow (>= 2.0.0) - i18n (1.7.0) + i18n (1.7.1) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.29) + i18n-tasks (0.9.30) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi @@ -365,7 +365,7 @@ GEM mimemagic (0.3.3) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.13.0) + minitest (5.14.0) msgpack (1.3.1) multi_json (1.14.1) multipart-post (2.1.1) @@ -637,7 +637,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.6) - unicode-display_width (1.6.0) + unicode-display_width (1.6.1) uniform_notifier (1.13.0) warden (1.2.8) rack (>= 2.0.6) From 4bdbaf809bd01bf3b044f328aebbcfeb3e9ced83 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 12:46:03 +0100 Subject: [PATCH 131/207] Bump webmock from 3.7.6 to 3.8.0 (#12900) Bumps [webmock](https://github.com/bblimke/webmock) from 3.7.6 to 3.8.0. - [Release notes](https://github.com/bblimke/webmock/releases) - [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md) - [Commits](https://github.com/bblimke/webmock/compare/v3.7.6...v3.8.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a2d851491..e3f77dead 100644 --- a/Gemfile +++ b/Gemfile @@ -124,7 +124,7 @@ group :test do gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' gem 'simplecov', '~> 0.17', require: false - gem 'webmock', '~> 3.7' + gem 'webmock', '~> 3.8' gem 'parallel_tests', '~> 2.30' end diff --git a/Gemfile.lock b/Gemfile.lock index f71511634..128d5b7e4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -641,7 +641,7 @@ GEM uniform_notifier (1.13.0) warden (1.2.8) rack (>= 2.0.6) - webmock (3.7.6) + webmock (3.8.0) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -785,6 +785,6 @@ DEPENDENCIES tty-prompt (~> 0.20) twitter-text (~> 1.14) tzinfo-data (~> 1.2019) - webmock (~> 3.7) + webmock (~> 3.8) webpacker (~> 4.2) webpush From 9f6785592b33daedee68a4e677bc96098592998e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 20:58:56 +0900 Subject: [PATCH 132/207] Bump capistrano-rbenv from 2.1.4 to 2.1.6 (#12898) Bumps [capistrano-rbenv](https://github.com/capistrano/rbenv) from 2.1.4 to 2.1.6. - [Release notes](https://github.com/capistrano/rbenv/releases) - [Changelog](https://github.com/capistrano/rbenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/capistrano/rbenv/compare/v2.1.4...v2.1.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 128d5b7e4..1bbbdd182 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM tzinfo (~> 1.1) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - airbrussh (1.3.4) + airbrussh (1.4.0) sshkit (>= 1.6.1, != 1.7.0) annotate (3.0.3) activerecord (>= 3.2, < 7.0) @@ -139,7 +139,7 @@ GEM capistrano-rails (1.4.0) capistrano (~> 3.1) capistrano-bundler (~> 1.1) - capistrano-rbenv (2.1.4) + capistrano-rbenv (2.1.6) capistrano (~> 3.1) sshkit (~> 1.3) capistrano-yarn (2.0.2) From 7bf808d12644a984958bb3b921cc4a4141ea61f4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 20:59:28 +0900 Subject: [PATCH 133/207] Bump compression-webpack-plugin from 3.0.1 to 3.1.0 (#12896) Bumps [compression-webpack-plugin](https://github.com/webpack-contrib/compression-webpack-plugin) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/webpack-contrib/compression-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/compression-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/compression-webpack-plugin/compare/v3.0.1...v3.1.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 11a6cca6e..b7720bb8c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "babel-runtime": "^6.26.0", "blurhash": "^1.1.3", "classnames": "^2.2.5", - "compression-webpack-plugin": "^3.0.1", + "compression-webpack-plugin": "^3.1.0", "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", "css-loader": "^3.4.2", diff --git a/yarn.lock b/yarn.lock index 27428188b..4b651d22f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2872,10 +2872,10 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.40.0 < 2" -compression-webpack-plugin@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz#be7a343e6dfbccbd64a77c5fbe29627d140fc321" - integrity sha512-FOwoBVzDiwSdJDnZTKXDpAjJU90k8SbChgxnoiYwTo15xjIDJkSC8wFKuc13DymXjgasPEqzS5+2RUgSKXdKKA== +compression-webpack-plugin@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" + integrity sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug== dependencies: cacache "^13.0.1" find-cache-dir "^3.0.0" From acefc19975377ac7a0042205f229a34933591b81 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:00:22 +0900 Subject: [PATCH 134/207] Bump eslint-plugin-import from 2.19.1 to 2.20.0 (#12888) Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.19.1 to 2.20.0. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.19.1...v2.20.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b7720bb8c..93b01d36e 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^6.8.0", - "eslint-plugin-import": "~2.19.1", + "eslint-plugin-import": "~2.20.0", "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-react": "~7.17.0", diff --git a/yarn.lock b/yarn.lock index 4b651d22f..dc68c70d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4049,10 +4049,10 @@ eslint-plugin-eslint-plugin@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5" integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg== -eslint-plugin-import@~2.19.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" - integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw== +eslint-plugin-import@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz#d749a7263fb6c29980def8e960d380a6aa6aecaa" + integrity sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" From 7cb2de8a3919a7394f0a8052e3ae8a0fe1fafbaa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:00:43 +0900 Subject: [PATCH 135/207] Bump wavesurfer.js from 3.3.0 to 3.3.1 (#12889) Bumps [wavesurfer.js](https://github.com/katspaugh/wavesurfer.js) from 3.3.0 to 3.3.1. - [Release notes](https://github.com/katspaugh/wavesurfer.js/releases) - [Changelog](https://github.com/katspaugh/wavesurfer.js/blob/master/CHANGES.md) - [Commits](https://github.com/katspaugh/wavesurfer.js/compare/3.3.0...3.3.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 93b01d36e..e8e7d848f 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "throng": "^4.0.0", "tiny-queue": "^0.2.1", "uuid": "^3.3.3", - "wavesurfer.js": "^3.3.0", + "wavesurfer.js": "^3.3.1", "webpack": "^4.41.5", "webpack-assets-manifest": "^3.1.1", "webpack-bundle-analyzer": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index dc68c70d0..e5d3edfff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10937,10 +10937,10 @@ watchpack@^1.6.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -wavesurfer.js@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.0.tgz#8e3429c5981162562aeb48f555d75bfeaaa4c5c8" - integrity sha512-Lfa5c2uN3ykVTxjkves+hcCpT+aePIr6aTKDgHXvIXIZo/ypC9KNd6kpclygnhEMCZo8VZA2ST/rq8UrBdyteQ== +wavesurfer.js@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.1.tgz#af6e4fb260c7d4fe1b14e7eb51df2dea802ad5c6" + integrity sha512-5w+Daa4EIoFcErXX4hZSkNdfdnCSTiaoTJMF5r7O7O6Kiv+oCrIlLwA73Ms9ULs+IZqOM9XhC33sfINgYdC4rw== wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" From 6bd2186733e7c82dccdd48b7fb4af79dd3d32201 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:02:45 +0900 Subject: [PATCH 136/207] Bump autoprefixer from 9.7.3 to 9.7.4 (#12890) Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 9.7.3 to 9.7.4. - [Release notes](https://github.com/postcss/autoprefixer/releases) - [Changelog](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md) - [Commits](https://github.com/postcss/autoprefixer/compare/9.7.3...9.7.4) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 37 ++++++++++++++++--------------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index e8e7d848f..f32bef2e3 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@clusterws/cws": "^0.17.3", "array-includes": "^3.1.1", "arrow-key-navigation": "^1.1.0", - "autoprefixer": "^9.7.3", + "autoprefixer": "^9.7.4", "axios": "^0.19.1", "babel-loader": "^8.0.6", "babel-plugin-lodash": "^3.3.4", diff --git a/yarn.lock b/yarn.lock index e5d3edfff..72986fe96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1965,17 +1965,17 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.7.3: - version "9.7.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" - integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q== +autoprefixer@^9.7.4: + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== dependencies: - browserslist "^4.8.0" - caniuse-lite "^1.0.30001012" + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.23" + postcss "^7.0.26" postcss-value-parser "^4.0.2" aws-sign2@~0.7.0: @@ -2382,7 +2382,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.8.0, browserslist@^4.8.2, browserslist@^4.8.3: +browserslist@^4.0.0, browserslist@^4.8.2, browserslist@^4.8.3: version "4.8.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== @@ -2558,15 +2558,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012: - version "1.0.30001013" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72" - integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg== - -caniuse-lite@^1.0.30001017: - version "1.0.30001020" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" - integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001017, caniuse-lite@^1.0.30001020: + version "1.0.30001021" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001021.tgz#e75ed1ef6dbadd580ac7e7720bb16f07b083f254" + integrity sha512-wuMhT7/hwkgd8gldgp2jcrUjOU9RXJ4XxGumQeOsUr91l3WwmM68Cpa/ymCnWEDqakwFXhuDQbaKNHXBPgeE9g== capture-exit@^1.2.0: version "1.2.0" @@ -8486,10 +8481,10 @@ postcss@^5.0.16: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1" - integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.26" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" + integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== dependencies: chalk "^2.4.2" source-map "^0.6.1" From d39e289a763692e7929cc921be3c9a77091174eb Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:05:36 +0900 Subject: [PATCH 137/207] Bump @babel/plugin-proposal-class-properties from 7.7.4 to 7.8.3 (#12891) Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.7.4 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 134 ++++++--------------------------------------------- 2 files changed, 17 insertions(+), 119 deletions(-) diff --git a/package.json b/package.json index f32bef2e3..73c1de129 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "private": true, "dependencies": { "@babel/core": "^7.7.7", - "@babel/plugin-proposal-class-properties": "^7.7.4", + "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-decorators": "^7.8.0", "@babel/plugin-transform-react-inline-elements": "^7.8.0", "@babel/plugin-transform-runtime": "^7.7.6", diff --git a/yarn.lock b/yarn.lock index 72986fe96..cb698b37d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,13 +9,6 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.0.tgz#8c98d4ac29d6f80f28127b1bc50970a72086c5ac" - integrity sha512-AN2IR/wCUYsM+PdErq6Bp3RFTXl8W0p9Nmymm7zkpsCmh+r/YYcckaCGpU8Q/mEKmST19kkGRaG42A/jxOWwBA== - dependencies: - "@babel/highlight" "^7.8.0" - "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" @@ -62,16 +55,6 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.0.tgz#40a1244677be58ffdc5cd01e22634cd1d5b29edf" - integrity sha512-2Lp2e02CV2C7j/H4n4D9YvsvdhPVVg9GDIamr6Tu4tU35mL3mzOrzl1lZ8ZJtysfZXh+y+AGORc2rPS7yHxBUg== - dependencies: - "@babel/types" "^7.8.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - "@babel/generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" @@ -133,17 +116,17 @@ levenary "^1.1.0" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.7.4", "@babel/helper-create-class-features-plugin@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.0.tgz#b3ddf557ed4656e0d296c3b0f3fcd381ea8de72c" - integrity sha512-ctCvqYBTlwEl2uF4hCxE0cd/sSw71Zfag0jKa39y4HDLh0BQ4PVBX1384Ye8GqrEZ69xgLp9fwPbv3GgIDDF2Q== +"@babel/helper-create-class-features-plugin@^7.8.0", "@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" + integrity sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA== dependencies: - "@babel/helper-function-name" "^7.8.0" - "@babel/helper-member-expression-to-functions" "^7.8.0" - "@babel/helper-optimise-call-expression" "^7.8.0" - "@babel/helper-plugin-utils" "^7.8.0" - "@babel/helper-replace-supers" "^7.8.0" - "@babel/helper-split-export-declaration" "^7.8.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" "@babel/helper-create-regexp-features-plugin@^7.8.3": version "7.8.3" @@ -179,15 +162,6 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-function-name@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.0.tgz#dde5cf0d6b15c21817a67dd66fe7350348e023bf" - integrity sha512-x9psucuU0Xalw+0Vpr2FYJMLB7/KnPSLZhlkUyOGbYAWRDfmtZBrguYpJYiaNCRV7vGkYjO/gF6/J6yMvdWTDw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.0" - "@babel/template" "^7.8.0" - "@babel/types" "^7.8.0" - "@babel/helper-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" @@ -204,13 +178,6 @@ dependencies: "@babel/types" "^7.7.4" -"@babel/helper-get-function-arity@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.0.tgz#90977f61d76d2225d1ae0208def7df22ea92792e" - integrity sha512-eUP5grliToMapQiTaYS2AAO/WwaCG7cuJztR1v/a1aPzUzUeGt+AaI9OvLATc/AfFkF8SLJ10d5ugGt/AQ9d6w== - dependencies: - "@babel/types" "^7.8.0" - "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" @@ -225,13 +192,6 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.0.tgz#50d0ed445d2da11beb60e2dbc2c428254bd5a4ae" - integrity sha512-0m1QabGrdXuoxX/g+KOAGndoHwskC70WweqHRQyCsaO67KOEELYh4ECcGw6ZGKjDKa5Y7SW4Qbhw6ly4Fah/jQ== - dependencies: - "@babel/types" "^7.8.0" - "@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" @@ -258,13 +218,6 @@ "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.0.tgz#3df62773cf210db9ed34c2bb39fece5acd1e1733" - integrity sha512-aiJt1m+K57y0n10fTw+QXcCXzmpkG+o+NoQmAZqlZPstkTE0PZT+Z27QSd/6Gf00nuXJQO4NiJ0/YagSW5kC2A== - dependencies: - "@babel/types" "^7.8.0" - "@babel/helper-optimise-call-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" @@ -295,16 +248,6 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.0.tgz#d83cb117edb820eebe9ae6c970a8ad5eac09d19f" - integrity sha512-R2CyorW4tcO3YzdkClLpt6MS84G+tPkOi0MmiCn1bvYVnmDpdl9R15XOi3NQW2mhOAEeBnuQ4g1Bh7pT2sX8fg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.0" - "@babel/helper-optimise-call-expression" "^7.8.0" - "@babel/traverse" "^7.8.0" - "@babel/types" "^7.8.0" - "@babel/helper-replace-supers@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" @@ -330,13 +273,6 @@ dependencies: "@babel/types" "^7.7.4" -"@babel/helper-split-export-declaration@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.0.tgz#ed10cb03b07454c0d40735fad4e9c9711e739588" - integrity sha512-YhYFhH4T6DlbT6CPtVgLfC1Jp2gbCawU/ml7WJvUpBg01bCrXSzTYMZZXbbIGjq/kHmK8YUATxTppcRGzj31pA== - dependencies: - "@babel/types" "^7.8.0" - "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" @@ -372,15 +308,6 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/highlight@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.0.tgz#4cc003dc10359919e2e3a1d9459150942913dd1a" - integrity sha512-OsdTJbHlPtIk2mmtwXItYrdmalJ8T0zpVzNAbKSkHshuywj7zb29Y09McV/jQsQunc/nEyHiPV2oy9llYMLqxw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -395,11 +322,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== -"@babel/parser@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.0.tgz#54682775f1fb25dd29a93a02315aab29a6a292bb" - integrity sha512-VVtsnUYbd1+2A2vOVhm4P2qNXQE8L/W859GpUHfUcdhX8d3pEKThZuIr6fztocWx9HbK+00/CR0tXnhAggJ4CA== - "@babel/parser@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" @@ -414,13 +336,13 @@ "@babel/helper-remap-async-to-generator" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz#2f964f0cb18b948450362742e33e15211e77c2ba" - integrity sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw== +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-decorators@^7.8.0": version "7.8.0" @@ -956,15 +878,6 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/template@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.0.tgz#a32f57ad3be89c0fa69ae87b53b4826844dc6330" - integrity sha512-0NNMDsY2t3ltAVVK1WHNiaePo3tXPUeJpCX4I3xSKFoEl852wJHG8mrgHVADf8Lz1y+8al9cF7cSSfzSnFSYiw== - dependencies: - "@babel/code-frame" "^7.8.0" - "@babel/parser" "^7.8.0" - "@babel/types" "^7.8.0" - "@babel/template@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" @@ -989,21 +902,6 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.0.tgz#d85266fdcff553c10e57b672604b36383a127c1f" - integrity sha512-d/6sPXFLGlJHZO/zWDtgFaKyalCOHLedzxpVJn6el1cw+f2TZa7xZEszeXdOw6EUemqRFBAn106BWBvtSck9Qw== - dependencies: - "@babel/code-frame" "^7.8.0" - "@babel/generator" "^7.8.0" - "@babel/helper-function-name" "^7.8.0" - "@babel/helper-split-export-declaration" "^7.8.0" - "@babel/parser" "^7.8.0" - "@babel/types" "^7.8.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - "@babel/traverse@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" From af70e54d71c9a696a8130f0847e98a043b0b38ca Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:05:52 +0900 Subject: [PATCH 138/207] Bump @babel/runtime from 7.8.0 to 7.8.3 (#12892) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.0 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.8.3/packages/babel-runtime) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 73c1de129..4ea77a2f2 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.8.3", "@babel/preset-react": "^7.8.3", - "@babel/runtime": "^7.8.0", + "@babel/runtime": "^7.8.3", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.17.3", "array-includes": "^3.1.1", diff --git a/yarn.lock b/yarn.lock index cb698b37d..fb4074012 100644 --- a/yarn.lock +++ b/yarn.lock @@ -862,10 +862,10 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.0.tgz#8c81711517c56b3d00c6de706b0fb13dc3531549" - integrity sha512-Z7ti+HB0puCcLmFE3x90kzaVgbx6TRrYIReaygW6EkBEnJh1ajS4/inhF7CypzWeDV3NFl1AfWj0eMtdihojxw== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.3.tgz#0811944f73a6c926bb2ad35e918dcc1bfab279f1" + integrity sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w== dependencies: regenerator-runtime "^0.13.2" From 7f22cb6d2b88497427b4ea45c64eb136ed9c0627 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:06:40 +0900 Subject: [PATCH 139/207] Bump react-swipeable-views from 0.13.3 to 0.13.4 (#12894) Bumps [react-swipeable-views](https://github.com/oliviertassinari/react-swipeable-views) from 0.13.3 to 0.13.4. - [Release notes](https://github.com/oliviertassinari/react-swipeable-views/releases) - [Changelog](https://github.com/oliviertassinari/react-swipeable-views/blob/master/CHANGELOG.md) - [Commits](https://github.com/oliviertassinari/react-swipeable-views/compare/v0.13.3...v0.13.4) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 33 +++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 4ea77a2f2..a401c7e51 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "react-router-scroll-4": "^1.0.0-beta.1", "react-select": "^3.0.8", "react-sparklines": "^1.7.0", - "react-swipeable-views": "^0.13.3", + "react-swipeable-views": "^0.13.4", "react-textarea-autosize": "^7.1.2", "react-toggle": "^4.1.1", "redis": "^2.7.1", diff --git a/yarn.lock b/yarn.lock index fb4074012..67c2b87b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3256,6 +3256,11 @@ csstype@^2.5.7: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41" integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg== +csstype@^2.6.7: + version "2.6.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431" + integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA== + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -3538,6 +3543,14 @@ dom-helpers@^3.2.1, dom-helpers@^3.3.1: dependencies: "@babel/runtime" "^7.1.2" +dom-helpers@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821" + integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw== + dependencies: + "@babel/runtime" "^7.6.3" + csstype "^2.6.7" + dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -8885,10 +8898,10 @@ react-swipeable-views-core@^0.13.1: "@babel/runtime" "7.0.0" warning "^4.0.1" -react-swipeable-views-utils@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.3.tgz#c234d8d836bb085803631a9fef0adb2f9597221f" - integrity sha512-CZkJwiNQPISkyTsPMUPiJgwJBrUVd7NC3WSUvx30uwvPb0Sy2w2+tpU51qeYc6YwIhex0s5Eu5YPjK3PDBh+gA== +react-swipeable-views-utils@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.4.tgz#809fe408e55ed80f84eea508074387c23febf0ab" + integrity sha512-C6Ppq7Z5JIn4l8gKuRzzoGcm5Yiu57HBribjZ0T8DIeLisvIvk8A+Wysb1JhP0hsnJ9hIozlEZ8oJi4eBUTRXg== dependencies: "@babel/runtime" "7.0.0" fbjs "^0.8.4" @@ -8897,16 +8910,16 @@ react-swipeable-views-utils@^0.13.3: react-event-listener "^0.6.0" react-swipeable-views-core "^0.13.1" -react-swipeable-views@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.3.tgz#2ad886767c6b2de88000606a14bedde12156e6d0" - integrity sha512-LBHRA5ZouipmoLLwi0cqB8qc7NHLskbXmT1I+ZztC9JfmgKrfichw5R+7q4igQ+5VbaP6jL1vn8BtHW96WYNFQ== +react-swipeable-views@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.4.tgz#ebbe50a8592b185dbedf9e0060eaee09cf6b2c67" + integrity sha512-Qwmaj8LASEgxp3i4FBEgs1LM/Yqk7mFRp0fRgXH515NIEePUcjrrkuwvvmvwNQLDbN6PNv4QAuosEaTRyjEOUA== dependencies: "@babel/runtime" "7.0.0" - dom-helpers "^3.2.1" + dom-helpers "^5.1.3" prop-types "^15.5.4" react-swipeable-views-core "^0.13.1" - react-swipeable-views-utils "^0.13.3" + react-swipeable-views-utils "^0.13.4" warning "^4.0.1" react-test-renderer@^16.0.0-0, react-test-renderer@^16.12.0: From 850a2177840451bdf8f240f00d3ca881c5481f53 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:37:26 +0900 Subject: [PATCH 140/207] Bump faker from 2.10.0 to 2.10.1 (#12899) Bumps [faker](https://github.com/faker-ruby/faker) from 2.10.0 to 2.10.1. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1bbbdd182..05c66ba3e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -218,8 +218,8 @@ GEM tzinfo excon (0.71.0) fabrication (2.21.0) - faker (2.10.0) - i18n (>= 1.6, < 1.8) + faker (2.10.1) + i18n (>= 1.6, < 2) faraday (1.0.0) multipart-post (>= 1.2, < 3) fast_blank (1.0.0) @@ -285,7 +285,7 @@ GEM httplog (1.3.3) rack (>= 1.0) rainbow (>= 2.0.0) - i18n (1.7.1) + i18n (1.8.2) concurrent-ruby (~> 1.0) i18n-tasks (0.9.30) activesupport (>= 4.0.2) From 51182843d49d04621c3d3069f44f365fd9f415e5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 22:08:14 +0900 Subject: [PATCH 141/207] Bump parallel_tests from 2.30.0 to 2.30.1 (#12901) Bumps [parallel_tests](https://github.com/grosser/parallel_tests) from 2.30.0 to 2.30.1. - [Release notes](https://github.com/grosser/parallel_tests/releases) - [Commits](https://github.com/grosser/parallel_tests/compare/v2.30.0...v2.30.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 05c66ba3e..855c3cdf2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -407,7 +407,7 @@ GEM av (~> 0.9.0) paperclip (>= 2.5.2) parallel (1.19.1) - parallel_tests (2.30.0) + parallel_tests (2.30.1) parallel parser (2.7.0.2) ast (~> 2.4.0) From 204dd7fd22f58462b77725d38cb15955e536317c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 23:15:59 +0900 Subject: [PATCH 142/207] Bump @babel/plugin-proposal-decorators from 7.8.0 to 7.8.3 (#12895) Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel) from 7.8.0 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index a401c7e51..75c80fa5f 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "dependencies": { "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.0", + "@babel/plugin-proposal-decorators": "^7.8.3", "@babel/plugin-transform-react-inline-elements": "^7.8.0", "@babel/plugin-transform-runtime": "^7.7.6", "@babel/preset-env": "^7.8.3", diff --git a/yarn.lock b/yarn.lock index 67c2b87b5..cb74279d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -116,7 +116,7 @@ levenary "^1.1.0" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.8.0", "@babel/helper-create-class-features-plugin@^7.8.3": +"@babel/helper-create-class-features-plugin@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" integrity sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA== @@ -344,14 +344,14 @@ "@babel/helper-create-class-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-decorators@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.0.tgz#2f1661712c557de8bc65c0b58876a2b47ff886d5" - integrity sha512-HKltBhhrRigrHYkDrO/9rg+ZerXSAtZjepm8URUrNxgzTzEfuOb06fUU311chMkahZHSfASNUxWVwRzIwGt/uw== +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e" + integrity sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.0" - "@babel/helper-plugin-utils" "^7.8.0" - "@babel/plugin-syntax-decorators" "^7.8.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-decorators" "^7.8.3" "@babel/plugin-proposal-dynamic-import@^7.8.3": version "7.8.3" @@ -416,12 +416,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-decorators@^7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.0.tgz#4a2930ef597c5bc5c5ae9a97d7883d03eeb48eb2" - integrity sha512-Qz68qh9jJqQePGWqbNW9PA7vkE2gvnWkYtx32jgPOszpE7u+xObPkRGm3B80oXAjQlBdTa4ktqjkOIRiKRuapw== +"@babel/plugin-syntax-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda" + integrity sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.3" From 06f6995860d507ac26f23722506420b5cdae2ffe Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 23:45:10 +0900 Subject: [PATCH 143/207] Bump httplog from 1.3.3 to 1.4.0 (#12902) Bumps [httplog](https://github.com/trusche/httplog) from 1.3.3 to 1.4.0. - [Release notes](https://github.com/trusche/httplog/releases) - [Changelog](https://github.com/trusche/httplog/blob/master/CHANGELOG.md) - [Commits](https://github.com/trusche/httplog/compare/v1.3.3...v1.4.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e3f77dead..daab71588 100644 --- a/Gemfile +++ b/Gemfile @@ -59,7 +59,7 @@ gem 'htmlentities', '~> 4.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' +gem 'httplog', '~> 1.4' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.1' gem 'link_header', '~> 0.0' diff --git a/Gemfile.lock b/Gemfile.lock index 855c3cdf2..50bb61d75 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -282,7 +282,7 @@ GEM http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) http_accept_language (2.1.1) - httplog (1.3.3) + httplog (1.4.0) rack (>= 1.0) rainbow (>= 2.0.0) i18n (1.8.2) @@ -709,7 +709,7 @@ DEPENDENCIES http (~> 4.3) http_accept_language (~> 2.1) http_parser.rb (~> 0.6)! - httplog (~> 1.3) + httplog (~> 1.4) i18n-tasks (~> 0.9) idn-ruby iso-639 From 6feafb8802b2759eb33968a70b6c1cb100bf3926 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 20 Jan 2020 15:55:03 +0100 Subject: [PATCH 144/207] Various fixes and improvements (#12878) * Fix unused role routes being generated * Remove unused JavaScript code * Refactor filters code to be DRYer * Fix `.count == 0` comparisons to `.empty?` in views * Fix filters in views --- app/controllers/admin/accounts_controller.rb | 16 +--------------- .../admin/custom_emojis_controller.rb | 2 +- app/controllers/admin/instances_controller.rb | 2 +- app/controllers/admin/invites_controller.rb | 2 +- app/controllers/admin/reports_controller.rb | 7 +------ app/controllers/admin/tags_controller.rb | 2 +- app/controllers/relationships_controller.rb | 2 +- app/helpers/admin/filter_helper.rb | 18 +++++++++--------- app/javascript/packs/public.js | 9 --------- app/models/account_filter.rb | 15 +++++++++++++++ app/models/custom_emoji_filter.rb | 7 +++++++ app/models/instance_filter.rb | 5 +++++ app/models/invite_filter.rb | 5 +++++ app/models/relationship_filter.rb | 11 +++++++++++ app/models/report_filter.rb | 7 +++++++ app/models/tag_filter.rb | 10 ++++++++++ app/views/admin/accounts/index.html.haml | 2 +- app/views/admin/custom_emojis/index.html.haml | 4 ++-- .../admin/email_domain_blocks/index.html.haml | 2 +- app/views/admin/instances/index.html.haml | 5 ++--- app/views/admin/reports/index.html.haml | 5 ++--- app/views/admin/tags/index.html.haml | 5 ++--- app/views/filters/index.html.haml | 2 +- app/views/relationships/show.html.haml | 7 +++---- .../settings/applications/index.html.haml | 2 +- config/routes.rb | 2 +- 26 files changed, 92 insertions(+), 64 deletions(-) create mode 100644 app/models/relationship_filter.rb diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 68b6352f8..7b1783542 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -109,21 +109,7 @@ module Admin end def filter_params - params.permit( - :local, - :remote, - :by_domain, - :active, - :pending, - :disabled, - :silenced, - :suspended, - :username, - :display_name, - :email, - :ip, - :staff - ) + params.slice(*AccountFilter::KEYS).permit(*AccountFilter::KEYS) end end end diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index a446465c9..efa8f2950 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -48,7 +48,7 @@ module Admin end def filter_params - params.slice(:local, :remote, :by_domain, :shortcode, :page).permit(:local, :remote, :by_domain, :shortcode, :page) + params.slice(:page, *CustomEmojiFilter::KEYS).permit(:page, *CustomEmojiFilter::KEYS) end def action_from_button diff --git a/app/controllers/admin/instances_controller.rb b/app/controllers/admin/instances_controller.rb index b47b18f8e..2fc041207 100644 --- a/app/controllers/admin/instances_controller.rb +++ b/app/controllers/admin/instances_controller.rb @@ -62,7 +62,7 @@ module Admin end def filter_params - params.permit(:limited, :by_domain) + params.slice(*InstanceFilter::KEYS).permit(*InstanceFilter::KEYS) end end end diff --git a/app/controllers/admin/invites_controller.rb b/app/controllers/admin/invites_controller.rb index 44a8eec77..dabfe9765 100644 --- a/app/controllers/admin/invites_controller.rb +++ b/app/controllers/admin/invites_controller.rb @@ -47,7 +47,7 @@ module Admin end def filter_params - params.permit(:available, :expired) + params.slice(*InviteFilter::KEYS).permit(*InviteFilter::KEYS) end end end diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb index 09ce1761c..7c831b3d4 100644 --- a/app/controllers/admin/reports_controller.rb +++ b/app/controllers/admin/reports_controller.rb @@ -52,12 +52,7 @@ module Admin end def filter_params - params.permit( - :account_id, - :resolved, - :target_account_id, - :by_target_domain - ) + params.slice(*ReportFilter::KEYS).permit(*ReportFilter::KEYS) end def set_report diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 65341bbfb..59df4470e 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -73,7 +73,7 @@ module Admin end def filter_params - params.slice(:directory, :reviewed, :unreviewed, :pending_review, :page, :popular, :active, :name).permit(:directory, :reviewed, :unreviewed, :pending_review, :page, :popular, :active, :name) + params.slice(:page, *TagFilter::KEYS).permit(:page, *TagFilter::KEYS) end def tag_params diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index e6705c327..9d0be4a00 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -85,7 +85,7 @@ class RelationshipsController < ApplicationController end def current_params - params.slice(:page, :status, :relationship, :by_domain, :activity, :order).permit(:page, :status, :relationship, :by_domain, :activity, :order) + params.slice(:page, *RelationshipFilter::KEYS).permit(:page, *RelationshipFilter::KEYS) end def action_from_button diff --git a/app/helpers/admin/filter_helper.rb b/app/helpers/admin/filter_helper.rb index fc4f15985..130686a02 100644 --- a/app/helpers/admin/filter_helper.rb +++ b/app/helpers/admin/filter_helper.rb @@ -1,15 +1,15 @@ # frozen_string_literal: true module Admin::FilterHelper - ACCOUNT_FILTERS = %i(local remote by_domain active pending silenced suspended username display_name email ip staff).freeze - REPORT_FILTERS = %i(resolved account_id target_account_id by_target_domain).freeze - INVITE_FILTER = %i(available expired).freeze - CUSTOM_EMOJI_FILTERS = %i(local remote by_domain shortcode).freeze - TAGS_FILTERS = %i(directory reviewed unreviewed pending_review popular active name).freeze - INSTANCES_FILTERS = %i(limited by_domain).freeze - FOLLOWERS_FILTERS = %i(relationship status by_domain activity order).freeze - - FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS + INVITE_FILTER + CUSTOM_EMOJI_FILTERS + TAGS_FILTERS + INSTANCES_FILTERS + FOLLOWERS_FILTERS + FILTERS = [ + AccountFilter::KEYS, + CustomEmojiFilter::KEYS, + ReportFilter::KEYS, + TagFilter::KEYS, + InstanceFilter::KEYS, + InviteFilter::KEYS, + RelationshipFilter::KEYS, + ].flatten.freeze def filter_link_to(text, link_to_params, link_class_params = link_to_params) new_url = filtered_url_for(link_to_params) diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index 6a7f8831d..9bc6214af 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -142,15 +142,6 @@ function main() { return false; }); - delegate(document, '.blocks-table button.icon-button', 'click', function(e) { - e.preventDefault(); - - const classList = this.firstElementChild.classList; - classList.toggle('fa-chevron-down'); - classList.toggle('fa-chevron-up'); - this.parentElement.parentElement.nextElementSibling.classList.toggle('hidden'); - }); - delegate(document, '.modal-button', 'click', e => { e.preventDefault(); diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb index c3b1fe08d..c1e6b0deb 100644 --- a/app/models/account_filter.rb +++ b/app/models/account_filter.rb @@ -1,6 +1,21 @@ # frozen_string_literal: true class AccountFilter + KEYS = %i( + local + remote + by_domain + active + pending + silenced + suspended + username + display_name + email + ip + staff + ).freeze + attr_reader :params def initialize(params) diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb index 15b8da1d1..414e1fcdd 100644 --- a/app/models/custom_emoji_filter.rb +++ b/app/models/custom_emoji_filter.rb @@ -1,6 +1,13 @@ # frozen_string_literal: true class CustomEmojiFilter + KEYS = %i( + local + remote + by_domain + shortcode + ).freeze + attr_reader :params def initialize(params) diff --git a/app/models/instance_filter.rb b/app/models/instance_filter.rb index 8bfab826d..9c467bc27 100644 --- a/app/models/instance_filter.rb +++ b/app/models/instance_filter.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true class InstanceFilter + KEYS = %i( + limited + by_domain + ).freeze + attr_reader :params def initialize(params) diff --git a/app/models/invite_filter.rb b/app/models/invite_filter.rb index 7d89bad4a..9685d4abb 100644 --- a/app/models/invite_filter.rb +++ b/app/models/invite_filter.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true class InviteFilter + KEYS = %i( + available + expired + ).freeze + attr_reader :params def initialize(params) diff --git a/app/models/relationship_filter.rb b/app/models/relationship_filter.rb new file mode 100644 index 000000000..51640f494 --- /dev/null +++ b/app/models/relationship_filter.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class RelationshipFilter + KEYS = %i( + relationship + status + by_domain + activity + order + ).freeze +end diff --git a/app/models/report_filter.rb b/app/models/report_filter.rb index abf53cbab..c32d4359e 100644 --- a/app/models/report_filter.rb +++ b/app/models/report_filter.rb @@ -1,6 +1,13 @@ # frozen_string_literal: true class ReportFilter + KEYS = %i( + resolved + account_id + target_account_id + by_target_domain + ).freeze + attr_reader :params def initialize(params) diff --git a/app/models/tag_filter.rb b/app/models/tag_filter.rb index 8921e186b..a9ff5b703 100644 --- a/app/models/tag_filter.rb +++ b/app/models/tag_filter.rb @@ -1,6 +1,16 @@ # frozen_string_literal: true class TagFilter + KEYS = %i( + directory + reviewed + unreviewed + pending_review + popular + active + name + ).freeze + attr_reader :params def initialize(params) diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml index 7e9adb3ff..3a85324c9 100644 --- a/app/views/admin/accounts/index.html.haml +++ b/app/views/admin/accounts/index.html.haml @@ -22,7 +22,7 @@ = form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do .fields-group - - Admin::FilterHelper::ACCOUNT_FILTERS.each do |key| + - AccountFilter::KEYS.each do |key| - if params[key].present? = hidden_field_tag key, params[key] diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 389e9dd71..69aa5ae41 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -25,7 +25,7 @@ = form_tag admin_custom_emojis_url, method: 'GET', class: 'simple_form' do .fields-group - - Admin::FilterHelper::CUSTOM_EMOJI_FILTERS.each do |key| + - CustomEmojiFilter::KEYS.each do |key| = hidden_field_tag key, params[key] if params[key].present? - %i(shortcode by_domain).each do |key| @@ -39,7 +39,7 @@ = form_for(@form, url: batch_admin_custom_emojis_path) do |f| = hidden_field_tag :page, params[:page] || 1 - - Admin::FilterHelper::CUSTOM_EMOJI_FILTERS.each do |key| + - CustomEmojiFilter::KEYS.each do |key| = hidden_field_tag key, params[key] if params[key].present? .batch-table diff --git a/app/views/admin/email_domain_blocks/index.html.haml b/app/views/admin/email_domain_blocks/index.html.haml index c1cc470b6..6015cfac0 100644 --- a/app/views/admin/email_domain_blocks/index.html.haml +++ b/app/views/admin/email_domain_blocks/index.html.haml @@ -4,7 +4,7 @@ - content_for :heading_actions do = link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button' -- if @email_domain_blocks.count == 0 +- if @email_domain_blocks.empty? %div.muted-hint.center-text=t 'admin.email_domain_blocks.empty' - else .table-wrapper diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml index 1d85aa75e..0b299acc5 100644 --- a/app/views/admin/instances/index.html.haml +++ b/app/views/admin/instances/index.html.haml @@ -19,9 +19,8 @@ - unless whitelist_mode? = form_tag admin_instances_url, method: 'GET', class: 'simple_form' do .fields-group - - Admin::FilterHelper::INSTANCES_FILTERS.each do |key| - - if params[key].present? - = hidden_field_tag key, params[key] + - InstanceFilter::KEYS.each do |key| + = hidden_field_tag key, params[key] if params[key].present? - %i(by_domain).each do |key| .input.string.optional diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index 30c7549b0..0263b80fb 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -10,9 +10,8 @@ = form_tag admin_reports_url, method: 'GET', class: 'simple_form' do .fields-group - - Admin::FilterHelper::REPORT_FILTERS.each do |key| - - if params[key].present? - = hidden_field_tag key, params[key] + - ReportFilter::KEYS.each do |key| + = hidden_field_tag key, params[key] if params[key].present? - %i(by_target_domain).each do |key| .input.string.optional diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml index 7f2c53190..1ff538ba3 100644 --- a/app/views/admin/tags/index.html.haml +++ b/app/views/admin/tags/index.html.haml @@ -28,7 +28,7 @@ = form_tag admin_tags_url, method: 'GET', class: 'simple_form' do .fields-group - - Admin::FilterHelper::TAGS_FILTERS.each do |key| + - TagFilter::KEYS.each do |key| = hidden_field_tag key, params[key] if params[key].present? - %i(name).each do |key| @@ -43,9 +43,8 @@ = form_for(@form, url: batch_admin_tags_path) do |f| = hidden_field_tag :page, params[:page] || 1 - = hidden_field_tag :name, params[:name] if params[:name].present? - - Admin::FilterHelper::TAGS_FILTERS.each do |key| + - TagFilter::KEYS.each do |key| = hidden_field_tag key, params[key] if params[key].present? .batch-table.optional diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml index 8ace638ca..b4d5333aa 100644 --- a/app/views/filters/index.html.haml +++ b/app/views/filters/index.html.haml @@ -4,7 +4,7 @@ - content_for :heading_actions do = link_to t('filters.new.title'), new_filter_path, class: 'button' -- if @filters.count == 0 +- if @filters.empty? %div.muted-hint.center-text= t 'filters.index.empty' - else .table-wrapper diff --git a/app/views/relationships/show.html.haml b/app/views/relationships/show.html.haml index 0da1596ce..099bb3202 100644 --- a/app/views/relationships/show.html.haml +++ b/app/views/relationships/show.html.haml @@ -33,10 +33,9 @@ = form_for(@form, url: relationships_path, method: :patch) do |f| = hidden_field_tag :page, params[:page] || 1 - = hidden_field_tag :relationship, params[:relationship] - = hidden_field_tag :status, params[:status] - = hidden_field_tag :activity, params[:activity] - = hidden_field_tag :order, params[:order] + + - RelationshipFilter::KEYS.each do |key| + = hidden_field_tag key, params[key] if params[key].present? .batch-table .batch-table__toolbar diff --git a/app/views/settings/applications/index.html.haml b/app/views/settings/applications/index.html.haml index 1cb94760f..a1f904a3a 100644 --- a/app/views/settings/applications/index.html.haml +++ b/app/views/settings/applications/index.html.haml @@ -4,7 +4,7 @@ - content_for :heading_actions do = link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button' -- if @applications.count == 0 +- if @applications.empty? %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty' - else .table-wrapper diff --git a/config/routes.rb b/config/routes.rb index 5411cff58..ff308699d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -231,7 +231,7 @@ Rails.application.routes.draw do end end - resource :role do + resource :role, only: [] do member do post :promote post :demote From 39f2bce23104ed7352318c2976c728b5553976e2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2020 00:14:06 +0900 Subject: [PATCH 145/207] Bump @babel/core from 7.7.7 to 7.8.3 (#12893) Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 132 ++++++++++++--------------------------------------- 2 files changed, 31 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 75c80fa5f..6104ebce8 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.7.7", + "@babel/core": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-decorators": "^7.8.3", "@babel/plugin-transform-react-inline-elements": "^7.8.0", diff --git a/yarn.lock b/yarn.lock index cb74279d3..bf83649ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== @@ -25,37 +18,28 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" - integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== +"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" + integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.7" - "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.7" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helpers" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" convert-source-map "^1.7.0" debug "^4.1.0" + gensync "^1.0.0-beta.1" json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" - integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== - dependencies: - "@babel/types" "^7.7.4" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.8.3": +"@babel/generator@^7.0.0", "@babel/generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== @@ -153,15 +137,6 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" - integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== - dependencies: - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - "@babel/helper-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" @@ -171,13 +146,6 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-get-function-arity@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" - integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== - dependencies: - "@babel/types" "^7.7.4" - "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" @@ -266,13 +234,6 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-split-export-declaration@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" - integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== - dependencies: - "@babel/types" "^7.7.4" - "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" @@ -290,23 +251,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" - integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== +"@babel/helpers@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.3.tgz#382fbb0382ce7c4ce905945ab9641d688336ce85" + integrity sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ== dependencies: - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/highlight@^7.8.3": version "7.8.3" @@ -317,12 +269,7 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" - integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== - -"@babel/parser@^7.8.3": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== @@ -869,16 +816,7 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.0.0", "@babel/template@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" - integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/template@^7.8.3": +"@babel/template@^7.0.0", "@babel/template@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== @@ -887,22 +825,7 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" - integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.8.3": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" integrity sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg== @@ -917,7 +840,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.4", "@babel/types@^7.8.0", "@babel/types@^7.8.3": +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.8.0", "@babel/types@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== @@ -4775,6 +4698,11 @@ generic-pool@2.4.3: resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" From 2d5addde03563b03b59e9125cdc46143a13e9566 Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 20 Jan 2020 16:34:42 +0100 Subject: [PATCH 146/207] =?UTF-8?q?Fix=20=E2=80=9CX=20new=20items=E2=80=9D?= =?UTF-8?q?=20not=20showing=20up=20for=20slow=20mode=20on=20empty=20timeli?= =?UTF-8?q?nes=20(#12875)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/mastodon/components/scrollable_list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 47a87b149..3a490e78e 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -296,7 +296,7 @@ export default class ScrollableList extends PureComponent {
); - } else if (isLoading || childrenCount > 0 || hasMore || !emptyMessage) { + } else if (isLoading || childrenCount > 0 || numPending > 0 || hasMore || !emptyMessage) { scrollableArea = (
From ba16d4b4138f12670ce0d056fb025b375dd3fb8d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 20 Jan 2020 17:00:41 +0100 Subject: [PATCH 147/207] Fix search by IP not using alternative browser sessions in admin UI (#12904) --- app/models/account_filter.rb | 2 +- app/models/user.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb index c1e6b0deb..c7bf07787 100644 --- a/app/models/account_filter.rb +++ b/app/models/account_filter.rb @@ -65,7 +65,7 @@ class AccountFilter when 'email' accounts_with_users.merge User.matches_email(value) when 'ip' - valid_ip?(value) ? accounts_with_users.where('users.current_sign_in_ip <<= ?', value) : Account.none + valid_ip?(value) ? accounts_with_users.merge(User.matches_ip(value)) : Account.none when 'staff' accounts_with_users.merge User.staff else diff --git a/app/models/user.rb b/app/models/user.rb index 7147a9a31..a1753784d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -93,6 +93,7 @@ class User < ApplicationRecord scope :inactive, -> { where(arel_table[:current_sign_in_at].lt(ACTIVE_DURATION.ago)) } scope :active, -> { confirmed.where(arel_table[:current_sign_in_at].gteq(ACTIVE_DURATION.ago)).joins(:account).where(accounts: { suspended_at: nil }) } scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) } + scope :matches_ip, ->(value) { left_joins(:session_activations).where('users.current_sign_in_ip <<= ?', value).or(left_joins(:session_activations).where('users.last_sign_in_ip <<= ?', value)).or(left_joins(:session_activations).where('session_activations.ip <<= ?', value)) } scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) } before_validation :sanitize_languages From 91e4955e08506abc5fa70dadc9ffa6956b1fb0bc Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 20 Jan 2020 17:39:14 +0100 Subject: [PATCH 148/207] Fix admin interface crashing when listing boosts with non-video media attachments (#12907) Fix regression introduced by #12879 --- app/views/admin/reports/_status.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index 105352e46..fa15796d2 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -15,7 +15,7 @@ - if status.proper.media_attachments.first.video? - video = status.proper.media_attachments.first = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), blurhash: video.blurhash, sensitive: status.proper.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description - - elsif status.media_attachments.first.audio? + - elsif status.proper.media_attachments.first.audio? - audio = status.proper.media_attachments.first = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) - else From 02063c245c8a2a09e741cbce8302edf3ec14feef Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 20 Jan 2020 18:00:54 +0100 Subject: [PATCH 149/207] Fix not all of account's active IPs showing up in admin UI (#12909) --- app/models/user.rb | 15 +++++++++++++++ app/views/admin/accounts/show.html.haml | 12 ++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index a1753784d..a43e63b2e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -290,6 +290,21 @@ class User < ApplicationRecord setting_display_media == 'hide_all' end + def recent_ips + @recent_ips ||= begin + arr = [] + + session_activations.each do |session_activation| + arr << [session_activation.updated_at, session_activation.ip] + end + + arr << [current_sign_in_at, current_sign_in_ip] if current_sign_in_ip.present? + arr << [last_sign_in_at, last_sign_in_ip] if last_sign_in_ip.present? + + arr.sort_by(&:first).uniq(&:last).reverse! + end + end + protected def send_devise_notification(notification, *args) diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 9f1e3816b..1429f56d5 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -139,12 +139,12 @@ %time.formatted{ datetime: @account.created_at.iso8601, title: l(@account.created_at) }= l @account.created_at %td - %tr - %th= t('admin.accounts.most_recent_ip') - %td= @account.user_current_sign_in_ip - %td - - if @account.user_current_sign_in_ip - = table_link_to 'search', t('admin.accounts.search_same_ip'), admin_accounts_path(ip: @account.user_current_sign_in_ip) + - @account.user.recent_ips.each_with_index do |(_, ip), i| + %tr + - if i.zero? + %th{ rowspan: @account.user.recent_ips.size }= t('admin.accounts.most_recent_ip') + %td= ip + %td= table_link_to 'search', t('admin.accounts.search_same_ip'), admin_accounts_path(ip: ip) %tr %th= t('admin.accounts.most_recent_activity') From b0acead946f7abac648ca3d706f9a160d71c740a Mon Sep 17 00:00:00 2001 From: Kody Date: Tue, 21 Jan 2020 12:42:13 +0100 Subject: [PATCH 150/207] Upgrade .nvmrc to Node.js 12 (#12906) --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 45a4fb75d..48082f72f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -8 +12 From 26988be57d198a659f07bf36b7d49c9d5f78c684 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Wed, 22 Jan 2020 02:56:18 +0900 Subject: [PATCH 151/207] Close registration before self-destruct (#12877) --- lib/cli.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/cli.rb b/lib/cli.rb index fbdf49fc3..19cc5d6b5 100644 --- a/lib/cli.rb +++ b/lib/cli.rb @@ -96,6 +96,8 @@ module Mastodon prompt.warn('Do NOT interrupt this process...') + Setting.registrations_mode = 'none' + Account.local.without_suspended.find_each do |account| payload = ActiveModelSerializers::SerializableResource.new( account, From e1c5f43039553b0ca867c02a6e4ffa44819dd225 Mon Sep 17 00:00:00 2001 From: notozeki Date: Wed, 22 Jan 2020 02:56:34 +0900 Subject: [PATCH 152/207] Fix slow query of federated timeline (#12886) --- .../20200119112504_add_public_index_to_statuses.rb | 11 +++++++++++ db/schema.rb | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20200119112504_add_public_index_to_statuses.rb diff --git a/db/migrate/20200119112504_add_public_index_to_statuses.rb b/db/migrate/20200119112504_add_public_index_to_statuses.rb new file mode 100644 index 000000000..db007848e --- /dev/null +++ b/db/migrate/20200119112504_add_public_index_to_statuses.rb @@ -0,0 +1,11 @@ +class AddPublicIndexToStatuses < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + + def up + add_index :statuses, [:id, :account_id], name: :index_statuses_public_20200119, algorithm: :concurrently, order: { id: :desc }, where: 'deleted_at IS NULL AND visibility = 0 AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))' + end + + def down + remove_index :statuses, name: :index_statuses_public_20200119 + end +end diff --git a/db/schema.rb b/db/schema.rb index 5a6b2530c..fc2d3a511 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_12_12_003415) do +ActiveRecord::Schema.define(version: 2020_01_19_112504) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -690,6 +690,7 @@ ActiveRecord::Schema.define(version: 2019_12_12_003415) do t.datetime "deleted_at" t.index ["account_id", "id", "visibility", "updated_at"], name: "index_statuses_20190820", order: { id: :desc }, where: "(deleted_at IS NULL)" t.index ["id", "account_id"], name: "index_statuses_local_20190824", order: { id: :desc }, where: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" + t.index ["id", "account_id"], name: "index_statuses_public_20200119", order: { id: :desc }, where: "((deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" t.index ["in_reply_to_account_id"], name: "index_statuses_on_in_reply_to_account_id" t.index ["in_reply_to_id"], name: "index_statuses_on_in_reply_to_id" t.index ["reblog_of_id", "account_id"], name: "index_statuses_on_reblog_of_id_and_account_id" From 619da5a4dc00e51d28b29bfe5230125a78c1fac9 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Tue, 21 Jan 2020 11:57:21 -0600 Subject: [PATCH 153/207] Add transparent support for EventSource streaming. (#12887) This activates if the streaming base URL does not start with "ws". All currently-live streaming base URLs start with "wss://". --- app/javascript/mastodon/stream.js | 50 ++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js index 50f90d44c..fe965bcb0 100644 --- a/app/javascript/mastodon/stream.js +++ b/app/javascript/mastodon/stream.js @@ -2,6 +2,14 @@ import WebSocketClient from '@gamestdio/websocket'; const randomIntUpTo = max => Math.floor(Math.random() * Math.floor(max)); +const knownEventTypes = [ + 'update', + 'delete', + 'notification', + 'conversation', + 'filters_changed', +]; + export function connectStream(path, pollingRefresh = null, callbacks = () => ({ onConnect() {}, onDisconnect() {}, onReceive() {} })) { return (dispatch, getState) => { const streamingAPIBaseURL = getState().getIn(['meta', 'streaming_api_base_url']); @@ -69,14 +77,42 @@ export function connectStream(path, pollingRefresh = null, callbacks = () => ({ export default function getStream(streamingAPIBaseURL, accessToken, stream, { connected, received, disconnected, reconnected }) { - const params = [ `stream=${stream}` ]; + const params = stream.split('&'); + stream = params.shift(); - const ws = new WebSocketClient(`${streamingAPIBaseURL}/api/v1/streaming/?${params.join('&')}`, accessToken); + if (streamingAPIBaseURL.startsWith('ws')) { + params.unshift(`stream=${stream}`); + const ws = new WebSocketClient(`${streamingAPIBaseURL}/api/v1/streaming/?${params.join('&')}`, accessToken); - ws.onopen = connected; - ws.onmessage = e => received(JSON.parse(e.data)); - ws.onclose = disconnected; - ws.onreconnect = reconnected; + ws.onopen = connected; + ws.onmessage = e => received(JSON.parse(e.data)); + ws.onclose = disconnected; + ws.onreconnect = reconnected; - return ws; + return ws; + } + + params.push(`access_token=${accessToken}`); + const es = new EventSource(`${streamingAPIBaseURL}/api/v1/streaming/${stream}?${params.join('&')}`); + + let firstConnect = true; + es.onopen = () => { + if (firstConnect) { + firstConnect = false; + connected(); + } else { + reconnected(); + } + }; + for (let type of knownEventTypes) { + es.addEventListener(type, (e) => { + received({ + event: e.type, + payload: e.data, + }); + }); + } + es.onerror = disconnected; + + return es; }; From 40852b84bd896fd2f81e8f7dd45f70b121ba70fd Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 22 Jan 2020 16:26:23 +0100 Subject: [PATCH 154/207] =?UTF-8?q?Fix=20duplicate=20=E2=80=9Cdescription?= =?UTF-8?q?=E2=80=9D=20meta=20tag=20on=20accounts=20public=20pages=20(#129?= =?UTF-8?q?23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #12920 --- app/views/accounts/show.html.haml | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml index 9c26dbabc..c312fe2bd 100644 --- a/app/views/accounts/show.html.haml +++ b/app/views/accounts/show.html.haml @@ -2,8 +2,6 @@ = "#{display_name(@account)} (@#{@account.local_username_and_domain})" - content_for :header_tags do - %meta{ name: 'description', content: account_description(@account) }/ - - if @account.user&.setting_noindex %meta{ name: 'robots', content: 'noindex, noarchive' }/ From ec3ee675640fa441b9113d69b743ee22e107002b Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 22 Jan 2020 16:26:47 +0100 Subject: [PATCH 155/207] Fix unfollow confirmations in account directory (#12922) Fixes #12921 --- .../mastodon/features/directory/components/account_card.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.js index 50ad74450..cb47d9db4 100644 --- a/app/javascript/mastodon/features/directory/components/account_card.js +++ b/app/javascript/mastodon/features/directory/components/account_card.js @@ -22,6 +22,7 @@ const messages = defineMessages({ requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }, + unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, }); const makeMapStateToProps = () => { From 27f9aa34776e89d0e56fc8aba7a52e075927b146 Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 23 Jan 2020 00:43:54 +0100 Subject: [PATCH 156/207] Document AUTHORIZED_FETCH mode and WHITELIST_MODE (#12856) * Document AUTHORIZED_FETCH mode and WHITELIST_MODE * Replace extended description with a link to the online docs --- .env.production.sample | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.env.production.sample b/.env.production.sample index 038000041..8a6888621 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -250,3 +250,13 @@ STREAMING_CLUSTER_NUM=1 # http_proxy=http://gateway.local:8118 # Access control for hidden service. # ALLOW_ACCESS_TO_HIDDEN_SERVICE=true + +# Authorized fetch mode (optional) +# Require remote servers to authentify when fetching toots, see +# https://docs.joinmastodon.org/admin/config/#authorized_fetch +# AUTHORIZED_FETCH=true + +# Whitelist mode (optional) +# Only allow federation with whitelisted domains, see +# https://docs.joinmastodon.org/admin/config/#whitelist_mode +# WHITELIST_MODE=true From c0006a004d0e58bb3ad356759c17e60f28975b61 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 23 Jan 2020 20:33:20 +0100 Subject: [PATCH 157/207] Change followers page to relationships page in admin UI (#12927) Allow browsing and filtering all relationships instead of just followers, unify the codebase with the user-facing relationship manager, add ability to see who the user invited --- app/controllers/admin/followers_controller.rb | 18 --- .../admin/relationships_controller.rb | 25 ++++ app/controllers/relationships_controller.rb | 46 +------- app/models/relationship_filter.rb | 109 ++++++++++++++++++ app/views/admin/accounts/show.html.haml | 2 +- app/views/admin/followers/index.html.haml | 28 ----- app/views/admin/relationships/index.html.haml | 39 +++++++ config/locales/en.yml | 6 +- config/routes.rb | 2 +- 9 files changed, 181 insertions(+), 94 deletions(-) delete mode 100644 app/controllers/admin/followers_controller.rb create mode 100644 app/controllers/admin/relationships_controller.rb delete mode 100644 app/views/admin/followers/index.html.haml create mode 100644 app/views/admin/relationships/index.html.haml diff --git a/app/controllers/admin/followers_controller.rb b/app/controllers/admin/followers_controller.rb deleted file mode 100644 index d826f47c5..000000000 --- a/app/controllers/admin/followers_controller.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -module Admin - class FollowersController < BaseController - before_action :set_account - - PER_PAGE = 40 - - def index - authorize :account, :index? - @followers = @account.followers.local.recent.page(params[:page]).per(PER_PAGE) - end - - def set_account - @account = Account.find(params[:account_id]) - end - end -end diff --git a/app/controllers/admin/relationships_controller.rb b/app/controllers/admin/relationships_controller.rb new file mode 100644 index 000000000..07d121340 --- /dev/null +++ b/app/controllers/admin/relationships_controller.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Admin + class RelationshipsController < BaseController + before_action :set_account + + PER_PAGE = 40 + + def index + authorize :account, :index? + + @accounts = RelationshipFilter.new(@account, filter_params).results.page(params[:page]).per(PER_PAGE) + end + + private + + def set_account + @account = Account.find(params[:account_id]) + end + + def filter_params + params.slice(RelationshipFilter::KEYS).permit(RelationshipFilter::KEYS) + end + end +end diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index 9d0be4a00..0835758f2 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -19,53 +19,13 @@ class RelationshipsController < ApplicationController rescue ActionController::ParameterMissing # Do nothing ensure - redirect_to relationships_path(current_params) + redirect_to relationships_path(filter_params) end private def set_accounts - @accounts = relationships_scope.page(params[:page]).per(40) - end - - def relationships_scope - scope = begin - if following_relationship? - current_account.following.eager_load(:account_stat).reorder(nil) - else - current_account.followers.eager_load(:account_stat).reorder(nil) - end - end - - scope.merge!(Follow.recent) if params[:order].blank? || params[:order] == 'recent' - scope.merge!(Account.by_recent_status) if params[:order] == 'active' - scope.merge!(mutual_relationship_scope) if mutual_relationship? - scope.merge!(moved_account_scope) if params[:status] == 'moved' - scope.merge!(primary_account_scope) if params[:status] == 'primary' - scope.merge!(by_domain_scope) if params[:by_domain].present? - scope.merge!(dormant_account_scope) if params[:activity] == 'dormant' - - scope - end - - def mutual_relationship_scope - Account.where(id: current_account.following) - end - - def moved_account_scope - Account.where.not(moved_to_account_id: nil) - end - - def primary_account_scope - Account.where(moved_to_account_id: nil) - end - - def dormant_account_scope - AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago))) - end - - def by_domain_scope - Account.where(domain: params[:by_domain]) + @accounts = RelationshipFilter.new(current_account, filter_params).results.page(params[:page]).per(40) end def form_account_batch_params @@ -84,7 +44,7 @@ class RelationshipsController < ApplicationController params[:relationship] == 'followed_by' end - def current_params + def filter_params params.slice(:page, *RelationshipFilter::KEYS).permit(:page, *RelationshipFilter::KEYS) end diff --git a/app/models/relationship_filter.rb b/app/models/relationship_filter.rb index 51640f494..fcb3a8dc5 100644 --- a/app/models/relationship_filter.rb +++ b/app/models/relationship_filter.rb @@ -7,5 +7,114 @@ class RelationshipFilter by_domain activity order + location ).freeze + + attr_reader :params, :account + + def initialize(account, params) + @account = account + @params = params + + set_defaults! + end + + def results + scope = scope_for('relationship', params['relationship']) + + params.each do |key, value| + next if key.to_s == 'page' + + scope.merge!(scope_for(key, value)) if value.present? + end + + scope + end + + private + + def set_defaults! + params['relationship'] = 'following' if params['relationship'].blank? + params['order'] = 'recent' if params['order'].blank? + end + + def scope_for(key, value) + case key.to_s + when 'relationship' + relationship_scope(value) + when 'by_domain' + by_domain_scope(value) + when 'location' + location_scope(value) + when 'status' + status_scope(value) + when 'order' + order_scope(value) + when 'activity' + activity_scope(value) + else + raise "Unknown filter: #{key}" + end + end + + def relationship_scope(value) + case value.to_s + when 'following' + account.following.eager_load(:account_stat).reorder(nil) + when 'followed_by' + account.followers.eager_load(:account_stat).reorder(nil) + when 'mutual' + account.followers.eager_load(:account_stat).reorder(nil).merge(Account.where(id: account.following)) + when 'invited' + Account.joins(user: :invite).merge(Invite.where(user: account.user)).eager_load(:account_stat).reorder(nil) + else + raise "Unknown relationship: #{value}" + end + end + + def by_domain_scope(value) + Account.where(domain: value.to_s) + end + + def location_scope(value) + case value.to_s + when 'local' + Account.local + when 'remote' + Account.remote + else + raise "Unknown location: #{value}" + end + end + + def status_scope(value) + case value.to_s + when 'moved' + Account.where.not(moved_to_account_id: nil) + when 'primary' + Account.where(moved_to_account_id: nil) + else + raise "Unknown status: #{value}" + end + end + + def order_scope(value) + case value.to_s + when 'active' + Account.by_recent_status + when 'recent' + Follow.recent + else + raise "Unknown order: #{value}" + end + end + + def activity_scope(value) + case value.to_s + when 'dormant' + AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago))) + else + raise "Unknown activity: #{value}" + end + end end diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 1429f56d5..f191d8f25 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -41,7 +41,7 @@ .dashboard__counters__num= number_to_human_size @account.media_attachments.sum('file_file_size') .dashboard__counters__label= t 'admin.accounts.media_attachments' %div - = link_to admin_account_followers_path(@account.id) do + = link_to admin_account_relationships_path(@account.id, location: 'local') do .dashboard__counters__num= number_with_delimiter @account.local_followers_count .dashboard__counters__label= t 'admin.accounts.followers' %div diff --git a/app/views/admin/followers/index.html.haml b/app/views/admin/followers/index.html.haml deleted file mode 100644 index 25f1f290f..000000000 --- a/app/views/admin/followers/index.html.haml +++ /dev/null @@ -1,28 +0,0 @@ -- content_for :page_title do - = t('admin.followers.title', acct: @account.acct) - -.filters - .filter-subset - %strong= t('admin.accounts.location.title') - %ul - %li= link_to t('admin.accounts.location.local'), admin_account_followers_path(@account.id), class: 'selected' - .back-link{ style: 'flex: 1 1 auto; text-align: right' } - = link_to admin_account_path(@account.id) do - = fa_icon 'chevron-left fw' - = t('admin.followers.back_to_account') - -%hr.spacer/ - -.table-wrapper - %table.table - %thead - %tr - %th= t('admin.accounts.username') - %th= t('admin.accounts.role') - %th= t('admin.accounts.most_recent_ip') - %th= t('admin.accounts.most_recent_activity') - %th - %tbody - = render partial: 'admin/accounts/account', collection: @followers - -= paginate @followers diff --git a/app/views/admin/relationships/index.html.haml b/app/views/admin/relationships/index.html.haml new file mode 100644 index 000000000..3afaff615 --- /dev/null +++ b/app/views/admin/relationships/index.html.haml @@ -0,0 +1,39 @@ +- content_for :page_title do + = t('admin.relationships.title', acct: @account.acct) + +.filters + .filter-subset + %strong= t 'relationships.relationship' + %ul + %li= filter_link_to t('relationships.following'), relationship: nil + %li= filter_link_to t('relationships.followers'), relationship: 'followed_by' + %li= filter_link_to t('relationships.mutual'), relationship: 'mutual' + %li= filter_link_to t('relationships.invited'), relationship: 'invited' + + .filter-subset + %strong= t('admin.accounts.location.title') + %ul + %li= filter_link_to t('admin.accounts.moderation.all'), location: nil + %li= filter_link_to t('admin.accounts.location.local'), location: 'local' + %li= filter_link_to t('admin.accounts.location.remote'), location: 'remote' + + .back-link{ style: 'flex: 1 1 auto; text-align: right' } + = link_to admin_account_path(@account.id) do + = fa_icon 'chevron-left fw' + = t('admin.statuses.back_to_account') + +%hr.spacer/ + +.table-wrapper + %table.table + %thead + %tr + %th= t('admin.accounts.username') + %th= t('admin.accounts.role') + %th= t('admin.accounts.most_recent_ip') + %th= t('admin.accounts.most_recent_activity') + %th + %tbody + = render partial: 'admin/accounts/account', collection: @accounts + += paginate @accounts diff --git a/config/locales/en.yml b/config/locales/en.yml index d768cef33..8a86f8c7a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -344,9 +344,6 @@ en: create: Add domain title: New e-mail blacklist entry title: E-mail blacklist - followers: - back_to_account: Back To Account - title: "%{acct}'s Followers" instances: by_domain: Domain delivery_available: Delivery is available @@ -375,6 +372,8 @@ en: title: Invites pending_accounts: title: Pending accounts (%{count}) + relationships: + title: "%{acct}'s relationships" relays: add_new: Add new relay delete: Delete @@ -935,6 +934,7 @@ en: dormant: Dormant followers: Followers following: Following + invited: Invited last_active: Last active most_recent: Most recent moved: Moved diff --git a/config/routes.rb b/config/routes.rb index ff308699d..f79af192d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -223,7 +223,7 @@ Rails.application.routes.draw do resource :reset, only: [:create] resource :action, only: [:new, :create], controller: 'account_actions' resources :statuses, only: [:index, :show, :create, :update, :destroy] - resources :followers, only: [:index] + resources :relationships, only: [:index] resource :confirmation, only: [:create] do collection do From a8e46cf7a16857d6983c5c1878ab9914d3203f2b Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 23 Jan 2020 21:27:26 +0100 Subject: [PATCH 158/207] Add support for magnet: URIs (#12905) --- app/lib/formatter.rb | 4 ++-- app/lib/sanitize_config.rb | 2 +- config/initializers/twitter_regex.rb | 35 +++++++++++++++++----------- spec/lib/formatter_spec.rb | 8 +++++++ 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index c771dcaaa..2c5674869 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -245,9 +245,9 @@ class Formatter end standard = Extractor.extract_entities_with_indices(text, options) - xmpp = Extractor.extract_xmpp_uris_with_indices(text, options) + extra = Extractor.extract_extra_uris_with_indices(text, options) - Extractor.remove_overlapping_entities(special + standard + xmpp) + Extractor.remove_overlapping_entities(special + standard + extra) end def link_to_url(entity, options = {}) diff --git a/app/lib/sanitize_config.rb b/app/lib/sanitize_config.rb index e2480376e..a82411127 100644 --- a/app/lib/sanitize_config.rb +++ b/app/lib/sanitize_config.rb @@ -2,7 +2,7 @@ class Sanitize module Config - HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', 'xmpp', :relative].freeze + HTTP_PROTOCOLS ||= ['http', 'https', 'dat', 'dweb', 'ipfs', 'ipns', 'ssb', 'gopher', 'xmpp', 'magnet', :relative].freeze CLASS_WHITELIST_TRANSFORMER = lambda do |env| node = env[:node] diff --git a/config/initializers/twitter_regex.rb b/config/initializers/twitter_regex.rb index 87815d458..f84f7c0cb 100644 --- a/config/initializers/twitter_regex.rb +++ b/config/initializers/twitter_regex.rb @@ -47,32 +47,39 @@ module Twitter #{REGEXEN[:validate_url_pct_encoded]}| #{REGEXEN[:validate_url_sub_delims]} )/iox - REGEXEN[:valid_xmpp_uri] = %r{ - ( # $1 total match - (#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character - ( # $3 URL - ((?:xmpp):) # $4 Protocol - (//#{REGEXEN[:validate_nodeid]}+@#{REGEXEN[:valid_domain]}/)? # $5 Authority (optional) - (#{REGEXEN[:validate_nodeid]}+@)? # $6 Username in path (optional) - (#{REGEXEN[:valid_domain]}) # $7 Domain in path - (/#{REGEXEN[:validate_resid]}+)? # $8 Resource in path (optional) - (\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]})? # $9 Query String + REGEXEN[:xmpp_uri] = %r{ + (xmpp:) # Protocol + (//#{REGEXEN[:validate_nodeid]}+@#{REGEXEN[:valid_domain]}/)? # Authority (optional) + (#{REGEXEN[:validate_nodeid]}+@)? # Username in path (optional) + (#{REGEXEN[:valid_domain]}) # Domain in path + (/#{REGEXEN[:validate_resid]}+)? # Resource in path (optional) + (\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]})? # Query String + }iox + REGEXEN[:magnet_uri] = %r{ + (magnet:) # Protocol + (\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]}) # Query String + }iox + REGEXEN[:valid_extended_uri] = %r{ + ( # $1 total match + (#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character + ( # $3 URL + (#{REGEXEN[:xmpp_uri]}) | (#{REGEXEN[:magnet_uri]}) ) ) }iox end module Extractor - # Extracts a list of all XMPP URIs included in the Tweet text along + # Extracts a list of all XMPP and magnet URIs included in the Toot text along # with the indices. If the text is nil or contains no - # XMPP URIs an empty array will be returned. + # XMPP or magnet URIs an empty array will be returned. # # If a block is given then it will be called for each XMPP URI. - def extract_xmpp_uris_with_indices(text, options = {}) # :yields: uri, start, end + def extract_extra_uris_with_indices(text, options = {}) # :yields: uri, start, end return [] unless text && text.index(":") urls = [] - text.to_s.scan(Twitter::Regex[:valid_xmpp_uri]) do + text.to_s.scan(Twitter::Regex[:valid_extended_uri]) do valid_uri_match_data = $~ start_position = valid_uri_match_data.char_begin(3) diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb index 83be0a588..633d59c2a 100644 --- a/spec/lib/formatter_spec.rb +++ b/spec/lib/formatter_spec.rb @@ -258,6 +258,14 @@ RSpec.describe Formatter do is_expected.to include 'href="xmpp:muc@instance.com?join"' end end + + context 'given text containing a magnet: URI' do + let(:text) { 'wikipedia gives this example of a magnet uri: magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a' } + + it 'matches the full URI' do + is_expected.to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"' + end + end end describe '#format_spoiler' do From 43daeccccb31a0145c48f41c4ba449f0a3967ef2 Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 23 Jan 2020 21:32:00 +0100 Subject: [PATCH 159/207] =?UTF-8?q?Add=20=E2=80=9Caccount=20timeline?= =?UTF-8?q?=E2=80=9D=20filter=20category=20(#12918)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add “account timeline” filter category Previously, no filter category applied to account timelines. * Rename “Account timelines” into “Profiles” --- app/javascript/mastodon/features/account_timeline/index.js | 1 + app/javascript/mastodon/selectors/index.js | 1 + app/models/custom_filter.rb | 1 + config/locales/en.yml | 1 + 4 files changed, 4 insertions(+) diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.js index 8d0cbe5a1..37622d4c0 100644 --- a/app/javascript/mastodon/features/account_timeline/index.js +++ b/app/javascript/mastodon/features/account_timeline/index.js @@ -115,6 +115,7 @@ class AccountTimeline extends ImmutablePureComponent { shouldUpdateScroll={shouldUpdateScroll} emptyMessage={emptyMessage} bindToDocument={!multiColumn} + timelineId='account' /> ); diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index 6f1ce9602..6a48f3b3f 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -26,6 +26,7 @@ const toServerSideType = columnType => { case 'notifications': case 'public': case 'thread': + case 'account': return columnType; default: if (columnType.indexOf('list:') > -1) { diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index 382562fb8..8df8a4fbf 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -20,6 +20,7 @@ class CustomFilter < ApplicationRecord notifications public thread + account ).freeze include Expireable diff --git a/config/locales/en.yml b/config/locales/en.yml index 8a86f8c7a..2bd84c264 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -733,6 +733,7 @@ en: hint_html: "What are featured hashtags? They are displayed prominently on your public profile and allow people to browse your public posts specifically under those hashtags. They are a great tool for keeping track of creative works or long-term projects." filters: contexts: + account: Profiles home: Home timeline notifications: Notifications public: Public timelines From 81cc86bb1ffb662843938379eeb522e3a6f11b79 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 23 Jan 2020 21:40:03 +0100 Subject: [PATCH 160/207] Fix media attachments without file being uploadable (#12562) Fix #12554 --- app/models/media_attachment.rb | 1 + .../fabricators/media_attachment_fabricator.rb | 18 +++++++----------- spec/models/media_attachment_spec.rb | 13 +++++-------- spec/services/post_status_service_spec.rb | 8 ++++++-- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 1fd0adfd0..42364641f 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -142,6 +142,7 @@ class MediaAttachment < ApplicationRecord validates :account, presence: true validates :description, length: { maximum: MAX_DESCRIPTION_LENGTH }, if: :local? + validates :file, presence: true, if: :local? scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) } scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) } diff --git a/spec/fabricators/media_attachment_fabricator.rb b/spec/fabricators/media_attachment_fabricator.rb index bb938e36d..651927c2d 100644 --- a/spec/fabricators/media_attachment_fabricator.rb +++ b/spec/fabricators/media_attachment_fabricator.rb @@ -1,16 +1,12 @@ Fabricator(:media_attachment) do account + file do |attrs| - [ - case attrs[:type] - when :gifv - attachment_fixture ['attachment.gif', 'attachment.webm'].sample - when :image - attachment_fixture 'attachment.jpg' - when nil - attachment_fixture ['attachment.gif', 'attachment.jpg', 'attachment.webm'].sample - end, - nil - ].sample + case attrs[:type] + when :gifv, :video + attachment_fixture('attachment.webm') + else + attachment_fixture('attachment.jpg') + end end end diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index a275621a1..456bc4216 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -31,14 +31,6 @@ RSpec.describe MediaAttachment, type: :model do context 'file is blank' do let(:file) { nil } - context 'remote_url is blank' do - let(:remote_url) { '' } - - it 'returns false' do - is_expected.to be false - end - end - context 'remote_url is present' do let(:remote_url) { 'remote_url' } @@ -153,6 +145,11 @@ RSpec.describe MediaAttachment, type: :model do end end + it 'is invalid without file' do + media = MediaAttachment.new(account: Fabricate(:account)) + expect(media.valid?).to be false + end + describe 'descriptions for remote attachments' do it 'are cut off at 1500 characters' do media = Fabricate(:media_attachment, description: 'foo' * 1000, remote_url: 'http://example.com/blah.jpg') diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index bf06f50e9..025a3da40 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -212,14 +212,18 @@ RSpec.describe PostStatusService, type: :service do it 'does not allow attaching both videos and images' do account = Fabricate(:account) + video = Fabricate(:media_attachment, type: :video, account: account) + image = Fabricate(:media_attachment, type: :image, account: account) + + video.update(type: :video) expect do subject.call( account, text: "test status update", media_ids: [ - Fabricate(:media_attachment, type: :video, account: account), - Fabricate(:media_attachment, type: :image, account: account), + video, + image, ].map(&:id), ) end.to raise_error( From f52c988e12e464e7baefc2fdb48ddf4a95584664 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 23 Jan 2020 22:00:13 +0100 Subject: [PATCH 161/207] Add announcements (#12662) * Add announcements Fix #11006 * Add reactions to announcements * Add admin UI for announcements * Add unit tests * Fix issues - Add `with_dismissed` param to announcements API - Fix end date not being formatted when time range is given - Fix announcement delete causing reactions to send streaming updates - Fix announcements container growing too wide and mascot too small - Fix `all_day` being settable when no time range is given - Change text "Update" to "Announcement" * Fix scheduler unpublishing announcements before they are due * Fix filter params not being passed to announcements filter --- .../admin/announcements_controller.rb | 69 +++ app/controllers/api/base_controller.rb | 2 +- .../v1/announcements/reactions_controller.rb | 29 ++ .../api/v1/announcements_controller.rb | 33 ++ app/helpers/admin/action_logs_helper.rb | 8 + app/helpers/admin/announcements_helper.rb | 11 + app/helpers/admin/filter_helper.rb | 1 + app/javascript/images/elephant_ui_plane.svg | 2 +- .../mastodon/actions/announcements.js | 133 ++++++ .../mastodon/actions/importer/normalizer.js | 10 +- .../mastodon/actions/notifications.js | 3 +- app/javascript/mastodon/actions/streaming.js | 11 +- app/javascript/mastodon/actions/timelines.js | 2 +- .../mastodon/components/error_boundary.js | 2 +- .../components/emoji_picker_dropdown.js | 7 +- .../components/announcements.js | 395 ++++++++++++++++++ .../containers/announcements_container.js | 21 + .../containers/trends_container.js | 2 +- .../mastodon/features/home_timeline/index.js | 3 + .../features/ui/components/media_modal.js | 1 - .../mastodon/reducers/announcements.js | 72 ++++ app/javascript/mastodon/reducers/index.js | 2 + .../styles/mastodon/components.scss | 213 ++++++++++ app/javascript/styles/mastodon/forms.scss | 6 + app/lib/entity_cache.rb | 2 +- app/lib/inline_renderer.rb | 4 + app/models/account.rb | 6 + app/models/announcement.rb | 85 ++++ app/models/announcement_filter.rb | 39 ++ app/models/announcement_mute.rb | 19 + app/models/announcement_reaction.rb | 37 ++ app/models/backup.rb | 2 +- app/models/bookmark.rb | 6 +- app/models/concerns/account_interactions.rb | 1 + app/models/custom_emoji.rb | 2 +- app/policies/announcement_policy.rb | 19 + .../rest/announcement_serializer.rb | 34 ++ app/serializers/rest/reaction_serializer.rb | 31 ++ app/validators/reaction_validator.rb | 17 + .../announcements/_announcement.html.haml | 14 + app/views/admin/announcements/edit.html.haml | 22 + app/views/admin/announcements/index.html.haml | 30 ++ app/views/admin/announcements/new.html.haml | 21 + .../publish_announcement_reaction_worker.rb | 22 + .../publish_scheduled_announcement_worker.rb | 18 + .../scheduler/scheduled_statuses_scheduler.rb | 28 +- config/initializers/simple_form.rb | 2 +- config/locales/en.yml | 22 + config/locales/simple_form.en.yml | 12 + config/navigation.rb | 1 + config/routes.rb | 13 + .../20191218153258_create_announcements.rb | 16 + ...0200113125135_create_announcement_mutes.rb | 12 + ...114113335_create_announcement_reactions.rb | 15 + db/schema.rb | 41 +- lib/tasks/auto_annotate_models.rake | 1 + .../reactions_controller_spec.rb | 65 +++ .../api/v1/announcements_controller_spec.rb | 59 +++ .../api/v1/trends_controller_spec.rb | 18 + spec/fabricators/announcement_fabricator.rb | 6 + .../announcement_mute_fabricator.rb | 4 + .../announcement_reaction_fabricator.rb | 5 + spec/models/announcement_mute_spec.rb | 4 + spec/models/announcement_reaction_spec.rb | 4 + spec/models/announcement_spec.rb | 4 + 65 files changed, 1779 insertions(+), 22 deletions(-) create mode 100644 app/controllers/admin/announcements_controller.rb create mode 100644 app/controllers/api/v1/announcements/reactions_controller.rb create mode 100644 app/controllers/api/v1/announcements_controller.rb create mode 100644 app/helpers/admin/announcements_helper.rb create mode 100644 app/javascript/mastodon/actions/announcements.js create mode 100644 app/javascript/mastodon/features/getting_started/components/announcements.js create mode 100644 app/javascript/mastodon/features/getting_started/containers/announcements_container.js create mode 100644 app/javascript/mastodon/reducers/announcements.js create mode 100644 app/models/announcement.rb create mode 100644 app/models/announcement_filter.rb create mode 100644 app/models/announcement_mute.rb create mode 100644 app/models/announcement_reaction.rb create mode 100644 app/policies/announcement_policy.rb create mode 100644 app/serializers/rest/announcement_serializer.rb create mode 100644 app/serializers/rest/reaction_serializer.rb create mode 100644 app/validators/reaction_validator.rb create mode 100644 app/views/admin/announcements/_announcement.html.haml create mode 100644 app/views/admin/announcements/edit.html.haml create mode 100644 app/views/admin/announcements/index.html.haml create mode 100644 app/views/admin/announcements/new.html.haml create mode 100644 app/workers/publish_announcement_reaction_worker.rb create mode 100644 app/workers/publish_scheduled_announcement_worker.rb create mode 100644 db/migrate/20191218153258_create_announcements.rb create mode 100644 db/migrate/20200113125135_create_announcement_mutes.rb create mode 100644 db/migrate/20200114113335_create_announcement_reactions.rb create mode 100644 spec/controllers/api/v1/announcements/reactions_controller_spec.rb create mode 100644 spec/controllers/api/v1/announcements_controller_spec.rb create mode 100644 spec/controllers/api/v1/trends_controller_spec.rb create mode 100644 spec/fabricators/announcement_fabricator.rb create mode 100644 spec/fabricators/announcement_mute_fabricator.rb create mode 100644 spec/fabricators/announcement_reaction_fabricator.rb create mode 100644 spec/models/announcement_mute_spec.rb create mode 100644 spec/models/announcement_reaction_spec.rb create mode 100644 spec/models/announcement_spec.rb diff --git a/app/controllers/admin/announcements_controller.rb b/app/controllers/admin/announcements_controller.rb new file mode 100644 index 000000000..02198f0b5 --- /dev/null +++ b/app/controllers/admin/announcements_controller.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +class Admin::AnnouncementsController < Admin::BaseController + before_action :set_announcements, only: :index + before_action :set_announcement, except: [:index, :new, :create] + + def index + authorize :announcement, :index? + end + + def new + authorize :announcement, :create? + + @announcement = Announcement.new + end + + def create + authorize :announcement, :create? + + @announcement = Announcement.new(resource_params) + + if @announcement.save + log_action :create, @announcement + redirect_to admin_announcements_path + else + render :new + end + end + + def edit + authorize :announcement, :update? + end + + def update + authorize :announcement, :update? + + if @announcement.update(resource_params) + log_action :update, @announcement + redirect_to admin_announcements_path + else + render :edit + end + end + + def destroy + authorize :announcement, :destroy? + @announcement.destroy! + log_action :destroy, @announcement + redirect_to admin_announcements_path + end + + private + + def set_announcements + @announcements = AnnouncementFilter.new(filter_params).results.page(params[:page]) + end + + def set_announcement + @announcement = Announcement.find(params[:id]) + end + + def filter_params + params.slice(*AnnouncementFilter::KEYS).permit(*AnnouncementFilter::KEYS) + end + + def resource_params + params.require(:announcement).permit(:text, :scheduled_at, :starts_at, :ends_at, :all_day) + end +end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 144fdd6ac..68bf425f4 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -85,7 +85,7 @@ class Api::BaseController < ApplicationController end def require_authenticated_user! - render json: { error: 'This API requires an authenticated user' }, status: 401 unless current_user + render json: { error: 'This method requires an authenticated user' }, status: 401 unless current_user end def require_user! diff --git a/app/controllers/api/v1/announcements/reactions_controller.rb b/app/controllers/api/v1/announcements/reactions_controller.rb new file mode 100644 index 000000000..e4a72e595 --- /dev/null +++ b/app/controllers/api/v1/announcements/reactions_controller.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class Api::V1::Announcements::ReactionsController < Api::BaseController + before_action -> { doorkeeper_authorize! :write, :'write:favourites' } + before_action :require_user! + + before_action :set_announcement + before_action :set_reaction, except: :update + + def update + @announcement.announcement_reactions.create!(account: current_account, name: params[:id]) + render_empty + end + + def destroy + @reaction.destroy! + render_empty + end + + private + + def set_reaction + @reaction = @announcement.announcement_reactions.where(account: current_account).find_by!(name: params[:id]) + end + + def set_announcement + @announcement = Announcement.published.find(params[:announcement_id]) + end +end diff --git a/app/controllers/api/v1/announcements_controller.rb b/app/controllers/api/v1/announcements_controller.rb new file mode 100644 index 000000000..6724fac2e --- /dev/null +++ b/app/controllers/api/v1/announcements_controller.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class Api::V1::AnnouncementsController < Api::BaseController + before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, only: :dismiss + before_action :require_user! + before_action :set_announcements, only: :index + before_action :set_announcement, except: :index + + def index + render json: @announcements, each_serializer: REST::AnnouncementSerializer + end + + def dismiss + AnnouncementMute.create!(account: current_account, announcement: @announcement) + render_empty + end + + private + + def set_announcements + @announcements = begin + scope = Announcement.published + + scope.merge!(Announcement.without_muted(current_account)) unless truthy_param?(:with_dismissed) + + scope.chronological + end + end + + def set_announcement + @announcement = Announcement.published.find(params[:id]) + end +end diff --git a/app/helpers/admin/action_logs_helper.rb b/app/helpers/admin/action_logs_helper.rb index 608a99dd5..6bc75aa56 100644 --- a/app/helpers/admin/action_logs_helper.rb +++ b/app/helpers/admin/action_logs_helper.rb @@ -22,6 +22,8 @@ module Admin::ActionLogsHelper log.recorded_changes.slice('severity', 'reject_media') elsif log.target_type == 'Status' && log.action == :update log.recorded_changes.slice('sensitive') + elsif log.target_type == 'Announcement' && log.action == :update + log.recorded_changes.slice('text', 'starts_at', 'ends_at', 'all_day') end end @@ -52,6 +54,8 @@ module Admin::ActionLogsHelper 'pencil' when 'AccountWarning' 'warning' + when 'Announcement' + 'bullhorn' end end @@ -94,6 +98,8 @@ module Admin::ActionLogsHelper link_to record.account.acct, ActivityPub::TagManager.instance.url_for(record) when 'AccountWarning' link_to record.target_account.acct, admin_account_path(record.target_account_id) + when 'Announcement' + link_to "##{record.id}", edit_admin_announcement_path(record.id) end end @@ -111,6 +117,8 @@ module Admin::ActionLogsHelper else I18n.t('admin.action_logs.deleted_status') end + when 'Announcement' + "##{attributes['id']}" end end end diff --git a/app/helpers/admin/announcements_helper.rb b/app/helpers/admin/announcements_helper.rb new file mode 100644 index 000000000..0c053ddec --- /dev/null +++ b/app/helpers/admin/announcements_helper.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Admin::AnnouncementsHelper + def time_range(announcement) + if announcement.all_day? + safe_join([l(announcement.starts_at.to_date), ' - ', l(announcement.ends_at.to_date)]) + else + safe_join([l(announcement.starts_at), ' - ', l(announcement.ends_at)]) + end + end +end diff --git a/app/helpers/admin/filter_helper.rb b/app/helpers/admin/filter_helper.rb index 130686a02..6ab92939d 100644 --- a/app/helpers/admin/filter_helper.rb +++ b/app/helpers/admin/filter_helper.rb @@ -9,6 +9,7 @@ module Admin::FilterHelper InstanceFilter::KEYS, InviteFilter::KEYS, RelationshipFilter::KEYS, + AnnouncementFilter::KEYS, ].flatten.freeze def filter_link_to(text, link_to_params, link_class_params = link_to_params) diff --git a/app/javascript/images/elephant_ui_plane.svg b/app/javascript/images/elephant_ui_plane.svg index a2624d170..ca675c9eb 100644 --- a/app/javascript/images/elephant_ui_plane.svg +++ b/app/javascript/images/elephant_ui_plane.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/app/javascript/mastodon/actions/announcements.js b/app/javascript/mastodon/actions/announcements.js new file mode 100644 index 000000000..c65bc052e --- /dev/null +++ b/app/javascript/mastodon/actions/announcements.js @@ -0,0 +1,133 @@ +import api from '../api'; +import { normalizeAnnouncement } from './importer/normalizer'; + +export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST'; +export const ANNOUNCEMENTS_FETCH_SUCCESS = 'ANNOUNCEMENTS_FETCH_SUCCESS'; +export const ANNOUNCEMENTS_FETCH_FAIL = 'ANNOUNCEMENTS_FETCH_FAIL'; +export const ANNOUNCEMENTS_UPDATE = 'ANNOUNCEMENTS_UPDATE'; +export const ANNOUNCEMENTS_DISMISS = 'ANNOUNCEMENTS_DISMISS'; + +export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST'; +export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS'; +export const ANNOUNCEMENTS_REACTION_ADD_FAIL = 'ANNOUNCEMENTS_REACTION_ADD_FAIL'; + +export const ANNOUNCEMENTS_REACTION_REMOVE_REQUEST = 'ANNOUNCEMENTS_REACTION_REMOVE_REQUEST'; +export const ANNOUNCEMENTS_REACTION_REMOVE_SUCCESS = 'ANNOUNCEMENTS_REACTION_REMOVE_SUCCESS'; +export const ANNOUNCEMENTS_REACTION_REMOVE_FAIL = 'ANNOUNCEMENTS_REACTION_REMOVE_FAIL'; + +export const ANNOUNCEMENTS_REACTION_UPDATE = 'ANNOUNCEMENTS_REACTION_UPDATE'; + +const noOp = () => {}; + +export const fetchAnnouncements = (done = noOp) => (dispatch, getState) => { + dispatch(fetchAnnouncementsRequest()); + + api(getState).get('/api/v1/announcements').then(response => { + dispatch(fetchAnnouncementsSuccess(response.data.map(x => normalizeAnnouncement(x)))); + }).catch(error => { + dispatch(fetchAnnouncementsFail(error)); + }).finally(() => { + done(); + }); +}; + +export const fetchAnnouncementsRequest = () => ({ + type: ANNOUNCEMENTS_FETCH_REQUEST, + skipLoading: true, +}); + +export const fetchAnnouncementsSuccess = announcements => ({ + type: ANNOUNCEMENTS_FETCH_SUCCESS, + announcements, + skipLoading: true, +}); + +export const fetchAnnouncementsFail= error => ({ + type: ANNOUNCEMENTS_FETCH_FAIL, + error, + skipLoading: true, + skipAlert: true, +}); + +export const updateAnnouncements = announcement => ({ + type: ANNOUNCEMENTS_UPDATE, + announcement: normalizeAnnouncement(announcement), +}); + +export const dismissAnnouncement = announcementId => (dispatch, getState) => { + dispatch({ + type: ANNOUNCEMENTS_DISMISS, + id: announcementId, + }); + + api(getState).post(`/api/v1/announcements/${announcementId}/dismiss`); +}; + +export const addReaction = (announcementId, name) => (dispatch, getState) => { + dispatch(addReactionRequest(announcementId, name)); + + api(getState).put(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => { + dispatch(addReactionSuccess(announcementId, name)); + }).catch(err => { + dispatch(addReactionFail(announcementId, name, err)); + }); +}; + +export const addReactionRequest = (announcementId, name) => ({ + type: ANNOUNCEMENTS_REACTION_ADD_REQUEST, + id: announcementId, + name, + skipLoading: true, +}); + +export const addReactionSuccess = (announcementId, name) => ({ + type: ANNOUNCEMENTS_REACTION_ADD_SUCCESS, + id: announcementId, + name, + skipLoading: true, +}); + +export const addReactionFail = (announcementId, name, error) => ({ + type: ANNOUNCEMENTS_REACTION_ADD_FAIL, + id: announcementId, + name, + error, + skipLoading: true, +}); + +export const removeReaction = (announcementId, name) => (dispatch, getState) => { + dispatch(removeReactionRequest(announcementId, name)); + + api(getState).delete(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => { + dispatch(removeReactionSuccess(announcementId, name)); + }).catch(err => { + dispatch(removeReactionFail(announcementId, name, err)); + }); +}; + +export const removeReactionRequest = (announcementId, name) => ({ + type: ANNOUNCEMENTS_REACTION_REMOVE_REQUEST, + id: announcementId, + name, + skipLoading: true, +}); + +export const removeReactionSuccess = (announcementId, name) => ({ + type: ANNOUNCEMENTS_REACTION_REMOVE_SUCCESS, + id: announcementId, + name, + skipLoading: true, +}); + +export const removeReactionFail = (announcementId, name, error) => ({ + type: ANNOUNCEMENTS_REACTION_REMOVE_FAIL, + id: announcementId, + name, + error, + skipLoading: true, +}); + +export const updateReaction = reaction => ({ + type: ANNOUNCEMENTS_REACTION_UPDATE, + reaction, +}); diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index 78f321da4..f7cbe4c1c 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -76,7 +76,6 @@ export function normalizeStatus(status, normalOldStatus) { export function normalizePoll(poll) { const normalPoll = { ...poll }; - const emojiMap = makeEmojiMap(normalPoll); normalPoll.options = poll.options.map((option, index) => ({ @@ -87,3 +86,12 @@ export function normalizePoll(poll) { return normalPoll; } + +export function normalizeAnnouncement(announcement) { + const normalAnnouncement = { ...announcement }; + const emojiMap = makeEmojiMap(normalAnnouncement); + + normalAnnouncement.contentHtml = emojify(normalAnnouncement.content, emojiMap); + + return normalAnnouncement; +} diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 798f9b37e..8a066b896 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -157,9 +157,9 @@ export function expandNotifications({ maxId } = {}, done = noOp) { dispatch(expandNotificationsSuccess(response.data, next ? next.uri : null, isLoadingMore, isLoadingRecent, isLoadingRecent && preferPendingItems)); fetchRelatedRelationships(dispatch, response.data); - done(); }).catch(error => { dispatch(expandNotificationsFail(error, isLoadingMore)); + }).finally(() => { done(); }); }; @@ -188,6 +188,7 @@ export function expandNotificationsFail(error, isLoadingMore) { type: NOTIFICATIONS_EXPAND_FAIL, error, skipLoading: !isLoadingMore, + skipAlert: !isLoadingMore, }; }; diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index c678e9393..ac325f74c 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -8,6 +8,7 @@ import { } from './timelines'; import { updateNotifications, expandNotifications } from './notifications'; import { updateConversations } from './conversations'; +import { fetchAnnouncements, updateAnnouncements, updateReaction as updateAnnouncementsReaction } from './announcements'; import { fetchFilters } from './filters'; import { getLocale } from '../locales'; @@ -44,6 +45,12 @@ export function connectTimelineStream (timelineId, path, pollingRefresh = null, case 'filters_changed': dispatch(fetchFilters()); break; + case 'announcement': + dispatch(updateAnnouncements(JSON.parse(data.payload))); + break; + case 'announcement.reaction': + dispatch(updateAnnouncementsReaction(JSON.parse(data.payload))); + break; } }, }; @@ -51,7 +58,9 @@ export function connectTimelineStream (timelineId, path, pollingRefresh = null, } const refreshHomeTimelineAndNotification = (dispatch, done) => { - dispatch(expandHomeTimeline({}, () => dispatch(expandNotifications({}, done)))); + dispatch(expandHomeTimeline({}, () => + dispatch(expandNotifications({}, () => + dispatch(fetchAnnouncements(done)))))); }; export const connectUserStream = () => connectTimelineStream('home', 'user', refreshHomeTimelineAndNotification); diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index bc2ac5e82..054668655 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -98,9 +98,9 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { const next = getLinks(response).refs.find(link => link.rel === 'next'); dispatch(importFetchedStatuses(response.data)); dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.status === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); - done(); }).catch(error => { dispatch(expandTimelineFail(timelineId, error, isLoadingMore)); + }).finally(() => { done(); }); }; diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.js index 800b1c270..4e1c882e2 100644 --- a/app/javascript/mastodon/components/error_boundary.js +++ b/app/javascript/mastodon/components/error_boundary.js @@ -58,7 +58,7 @@ export default class ErrorBoundary extends React.PureComponent {

-

Mastodon v{version} · ·

+

Mastodon v{version} · ·

); diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js index e57c3c20c..582bb0d39 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -290,6 +290,7 @@ class EmojiPickerDropdown extends React.PureComponent { onPickEmoji: PropTypes.func.isRequired, onSkinTone: PropTypes.func.isRequired, skinTone: PropTypes.number.isRequired, + button: PropTypes.node, }; state = { @@ -350,18 +351,18 @@ class EmojiPickerDropdown extends React.PureComponent { } render () { - const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis } = this.props; + const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; const title = intl.formatMessage(messages.emoji); const { active, loading, placement } = this.state; return (
- 🙂 + />}
diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js new file mode 100644 index 000000000..ee444e3f0 --- /dev/null +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -0,0 +1,395 @@ +import React from 'react'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import ReactSwipeableViews from 'react-swipeable-views'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import PropTypes from 'prop-types'; +import IconButton from 'mastodon/components/icon_button'; +import Icon from 'mastodon/components/icon'; +import { defineMessages, injectIntl, FormattedMessage, FormattedDate, FormattedNumber } from 'react-intl'; +import { autoPlayGif } from 'mastodon/initial_state'; +import elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg'; +import { mascot } from 'mastodon/initial_state'; +import unicodeMapping from 'mastodon/features/emoji/emoji_unicode_mapping_light'; +import classNames from 'classnames'; +import EmojiPickerDropdown from 'mastodon/features/compose/containers/emoji_picker_dropdown_container'; + +const messages = defineMessages({ + close: { id: 'lightbox.close', defaultMessage: 'Close' }, + previous: { id: 'lightbox.previous', defaultMessage: 'Previous' }, + next: { id: 'lightbox.next', defaultMessage: 'Next' }, +}); + +class Content extends ImmutablePureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + static propTypes = { + announcement: ImmutablePropTypes.map.isRequired, + }; + + setRef = c => { + this.node = c; + } + + componentDidMount () { + this._updateLinks(); + this._updateEmojis(); + } + + componentDidUpdate () { + this._updateLinks(); + this._updateEmojis(); + } + + _updateEmojis () { + const node = this.node; + + if (!node || autoPlayGif) { + return; + } + + const emojis = node.querySelectorAll('.custom-emoji'); + + for (var i = 0; i < emojis.length; i++) { + let emoji = emojis[i]; + + if (emoji.classList.contains('status-emoji')) { + continue; + } + + emoji.classList.add('status-emoji'); + + emoji.addEventListener('mouseenter', this.handleEmojiMouseEnter, false); + emoji.addEventListener('mouseleave', this.handleEmojiMouseLeave, false); + } + } + + _updateLinks () { + const node = this.node; + + if (!node) { + return; + } + + const links = node.querySelectorAll('a'); + + for (var i = 0; i < links.length; ++i) { + let link = links[i]; + + if (link.classList.contains('status-link')) { + continue; + } + + link.classList.add('status-link'); + + let mention = this.props.announcement.get('mentions').find(item => link.href === item.get('url')); + + if (mention) { + link.addEventListener('click', this.onMentionClick.bind(this, mention), false); + link.setAttribute('title', mention.get('acct')); + } else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) { + link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false); + } else { + link.setAttribute('title', link.href); + link.classList.add('unhandled-link'); + } + + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener noreferrer'); + } + } + + onMentionClick = (mention, e) => { + if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { + e.preventDefault(); + this.context.router.history.push(`/accounts/${mention.get('id')}`); + } + } + + onHashtagClick = (hashtag, e) => { + hashtag = hashtag.replace(/^#/, ''); + + if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { + e.preventDefault(); + this.context.router.history.push(`/timelines/tag/${hashtag}`); + } + } + + handleEmojiMouseEnter = ({ target }) => { + target.src = target.getAttribute('data-original'); + } + + handleEmojiMouseLeave = ({ target }) => { + target.src = target.getAttribute('data-static'); + } + + render () { + const { announcement } = this.props; + + return ( +
+ ); + } + +} + +const assetHost = process.env.CDN_HOST || ''; + +class Emoji extends React.PureComponent { + + static propTypes = { + emoji: PropTypes.string.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + hovered: PropTypes.bool.isRequired, + }; + + render () { + const { emoji, emojiMap, hovered } = this.props; + + if (unicodeMapping[emoji]) { + const { filename, shortCode } = unicodeMapping[this.props.emoji]; + const title = shortCode ? `:${shortCode}:` : ''; + + return ( + {emoji} + ); + } else if (emojiMap.get(emoji)) { + const filename = (autoPlayGif || hovered) ? emojiMap.getIn([emoji, 'url']) : emojiMap.getIn([emoji, 'static_url']); + const shortCode = `:${emoji}:`; + + return ( + {shortCode} + ); + } else { + return null; + } + } + +} + +class Reaction extends ImmutablePureComponent { + + static propTypes = { + announcementId: PropTypes.string.isRequired, + reaction: ImmutablePropTypes.map.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + }; + + state = { + hovered: false, + }; + + handleClick = () => { + const { reaction, announcementId, addReaction, removeReaction } = this.props; + + if (reaction.get('me')) { + removeReaction(announcementId, reaction.get('name')); + } else { + addReaction(announcementId, reaction.get('name')); + } + } + + handleMouseEnter = () => this.setState({ hovered: true }) + + handleMouseLeave = () => this.setState({ hovered: false }) + + render () { + const { reaction } = this.props; + + let shortCode = reaction.get('name'); + + if (unicodeMapping[shortCode]) { + shortCode = unicodeMapping[shortCode].shortCode; + } + + return ( + + ); + } + +} + +class ReactionsBar extends ImmutablePureComponent { + + static propTypes = { + announcementId: PropTypes.string.isRequired, + reactions: ImmutablePropTypes.list.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + }; + + handleEmojiPick = data => { + const { addReaction, announcementId } = this.props; + addReaction(announcementId, data.native.replace(/:/g, '')); + } + + render () { + const { reactions } = this.props; + const visibleReactions = reactions.filter(x => x.get('count') > 0); + + return ( +
+ {visibleReactions.map(reaction => ( + + ))} + + } /> +
+ ); + } + +} + +class Announcement extends ImmutablePureComponent { + + static propTypes = { + announcement: ImmutablePropTypes.map.isRequired, + emojiMap: ImmutablePropTypes.map.isRequired, + dismissAnnouncement: PropTypes.func.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + }; + + handleDismissClick = () => { + const { dismissAnnouncement, announcement } = this.props; + dismissAnnouncement(announcement.get('id')); + } + + render () { + const { announcement, intl } = this.props; + const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at')); + const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at')); + const now = new Date(); + const hasTimeRange = startsAt && endsAt; + const skipYear = hasTimeRange && startsAt.getFullYear() === endsAt.getFullYear() && endsAt.getFullYear() === now.getFullYear(); + const skipEndDate = hasTimeRange && startsAt.getDate() === endsAt.getDate() && startsAt.getMonth() === endsAt.getMonth() && startsAt.getFullYear() === endsAt.getFullYear(); + const skipTime = announcement.get('all_day'); + + return ( +
+ + + {hasTimeRange && · - } + + + + + + + +
+ ); + } + +} + +export default @injectIntl +class Announcements extends ImmutablePureComponent { + + static propTypes = { + announcements: ImmutablePropTypes.list, + emojiMap: ImmutablePropTypes.map.isRequired, + fetchAnnouncements: PropTypes.func.isRequired, + dismissAnnouncement: PropTypes.func.isRequired, + addReaction: PropTypes.func.isRequired, + removeReaction: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + }; + + state = { + index: 0, + }; + + componentDidMount () { + const { fetchAnnouncements } = this.props; + fetchAnnouncements(); + } + + handleChangeIndex = index => { + this.setState({ index: index % this.props.announcements.size }); + } + + handleNextClick = () => { + this.setState({ index: (this.state.index + 1) % this.props.announcements.size }); + } + + handlePrevClick = () => { + this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size }); + } + + render () { + const { announcements, intl } = this.props; + const { index } = this.state; + + if (announcements.isEmpty()) { + return null; + } + + return ( +
+ + +
+ + {announcements.map(announcement => ( + + ))} + + +
+ + {index + 1} / {announcements.size} + +
+
+
+ ); + } + +} diff --git a/app/javascript/mastodon/features/getting_started/containers/announcements_container.js b/app/javascript/mastodon/features/getting_started/containers/announcements_container.js new file mode 100644 index 000000000..b10d1d4ce --- /dev/null +++ b/app/javascript/mastodon/features/getting_started/containers/announcements_container.js @@ -0,0 +1,21 @@ +import { connect } from 'react-redux'; +import { fetchAnnouncements, dismissAnnouncement, addReaction, removeReaction } from 'mastodon/actions/announcements'; +import Announcements from '../components/announcements'; +import { createSelector } from 'reselect'; +import { Map as ImmutableMap } from 'immutable'; + +const customEmojiMap = createSelector([state => state.get('custom_emojis')], items => items.reduce((map, emoji) => map.set(emoji.get('shortcode'), emoji), ImmutableMap())); + +const mapStateToProps = state => ({ + announcements: state.getIn(['announcements', 'items']), + emojiMap: customEmojiMap(state), +}); + +const mapDispatchToProps = dispatch => ({ + fetchAnnouncements: () => dispatch(fetchAnnouncements()), + dismissAnnouncement: id => dispatch(dismissAnnouncement(id)), + addReaction: (id, name) => dispatch(addReaction(id, name)), + removeReaction: (id, name) => dispatch(removeReaction(id, name)), +}); + +export default connect(mapStateToProps, mapDispatchToProps)(Announcements); diff --git a/app/javascript/mastodon/features/getting_started/containers/trends_container.js b/app/javascript/mastodon/features/getting_started/containers/trends_container.js index 1df3fb4fe..7a5268780 100644 --- a/app/javascript/mastodon/features/getting_started/containers/trends_container.js +++ b/app/javascript/mastodon/features/getting_started/containers/trends_container.js @@ -1,5 +1,5 @@ import { connect } from 'react-redux'; -import { fetchTrends } from '../../../actions/trends'; +import { fetchTrends } from 'mastodon/actions/trends'; import Trends from '../components/trends'; const mapStateToProps = state => ({ diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index 1cafb88ed..b7f9d5095 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -9,6 +9,7 @@ import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ColumnSettingsContainer from './containers/column_settings_container'; import { Link } from 'react-router-dom'; +import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, @@ -113,6 +114,8 @@ class HomeTimeline extends React.PureComponent { } + alwaysPrepend trackScroll={!pinned} scrollKey={`home_timeline-${columnId}`} onLoadMore={this.handleLoadMore} diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js index a785551c0..d7f97f210 100644 --- a/app/javascript/mastodon/features/ui/components/media_modal.js +++ b/app/javascript/mastodon/features/ui/components/media_modal.js @@ -211,7 +211,6 @@ class MediaModal extends ImmutablePureComponent { style={swipeableViewsStyle} containerStyle={containerStyle} onChangeIndex={this.handleSwipe} - onSwitching={this.handleSwitching} index={index} > {content} diff --git a/app/javascript/mastodon/reducers/announcements.js b/app/javascript/mastodon/reducers/announcements.js new file mode 100644 index 000000000..aa674e516 --- /dev/null +++ b/app/javascript/mastodon/reducers/announcements.js @@ -0,0 +1,72 @@ +import { + ANNOUNCEMENTS_FETCH_REQUEST, + ANNOUNCEMENTS_FETCH_SUCCESS, + ANNOUNCEMENTS_FETCH_FAIL, + ANNOUNCEMENTS_UPDATE, + ANNOUNCEMENTS_DISMISS, + ANNOUNCEMENTS_REACTION_UPDATE, + ANNOUNCEMENTS_REACTION_ADD_REQUEST, + ANNOUNCEMENTS_REACTION_ADD_FAIL, + ANNOUNCEMENTS_REACTION_REMOVE_REQUEST, + ANNOUNCEMENTS_REACTION_REMOVE_FAIL, +} from '../actions/announcements'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; + +const initialState = ImmutableMap({ + items: ImmutableList(), + isLoading: false, +}); + +const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => { + if (announcement.get('id') === id) { + return announcement.update('reactions', reactions => { + if (reactions.find(reaction => reaction.get('name') === name)) { + return reactions.map(reaction => { + if (reaction.get('name') === name) { + return updater(reaction); + } + + return reaction; + }); + } + + return reactions.push(updater(fromJS({ name, count: 0 }))); + }); + } + + return announcement; +})); + +const updateReactionCount = (state, reaction) => updateReaction(state, reaction.announcement_id, reaction.name, x => x.set('count', reaction.count)); + +const addReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', true).update('count', y => y + 1)); + +const removeReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', false).update('count', y => y - 1)); + +export default function announcementsReducer(state = initialState, action) { + switch(action.type) { + case ANNOUNCEMENTS_FETCH_REQUEST: + return state.set('isLoading', true); + case ANNOUNCEMENTS_FETCH_SUCCESS: + return state.withMutations(map => { + map.set('items', fromJS(action.announcements)); + map.set('isLoading', false); + }); + case ANNOUNCEMENTS_FETCH_FAIL: + return state.set('isLoading', false); + case ANNOUNCEMENTS_UPDATE: + return state.update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at'))); + case ANNOUNCEMENTS_DISMISS: + return state.update('items', list => list.filterNot(announcement => announcement.get('id') === action.id)); + case ANNOUNCEMENTS_REACTION_UPDATE: + return updateReactionCount(state, action.reaction); + case ANNOUNCEMENTS_REACTION_ADD_REQUEST: + case ANNOUNCEMENTS_REACTION_REMOVE_FAIL: + return addReaction(state, action.id, action.name); + case ANNOUNCEMENTS_REACTION_REMOVE_REQUEST: + case ANNOUNCEMENTS_REACTION_ADD_FAIL: + return removeReaction(state, action.id, action.name); + default: + return state; + } +}; diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js index b8d608888..b9817cd38 100644 --- a/app/javascript/mastodon/reducers/index.js +++ b/app/javascript/mastodon/reducers/index.js @@ -34,8 +34,10 @@ import polls from './polls'; import identity_proofs from './identity_proofs'; import trends from './trends'; import missed_updates from './missed_updates'; +import announcements from './announcements'; const reducers = { + announcements, dropdown_menu, timelines, meta, diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 94671c350..922d48ad7 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -859,6 +859,44 @@ } } +.announcements__item__content { + word-wrap: break-word; + + .emojione { + width: 20px; + height: 20px; + margin: -3px 0 0; + } + + p { + margin-bottom: 10px; + white-space: pre-wrap; + + &:last-child { + margin-bottom: 0; + } + } + + a { + color: $highlight-text-color; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + + &.mention { + &:hover { + text-decoration: none; + + span { + text-decoration: underline; + } + } + } + } +} + .status__content.status__content--collapsed { max-height: 20px * 15; // 15 lines is roughly above 500 characters } @@ -6581,3 +6619,178 @@ noscript { } } } + +.announcements { + background: lighten($ui-base-color, 4%); + border-top: 1px solid $ui-base-color; + font-size: 13px; + display: flex; + align-items: flex-end; + + &__mastodon { + width: 124px; + flex: 0 0 auto; + + @media screen and (max-width: 124px + 300px) { + display: none; + } + } + + &__container { + width: calc(100% - 124px); + flex: 0 0 auto; + position: relative; + + @media screen and (max-width: 124px + 300px) { + width: 100%; + } + } + + &__item { + box-sizing: border-box; + width: 100%; + padding: 15px; + padding-right: 15px + 18px; + position: relative; + + &__range { + display: block; + font-weight: 500; + margin-bottom: 10px; + } + + &__dismiss-icon { + position: absolute; + top: 12px; + right: 12px; + } + } + + &__pagination { + padding: 15px; + color: $darker-text-color; + position: absolute; + bottom: 3px; + right: 0; + } +} + +.layout-multiple-columns .announcements__mastodon { + display: none; +} + +.layout-multiple-columns .announcements__container { + width: 100%; +} + +.reactions-bar { + display: flex; + flex-wrap: wrap; + align-items: center; + margin-top: 15px; + margin-left: -2px; + width: calc(100% - (90px - 33px)); + + &__item { + flex-shrink: 0; + background: lighten($ui-base-color, 12%); + border: 0; + border-radius: 3px; + margin: 2px; + cursor: pointer; + user-select: none; + padding: 0 6px; + display: flex; + align-items: center; + transition: all 100ms ease-in; + transition-property: background-color, color; + + &__emoji { + display: block; + margin: 3px 0; + width: 16px; + height: 16px; + + img { + display: block; + margin: 0; + width: 100%; + height: 100%; + min-width: auto; + min-height: auto; + vertical-align: bottom; + object-fit: contain; + } + } + + &__count { + display: block; + min-width: 9px; + font-size: 13px; + font-weight: 500; + text-align: center; + margin-left: 6px; + color: $darker-text-color; + } + + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 16%); + transition: all 200ms ease-out; + transition-property: background-color, color; + + &__count { + color: lighten($darker-text-color, 4%); + } + } + + &.active { + transition: all 100ms ease-in; + transition-property: background-color, color; + background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 90%); + + .reactions-bar__item__count { + color: $highlight-text-color; + } + } + } + + .emoji-picker-dropdown { + margin: 2px; + } + + &:hover .emoji-button { + opacity: 0.85; + } + + .emoji-button { + color: $darker-text-color; + margin: 0; + font-size: 16px; + width: auto; + flex-shrink: 0; + padding: 0 6px; + height: 22px; + display: flex; + align-items: center; + opacity: 0.5; + transition: all 100ms ease-in; + transition-property: background-color, color; + + &:hover, + &:active, + &:focus { + opacity: 1; + color: lighten($darker-text-color, 4%); + transition: all 200ms ease-out; + transition-property: background-color, color; + } + } + + &--empty { + .emoji-button { + padding: 0; + } + } +} diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 8965ce675..65cefbd7c 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -222,6 +222,12 @@ code { } } + .input.datetime .label_input select { + display: inline-block; + width: auto; + flex: 0; + } + .required abbr { text-decoration: none; color: lighten($error-value-color, 12%); diff --git a/app/lib/entity_cache.rb b/app/lib/entity_cache.rb index 8fff544a0..35a3773d2 100644 --- a/app/lib/entity_cache.rb +++ b/app/lib/entity_cache.rb @@ -8,7 +8,7 @@ class EntityCache MAX_EXPIRATION = 7.days.freeze def mention(username, domain) - Rails.cache.fetch(to_key(:mention, username, domain), expires_in: MAX_EXPIRATION) { Account.select(:username, :domain, :url).find_remote(username, domain) } + Rails.cache.fetch(to_key(:mention, username, domain), expires_in: MAX_EXPIRATION) { Account.select(:id, :username, :domain, :url).find_remote(username, domain) } end def emoji(shortcodes, domain) diff --git a/app/lib/inline_renderer.rb b/app/lib/inline_renderer.rb index 761a8822d..27e334a4d 100644 --- a/app/lib/inline_renderer.rb +++ b/app/lib/inline_renderer.rb @@ -15,6 +15,10 @@ class InlineRenderer serializer = REST::NotificationSerializer when :conversation serializer = REST::ConversationSerializer + when :announcement + serializer = REST::AnnouncementSerializer + when :reaction + serializer = REST::ReactionSerializer else return end diff --git a/app/models/account.rb b/app/models/account.rb index 1e8abe6ec..da6f51a9c 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -476,6 +476,12 @@ class Account < ApplicationRecord records end + def from_text(text) + return [] if text.blank? + + text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.map { |(username, domain)| EntityCache.instance.mention(username, domain) } + end + private def generate_query_for_search(terms) diff --git a/app/models/announcement.rb b/app/models/announcement.rb new file mode 100644 index 000000000..4da9f94d6 --- /dev/null +++ b/app/models/announcement.rb @@ -0,0 +1,85 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: announcements +# +# id :bigint(8) not null, primary key +# text :text default(""), not null +# published :boolean default(FALSE), not null +# all_day :boolean default(FALSE), not null +# scheduled_at :datetime +# starts_at :datetime +# ends_at :datetime +# created_at :datetime not null +# updated_at :datetime not null +# + +class Announcement < ApplicationRecord + after_commit :queue_publish, on: :create + + scope :unpublished, -> { where(published: false) } + scope :published, -> { where(published: true) } + scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') } + scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.created_at) ASC')) } + + has_many :announcement_mutes, dependent: :destroy + has_many :announcement_reactions, dependent: :destroy + + validates :text, presence: true + validates :starts_at, presence: true, if: -> { ends_at.present? } + validates :ends_at, presence: true, if: -> { starts_at.present? } + + before_validation :set_all_day + before_validation :set_starts_at, on: :create + before_validation :set_ends_at, on: :create + + def time_range? + starts_at.present? && ends_at.present? + end + + def mentions + @mentions ||= Account.from_text(text) + end + + def tags + @tags ||= Tag.find_or_create_by_names(Extractor.extract_hashtags(text)) + end + + def emojis + @emojis ||= CustomEmoji.from_text(text) + end + + def reactions(account = nil) + records = begin + scope = announcement_reactions.group(:announcement_id, :name, :custom_emoji_id).order(Arel.sql('MIN(created_at) ASC')) + + if account.nil? + scope.select('name, custom_emoji_id, count(*) as count, false as me') + else + scope.select("name, custom_emoji_id, count(*) as count, exists(select 1 from announcement_reactions r where r.account_id = #{account.id} and r.announcement_id = announcement_reactions.announcement_id and r.name = announcement_reactions.name) as me") + end + end + + ActiveRecord::Associations::Preloader.new.preload(records, :custom_emoji) + records + end + + private + + def set_all_day + self.all_day = false if starts_at.blank? || ends_at.blank? + end + + def set_starts_at + self.starts_at = starts_at.change(hour: 0, min: 0, sec: 0) if all_day? && starts_at.present? + end + + def set_ends_at + self.ends_at = ends_at.change(hour: 23, min: 59, sec: 59) if all_day? && ends_at.present? + end + + def queue_publish + PublishScheduledAnnouncementWorker.perform_async(id) if scheduled_at.blank? + end +end diff --git a/app/models/announcement_filter.rb b/app/models/announcement_filter.rb new file mode 100644 index 000000000..950852460 --- /dev/null +++ b/app/models/announcement_filter.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +class AnnouncementFilter + KEYS = %i( + published + unpublished + ).freeze + + attr_reader :params + + def initialize(params) + @params = params + end + + def results + scope = Announcement.unscoped + + params.each do |key, value| + next if key.to_s == 'page' + + scope.merge!(scope_for(key, value.to_s.strip)) if value.present? + end + + scope.chronological + end + + private + + def scope_for(key, _value) + case key.to_s + when 'published' + Announcement.published + when 'unpublished' + Announcement.unpublished + else + raise "Unknown filter: #{key}" + end + end +end diff --git a/app/models/announcement_mute.rb b/app/models/announcement_mute.rb new file mode 100644 index 000000000..46fda2f5d --- /dev/null +++ b/app/models/announcement_mute.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: announcement_mutes +# +# id :bigint(8) not null, primary key +# account_id :bigint(8) +# announcement_id :bigint(8) +# created_at :datetime not null +# updated_at :datetime not null +# + +class AnnouncementMute < ApplicationRecord + belongs_to :account + belongs_to :announcement, inverse_of: :announcement_mutes + + validates :account_id, uniqueness: { scope: :announcement_id } +end diff --git a/app/models/announcement_reaction.rb b/app/models/announcement_reaction.rb new file mode 100644 index 000000000..d22771034 --- /dev/null +++ b/app/models/announcement_reaction.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: announcement_reactions +# +# id :bigint(8) not null, primary key +# account_id :bigint(8) +# announcement_id :bigint(8) +# name :string default(""), not null +# custom_emoji_id :bigint(8) +# created_at :datetime not null +# updated_at :datetime not null +# + +class AnnouncementReaction < ApplicationRecord + after_commit :queue_publish + + belongs_to :account + belongs_to :announcement, inverse_of: :announcement_reactions + belongs_to :custom_emoji, optional: true + + validates :name, presence: true + validates_with ReactionValidator + + before_validation :set_custom_emoji + + private + + def set_custom_emoji + self.custom_emoji = CustomEmoji.local.find_by(disabled: false, shortcode: name) if name.present? + end + + def queue_publish + PublishAnnouncementReactionWorker.perform_async(announcement_id, name) unless announcement.destroyed? + end +end diff --git a/app/models/backup.rb b/app/models/backup.rb index 8eeb1748a..d242fd62c 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -7,11 +7,11 @@ # user_id :bigint(8) # dump_file_name :string # dump_content_type :string -# dump_file_size :bigint # dump_updated_at :datetime # processed :boolean default(FALSE), not null # created_at :datetime not null # updated_at :datetime not null +# dump_file_size :bigint(8) # class Backup < ApplicationRecord diff --git a/app/models/bookmark.rb b/app/models/bookmark.rb index 01dc48ee7..916261a17 100644 --- a/app/models/bookmark.rb +++ b/app/models/bookmark.rb @@ -3,11 +3,11 @@ # # Table name: bookmarks # -# id :integer not null, primary key +# id :bigint(8) not null, primary key +# account_id :bigint(8) not null +# status_id :bigint(8) not null # created_at :datetime not null # updated_at :datetime not null -# account_id :integer not null -# status_id :integer not null # class Bookmark < ApplicationRecord diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index f27d39483..14bcf7bb1 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -84,6 +84,7 @@ module AccountInteractions has_many :muted_by, -> { order('mutes.id desc') }, through: :muted_by_relationships, source: :account has_many :conversation_mutes, dependent: :destroy has_many :domain_blocks, class_name: 'AccountDomainBlock', dependent: :destroy + has_many :announcement_mutes, dependent: :destroy end def follow!(other_account, reblogs: nil, uri: nil) diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb index 0dacaf654..d177cf281 100644 --- a/app/models/custom_emoji.rb +++ b/app/models/custom_emoji.rb @@ -67,7 +67,7 @@ class CustomEmoji < ApplicationRecord end class << self - def from_text(text, domain) + def from_text(text, domain = nil) return [] if text.blank? shortcodes = text.scan(SCAN_RE).map(&:first).uniq diff --git a/app/policies/announcement_policy.rb b/app/policies/announcement_policy.rb new file mode 100644 index 000000000..0a4e4575c --- /dev/null +++ b/app/policies/announcement_policy.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AnnouncementPolicy < ApplicationPolicy + def index? + staff? + end + + def create? + admin? + end + + def update? + admin? + end + + def destroy? + admin? + end +end diff --git a/app/serializers/rest/announcement_serializer.rb b/app/serializers/rest/announcement_serializer.rb new file mode 100644 index 000000000..924d87b34 --- /dev/null +++ b/app/serializers/rest/announcement_serializer.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +class REST::AnnouncementSerializer < ActiveModel::Serializer + attributes :id, :content, :starts_at, :ends_at, :all_day + + has_many :mentions + has_many :tags, serializer: REST::StatusSerializer::TagSerializer + has_many :emojis, serializer: REST::CustomEmojiSerializer + has_many :reactions, serializer: REST::ReactionSerializer + + def id + object.id.to_s + end + + def content + Formatter.instance.linkify(object.text) + end + + def reactions + object.reactions(current_user&.account) + end + + class AccountSerializer < ActiveModel::Serializer + attributes :id, :username, :url, :acct + + def id + object.id.to_s + end + + def url + ActivityPub::TagManager.instance.url_for(object) + end + end +end diff --git a/app/serializers/rest/reaction_serializer.rb b/app/serializers/rest/reaction_serializer.rb new file mode 100644 index 000000000..1a5dca018 --- /dev/null +++ b/app/serializers/rest/reaction_serializer.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class REST::ReactionSerializer < ActiveModel::Serializer + include RoutingHelper + + attributes :name, :count + + attribute :me, if: :current_user? + attribute :url, if: :custom_emoji? + attribute :static_url, if: :custom_emoji? + + def count + object.respond_to?(:count) ? object.count : 0 + end + + def current_user? + !current_user.nil? + end + + def custom_emoji? + object.custom_emoji.present? + end + + def url + full_asset_url(object.custom_emoji.image.url) + end + + def static_url + full_asset_url(object.custom_emoji.image.url(:static)) + end +end diff --git a/app/validators/reaction_validator.rb b/app/validators/reaction_validator.rb new file mode 100644 index 000000000..de0f2c94b --- /dev/null +++ b/app/validators/reaction_validator.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class ReactionValidator < ActiveModel::Validator + SUPPORTED_EMOJIS = Oj.load(File.read(Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json'))).keys.freeze + + def validate(reaction) + return if reaction.name.blank? || reaction.custom_emoji_id.present? + + reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) unless unicode_emoji?(reaction.name) + end + + private + + def unicode_emoji?(name) + SUPPORTED_EMOJIS.include?(name) + end +end diff --git a/app/views/admin/announcements/_announcement.html.haml b/app/views/admin/announcements/_announcement.html.haml new file mode 100644 index 000000000..75768c7ba --- /dev/null +++ b/app/views/admin/announcements/_announcement.html.haml @@ -0,0 +1,14 @@ +%tr + %td + = truncate(announcement.text) + %td + = time_range(announcement) if announcement.time_range? + %td + - if announcement.scheduled_at.present? + = fa_icon('clock-o') if announcement.scheduled_at > Time.now.utc + = l(announcement.scheduled_at) + - else + = l(announcement.created_at) + %td + = table_link_to 'pencil', t('generic.edit'), edit_admin_announcement_path(announcement) if can?(:update, announcement) + = table_link_to 'trash', t('generic.delete'), admin_announcement_path(announcement), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, announcement) diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml new file mode 100644 index 000000000..c5c605e93 --- /dev/null +++ b/app/views/admin/announcements/edit.html.haml @@ -0,0 +1,22 @@ +- content_for :page_title do + = t('.title') + += simple_form_for @announcement, url: admin_announcement_path(@announcement) do |f| + = render 'shared/error_messages', object: @announcement + + .fields-group + = f.input :starts_at, include_blank: true, wrapper: :with_block_label + = f.input :ends_at, include_blank: true, wrapper: :with_block_label + + .fields-group + = f.input :all_day, as: :boolean, wrapper: :with_label + + .fields-group + = f.input :text, wrapper: :with_block_label + + - if @announcement.scheduled_at.present? && !@announcement.published? + .fields-group + = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/announcements/index.html.haml b/app/views/admin/announcements/index.html.haml new file mode 100644 index 000000000..634f586fb --- /dev/null +++ b/app/views/admin/announcements/index.html.haml @@ -0,0 +1,30 @@ +- content_for :page_title do + = t('admin.announcements.title') + +- content_for :heading_actions do + = link_to t('admin.announcements.new.title'), new_admin_announcement_path, class: 'button' + +.filters + .filter-subset + %strong= t('admin.relays.status') + %ul + %li= filter_link_to t('generic.all'), published: nil, unpublished: nil + %li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil + +- if @announcements.empty? + %div.muted-hint.center-text + = t 'admin.announcements.empty' +- else + .table-wrapper + %table.table + %thead + %tr + %th= t('simple_form.labels.announcement.text') + %th= t('admin.announcements.time_range') + %th= t('admin.announcements.published') + %th + %tbody + = render partial: 'announcement', collection: @announcements + += paginate @announcements + diff --git a/app/views/admin/announcements/new.html.haml b/app/views/admin/announcements/new.html.haml new file mode 100644 index 000000000..a5298c5f6 --- /dev/null +++ b/app/views/admin/announcements/new.html.haml @@ -0,0 +1,21 @@ +- content_for :page_title do + = t('.title') + += simple_form_for @announcement, url: admin_announcements_path do |f| + = render 'shared/error_messages', object: @announcement + + .fields-group + = f.input :starts_at, include_blank: true, wrapper: :with_block_label + = f.input :ends_at, include_blank: true, wrapper: :with_block_label + + .fields-group + = f.input :all_day, as: :boolean, wrapper: :with_label + + .fields-group + = f.input :text, wrapper: :with_block_label + + .fields-group + = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label + + .actions + = f.button :button, t('.create'), type: :submit diff --git a/app/workers/publish_announcement_reaction_worker.rb b/app/workers/publish_announcement_reaction_worker.rb new file mode 100644 index 000000000..6f3b6dc5b --- /dev/null +++ b/app/workers/publish_announcement_reaction_worker.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class PublishAnnouncementReactionWorker + include Sidekiq::Worker + include Redisable + + def perform(announcement_id, name) + announcement = Announcement.find(announcement_id) + + reaction, = announcement.announcement_reactions.where(name: name).group(:announcement_id, :name, :custom_emoji_id).select('name, custom_emoji_id, count(*) as count, false as me') + reaction ||= announcement.announcement_reactions.new(name: name) + + payload = InlineRenderer.render(reaction, nil, :reaction).tap { |h| h[:announcement_id] = announcement_id } + payload = Oj.dump(event: :'announcement.reaction', payload: payload) + + Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each do |account| + redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}") + end + rescue ActiveRecord::RecordNotFound + true + end +end diff --git a/app/workers/publish_scheduled_announcement_worker.rb b/app/workers/publish_scheduled_announcement_worker.rb new file mode 100644 index 000000000..4b2014e34 --- /dev/null +++ b/app/workers/publish_scheduled_announcement_worker.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class PublishScheduledAnnouncementWorker + include Sidekiq::Worker + include Redisable + + def perform(announcement_id) + announcement = Announcement.find(announcement_id) + announcement.update(published: true) + + payload = InlineRenderer.render(announcement, nil, :announcement) + payload = Oj.dump(event: :announcement, payload: payload) + + Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each do |account| + redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}") + end + end +end diff --git a/app/workers/scheduler/scheduled_statuses_scheduler.rb b/app/workers/scheduler/scheduled_statuses_scheduler.rb index 1772a246b..4262f1d01 100644 --- a/app/workers/scheduler/scheduled_statuses_scheduler.rb +++ b/app/workers/scheduler/scheduled_statuses_scheduler.rb @@ -6,14 +6,38 @@ class Scheduler::ScheduledStatusesScheduler sidekiq_options unique: :until_executed, retry: 0 def perform + publish_scheduled_statuses! + publish_scheduled_announcements! + unpublish_expired_announcements! + end + + private + + def publish_scheduled_statuses! due_statuses.find_each do |scheduled_status| PublishScheduledStatusWorker.perform_at(scheduled_status.scheduled_at, scheduled_status.id) end end - private - def due_statuses ScheduledStatus.where('scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET) end + + def publish_scheduled_announcements! + due_announcements.find_each do |announcement| + PublishScheduledAnnouncementWorker.perform_at(announcement.scheduled_at, announcement.id) + end + end + + def due_announcements + Announcement.unpublished.where('scheduled_at IS NOT NULL AND scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET) + end + + def unpublish_expired_announcements! + expired_announcements.in_batches.update_all(published: false) + end + + def expired_announcements + Announcement.published.where('ends_at IS NOT NULL AND ends_at <= ?', Time.now.utc) + end end diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index 964526819..3dc48ef08 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -98,7 +98,7 @@ SimpleForm.setup do |config| b.use :html5 b.use :label b.use :hint, wrap_with: { tag: :span, class: :hint } - b.use :input + b.use :input, wrap_with: { tag: :div, class: :label_input } b.use :error, wrap_with: { tag: :span, class: :error } end diff --git a/config/locales/en.yml b/config/locales/en.yml index 2bd84c264..c4e846354 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -198,11 +198,13 @@ en: change_email_user: "%{name} changed the e-mail address of user %{target}" confirm_user: "%{name} confirmed e-mail address of user %{target}" create_account_warning: "%{name} sent a warning to %{target}" + create_announcement: "%{name} created new announcement %{target}" create_custom_emoji: "%{name} uploaded new emoji %{target}" create_domain_allow: "%{name} whitelisted domain %{target}" create_domain_block: "%{name} blocked domain %{target}" create_email_domain_block: "%{name} blacklisted e-mail domain %{target}" demote_user: "%{name} demoted user %{target}" + destroy_announcement: "%{name} deleted announcement %{target}" destroy_custom_emoji: "%{name} destroyed emoji %{target}" destroy_domain_allow: "%{name} removed domain %{target} from whitelist" destroy_domain_block: "%{name} unblocked domain %{target}" @@ -224,10 +226,22 @@ en: unassigned_report: "%{name} unassigned report %{target}" unsilence_account: "%{name} unsilenced %{target}'s account" unsuspend_account: "%{name} unsuspended %{target}'s account" + update_announcement: "%{name} updated announcement %{target}" update_custom_emoji: "%{name} updated emoji %{target}" update_status: "%{name} updated status by %{target}" deleted_status: "(deleted status)" title: Audit log + announcements: + edit: + title: Edit announcement + empty: No announcements found. + live: Live + new: + create: Create announcement + title: New announcement + published: Published + time_range: Time range + title: Announcements custom_emojis: assign_category: Assign category by_domain: Domain @@ -657,6 +671,9 @@ en: hint_html: "Tip: We won't ask you for your password again for the next hour." invalid_password: Invalid password prompt: Confirm password to continue + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -758,6 +775,8 @@ en: all: All changes_saved_msg: Changes successfully saved! copy: Copy + delete: Delete + edit: Edit no_batch_actions_available: No batch actions available on this page order_by: Order by save_changes: Save changes @@ -930,6 +949,9 @@ en: other: Other posting_defaults: Posting defaults public_timelines: Public timelines + reactions: + errors: + unrecognized_emoji: is not a recognized emoji relationships: activity: Account activity dormant: Dormant diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 66f518c1b..f050ec8a3 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -14,6 +14,12 @@ en: text_html: Optional. You can use toot syntax. You can add warning presets to save time type_html: Choose what to do with %{acct} warning_preset_id: Optional. You can still add custom text to end of the preset + announcement: + all_day: When checked, only the dates of the time range will be displayed + ends_at: Optional. Announcement will be automatically unpublished at this time + scheduled_at: Leave blank to publish the announcement immediately + starts_at: Optional. In case your announcement is bound to a specific time range + text: You can use toot syntax. Please be mindful of the space the announcement will take up on the user's screen defaults: autofollow: People who sign up through the invite will automatically follow you avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px @@ -83,6 +89,12 @@ en: silence: Silence suspend: Suspend and irreversibly delete account data warning_preset_id: Use a warning preset + announcement: + all_day: All-day event + ends_at: End of event + scheduled_at: Schedule publication + starts_at: Begin of event + text: Announcement defaults: autofollow: Invite to follow your account avatar: Avatar diff --git a/config/navigation.rb b/config/navigation.rb index eebd4f75e..8fd296d5a 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -46,6 +46,7 @@ SimpleNavigation::Configuration.run do |navigation| n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? } do |s| s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/settings} + s.item :announcements, safe_join([fa_icon('bullhorn fw'), t('admin.announcements.title')]), admin_announcements_path, highlights_on: %r{/admin/announcements} s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis} s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? && !whitelist_mode? }, highlights_on: %r{/admin/relays} s.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? } diff --git a/config/routes.rb b/config/routes.rb index f79af192d..da7bf6f88 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -173,9 +173,12 @@ Rails.application.routes.draw do get :edit end end + resources :email_domain_blocks, only: [:index, :new, :create, :destroy] resources :action_logs, only: [:index] resources :warning_presets, except: [:new] + resources :announcements, except: [:show] + resource :settings, only: [:edit, :update] resources :invites, only: [:index, :create, :destroy] do @@ -317,6 +320,16 @@ Rails.application.routes.draw do resources :scheduled_statuses, only: [:index, :show, :update, :destroy] resources :preferences, only: [:index] + resources :announcements, only: [:index] do + scope module: :announcements do + resources :reactions, only: [:update, :destroy] + end + + member do + post :dismiss + end + end + resources :conversations, only: [:index, :destroy] do member do post :read diff --git a/db/migrate/20191218153258_create_announcements.rb b/db/migrate/20191218153258_create_announcements.rb new file mode 100644 index 000000000..58e143c92 --- /dev/null +++ b/db/migrate/20191218153258_create_announcements.rb @@ -0,0 +1,16 @@ +class CreateAnnouncements < ActiveRecord::Migration[5.2] + def change + create_table :announcements do |t| + t.text :text, null: false, default: '' + + t.boolean :published, null: false, default: false + t.boolean :all_day, null: false, default: false + + t.datetime :scheduled_at + t.datetime :starts_at + t.datetime :ends_at + + t.timestamps + end + end +end diff --git a/db/migrate/20200113125135_create_announcement_mutes.rb b/db/migrate/20200113125135_create_announcement_mutes.rb new file mode 100644 index 000000000..c588e7fcd --- /dev/null +++ b/db/migrate/20200113125135_create_announcement_mutes.rb @@ -0,0 +1,12 @@ +class CreateAnnouncementMutes < ActiveRecord::Migration[5.2] + def change + create_table :announcement_mutes do |t| + t.belongs_to :account, foreign_key: { on_delete: :cascade, index: false } + t.belongs_to :announcement, foreign_key: { on_delete: :cascade } + + t.timestamps + end + + add_index :announcement_mutes, [:account_id, :announcement_id], unique: true + end +end diff --git a/db/migrate/20200114113335_create_announcement_reactions.rb b/db/migrate/20200114113335_create_announcement_reactions.rb new file mode 100644 index 000000000..226c81a18 --- /dev/null +++ b/db/migrate/20200114113335_create_announcement_reactions.rb @@ -0,0 +1,15 @@ +class CreateAnnouncementReactions < ActiveRecord::Migration[5.2] + def change + create_table :announcement_reactions do |t| + t.belongs_to :account, foreign_key: { on_delete: :cascade, index: false } + t.belongs_to :announcement, foreign_key: { on_delete: :cascade } + + t.string :name, null: false, default: '' + t.belongs_to :custom_emoji, foreign_key: { on_delete: :cascade } + + t.timestamps + end + + add_index :announcement_reactions, [:account_id, :announcement_id, :name], unique: true, name: :index_announcement_reactions_on_account_id_and_announcement_id + end +end diff --git a/db/schema.rb b/db/schema.rb index fc2d3a511..d3a2c05b3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -196,15 +196,49 @@ ActiveRecord::Schema.define(version: 2020_01_19_112504) do t.index ["target_type", "target_id"], name: "index_admin_action_logs_on_target_type_and_target_id" end + create_table "announcement_mutes", force: :cascade do |t| + t.bigint "account_id" + t.bigint "announcement_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["account_id", "announcement_id"], name: "index_announcement_mutes_on_account_id_and_announcement_id", unique: true + t.index ["account_id"], name: "index_announcement_mutes_on_account_id" + t.index ["announcement_id"], name: "index_announcement_mutes_on_announcement_id" + end + + create_table "announcement_reactions", force: :cascade do |t| + t.bigint "account_id" + t.bigint "announcement_id" + t.string "name", default: "", null: false + t.bigint "custom_emoji_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["account_id", "announcement_id", "name"], name: "index_announcement_reactions_on_account_id_and_announcement_id", unique: true + t.index ["account_id"], name: "index_announcement_reactions_on_account_id" + t.index ["announcement_id"], name: "index_announcement_reactions_on_announcement_id" + t.index ["custom_emoji_id"], name: "index_announcement_reactions_on_custom_emoji_id" + end + + create_table "announcements", force: :cascade do |t| + t.text "text", default: "", null: false + t.boolean "published", default: false, null: false + t.boolean "all_day", default: false, null: false + t.datetime "scheduled_at" + t.datetime "starts_at" + t.datetime "ends_at" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "backups", force: :cascade do |t| t.bigint "user_id" t.string "dump_file_name" t.string "dump_content_type" - t.bigint "dump_file_size" t.datetime "dump_updated_at" t.boolean "processed", default: false, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.bigint "dump_file_size" end create_table "blocks", force: :cascade do |t| @@ -818,6 +852,11 @@ ActiveRecord::Schema.define(version: 2020_01_19_112504) do add_foreign_key "account_warnings", "accounts", on_delete: :nullify add_foreign_key "accounts", "accounts", column: "moved_to_account_id", on_delete: :nullify add_foreign_key "admin_action_logs", "accounts", on_delete: :cascade + add_foreign_key "announcement_mutes", "accounts", on_delete: :cascade + add_foreign_key "announcement_mutes", "announcements", on_delete: :cascade + add_foreign_key "announcement_reactions", "accounts", on_delete: :cascade + add_foreign_key "announcement_reactions", "announcements", on_delete: :cascade + add_foreign_key "announcement_reactions", "custom_emojis", on_delete: :cascade add_foreign_key "backups", "users", on_delete: :nullify add_foreign_key "blocks", "accounts", column: "target_account_id", name: "fk_9571bfabc1", on_delete: :cascade add_foreign_key "blocks", "accounts", name: "fk_4269e03e65", on_delete: :cascade diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake index fb9c89aa4..a374e33ad 100644 --- a/lib/tasks/auto_annotate_models.rake +++ b/lib/tasks/auto_annotate_models.rake @@ -4,6 +4,7 @@ if Rails.env.development? task :set_annotation_options do Annotate.set_defaults( 'routes' => 'false', + 'models' => 'true', 'position_in_routes' => 'before', 'position_in_class' => 'before', 'position_in_test' => 'before', diff --git a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb new file mode 100644 index 000000000..72620e242 --- /dev/null +++ b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do + render_views + + let(:user) { Fabricate(:user) } + let(:scopes) { 'write:favourites' } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } + + let!(:announcement) { Fabricate(:announcement) } + + describe 'PUT #update' do + context 'without token' do + it 'returns http unauthorized' do + put :update, params: { announcement_id: announcement.id, id: '😂' } + expect(response).to have_http_status :unauthorized + end + end + + context 'with token' do + before do + allow(controller).to receive(:doorkeeper_token) { token } + put :update, params: { announcement_id: announcement.id, id: '😂' } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'creates reaction' do + expect(announcement.announcement_reactions.find_by(name: '😂', account: user.account)).to_not be_nil + end + end + end + + describe 'DELETE #destroy' do + before do + announcement.announcement_reactions.create!(account: user.account, name: '😂') + end + + context 'without token' do + it 'returns http unauthorized' do + delete :destroy, params: { announcement_id: announcement.id, id: '😂' } + expect(response).to have_http_status :unauthorized + end + end + + context 'with token' do + before do + allow(controller).to receive(:doorkeeper_token) { token } + delete :destroy, params: { announcement_id: announcement.id, id: '😂' } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'creates reaction' do + expect(announcement.announcement_reactions.find_by(name: '😂', account: user.account)).to be_nil + end + end + end +end diff --git a/spec/controllers/api/v1/announcements_controller_spec.rb b/spec/controllers/api/v1/announcements_controller_spec.rb new file mode 100644 index 000000000..6ee46b60e --- /dev/null +++ b/spec/controllers/api/v1/announcements_controller_spec.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Api::V1::AnnouncementsController, type: :controller do + render_views + + let(:user) { Fabricate(:user) } + let(:scopes) { 'read' } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } + + let!(:announcement) { Fabricate(:announcement) } + + describe 'GET #index' do + context 'without token' do + it 'returns http unprocessable entity' do + get :index + expect(response).to have_http_status :unprocessable_entity + end + end + + context 'with token' do + before do + allow(controller).to receive(:doorkeeper_token) { token } + get :index + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end + end + + describe 'POST #dismiss' do + context 'without token' do + it 'returns http unauthorized' do + post :dismiss, params: { id: announcement.id } + expect(response).to have_http_status :unauthorized + end + end + + context 'with token' do + let(:scopes) { 'write:accounts' } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + post :dismiss, params: { id: announcement.id } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'dismisses announcement' do + expect(announcement.announcement_mutes.find_by(account: user.account)).to_not be_nil + end + end + end +end diff --git a/spec/controllers/api/v1/trends_controller_spec.rb b/spec/controllers/api/v1/trends_controller_spec.rb new file mode 100644 index 000000000..91e0d18fe --- /dev/null +++ b/spec/controllers/api/v1/trends_controller_spec.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Api::V1::TrendsController, type: :controller do + render_views + + describe 'GET #index' do + before do + allow(TrendingTags).to receive(:get).and_return(Fabricate.times(10, :tag)) + get :index + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/fabricators/announcement_fabricator.rb b/spec/fabricators/announcement_fabricator.rb new file mode 100644 index 000000000..5a3871d90 --- /dev/null +++ b/spec/fabricators/announcement_fabricator.rb @@ -0,0 +1,6 @@ +Fabricator(:announcement) do + text { Faker::Lorem.paragraph(sentence_count: 2) } + published true + starts_at nil + ends_at nil +end diff --git a/spec/fabricators/announcement_mute_fabricator.rb b/spec/fabricators/announcement_mute_fabricator.rb new file mode 100644 index 000000000..c4eafe8f4 --- /dev/null +++ b/spec/fabricators/announcement_mute_fabricator.rb @@ -0,0 +1,4 @@ +Fabricator(:announcement_mute) do + account + announcement +end diff --git a/spec/fabricators/announcement_reaction_fabricator.rb b/spec/fabricators/announcement_reaction_fabricator.rb new file mode 100644 index 000000000..f923c59c6 --- /dev/null +++ b/spec/fabricators/announcement_reaction_fabricator.rb @@ -0,0 +1,5 @@ +Fabricator(:announcement_reaction) do + account + announcement + name '🌿' +end diff --git a/spec/models/announcement_mute_spec.rb b/spec/models/announcement_mute_spec.rb new file mode 100644 index 000000000..9d0e4c903 --- /dev/null +++ b/spec/models/announcement_mute_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe AnnouncementMute, type: :model do +end diff --git a/spec/models/announcement_reaction_spec.rb b/spec/models/announcement_reaction_spec.rb new file mode 100644 index 000000000..f6e151584 --- /dev/null +++ b/spec/models/announcement_reaction_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe AnnouncementReaction, type: :model do +end diff --git a/spec/models/announcement_spec.rb b/spec/models/announcement_spec.rb new file mode 100644 index 000000000..7f7b647a9 --- /dev/null +++ b/spec/models/announcement_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe Announcement, type: :model do +end From 105f83fc1e4830186e9d7cb91c5d4fda1798c602 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 23 Jan 2020 22:04:00 +0100 Subject: [PATCH 162/207] New Crowdin translations (#12859) * New translations en.json (Arabic) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations doorkeeper.en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations doorkeeper.en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Arabic) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations doorkeeper.en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Serbian (Latin)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Latin)) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations doorkeeper.en.yml (Slovenian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations doorkeeper.en.yml (Tamil) [ci skip] * New translations doorkeeper.en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Occitan) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.json (Polish) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Occitan) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Hungarian) [ci skip] * New translations doorkeeper.en.yml (Indonesian) [ci skip] * New translations doorkeeper.en.yml (Korean) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Spanish, Argentina) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Arabic) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.json (Czech) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations doorkeeper.en.yml (Kazakh) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations doorkeeper.en.yml (Asturian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Persian) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Turkish) [ci skip] * i18n-tasks normalize * yarn manage:translations --- app/javascript/mastodon/locales/ar.json | 7 +- app/javascript/mastodon/locales/ast.json | 3 +- app/javascript/mastodon/locales/bg.json | 1 + app/javascript/mastodon/locales/bn.json | 1 + app/javascript/mastodon/locales/br.json | 1 + app/javascript/mastodon/locales/ca.json | 5 +- app/javascript/mastodon/locales/co.json | 1 + app/javascript/mastodon/locales/cs.json | 5 +- app/javascript/mastodon/locales/cy.json | 7 +- app/javascript/mastodon/locales/da.json | 1 + app/javascript/mastodon/locales/de.json | 7 +- .../mastodon/locales/defaultMessages.json | 8 + app/javascript/mastodon/locales/el.json | 9 +- app/javascript/mastodon/locales/en.json | 1 + app/javascript/mastodon/locales/eo.json | 1 + app/javascript/mastodon/locales/es-AR.json | 1 + app/javascript/mastodon/locales/es.json | 13 +- app/javascript/mastodon/locales/et.json | 1 + app/javascript/mastodon/locales/eu.json | 7 +- app/javascript/mastodon/locales/fa.json | 7 +- app/javascript/mastodon/locales/fi.json | 1 + app/javascript/mastodon/locales/fr.json | 1 + app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/gl.json | 81 ++++---- app/javascript/mastodon/locales/he.json | 1 + app/javascript/mastodon/locales/hi.json | 1 + app/javascript/mastodon/locales/hr.json | 1 + app/javascript/mastodon/locales/hu.json | 7 +- app/javascript/mastodon/locales/hy.json | 19 +- app/javascript/mastodon/locales/id.json | 1 + app/javascript/mastodon/locales/io.json | 1 + app/javascript/mastodon/locales/is.json | 9 +- app/javascript/mastodon/locales/it.json | 3 +- app/javascript/mastodon/locales/ja.json | 1 + app/javascript/mastodon/locales/ka.json | 1 + app/javascript/mastodon/locales/kab.json | 193 +++++++++--------- app/javascript/mastodon/locales/kk.json | 1 + app/javascript/mastodon/locales/kn.json | 1 + app/javascript/mastodon/locales/ko.json | 1 + app/javascript/mastodon/locales/lt.json | 1 + app/javascript/mastodon/locales/lv.json | 1 + app/javascript/mastodon/locales/mk.json | 1 + app/javascript/mastodon/locales/ml.json | 1 + app/javascript/mastodon/locales/mr.json | 1 + app/javascript/mastodon/locales/ms.json | 1 + app/javascript/mastodon/locales/nl.json | 1 + app/javascript/mastodon/locales/nn.json | 5 +- app/javascript/mastodon/locales/no.json | 1 + app/javascript/mastodon/locales/oc.json | 1 + app/javascript/mastodon/locales/pl.json | 1 + app/javascript/mastodon/locales/pt-BR.json | 1 + app/javascript/mastodon/locales/pt-PT.json | 1 + app/javascript/mastodon/locales/ro.json | 1 + app/javascript/mastodon/locales/ru.json | 9 +- app/javascript/mastodon/locales/sk.json | 7 +- app/javascript/mastodon/locales/sl.json | 1 + app/javascript/mastodon/locales/sq.json | 1 + app/javascript/mastodon/locales/sr-Latn.json | 1 + app/javascript/mastodon/locales/sr.json | 1 + app/javascript/mastodon/locales/sv.json | 7 +- app/javascript/mastodon/locales/ta.json | 3 +- app/javascript/mastodon/locales/te.json | 1 + app/javascript/mastodon/locales/th.json | 5 +- app/javascript/mastodon/locales/tr.json | 1 + app/javascript/mastodon/locales/uk.json | 1 + app/javascript/mastodon/locales/ur.json | 1 + app/javascript/mastodon/locales/vi.json | 1 + app/javascript/mastodon/locales/zh-CN.json | 1 + app/javascript/mastodon/locales/zh-HK.json | 1 + app/javascript/mastodon/locales/zh-TW.json | 1 + config/locales/ar.yml | 10 +- config/locales/ast.yml | 1 + config/locales/ca.yml | 127 ++++++------ config/locales/co.yml | 3 - config/locales/cs.yml | 3 - config/locales/cy.yml | 6 +- config/locales/da.yml | 3 - config/locales/de.yml | 4 +- config/locales/doorkeeper.ar.yml | 1 + config/locales/doorkeeper.ast.yml | 1 + config/locales/doorkeeper.ca.yml | 1 + config/locales/doorkeeper.co.yml | 1 + config/locales/doorkeeper.cs.yml | 1 + config/locales/doorkeeper.de.yml | 1 + config/locales/doorkeeper.el.yml | 1 + config/locales/doorkeeper.eo.yml | 1 + config/locales/doorkeeper.es-AR.yml | 1 + config/locales/doorkeeper.es.yml | 3 +- config/locales/doorkeeper.et.yml | 1 + config/locales/doorkeeper.eu.yml | 1 + config/locales/doorkeeper.fa.yml | 1 + config/locales/doorkeeper.fr.yml | 1 + config/locales/doorkeeper.gl.yml | 43 ++-- config/locales/doorkeeper.hu.yml | 1 + config/locales/doorkeeper.id.yml | 1 + config/locales/doorkeeper.is.yml | 11 + config/locales/doorkeeper.it.yml | 1 + config/locales/doorkeeper.ja.yml | 3 +- config/locales/doorkeeper.kk.yml | 1 + config/locales/doorkeeper.ko.yml | 1 + config/locales/doorkeeper.pt-BR.yml | 1 + config/locales/doorkeeper.pt-PT.yml | 1 + config/locales/doorkeeper.ru.yml | 1 + config/locales/doorkeeper.sv.yml | 1 + config/locales/doorkeeper.th.yml | 1 + config/locales/doorkeeper.tr.yml | 1 + config/locales/el.yml | 5 +- config/locales/eo.yml | 5 +- config/locales/es-AR.yml | 6 +- config/locales/es.yml | 30 +-- config/locales/et.yml | 6 +- config/locales/eu.yml | 4 +- config/locales/fa.yml | 3 - config/locales/fr.yml | 3 - config/locales/gl.yml | 178 ++++++++-------- config/locales/hu.yml | 4 +- config/locales/id.yml | 7 +- config/locales/is.yml | 56 ++++- config/locales/it.yml | 4 +- config/locales/ja.yml | 4 +- config/locales/kab.yml | 8 +- config/locales/kk.yml | 3 - config/locales/ko.yml | 3 - config/locales/lt.yml | 3 - config/locales/nl.yml | 3 - config/locales/nn.yml | 3 - config/locales/no.yml | 3 - config/locales/oc.yml | 3 - config/locales/pl.yml | 3 - config/locales/pt-BR.yml | 6 +- config/locales/pt-PT.yml | 6 +- config/locales/ru.yml | 11 +- config/locales/simple_form.ar.yml | 4 +- config/locales/simple_form.ca.yml | 2 +- config/locales/simple_form.es.yml | 30 +-- config/locales/simple_form.is.yml | 41 +++- config/locales/simple_form.ja.yml | 2 +- config/locales/sk.yml | 4 +- config/locales/sl.yml | 3 - config/locales/sq.yml | 3 - config/locales/sr.yml | 3 - config/locales/sv.yml | 3 - config/locales/th.yml | 6 +- config/locales/tr.yml | 15 +- config/locales/uk.yml | 3 - config/locales/vi.yml | 3 - config/locales/zh-CN.yml | 3 - config/locales/zh-HK.yml | 3 - config/locales/zh-TW.yml | 3 - 149 files changed, 662 insertions(+), 553 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index dc4b8ce76..5ce5eb12e 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "المعدل محدود", "alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.", "alert.unexpected.title": "المعذرة!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} في الأسبوع", "boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة", "bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.", @@ -84,8 +85,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.poll.switch_to_multiple": "عدّل استطلاع الرأي وغيّره لإتاحة الخيارات المتعددة", + "compose_form.poll.switch_to_single": "عدّل استطلاع الرأي وغيّره لإتاحة خيار واحد فقط", "compose_form.publish": "بوّق", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "تحديد الوسائط كحساسة", @@ -142,7 +143,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.bookmarked_statuses": "ليس لديك أية تبويقات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.", "empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!", "empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.", "empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index ba344e7ea..e570fc3b7 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -43,9 +43,10 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Asocedió un fallu inesperáu.", "alert.unexpected.title": "¡Meca!", + "announcement.announcement": "Announcement", "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.body": "Asocedió daqué malo mentanto se cargaba esti componente.", "bundle_column_error.retry": "Try again", "bundle_column_error.title": "Network error", "bundle_modal_error.close": "Close", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index d980df27b..6a6f9a309 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index ed1a92dd2..283812fdf 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "হার সীমিত", "alert.unexpected.message": "সমস্যা অপ্রত্যাশিত.", "alert.unexpected.title": "ওহো!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "প্রতি সপ্তাহে {count}", "boost_modal.combo": "পরেরবার আপনি {combo} টিপলে এটি আর আসবে না", "bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।.", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 89ea5043e..967577f2e 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.", "alert.unexpected.title": "C'hem !", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} bep sizhun", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index ceb5c39e4..6516a4a80 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Límit de freqüència", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop", "bundle_column_error.body": "S'ha produït un error en carregar aquest component.", @@ -84,8 +85,8 @@ "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.poll.switch_to_multiple": "Canvía l’enquesta per a permetre diverses opcions", - "compose_form.poll.switch_to_single": "Canvía l’enquesta per a permetre una sola opció", + "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions", + "compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar mèdia com a sensible", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 2afd0f1fa..091a73c85 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Ghjettu limitatu", "alert.unexpected.message": "Un prublemu inaspettatu hè accadutu.", "alert.unexpected.title": "Uups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta", "bundle_column_error.body": "C'hè statu un prublemu caricandu st'elementu.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 8b9b5a86b..f180b7f94 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rychlost omezena", "alert.unexpected.message": "Objevila se neočekávaná chyba.", "alert.unexpected.title": "Jejda!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} za týden", "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}", "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Doba trvání ankety", "compose_form.poll.option_placeholder": "Volba {number}", "compose_form.poll.remove_option": "Odstranit tuto volbu", - "compose_form.poll.switch_to_multiple": "Povolit u ankety více možností", - "compose_form.poll.switch_to_single": "Povolit u ankety jedinou možnost", + "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více možností", + "compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti", "compose_form.publish": "Tootnout", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označit média jako citlivá", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 923d1947b..ee58c7168 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Grŵp", "account.block": "Blocio @{name}", "account.block_domain": "Cuddio popeth rhag {domain}", "account.blocked": "Blociwyd", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Cyfradd gyfyngedig", "alert.unexpected.message": "Digwyddodd gwall annisgwyl.", "alert.unexpected.title": "Wps!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} yr wythnos", "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa", "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Cyfnod pleidlais", "compose_form.poll.option_placeholder": "Dewisiad {number}", "compose_form.poll.remove_option": "Tynnu'r dewisiad", - "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.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis", + "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis", "compose_form.publish": "Tŵt", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index bd68381d9..a699aaf54 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Gradsbegrænset", "alert.unexpected.message": "Der opstod en uventet fejl.", "alert.unexpected.title": "Ups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per uge", "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang", "bundle_column_error.body": "Noget gik galt under indlæsningen af dette komponent.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 0804d8033..165a48d1a 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Gruppe", "account.block": "@{name} blockieren", "account.block_domain": "Alles von {domain} verstecken", "account.blocked": "Blockiert", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Anfragelimit überschritten", "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.", "alert.unexpected.title": "Hoppla!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} pro Woche", "boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen", "bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Umfragedauer", "compose_form.poll.option_placeholder": "Wahl {number}", "compose_form.poll.remove_option": "Wahl entfernen", - "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.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben", + "compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu ermöglichen", "compose_form.publish": "Tröt", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Medien als heikel markieren", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 0cb67c08c..a2efd2d64 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1407,6 +1407,10 @@ "defaultMessage": "Unmute @{name}", "id": "account.unmute" }, + { + "defaultMessage": "Unfollow", + "id": "confirmations.unfollow.confirm" + }, { "defaultMessage": "Are you sure you want to unfollow {name}?", "id": "confirmations.unfollow.message" @@ -1563,6 +1567,10 @@ { "defaultMessage": "Next", "id": "lightbox.next" + }, + { + "defaultMessage": "Announcement", + "id": "announcement.announcement" } ], "path": "app/javascript/mastodon/features/getting_started/components/announcements.json" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 9ae9e9a84..d9d2ef590 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1,9 +1,9 @@ { "account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες", "account.badges.bot": "Μποτ", - "account.badges.group": "Group", + "account.badges.group": "Ομάδα", "account.block": "Αποκλεισμός @{name}", - "account.block_domain": "Απόκρυψε τα πάντα από το {domain}", + "account.block_domain": "Απόκρυψη όλων από {domain}", "account.blocked": "Αποκλεισμένος/η", "account.cancel_follow_request": "Ακύρωση αιτήματος παρακολούθησης", "account.direct": "Προσωπικό μήνυμα προς @{name}", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Περιορισμός συχνότητας", "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.", "alert.unexpected.title": "Εεπ!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} ανα εβδομάδα", "boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά", "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.", @@ -84,8 +85,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.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές", + "compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή", "compose_form.publish": "Τουτ", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Σημείωσε τα πολυμέσα ως ευαίσθητα", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 0494a9cf5..25aa6bff5 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index f921b263c..e84e59b2e 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Mesaĝkvante limigita", "alert.unexpected.message": "Neatendita eraro okazis.", "alert.unexpected.title": "Ups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} semajne", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index ee46e24dd..70bcef133 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Tarifa limitada", "alert.unexpected.message": "Ocurrió un error.", "alert.unexpected.title": "¡Epa!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez", "bundle_column_error.body": "Algo salió mal al cargar este componente.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index d056a843c..31f190616 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Tasa limitada", "alert.unexpected.message": "Hubo un error inesperado.", "alert.unexpected.title": "¡Ups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", "bundle_column_error.body": "Algo salió mal al cargar este componente.", @@ -57,7 +58,7 @@ "column.direct": "Mensajes directos", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", - "column.favourites": "Levantar la trompa", + "column.favourites": "Favoritos", "column.follow_requests": "Solicitudes de seguimiento", "column.home": "Inicio", "column.lists": "Listas", @@ -86,7 +87,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", - "compose_form.publish": "Ipoxta", + "compose_form.publish": "Ipotxa", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar multimedia como sensible", "compose_form.sensitive.marked": "Material marcado como sensible", @@ -131,7 +132,7 @@ "emoji_button.food": "Comida y bebida", "emoji_button.label": "Insertar emoji", "emoji_button.nature": "Naturaleza", - "emoji_button.not_found": "No hay emojos!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "No hay emojis!! ¯\\_(ツ)_/¯", "emoji_button.objects": "Objetos", "emoji_button.people": "Gente", "emoji_button.recent": "Usados frecuentemente", @@ -205,7 +206,7 @@ "introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.", "keyboard_shortcuts.back": "volver atrás", "keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados", - "keyboard_shortcuts.boost": "reipoxta", + "keyboard_shortcuts.boost": "retootear", "keyboard_shortcuts.column": "enfocar un estado en una de las columnas", "keyboard_shortcuts.compose": "enfocar el área de texto de redacción", "keyboard_shortcuts.description": "Descripción", @@ -356,7 +357,7 @@ "status.block": "Bloquear a @{name}", "status.bookmark": "Marcador", "status.cancel_reblog_private": "Des-impulsar", - "status.cannot_reblog": "Este bramido no puede rebarritarse", + "status.cannot_reblog": "Este toot no puede retootearse", "status.copy": "Copiar enlace al estado", "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", @@ -374,7 +375,7 @@ "status.pin": "Fijar", "status.pinned": "Toot fijado", "status.read_more": "Leer más", - "status.reblog": "ReIpoxta", + "status.reblog": "Retootear", "status.reblog_private": "Implusar a la audiencia original", "status.reblogged_by": "Retooteado por {name}", "status.reblogs.empty": "Nadie impulsó este toot todavía. Cuando alguien lo haga, aparecerá aqui.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 94e73ae3d..9a13b4ee0 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Piiratud", "alert.unexpected.message": "Tekkis ootamatu viga.", "alert.unexpected.title": "Oih!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} nädalas", "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta", "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 3ae39ffba..e9fbcedac 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik", "account.badges.bot": "Bot-a", - "account.badges.group": "Group", + "account.badges.group": "Taldea", "account.block": "Blokeatu @{name}", "account.block_domain": "Ezkutatu {domain} domeinuko guztia", "account.blocked": "Blokeatuta", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Abiadura mugatua", "alert.unexpected.message": "Ustekabeko errore bat gertatu da.", "alert.unexpected.title": "Ene!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} asteko", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Inkestaren iraupena", "compose_form.poll.option_placeholder": "{number}. aukera", "compose_form.poll.remove_option": "Kendu aukera hau", - "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.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko", + "compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko", "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Markatu multimedia hunkigarri gisa", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 38a53e9b1..c2a8eb0de 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست", "account.badges.bot": "ربات", - "account.badges.group": "Group", + "account.badges.group": "گروه", "account.block": "مسدودسازی @{name}", "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}", "account.blocked": "مسدود", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "محدود شده", "alert.unexpected.message": "خطایی غیرمنتظره رخ داد.", "alert.unexpected.title": "وای!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.", @@ -84,8 +85,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.poll.switch_to_multiple": "تبدیل به نظرسنجی چندگزینه‌ای", + "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای", "compose_form.publish": "بوق", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "علامت‌گذاری رسانه به عنوان حساس", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index b43f18d23..8a069f2a3 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Määrää rajoitettu", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} viikossa", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", "bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index ffb77d9f6..09ff5648f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Débit limité", "alert.unexpected.message": "Une erreur inattendue s’est produite.", "alert.unexpected.title": "Oups !", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} par semaine", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci, la prochaine fois", "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 4966946cc..508456736 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 695017b0e..550d9452c 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -4,32 +4,32 @@ "account.badges.group": "Grupo", "account.block": "Bloquear @{name}", "account.block_domain": "Agochar todo de {domain}", - "account.blocked": "Bloqueado", + "account.blocked": "Bloqueada", "account.cancel_follow_request": "Desbotar solicitude de seguimento", "account.direct": "Mensaxe directa @{name}", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", "account.endorse": "Amosar no perfil", "account.follow": "Seguir", - "account.followers": "Seguidores", - "account.followers.empty": "Aínda ninguén segue este usuario.", + "account.followers": "Seguidoras", + "account.followers.empty": "Aínda ninguén segue esta usuaria.", "account.follows": "Seguindo", - "account.follows.empty": "Este usuario aínda non segue a ninguén.", + "account.follows.empty": "Esta usuaria aínda non segue a ninguén.", "account.follows_you": "Séguete", - "account.hide_reblogs": "Agochar compartidos de @{name}", + "account.hide_reblogs": "Agochar repeticións de @{name}", "account.last_status": "Última actividade", "account.link_verified_on": "A propiedade desta ligazón foi verificada o {date}", - "account.locked_info": "Esta é unha conta privada. O dono revisa de xeito manual quen pode seguilo.", + "account.locked_info": "Esta é unha conta privada. A propietaria revisa de xeito manual quen pode seguila.", "account.media": "Multimedia", "account.mention": "Mencionar @{name}", "account.moved_to": "{name} mudouse a:", - "account.mute": "Silenciar @{name}", - "account.mute_notifications": "Silenciar notificacións de @{name}", - "account.muted": "Silenciado", + "account.mute": "Acalar @{name}", + "account.mute_notifications": "Acalar as notificacións de @{name}", + "account.muted": "Acalada", "account.never_active": "Nunca", "account.posts": "Toots", "account.posts_with_replies": "Toots e respostas", - "account.report": "Denunciar @{name}", + "account.report": "Informar sobre @{name}", "account.requested": "Agardando aprovación. Preme para desbotar a solicitude de seguimento", "account.share": "Compartir o perfil de @{name}", "account.show_reblogs": "Amosar compartidos de @{name}", @@ -43,15 +43,16 @@ "alert.rate_limited.title": "Límite de intentos", "alert.unexpected.message": "Ocorreu un erro non agardado.", "alert.unexpected.title": "Vaites!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez", "bundle_column_error.body": "Ocorreu un erro ó cargar este compoñente.", "bundle_column_error.retry": "Téntao de novo", - "bundle_column_error.title": "Erro na rede", + "bundle_column_error.title": "Fallo na rede", "bundle_modal_error.close": "Pechar", "bundle_modal_error.message": "Ocorreu un erro ó cargar este compoñente.", "bundle_modal_error.retry": "Téntao de novo", - "column.blocks": "Usuarios bloqueados", + "column.blocks": "Usuarias bloqueadas", "column.bookmarks": "Marcadores", "column.community": "Cronoloxía local", "column.direct": "Mensaxes directas", @@ -59,9 +60,9 @@ "column.domain_blocks": "Dominios agochados", "column.favourites": "Favoritos", "column.follow_requests": "Peticións de seguimento", - "column.home": "Páxina inicial", + "column.home": "Inicio", "column.lists": "Listaxes", - "column.mutes": "Usuarios silenciados", + "column.mutes": "Usuarias acaladas", "column.notifications": "Notificacións", "column.pins": "Toots fixados", "column.public": "Cronoloxía federada", @@ -74,7 +75,7 @@ "column_header.unpin": "Desafixar", "column_subheading.settings": "Axustes", "community.column_settings.media_only": "Só multimedia", - "compose_form.direct_message_warning": "Este toot só será enviado ós usuarios mencionados.", + "compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.", "compose_form.direct_message_warning_learn_more": "Coñecer máis", "compose_form.hashtag_warning": "Este toot non se amosará baixo cancelos (hashtags) porque non é público. Só os toots públicos poden ser procurados por cancelos.", "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todos poden seguirche para ollar os teus toots só para seguidores.", @@ -86,7 +87,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas", "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla", - "compose_form.publish": "Toot", + "compose_form.publish": "Tootear", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel", "compose_form.sensitive.marked": "Contido multimedia marcado coma sensíbel", @@ -111,7 +112,7 @@ "confirmations.mute.message": "Tes a certeza de querer silenciar a {name}?", "confirmations.redraft.confirm": "Eliminar e reescribir", "confirmations.redraft.message": "Tes a certeza de querer eliminar este estado e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.", - "confirmations.reply.confirm": "Respostar", + "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Respostar agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?", @@ -141,7 +142,7 @@ "emoji_button.travel": "Viaxes e lugares", "empty_column.account_timeline": "Non hai toots aquí!", "empty_column.account_unavailable": "Perfil non dispoñíbel", - "empty_column.blocks": "Aínda non bloqueaches a ningún usuario.", + "empty_column.blocks": "Aínda non bloqueaches a ningún usuaria.", "empty_column.bookmarked_statuses": "Aínda non marcaches ningún toot. Cando o fagas, amosaranse aquí.", "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!", "empty_column.direct": "Aínda non tes mensaxes directas. Cando envíes ou recibas unha, amosarase aquí.", @@ -150,13 +151,13 @@ "empty_column.favourites": "A ninguén lle gostou este toot polo momento. Cando a alguén lle goste, aparecerá aquí.", "empty_column.follow_requests": "Non tes peticións de seguimento. Cando recibas unha, amosarase aquí.", "empty_column.hashtag": "Aínda non hai nada con este cancelo.", - "empty_column.home": "A túa cronoloxía inicial está baleira! Visita {public} ou emprega a procura para atopar outros usuarios.", + "empty_column.home": "A túa cronoloxía inicial está baleira! Visita {public} ou emprega a procura para atopar outras usuarias.", "empty_column.home.public_timeline": "a cronoloxía pública", - "empty_column.list": "Aínda non hai nada nesta listaxe. Cando os usuarios incluídas na listaxe publiquen mensaxes, amosaranse aquí.", + "empty_column.list": "Aínda non hai nada en esta lista. Cando as usuarias incluídas na lista publiquen mensaxes, aparecerán aquí.", "empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.", - "empty_column.mutes": "Aínda non silenciaches a ningún usuario.", + "empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.", "empty_column.notifications": "Aínda non tes notificacións. Interactúa con outros para comezar unha conversa.", - "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou sigue de xeito manual usuarios doutros servidores para ir enchéndoo", + "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo", "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.", "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar o Mastodon noutro navegador ou aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", @@ -196,16 +197,16 @@ "introduction.interactions.action": "Rematar titorial!", "introduction.interactions.favourite.headline": "Favorito", "introduction.interactions.favourite.text": "Podes gardar un toot para depois e facer saber ó autor que che gostou marcandoo coma favorito.", - "introduction.interactions.reblog.headline": "Compartir na cronoloxía", - "introduction.interactions.reblog.text": "Podes compartir os toots doutras persoas cos teus seguidores.", + "introduction.interactions.reblog.headline": "Promover", + "introduction.interactions.reblog.text": "Podes compartir os toots doutras persoas coas túas seguidoras.", "introduction.interactions.reply.headline": "Respostar", "introduction.interactions.reply.text": "Podes respostar ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.", "introduction.welcome.action": "Imos!", "introduction.welcome.headline": "Primeiros pasos", "introduction.welcome.text": "Benvido ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbrate do seu nome.", "keyboard_shortcuts.back": "para voltar atrás", - "keyboard_shortcuts.blocked": "para abrir a listaxe de usuarios bloqueados", - "keyboard_shortcuts.boost": "para compartir na cronoloxía", + "keyboard_shortcuts.blocked": "abrir lista de usuarias bloqueadas", + "keyboard_shortcuts.boost": "promover", "keyboard_shortcuts.column": "para destacar un estado nunha das columnas", "keyboard_shortcuts.compose": "para destacar a área de escritura", "keyboard_shortcuts.description": "Descrición", @@ -221,7 +222,7 @@ "keyboard_shortcuts.legend": "para amosar esta lenda", "keyboard_shortcuts.local": "para abrir a cronoloxía local", "keyboard_shortcuts.mention": "para mencionar ó autor", - "keyboard_shortcuts.muted": "para abrir a listaxe dos usuarios silenciados", + "keyboard_shortcuts.muted": "abrir lista de usuarias acaladas", "keyboard_shortcuts.my_profile": "para abrir o teu perfil", "keyboard_shortcuts.notifications": "para abrir a columna das notificacións", "keyboard_shortcuts.open_media": "para abrir o contido multimedia", @@ -254,9 +255,9 @@ "media_gallery.toggle_visible": "Trocar visibilidade", "missing_indicator.label": "Non atopado", "missing_indicator.sublabel": "Este recurso non foi atopado", - "mute_modal.hide_notifications": "Agochar notificacións deste usuario?", + "mute_modal.hide_notifications": "Agochar notificacións desta usuaria?", "navigation_bar.apps": "Aplicacións móbiles", - "navigation_bar.blocks": "Usuarios bloqueados", + "navigation_bar.blocks": "Usuarias bloqueadas", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronoloxía local", "navigation_bar.compose": "Escribir un novo toot", @@ -272,7 +273,7 @@ "navigation_bar.keyboard_shortcuts": "Atallos do teclado", "navigation_bar.lists": "Listaxes", "navigation_bar.logout": "Pechar sesión", - "navigation_bar.mutes": "Usuarios silenciados", + "navigation_bar.mutes": "Usuarias silenciadas", "navigation_bar.personal": "Persoal", "navigation_bar.pins": "Toots fixados", "navigation_bar.preferences": "Preferencias", @@ -284,7 +285,7 @@ "notification.mention": "{name} mencionoute", "notification.own_poll": "A túa enquisa rematou", "notification.poll": "Unha enquisa na que votaches rematou", - "notification.reblog": "{name} compartiu o teu estado", + "notification.reblog": "{name} promoveu o teu estado", "notifications.clear": "Limpar notificacións", "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?", "notifications.column_settings.alert": "Notificacións de escritorio", @@ -297,7 +298,7 @@ "notifications.column_settings.mention": "Mencións:", "notifications.column_settings.poll": "Resultados da enquisa:", "notifications.column_settings.push": "Notificacións emerxentes", - "notifications.column_settings.reblog": "Compartidos:", + "notifications.column_settings.reblog": "Promocións:", "notifications.column_settings.show": "Amosar en columna", "notifications.column_settings.sound": "Reproducir son", "notifications.filter.all": "Todo", @@ -316,7 +317,7 @@ "poll_button.add_poll": "Engadir unha enquisa", "poll_button.remove_poll": "Eliminar enquisa", "privacy.change": "Axustar privacidade", - "privacy.direct.long": "Só para os usuarios mencionados", + "privacy.direct.long": "Só para as usuarias mencionadas", "privacy.direct.short": "Directo", "privacy.private.long": "Só para os seguidores", "privacy.private.short": "Só seguidores", @@ -341,11 +342,11 @@ "report.target": "Denunciar a {target}", "search.placeholder": "Procurar", "search_popout.search_format": "Formato de procura avanzada", - "search_popout.tips.full_text": "Texto sinxelo que devolve estados que ti escribiches, compartiches, marcaches favorito, ou foches mencionado, así como nomes de usuario coincidentes, nomes públicos e cancelos.", + "search_popout.tips.full_text": "Texto simple devolve estados que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e etiquetas.", "search_popout.tips.hashtag": "cancelo", "search_popout.tips.status": "estado", - "search_popout.tips.text": "Texto sinxelo que devolve coincidencias con nomes públicos, nomes de usuario e cancelos", - "search_popout.tips.user": "usuario", + "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e etiquetas", + "search_popout.tips.user": "usuaria", "search_results.accounts": "Persoas", "search_results.hashtags": "Cancelos", "search_results.statuses": "Toots", @@ -356,7 +357,7 @@ "status.block": "Bloquear @{name}", "status.bookmark": "Marcar", "status.cancel_reblog_private": "Desfacer compartido", - "status.cannot_reblog": "Esta publicación non pode ser compartida", + "status.cannot_reblog": "Esta publicación non pode ser promovida", "status.copy": "Copiar ligazón ó estado", "status.delete": "Eliminar", "status.detailed_status": "Vista detallada da conversa", @@ -374,10 +375,10 @@ "status.pin": "Fixar no perfil", "status.pinned": "Toot fixado", "status.read_more": "Ler máis", - "status.reblog": "Compartir", + "status.reblog": "Promover", "status.reblog_private": "Compartir á audiencia orixinal", - "status.reblogged_by": "{name} compartiu", - "status.reblogs.empty": "Aínda ninguén compartiu este toot. Cando alguén o faga, amosarase aquí.", + "status.reblogged_by": "{name} promoveu", + "status.reblogs.empty": "Aínda ninguén promoveu este toot. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", "status.reply": "Respostar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index e69fa5d8f..07217364a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "אירעה שגיאה בלתי צפויה.", "alert.unexpected.title": "אופס!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", "bundle_column_error.body": "משהו השתבש בעת הצגת הרכיב הזה.", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 0e8830174..ff7ea9e6a 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "सीमित दर", "alert.unexpected.message": "एक अप्रत्याशित त्रुटि हुई है!", "alert.unexpected.title": "उफ़!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} हर सप्ताह", "boost_modal.combo": "अगली बार स्किप करने के लिए आप {combo} दबा सकते है", "bundle_column_error.body": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index da01b92ae..31327e3d3 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Možeš pritisnuti {combo} kako bi ovo preskočio sljedeći put", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 57511307a..f4280e740 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listáról", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Csoport", "account.block": "@{name} letiltása", "account.block_domain": "Minden elrejtése innen: {domain}", "account.blocked": "Letiltva", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Forgalomkorlátozás", "alert.unexpected.message": "Váratlan hiba történt.", "alert.unexpected.title": "Hoppá!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count}/hét", "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}", "bundle_column_error.body": "Hiba történt a komponens betöltése közben.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Szavazás időtartama", "compose_form.poll.option_placeholder": "{number}. lehetőség", "compose_form.poll.remove_option": "Lehetőség törlése", - "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.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra", + "compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra", "compose_form.publish": "Tülk", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Média megjelölése szenzitívként", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index b20b744d5..1ad3cb0fd 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից", "account.badges.bot": "Բոտ", - "account.badges.group": "Group", + "account.badges.group": "Խումբ", "account.block": "Արգելափակել @{name}֊ին", "account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}", "account.blocked": "Արգելափակուած է", @@ -27,7 +27,7 @@ "account.mute_notifications": "Անջատել ծանուցումները @{name}֊ից", "account.muted": "Լռեցուած", "account.never_active": "Երբեք", - "account.posts": "Գրառումներ", + "account.posts": "Թութ", "account.posts_with_replies": "Toots with replies", "account.report": "Բողոքել @{name}֊ից", "account.requested": "Հաստատման կարիք ունի։ Սեղմիր՝ հետեւելու հայցը չեղարկելու համար։", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Անսպասելի սխալ տեղի ունեցաւ։", "alert.unexpected.title": "Վա՜յ", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "շաբաթը՝ {count}", "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա հաջորդ անգամ բաց թողնելու համար", "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանվեց։", @@ -401,25 +402,25 @@ "tabs_bar.notifications": "Ծանուցումներ", "tabs_bar.search": "Փնտրել", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", - "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", + "time_remaining.hours": "{number, plural, one {# ժամ} other {# ժամ}} անց", + "time_remaining.minutes": "{number, plural, one {# րոպե} other {# րոպե}} անց", "time_remaining.moments": "Moments remaining", - "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", + "time_remaining.seconds": "{number, plural, one {# վայրկյան} other {# վայրկյան}} անց", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.trending_now": "Trending now", + "trends.trending_now": "Այժմ արդիական", "ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։", "upload_area.title": "Քաշիր ու նետիր՝ վերբեռնելու համար", "upload_button.label": "Ավելացնել մեդիա", - "upload_error.limit": "File upload limit exceeded.", + "upload_error.limit": "Ֆայլի վերբեռնման սահմանաչափը գերազանցված է։", "upload_error.poll": "File upload not allowed with polls.", "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": "Analyzing picture…", + "upload_modal.analyzing_picture": "Լուսանկարի վերլուծում…", "upload_modal.apply": "Կիրառել", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.description_placeholder": "Ճկուն շագանակագույն աղվեսը ցատկում է ծույլ շան վրայով", "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.", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 8e7b492fe..b1605ac60 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Batasan tingkat", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per minggu", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 673a0deb2..36bf1a588 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index c1f1b3720..53b2a150a 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -10,10 +10,10 @@ "account.domain_blocked": "Lén falið", "account.edit_profile": "Breyta notandasniði", "account.endorse": "Birta á notandasniði", - "account.follow": "Fylgja", + "account.follow": "Fylgjast með", "account.followers": "Fylgjendur", "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.", - "account.follows": "Fylgir", + "account.follows": "Fylgist með", "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.", "account.follows_you": "Fylgir þér", "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Með takmörkum", "alert.unexpected.message": "Upp kom óvænt villa.", "alert.unexpected.title": "Úbbs!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} á viku", "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst", "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", @@ -266,7 +267,7 @@ "navigation_bar.edit_profile": "Breyta notandasniði", "navigation_bar.favourites": "Eftirlæti", "navigation_bar.filters": "Þögguð orð", - "navigation_bar.follow_requests": "Fylgja beiðnum", + "navigation_bar.follow_requests": "Beiðnir um að fylgjast með", "navigation_bar.follows_and_followers": "Fylgist með og fylgjendur", "navigation_bar.info": "Um þennan vefþjón", "navigation_bar.keyboard_shortcuts": "Flýtilyklar", @@ -279,7 +280,7 @@ "navigation_bar.public_timeline": "Sameiginleg tímalína", "navigation_bar.security": "Öryggi", "notification.favourite": "{name} setti stöðufærslu þína í eftirlæti", - "notification.follow": "{name} fylgdist með þér", + "notification.follow": "{name} fylgist með þér", "notification.follow_request": "{name} hefur beðið um að fylgjast með þér", "notification.mention": "{name} minntist á þig", "notification.own_poll": "Könnuninni þinni er lokið", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 3d5353f2a..1b31f90f6 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Aggiungi o togli dalle liste", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Gruppo", "account.block": "Blocca @{name}", "account.block_domain": "Nascondi tutto da {domain}", "account.blocked": "Bloccato", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Numero massimo di richieste superato", "alert.unexpected.message": "Si è verificato un errore inatteso.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta", "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 4cb405a89..4018fba2b 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "制限に達しました", "alert.unexpected.message": "不明なエラーが発生しました。", "alert.unexpected.title": "エラー!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} 回 / 週", "boost_modal.combo": "次からは{combo}を押せばスキップできます", "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 1c6203c46..1222702a4 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "წარმოიშვა მოულოდნელი შეცდომა.", "alert.unexpected.title": "უპს!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "კვირაში {count}", "boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს", "bundle_column_error.body": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index edb539f4f..ec77fa9e4 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -1,15 +1,15 @@ { - "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin", + "account.add_or_remove_from_list": "Rnu neγ kkes seg tebdarin", "account.badges.bot": "Aṛubut", - "account.badges.group": "Group", + "account.badges.group": "Agraw", "account.block": "Seḥbes @{name}", "account.block_domain": "Ffer kra i d-yekkan seg {domain}", "account.blocked": "Yettuseḥbes", "account.cancel_follow_request": "Sefsex asuter n weḍfaṛ", "account.direct": "Izen usrid i @{name}", - "account.domain_blocked": "Taɣult yeffren", - "account.edit_profile": "Ẓreg amaɣnu", - "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "account.domain_blocked": "Taγult yeffren", + "account.edit_profile": "Ẓreg amaγnu", + "account.endorse": "Welleh fell-as deg umaγnu-inek", "account.follow": "Ḍfeṛ", "account.followers": "Imeḍfaṛen", "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", @@ -18,33 +18,34 @@ "account.follows_you": "Yeṭṭafaṛ-ik", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", "account.last_status": "Armud aneggaru", - "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed de {date}", + "account.link_verified_on": "Taγara n useγwen-a tettwasenqed ass n {date}", "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.", "account.media": "Allal n teywalt", "account.mention": "Bder-d @{name}", - "account.moved_to": "{name} ibeddel ɣer:", + "account.moved_to": "{name} ibeddel γer:", "account.mute": "Sgugem @{name}", - "account.mute_notifications": "Ḥbes ilɣa sɣur @{name}", + "account.mute_notifications": "Susem ilγa sγur @{name}", "account.muted": "Yettwasgugem", "account.never_active": "Werǧin", "account.posts": "Tiberraḥin", "account.posts_with_replies": "Tibarraḥin d tririyin", "account.report": "Sewɛed @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar", - "account.share": "Bḍu amaɣnu n @{name}", + "account.share": "Bḍu amaγnu n @{name}", "account.show_reblogs": "Sken-d inebḍa n @{name}", "account.unblock": "Serreḥ i @{name}", "account.unblock_domain": "Kkes tuffra i {domain}", - "account.unendorse": "Ur ttwellih ara fell-as deg umaɣnu-inek", + "account.unendorse": "Ur ttwellih ara fell-as deg umaγnu-inek", "account.unfollow": "Ur ṭṭafaṛ ara", - "account.unmute": "Kkes asgugem ɣef @{name}", - "account.unmute_notifications": "Serreḥ ilɣa sɣur @{name}", - "alert.rate_limited.message": "Ma ulac aɣilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.", + "account.unmute": "Kkes asgugem γef @{name}", + "account.unmute_notifications": "Serreḥ ilγa sγur @{name}", + "alert.rate_limited.message": "Ma ulac aγilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.", "alert.rate_limited.title": "Aktum s talast", "alert.unexpected.message": "Tella-d tuccḍa i ɣef ur nedmi ara.", "alert.unexpected.title": "Ayhuh!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} i yimalas", - "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", + "boost_modal.combo": "Tzemreḍ ad tetekkiḍ γef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", "bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen", "bundle_column_error.title": "Tuccḍa deg uẓeṭṭa", @@ -55,24 +56,24 @@ "column.bookmarks": "Ticraḍ", "column.community": "Tasuddemt tadigant", "column.direct": "Iznan usriden", - "column.directory": "Qelleb deg yimaɣnuten", - "column.domain_blocks": "Tiɣula yettwaffren", + "column.directory": "Qelleb deg imaγnuten", + "column.domain_blocks": "Tiγula yettwaffren", "column.favourites": "Ismenyifen", "column.follow_requests": "Isuturen n teḍfeṛt", "column.home": "Agejdan", "column.lists": "Tibdarin", "column.mutes": "Imiḍanen yettwasgugmen", - "column.notifications": "Tilɣa", + "column.notifications": "Tilγa", "column.pins": "Tiberraḥin yettwasenṭḍen", "column.public": "Tasuddemt tamatut", - "column_back_button.label": "Tuɣalin", - "column_header.hide_settings": "Ffer iɣewwaṛen", - "column_header.moveLeft_settings": "Err ajgu ɣer tama tazelmaḍt", - "column_header.moveRight_settings": "Err ajgu ɣer tama tayfust", + "column_back_button.label": "Tuγalin", + "column_header.hide_settings": "Ffer iγewwaṛen", + "column_header.moveLeft_settings": "Err ajgu γer tama tazelmaḍt", + "column_header.moveRight_settings": "Err ajgu γer tama tayfust", "column_header.pin": "Senteḍ", - "column_header.show_settings": "Sken iɣewwaṛen", + "column_header.show_settings": "Sken iγewwaṛen", "column_header.unpin": "Kkes asenteḍ", - "column_subheading.settings": "Iɣewwaṛen", + "column_subheading.settings": "Iγewwaṛen", "community.column_settings.media_only": "Allal n teywalt kan", "compose_form.direct_message_warning": "Taberraḥt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.", "compose_form.direct_message_warning_learn_more": "Issin ugar", @@ -91,39 +92,39 @@ "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri", "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri", "compose_form.sensitive.unmarked": "Allal n teywalt ur yettwacreḍ ara d anafri", - "compose_form.spoiler.marked": "Aḍris yeffer deffir n walɣu", + "compose_form.spoiler.marked": "Aḍris yeffer deffir n walγu", "compose_form.spoiler.unmarked": "Aḍris ur yettwaffer ara", - "compose_form.spoiler_placeholder": "Aru alɣu-inek da", + "compose_form.spoiler_placeholder": "Aru alγu-inek da", "confirmation_modal.cancel": "Sefsex", "confirmations.block.block_and_report": "Sewḥel & sewɛed", "confirmations.block.confirm": "Sewḥel", - "confirmations.block.message": "Tebɣiḍ s tidet ad tesḥebseḍ {name}?", + "confirmations.block.message": "Tebγiḍ s tidet ad tesḥebseḍ {name}?", "confirmations.delete.confirm": "Kkes", - "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", + "confirmations.delete.message": "Tebγiḍ s tidet ad tekkseḍ tasuffeγt-agi?", "confirmations.delete_list.confirm": "Kkes", - "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ tabdert-agi i lebda?", - "confirmations.domain_block.confirm": "Ffer taɣult meṛṛa", + "confirmations.delete_list.message": "Tebγiḍ s tidet ad tekkseḍ tabdert-agi i lebda?", + "confirmations.domain_block.confirm": "Ffer taγult meṛṛa", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", - "confirmations.logout.confirm": "Ffeɣ", - "confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?", + "confirmations.logout.confirm": "Ffeγ", + "confirmations.logout.message": "D tidet tebγiḍ ad teffγeḍ?", "confirmations.mute.confirm": "Sgugem", - "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neɣ d-tettwabder, maca xas akka yezmer neɣ tezmer awali n yiznan-inek d uḍfaṛ-ik.", - "confirmations.mute.message": "Tetḥeqqeḍ belli tebɣiḍ asɛuggen n {name}?", + "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neγ d-tettwabder, maca xas akka yezmer neγ tezmer awali n yiznan-inek d uḍfaṛ-ik.", + "confirmations.mute.message": "Tetḥeqqeḍ belli tebγiḍ asɛuggen n {name}?", "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira", - "confirmations.redraft.message": "Tetḥeqqeḍ belli tebɣiḍ asfaḍ n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uɣalent d tigujilin.", + "confirmations.redraft.message": "Tetḥeqqeḍ belli tebγiḍ asfaḍ n waddad-agi iwakken ad s-tɛiwdeḍ tira? Ismenyifen d beḍḍuwat ad ṛuḥen, ma d tiririyin-is ad uγalent d tigujilin.", "confirmations.reply.confirm": "Err", - "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebɣiḍ ad tkemmleḍ?", + "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebγiḍ ad tkemmleḍ?", "confirmations.unfollow.confirm": "Ur ḍḍafaṛ ara", - "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebɣiḍ ur teḍḍafaṛeḍ ara {name}?", + "confirmations.unfollow.message": "Tetḥeqqeḍ belli tebγiḍ ur teḍḍafaṛeḍ ara {name}?", "conversation.delete": "Sfeḍ adiwenni", - "conversation.mark_as_read": "Creḍ yettwaɣṛa", + "conversation.mark_as_read": "Creḍ yettwaγṛa", "conversation.open": "Sken adiwenni", "conversation.with": "Akked {names}", "directory.federated": "Seg fedivers yettwasnen", "directory.local": "Seg {domain} kan", "directory.new_arrivals": "Inebgawen imaynuten", "directory.recently_active": "Yermed xas melmi kan", - "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenɣal n tangalt yellan sdaw-agi.", + "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", "emoji_button.custom": "Udmawan", @@ -132,7 +133,7 @@ "emoji_button.label": "Sekcem imuji", "emoji_button.nature": "Agama", "emoji_button.not_found": "Ulac izamulen n yiḥulfan  !! (╯°□°)╯︵ ┻━┻", - "emoji_button.objects": "Tiɣawsiwin", + "emoji_button.objects": "Tiγawsiwin", "emoji_button.people": "Medden", "emoji_button.recent": "Wid yettuseqdacen s waṭas", "emoji_button.search": "Nadi…", @@ -140,35 +141,35 @@ "emoji_button.symbols": "Izamulen", "emoji_button.travel": "Imeḍqan d Yinigen", "empty_column.account_timeline": "Ulac tiberraḥin dagi!", - "empty_column.account_unavailable": "Ur nufi ara amaɣnu-a", + "empty_column.account_unavailable": "Ur nufi ara amaγnu-a", "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.", - "empty_column.bookmarked_statuses": "Ulac tiberraḥin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", + "empty_column.bookmarked_statuses": "Ulac tiberraḥin i terniḍ γer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", - "empty_column.direct": "Ulac ɣur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neɣ teṭṭfeḍ-d yiwen.", - "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", + "empty_column.direct": "Ulac γur-k ula yiwen n yizen usrid. Ad d-yettwasken da, ticki tuzneḍ neγ teṭṭfeḍ-d yiwen.", + "empty_column.domain_blocks": "Ulac kra n taγult yettwaffren ar tura.", "empty_column.favourited_statuses": "Ulac ula yiwet n tberraḥt deg yismenyifen-ik ar tura. Ticki Tella-d yiwet, ad d-ban da.", "empty_column.favourites": "Ula yiwen ur yerri taberraḥt-agi deg yismenyifen-is. Melmi i d-yella waya, ad d-yettwasken da.", - "empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", - "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", - "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", + "empty_column.follow_requests": "Ulac γur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", + "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaγ γer uhacṭag-agi.", + "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neγ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", "empty_column.home.public_timeline": "tasuddemt tazayezt n yisallen", - "empty_column.list": "Ar tura ur yelli kra deg tebdert-a. Ad d-yettwasken da ticki iɛeggalen n tebdert-a suffɣen-d kra.", - "empty_column.lists": "Ulac ɣur-k kra n tebdert yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", - "empty_column.mutes": "Ulac ɣur-k imseqdacen i yettwasgugmen.", - "empty_column.notifications": "Ulac ɣur-k tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", - "empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", + "empty_column.list": "Ar tura ur yelli kra deg tebdert-a. Ad d-yettwasken da ticki iɛeggalen n tebdert-a suffγen-d kra.", + "empty_column.lists": "Ulac γur-k kra n tebdert yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", + "empty_column.mutes": "Ulac γur-k imseqdacen i yettwasgugmen.", + "empty_column.notifications": "Ulac γur-k tilγa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", + "empty_column.public": "Ulac kra da! Aru kra, neγ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", "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": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Mastudun deg yiminig-nniḍen neɣ deg usnas anaṣli.", + "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Masṭudun deg yiminig-nniḍen neγ deg usnas anaṣli.", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.report_issue": "Mmel ugur", "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", "getting_started.developers": "Ineflayen", - "getting_started.directory": "Imaɣnuten", + "getting_started.directory": "Imaγnuten", "getting_started.documentation": "Amnir", "getting_started.heading": "Bdu", "getting_started.invite": "Snebgi-d imdanen", - "getting_started.open_source_notice": "Mastudun d aseɣzan s uɣbalu yeldin. Tzemreḍ ad tɛiwneḍ neɣ ad temmleḍ uguren seg GitHub {github}.", + "getting_started.open_source_notice": "Mastudun d aseγzan s uγbalu yeldin. Tzemreḍ ad tɛiwneḍ neγ ad temmleḍ uguren deg GitHub {github}.", "getting_started.security": "Iγewwaṛen n umiḍan", "getting_started.terms": "Tiwetlin n useqdec", "hashtag.column_header.tag_mode.all": "d {additional}", @@ -190,29 +191,29 @@ "introduction.federation.federated.headline": "Amatu", "introduction.federation.federated.text": "Iznan izuyaz i d-yekkan seg yiqeddacen-nniḍen n fediverse ad banen deg tsuddemt tazayezt tamatut n yisallen.", "introduction.federation.home.headline": "Agejdan", - "introduction.federation.home.text": "Iznan n yemdanen i teṭṭafaṛeḍ ad banen deg tsuddemt n umagger. Tzemreḍ ad tḍefṛeḍ win tebɣiḍ deg uqeddac i tebɣiḍ!", + "introduction.federation.home.text": "Iznan n yemdanen i teṭṭafaṛeḍ ad banen deg tsuddemt n umagger. Tzemreḍ ad tḍefṛeḍ win tebγiḍ deg uqeddac i tebγiḍ!", "introduction.federation.local.headline": "Adigan", "introduction.federation.local.text": "Iznan izuyaz n yemdanen i yellan deg yiwen uqeddac akked kečč ad d-banen deg tsuddemt tazayezt tadigant.", "introduction.interactions.action": "Fakk tameskant!", "introduction.interactions.favourite.headline": "Ismenyifen", - "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tberraḥt i ticki, daɣen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines ɣer yismenyifen-ik.", + "introduction.interactions.favourite.text": "Tzemreḍ ad teǧǧeḍ kra n tberraḥt i ticki, daγen ad tiniḍ i bab-is d akken taɛǧeb-ik, s tmerna-ines γer yismenyifen-ik.", "introduction.interactions.reblog.headline": "Bḍu tikelt-nniḍen", "introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ akked yimeḍfaṛen-ik tiberraḥin n yemdanen-nniḍen s beṭṭu-nsent tikelt-nniḍen.", "introduction.interactions.reply.headline": "Err", - "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ ɣef tberraḥin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg udiwenni.", + "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tberraḥin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg udiwenni.", "introduction.welcome.action": "Bdu!", "introduction.welcome.headline": "Isurifen imenza", - "introduction.welcome.text": "Anṣuf ɣer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neɣ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaɣnu-ik, ihi cfu ɣef yisem-is.", - "keyboard_shortcuts.back": "uɣal ar deffir", + "introduction.welcome.text": "Anṣuf γer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neɣ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaγnu-ik, ihi cfu γef yisem-is.", + "keyboard_shortcuts.back": "uγal ar deffir", "keyboard_shortcuts.blocked": "akken ad teldiḍ tabdert n yimseqdacen yettwasḥebsen", "keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen", "keyboard_shortcuts.column": "to focus a status in one of the columns", "keyboard_shortcuts.compose": "to focus the compose textarea", "keyboard_shortcuts.description": "Aglam", "keyboard_shortcuts.direct": "akken ad teldiḍ ajgu n yiznan usriden", - "keyboard_shortcuts.down": "i kennu ɣer wadda n tebdert", - "keyboard_shortcuts.enter": "i tildin n tsuffeɣt", - "keyboard_shortcuts.favourite": "akken ad ternuḍ ɣer yismenyifen", + "keyboard_shortcuts.down": "i kennu γer wadda n tebdert", + "keyboard_shortcuts.enter": "i tildin n tsuffeγt", + "keyboard_shortcuts.favourite": "akken ad ternuḍ γer yismenyifen", "keyboard_shortcuts.favourites": "i tildin n tebdert n yismenyifen", "keyboard_shortcuts.federated": "i tildin n tsuddemt tamatut n yisallen", "keyboard_shortcuts.heading": "Inegzumen n unasiw", @@ -222,11 +223,11 @@ "keyboard_shortcuts.local": "i tildin n tsuddemt tadigant n yisallen", "keyboard_shortcuts.mention": "akken ad d-bedreḍ ameskar", "keyboard_shortcuts.muted": "akken ad teldiḍ tabdert n yimseqdacen yettwasgugmen", - "keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaɣnu-ik", - "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilɣa", + "keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaγnu-ik", + "keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilγa", "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "i tildin n tebdert n tberraḥin yettwasentḍen", - "keyboard_shortcuts.profile": "akken ad d-teldiḍ amaɣnu n umeskar", + "keyboard_shortcuts.profile": "akken ad d-teldiḍ amaγnu n umeskar", "keyboard_shortcuts.reply": "i tririt", "keyboard_shortcuts.requests": "akken ad d-teldiḍ tabdert n yisuturen n teḍfeṛt", "keyboard_shortcuts.search": "to focus search", @@ -235,7 +236,7 @@ "keyboard_shortcuts.toggle_sensitivity": "i teskent/tuffra n yimidyaten", "keyboard_shortcuts.toot": "i beddu n tberraḥt tamaynut", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "i tulin ɣer ufella n tebdert", + "keyboard_shortcuts.up": "i tulin γer ufella n tebdert", "lightbox.close": "Mdel", "lightbox.next": "Γer zdat", "lightbox.previous": "Γer deffir", @@ -253,8 +254,8 @@ "loading_indicator.label": "Asali...", "media_gallery.toggle_visible": "Sken / Ffer", "missing_indicator.label": "Ulac-it", - "missing_indicator.sublabel": "Ur nufi ara aɣbalu-a", - "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?", + "missing_indicator.sublabel": "Ur nufi ara aγbalu-a", + "mute_modal.hide_notifications": "Tebγiḍ ad teffreḍ talγutin n umseqdac-a?", "navigation_bar.apps": "Isnasen izirazen", "navigation_bar.blocks": "Imseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", @@ -262,13 +263,13 @@ "navigation_bar.compose": "Aru taberraḥt tamaynut", "navigation_bar.direct": "Iznan usridden", "navigation_bar.discover": "Ẓer", - "navigation_bar.domain_blocks": "Tiɣula yeffren", - "navigation_bar.edit_profile": "Ẓreg amaɣnu", + "navigation_bar.domain_blocks": "Tiγula yeffren", + "navigation_bar.edit_profile": "Ẓreg amaγnu", "navigation_bar.favourites": "Ismenyifen", "navigation_bar.filters": "Awalen i yettwasgugmen", "navigation_bar.follow_requests": "Isuturen n teḍfeṛt", "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ", - "navigation_bar.info": "Ɣef uqeddac-agi", + "navigation_bar.info": "Γef uqeddac-a", "navigation_bar.keyboard_shortcuts": "Inegzumen n unasiw", "navigation_bar.lists": "Tibdarin", "navigation_bar.logout": "Ffeγ", @@ -278,16 +279,16 @@ "navigation_bar.preferences": "Imenyafen", "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut", "navigation_bar.security": "Taγellist", - "notification.favourite": "{name} yesmenyef tasuffeɣt-ik", + "notification.favourite": "{name} yesmenyef tasuffeγt-ik", "notification.follow": "{name} yeṭṭafaṛ-ik", "notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ", "notification.mention": "{name} yebder-ik-id", "notification.own_poll": "Your poll has ended", "notification.poll": "A poll you have voted in has ended", "notification.reblog": "{name} yebḍa taberraḥ-ik i tikelt-nniḍen", - "notifications.clear": "Sfeḍ tilɣa", - "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-ik i lebda?", - "notifications.column_settings.alert": "Tilɣa n tnarit", + "notifications.clear": "Sfeḍ tilγa", + "notifications.clear_confirmation": "Tebγiḍ s tidet ad tekkseḍ akk tilγa-ik i lebda?", + "notifications.column_settings.alert": "Tilγa n tnarit", "notifications.column_settings.favourite": "Ismenyifen:", "notifications.column_settings.filter_bar.advanced": "Sken-d meṛṛa tiggayin", "notifications.column_settings.filter_bar.category": "Iri n usizdeg uzrib", @@ -295,26 +296,26 @@ "notifications.column_settings.follow": "Imeḍfaṛen imaynuten:", "notifications.column_settings.follow_request": "Isuturen imaynuten n teḍfeṛt:", "notifications.column_settings.mention": "Abdar:", - "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Tilɣa yettudemmren", + "notifications.column_settings.poll": "Igemmaḍ n usenqed:", + "notifications.column_settings.push": "Tilγa yettudemmren", "notifications.column_settings.reblog": "Boosts:", - "notifications.column_settings.show": "Sken-d tilɣa deg ujgu", + "notifications.column_settings.show": "Sken-d tilγa deg ujgu", "notifications.column_settings.sound": "Rmed imesli", "notifications.filter.all": "Akk", "notifications.filter.boosts": "Boosts", "notifications.filter.favourites": "Ismenyifen", "notifications.filter.follows": "Yeṭafaṛ", "notifications.filter.mentions": "Abdar", - "notifications.filter.polls": "Poll results", - "notifications.group": "{count} n tilɣa", + "notifications.filter.polls": "Igemmaḍ n usenqed", + "notifications.group": "{count} n tilγa", "poll.closed": "Ifukk", "poll.refresh": "Smiren", "poll.total_people": "{count, plural, one {# n wemdan} other {# n yemdanen}}", - "poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}", - "poll.vote": "Dɣeṛ", - "poll.voted": "Tdeɣṛeḍ ɣef tririt-agi", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", + "poll.total_votes": "{count, plural, one {# n udγaṛ} other {# n yedγaṛen}}", + "poll.vote": "Dγeṛ", + "poll.voted": "Tdeγṛeḍ γef tririt-agi", + "poll_button.add_poll": "Rnu asenqed", + "poll_button.remove_poll": "Kkes asenqed", "privacy.change": "Adjust status privacy", "privacy.direct.long": "Bḍu gar yimseqdacen i tbedreḍ kan", "privacy.direct.short": "Usrid", @@ -356,13 +357,13 @@ "status.block": "Seḥbes @{name}", "status.bookmark": "Creḍ", "status.cancel_reblog_private": "Sefsex beṭṭu", - "status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen", - "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", + "status.cannot_reblog": "Tasuffeγt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen", + "status.copy": "Nγel assaγ γer tasuffeγt", "status.delete": "Kkes", "status.detailed_status": "Detailed conversation view", "status.direct": "Izen usrid i @{name}", "status.embed": "Embed", - "status.favourite": "Rnu ɣer yismenyifen", + "status.favourite": "Rnu γer yismenyifen", "status.filtered": "Yettwasizdeg", "status.load_more": "Sali ugar", "status.media_hidden": "Media hidden", @@ -370,8 +371,8 @@ "status.more": "Ugar", "status.mute": "Sussem @{name}", "status.mute_conversation": "Mute conversation", - "status.open": "Semɣeṛ tasuffeɣt-agi", - "status.pin": "Senteḍ-itt deg umaɣnu", + "status.open": "Semγeṛ tasuffeγt-agi", + "status.pin": "Senteḍ-itt deg umaγnu", "status.pinned": "Tiberraḥin yettwasentḍen", "status.read_more": "Issin ugar", "status.reblog": "Bḍu", @@ -386,13 +387,13 @@ "status.sensitive_warning": "Agbur amḥulfu", "status.share": "Bḍu", "status.show_less": "Sken-d drus", - "status.show_less_all": "Semẓi akk tisuffɣin", + "status.show_less_all": "Semẓi akk tisuffγin", "status.show_more": "Sken-ed ugar", "status.show_more_all": "Ẓerr ugar lebda", "status.show_thread": "Show thread", "status.uncached_media_warning": "Ulac-it", "status.unmute_conversation": "Kkes asgugem n udiwenni", - "status.unpin": "Kkes asenteḍ seg umaɣnu", + "status.unpin": "Kkes asenteḍ seg umaγnu", "suggestions.dismiss": "Dismiss suggestion", "suggestions.header": "Ahat ad tcelgeḍ deg…", "tabs_bar.federated_timeline": "Amatu", @@ -416,10 +417,10 @@ "upload_form.description": "Glem-d i yemdaneni yesɛan ugur deg yiẓri", "upload_form.edit": "Ẓreg", "upload_form.undo": "Kkes", - "upload_form.video_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt neɣ deg yiẓri", + "upload_form.video_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt neγ deg yiẓri", "upload_modal.analyzing_picture": "Tasleḍt n tugna tetteddu…", "upload_modal.apply": "Snes", - "upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis", + "upload_modal.description_placeholder": "Aberraγ arurad ineggez nnig n uqjun amuṭṭis", "upload_modal.detect_text": "Detect text from picture", "upload_modal.edit_media": "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.", @@ -427,8 +428,8 @@ "upload_progress.label": "Asali iteddu...", "video.close": "Mdel tabidyutt", "video.download": "Sidered afaylu", - "video.exit_fullscreen": "Ffeɣ seg ugdil aččuran", - "video.expand": "Semɣeṛ tavidyut", + "video.exit_fullscreen": "Ffeγ seg ugdil aččuran", + "video.expand": "Semγeṛ tavidyut", "video.fullscreen": "Agdil aččuran", "video.hide": "Ffer tabidyutt", "video.mute": "Gzem imesli", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 86f3626f9..b307a3161 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Бағалау шектеулі", "alert.unexpected.message": "Бір нәрсе дұрыс болмады.", "alert.unexpected.title": "Өй!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} аптасына", "boost_modal.combo": "Келесіде өткізіп жіберу үшін басыңыз {combo}", "bundle_column_error.body": "Бұл компонентті жүктеген кезде бір қате пайда болды.", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 96872bbbd..278f6b14c 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 635a6c8bd..f7be26c09 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "빈도 제한", "alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.", "alert.unexpected.title": "앗!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "주간 {count}회", "boost_modal.combo": "{combo}를 누르면 다음부터 이 과정을 건너뛸 수 있습니다", "bundle_column_error.body": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 96872bbbd..278f6b14c 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index efdb23436..b2f8fedbf 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Negaidīta kļūda.", "alert.unexpected.title": "Ups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Nospied {combo} lai izlaistu šo nākamreiz", "bundle_column_error.body": "Kaut kas nogāja greizi ielādējot šo komponenti.", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 2a31a5c22..90c8d2418 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Неочекувана грешка.", "alert.unexpected.title": "Упс!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} неделно", "boost_modal.combo": "Кликни {combo} за да го прескокниш ова нареден пат", "bundle_column_error.body": "Се случи проблем при вчитувањето.", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 0705f20e3..6a042e8c4 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "തോത് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു", "alert.unexpected.message": "അപ്രതീക്ഷിതമായി എന്തോ സംഭവിച്ചു.", "alert.unexpected.title": "ശ്ശോ!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}", "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്", "bundle_column_error.body": "ഈ ഘടകം പ്രദശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index a4dcbb144..f265042f2 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "अरेरे!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताह", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "हा घटक लोड करतांना काहीतरी चुकले आहे.", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 4e858d59e..3bd6e145e 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", "bundle_column_error.body": "Something went wrong while loading this component.", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 7fbaf4204..d570f3612 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Beperkt te gebruiken", "alert.unexpected.message": "Er deed zich een onverwachte fout voor", "alert.unexpected.title": "Oeps!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan", "bundle_column_error.body": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 00e323cc1..d69717292 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Begrensa rate", "alert.unexpected.message": "Eit uventa problem oppstod.", "alert.unexpected.title": "Oi sann!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per veke", "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.", @@ -170,7 +171,7 @@ "getting_started.invite": "Byd folk inn", "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidraga eller rapportera problem med GitHub på {github}.", "getting_started.security": "Kontoinnstillingar", - "getting_started.terms": "Brukarvillkår", + "getting_started.terms": "Brukarvilkår", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "utan {additional}", @@ -354,7 +355,7 @@ "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", "status.block": "Blokker @{name}", - "status.bookmark": "Bokmerke", + "status.bookmark": "Bokmerk", "status.cancel_reblog_private": "Opphev framheving", "status.cannot_reblog": "Denne posten kan ikkje framhevast", "status.copy": "Kopier lenke til status", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index a6aa5db7c..c6dc4ca0e 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per uke", "boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang", "bundle_column_error.body": "Noe gikk galt mens denne komponenten lastet.", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 601ed93c6..b7701c17e 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Taus limitat", "alert.unexpected.message": "Una error s’es producha.", "alert.unexpected.title": "Ops !", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven", "bundle_column_error.body": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 178316773..cf80393dd 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Ograniczony czasowo", "alert.unexpected.message": "Wystąpił nieoczekiwany błąd.", "alert.unexpected.title": "O nie!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} co tydzień", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", "bundle_column_error.body": "Coś poszło nie tak podczas ładowania tego składnika.", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 7dedbe2cc..f78c327fb 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Tentativas limitadas", "alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.title": "Eita!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pressione {combo} para ignorar este diálogo na próxima vez", "bundle_column_error.body": "Ocorreu um problema ao carregar este componente.", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 72eebaa1f..b2fb2a012 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Limite de tentativas", "alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.title": "Bolas!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 7703d46fb..4d01ad3a5 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "A apărut o eroare neașteptată.", "alert.unexpected.title": "Hopa!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Poți apăsa {combo} pentru a omite asta data viitoare", "bundle_column_error.body": "Ceva nu a funcționat la încărcarea acestui component.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 89f364947..1681da968 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Вы выполняете действие слишком часто", "alert.unexpected.message": "Что-то пошло не так.", "alert.unexpected.title": "Ой!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} / неделю", "boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз", "bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.", @@ -365,7 +366,7 @@ "status.favourite": "Нравится", "status.filtered": "Отфильтровано", "status.load_more": "Загрузить остальное", - "status.media_hidden": "Медиа скрыто", + "status.media_hidden": "Файл скрыт", "status.mention": "Упомянуть @{name}", "status.more": "Больше", "status.mute": "Игнорировать @{name}", @@ -390,7 +391,7 @@ "status.show_more": "Развернуть", "status.show_more_all": "Развернуть все спойлеры в ветке", "status.show_thread": "Показать обсуждение", - "status.uncached_media_warning": "Недоступно", + "status.uncached_media_warning": "Файл недоступен", "status.unmute_conversation": "Не игнорировать обсуждение", "status.unpin": "Открепить от профиля", "suggestions.dismiss": "Удалить предложение", @@ -409,7 +410,7 @@ "trends.trending_now": "Самое актуальное", "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.", "upload_area.title": "Перетащите сюда, чтобы загрузить", - "upload_button.label": "Добавить файл медиа ({formats})", + "upload_button.label": "Прикрепить фото, видео или аудио", "upload_error.limit": "Достигнут лимит загруженных файлов.", "upload_error.poll": "К опросам нельзя прикреплять файлы.", "upload_form.audio_description": "Опишите аудиофайл для людей с нарушением слуха", @@ -421,7 +422,7 @@ "upload_modal.apply": "Применить", "upload_modal.description_placeholder": "На дворе трава, на траве дрова", "upload_modal.detect_text": "Найти текст на картинке", - "upload_modal.edit_media": "Изменение медиа", + "upload_modal.edit_media": "Изменить файл", "upload_modal.hint": "Нажмите и перетащите круг в предпросмотре в точку фокуса, которая всегда будет видна на эскизах.", "upload_modal.preview_label": "Предпросмотр ({ratio})", "upload_progress.label": "Загрузка...", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 689d6245c..2410daf06 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Pridaj do, alebo odober zo zoznamov", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Skupina", "account.block": "Blokuj @{name}", "account.block_domain": "Ukry všetko z {domain}", "account.blocked": "Blokovaný/á", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Tempo obmedzené", "alert.unexpected.message": "Vyskytla sa nečakaná chyba.", "alert.unexpected.title": "Ups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} týždenne", "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie", "bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Trvanie ankety", "compose_form.poll.option_placeholder": "Voľba {number}", "compose_form.poll.remove_option": "Odstráň túto voľbu", - "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.poll.switch_to_multiple": "Zmeň anketu pre povolenie viacerých možností", + "compose_form.poll.switch_to_single": "Zmeň anketu na takú s jedinou voľbou", "compose_form.publish": "Pošli", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Označ médiá ako chúlostivé", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index da816837f..bcf3b8d1a 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Zgodila se je nepričakovana napaka.", "alert.unexpected.title": "Uups!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}", "bundle_column_error.body": "Med nalaganjem te komponente je prišlo do napake.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 0b5a613c2..617c3aee3 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ndodhi një gabim të papritur.", "alert.unexpected.title": "Hëm!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Mund të shtypni {combo}, që të anashkalohet kjo herës tjetër", "bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index aab2dfa15..09b30ff5f 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put", "bundle_column_error.body": "Nešto je pošlo po zlu prilikom učitavanja ove komponente.", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 35436a93d..5b04f9826 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Појавила се неочекивана грешка.", "alert.unexpected.title": "Упс!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут", "bundle_column_error.body": "Нешто је пошло по злу приликом учитавања ове компоненте.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 843ab9fc0..4e778a481 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Lägg till i eller ta bort från listor", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Grupp", "account.block": "Blockera @{name}", "account.block_domain": "Dölj allt från {domain}", "account.blocked": "Blockerad", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Mängd begränsad", "alert.unexpected.message": "Ett oväntat fel uppstod.", "alert.unexpected.title": "Hoppsan!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per vecka", "boost_modal.combo": "Du kan trycka {combo} för att slippa detta nästa gång", "bundle_column_error.body": "Något gick fel medan denna komponent laddades.", @@ -84,8 +85,8 @@ "compose_form.poll.duration": "Varaktighet för omröstning", "compose_form.poll.option_placeholder": "Val {number}", "compose_form.poll.remove_option": "Ta bort detta val", - "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.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val", + "compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Markera media som känsligt", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index ddd1d9fd7..8d1a8f14d 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "பட்டியல்களில் சேர்/நீக்கு", "account.badges.bot": "பாட்", - "account.badges.group": "Group", + "account.badges.group": "குழு", "account.block": "@{name} -ஐத் தடு", "account.block_domain": "{domain} யில் இருந்து வரும் எல்லாவற்றையும் மறை", "account.blocked": "முடக்கப்பட்டது", @@ -43,6 +43,7 @@ "alert.rate_limited.title": "விகிதம் வரையறுக்கப்பட்டுள்ளது", "alert.unexpected.message": "எதிர்பாராத பிழை ஏற்பட்டுவிட்டது.", "alert.unexpected.title": "அச்சச்சோ!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}", "boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்", "bundle_column_error.body": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 12af667c7..8b47fec52 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "అనుకోని తప్పు జరిగినది.", "alert.unexpected.title": "అయ్యో!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "మీరు తదుపరిసారి దీనిని దాటవేయడానికి {combo} నొక్కవచ్చు", "bundle_column_error.body": "ఈ భాగం లోడ్ అవుతున్నప్పుడు ఏదో తప్పు జరిగింది.", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 56e383da7..8a72783a2 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "มีการจำกัดอัตรา", "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด", "alert.unexpected.title": "อุปส์!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", @@ -84,8 +85,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.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายทางเลือก", + "compose_form.poll.switch_to_single": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตทางเลือกเดี่ยว", "compose_form.publish": "โพสต์", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "ทำเครื่องหมายสื่อว่าละเอียดอ่อน", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 514e7b956..3ade92977 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Oran sınırlıdır", "alert.unexpected.message": "Beklenmedik bir hata oluştu.", "alert.unexpected.title": "Hay aksi!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "Haftada {count}", "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsiniz", "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 1c37f8e44..3dc69d6d6 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Швидкість обмежена", "alert.unexpected.message": "Трапилась неочікувана помилка.", "alert.unexpected.title": "Ой!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} в тиждень", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", "bundle_column_error.body": "Щось пішло не так під час завантаження компоненту.", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 6f14ad3c6..01477906c 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "ایک غیر متوقع سہو ہوا ہے.", "alert.unexpected.title": "ا رے!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} فی ہفتہ", "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", "bundle_column_error.body": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index d94be9f5b..07dff79fa 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "Tỷ lệ giới hạn", "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.", "alert.unexpected.title": "Ốiii!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{tính} mỗi tuần", "boost_modal.combo": "Bạn có thể nhấn {combo} để bỏ qua lần sau", "bundle_column_error.body": "Có gì đó sai sai trong khi tải nội dung này", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 84670d4b5..62a86e75b 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "频率受限", "alert.unexpected.message": "发生了意外错误。", "alert.unexpected.title": "哎呀!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "每星期 {count} 条", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", "bundle_column_error.body": "载入这个组件时发生了错误。", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index a685409ee..4dcf70e6b 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "已限速", "alert.unexpected.message": "發生不可預期的錯誤。", "alert.unexpected.title": "噢!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "如你想在下次路過這顯示,請按{combo},", "bundle_column_error.body": "加載本組件出錯。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index e5f740b46..ab680223e 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -43,6 +43,7 @@ "alert.rate_limited.title": "已限速", "alert.unexpected.message": "發生了非預期的錯誤。", "alert.unexpected.title": "哎呀!", + "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "下次您可以按 {combo} 跳過", "bundle_column_error.body": "載入此元件時發生錯誤。", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 1519be44b..7309ad3db 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -86,6 +86,7 @@ ar: roles: admin: المدير bot: روبوت + group: فريق moderator: مُشرِف unavailable: الصفحة التعريفية غير متوفرة unfollow: إلغاء المتابعة @@ -262,6 +263,7 @@ ar: shortcode_hint: على الأقل حرفين، و فقط رموز أبجدية عددية و أسطر سفلية title: الإيموجي الخاصة uncategorized: غير مصنّف + unlist: تنحية مِن القائمة unlisted: غير مدرج update_failed_msg: تعذرت عملية تحديث ذاك الإيموجي updated_msg: تم تحديث الإيموجي بنجاح! @@ -347,9 +349,6 @@ ar: create: إضافة نطاق title: إضافة نطاق بريد جديد إلى اللائحة السوداء title: القائمة السوداء للبريد الإلكتروني - followers: - back_to_account: العودة إلى الحساب - title: "%{acct} مُتابِعون" instances: by_domain: النطاق delivery_available: التسليم متوفر @@ -612,6 +611,7 @@ ar: set_new_password: إدخال كلمة مرور جديدة setup: email_below_hint_html: إذا كان عنوان البريد الإلكتروني التالي غير صحيح، فيمكنك تغييره هنا واستلام بريد إلكتروني جديد للتأكيد. + email_settings_hint_html: لقد تم إرسال رسالة بريد إلكترونية للتأكيد إلى %{email}. إن كان عنوان البريد الإلكتروني غير صحيح ، يمكنك تغييره في إعدادات حسابك. title: الضبط status: account_status: حالة الحساب @@ -659,6 +659,7 @@ ar: before: 'يرجى قراءة هذه الملاحظات بتأنّي قبل المواصلة:' data_removal: سوف تُحذَف منشوراتك والبيانات الأخرى نهائيا email_change_html: بإمكانك تغيير عنوان بريدك الإلكتروني دون أن يُحذف حسابك + email_contact_html: إن لم تتلقّ أي شيء ، يمكنك مراسلة %{email} لطلب المساعدة irreversible: لن يكون بإمكانك استرجاع أو إعادة تنشيط حسابك more_details_html: للمزيد مِن التفاصيل ، يرجى الإطلاع على سياسة الخصوصية. username_available: سيصبح اسم مستخدمك متوفرا ثانية @@ -716,6 +717,7 @@ ar: invalid_irreversible: إلّا مجالات الإشعارات و الخيط الرئيسي معنية بالتصفية اللارجعية index: delete: إزالة + empty: ليست لديك أية عوامل تصفية. title: عوامل التصفية new: title: إضافة عامل تصفية جديد @@ -815,6 +817,7 @@ ar: set_redirect: تعين إعادة التوجيه warning: before: 'يرجى قراءة هذه الملاحظات بتأنّي قبل المواصلة:' + followers: تقوم هذه العملية بنقل كافة المُتابِعين مِن الحساب الحالي إلى الحساب الجديد other_data: لن يتم نقل أية بيانات أخرى تلقائيا moderation: title: الإشراف @@ -887,6 +890,7 @@ ar: duration_too_long: بعيد جدا في المستقبَل duration_too_short: مبكّر جدا expired: لقد انتهى استطلاع الرأي + invalid_choice: خيار التصويت الذي قُمتَ يتحديده غير موجود too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر preferences: other: إعدادات أخرى diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 6c757558e..d64f6b005 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -305,6 +305,7 @@ ast: errors: already_voted: Yá votesti nesta encuesta expired: La encuesta yá finó + invalid_choice: El la opción de votu escoyida nun esiste preferences: public_timelines: Llinies temporales públiques relationships: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index e25172d6b..3e37ffa52 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -9,18 +9,18 @@ ca: administered_by: 'Administrat per:' api: API apps: Apps mòbils - apps_platforms: Utilitza Mastodont des de iOS, Android i altres plataformes + apps_platforms: Utilitza Mastodon des de iOS, Android i altres plataformes browse_directory: Navega per el directori de perfils i filtra segons interessos - browse_local_posts: Navega un flux en directe de publicacions d’aquest servidor - browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodont + browse_local_posts: Navega un flux en directe de publicacions públiques d’aquest servidor + browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodon contact: Contacte contact_missing: No configurat contact_unavailable: N/D discover_users: Descobreix usuaris documentation: Documentació - federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodont i altres. + federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodon i altres. get_apps: Prova una aplicació mòbil - hosted_on: Mastodont allotjat a %{domain} + hosted_on: Mastodon allotjat a %{domain} instance_actor_flash: | Aquest compte és un actor virtual utilitzat per a representar al propi servidor i no cap usuari individual. S'utilitza per a propòsits de federació i no ha de ser bloquejat si no voleu bloquejar tota la instància, en aquest cas hauríeu d'utilitzar un bloqueig de domini. @@ -31,7 +31,7 @@ ca: source_code: Codi font status_count_after: one: estat - other: estats + other: tuts status_count_before: Que han escrit tagline: Segueix els teus amics i descobreix-ne de nous terms: Termes del servei @@ -40,14 +40,14 @@ ca: domain: Servidor reason: Raó rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats o emmagatzemats i cap miniatura serà mostrada, requerint clic manual a través de l''arxiu original:' - silenced: 'Les publicacions d''aquests servidors seran amagades en les cronologíes públiques i converses, i cap notificació serà generada de les interaccions dels seus usuaris, llevat que estiguis seguint-los:' + silenced: 'Les publicacions d''aquests servidors seran amagades en les línies de temps públiques i en les converses, i cap notificació serà generada de les interaccions dels seus usuaris, llevat que estiguis seguint-los:' suspended: 'Cap dada d''aquests servidors serà processada, emmagatzemada o intercanviada, fent impossible qualsevol interacció o comunicació amb els usuaris d''aquests servidors:' - unavailable_content_html: Mastodont generalment et permet per veure contingut i interaccionar amb usuaris de qualsevol altre servidor en el fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular. + unavailable_content_html: Mastodon generalment et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor en el fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular. user_count_after: one: usuari other: usuaris user_count_before: Tenim - what_is_mastodon: Què és Mastodont? + what_is_mastodon: Què és Mastodon? accounts: choices_html: 'Eleccions de %{name}:' endorsements_hint: Pots recomanar persones que segueixes a l'interfície de web, que apareixeran aquí. @@ -70,7 +70,7 @@ ca: pin_errors: following: Has d'estar seguint la persona que vulguis avalar posts: - one: Barrita + one: Tut other: Tuts posts_tab_heading: Tuts posts_with_replies: Tuts i respostes @@ -144,7 +144,7 @@ ca: moderation_notes: Notes de moderació most_recent_activity: Activitat més recent most_recent_ip: IP més recent - no_account_selected: No s'han canviat els comptes perque no s'han seleccionat + no_account_selected: No s'han canviat els comptes perquè no s'han seleccionat no_limits_imposed: Sense límits imposats not_subscribed: No subscrit pending: Revisió pendent @@ -179,7 +179,7 @@ ca: targeted_reports: Informes realitzats per altres silence: Silenci silenced: Silenciat - statuses: Estats + statuses: Tuts subscribe: Subscriu suspended: Suspès time_in_queue: Esperant en la cua %{time} @@ -226,7 +226,7 @@ ca: unsuspend_account: "%{name} ha llevat la suspensió del compte de %{target}" update_custom_emoji: "%{name} ha actualitzat l'emoji %{target}" update_status: "%{name} estat actualitzat per %{target}" - deleted_status: "(estat esborrat)" + deleted_status: "(tut esborrat)" title: Registre d'auditoria custom_emojis: assign_category: Assigna una categoria @@ -270,7 +270,7 @@ ca: feature_registrations: Registres feature_relay: Relay de la Federació feature_spam_check: Anti-spam - feature_timeline_preview: Vista previa de la cronología + feature_timeline_preview: Vista prèvia de línia de temps features: Característiques hidden_service: Federació amb serveis ocults open_reports: informes oberts @@ -280,7 +280,7 @@ ca: search: Cerca de text complet single_user_mode: Mode d'usuari únic software: Programari - space: Ús d’espai + space: Ús de l’espai title: Panell total_users: usuaris en total trends: Tendències @@ -299,7 +299,7 @@ ca: destroyed_msg: El bloqueig de domini s'ha desfet domain: Domini edit: Editar el bloqueig del domini - existing_domain_block_html: Ja has imposat uns limits més estrictes a %{name}, l'hauries de desbloquejar-lo primer. + existing_domain_block_html: Ja has imposat uns límits més estrictes a %{name}, l'hauries de desbloquejar-lo primer. new: create: Crea un bloqueig hint: El bloqueig de domini no impedirà la creació de nous comptes en la base de dades, però s'aplicaran de manera retroactiva mètodes de moderació específics sobre aquests comptes. @@ -344,9 +344,6 @@ ca: create: Afegeix un domini title: Nova adreça de correu en la llista negra title: Llista negra de correus electrònics - followers: - back_to_account: Torna al compte - title: Seguidors de %{acct} instances: by_domain: Domini delivery_available: El lliurament està disponible @@ -378,11 +375,11 @@ ca: relays: add_new: Afegiu un nou relay delete: Esborra - description_html: Un relay de federació és un servidor intermediari que intercanvia grans volums de barritades públiquess entre servidors que es subscriuen i publiquen en ell. Pot ajudar a servidors petits i mitjans a descobrir contingut del fedivers, no fent necessari que els usuaris locals manualment segueixin altres persones de servidors remots. + description_html: Un relay de federació és un servidor intermediari que intercanvia grans volums de tuts públics entre servidors que es subscriuen i publiquen en ell. Pot ajudar a servidors petits i mitjans a descobrir contingut del fedivers, no fent necessari que els usuaris locals manualment segueixin altres persones de servidors remots. disable: Inhabilita disabled: Desactivat enable: Activat - enable_hint: Una vegada habilitat el teu servidor es subscriurà a totes les barritades públiques d'aquesta ristra i començarà a enviar-hi totes les barritades públiques d'aquest servidor. + enable_hint: Una vegada habilitat, el teu servidor es subscriurà a tots els tuts públics d'aquest relay i començarà a enviar-hi tots els tuts públics d'aquest servidor. enabled: Activat inbox_url: URL del Relay pending: S'està esperant l'aprovació del relay @@ -431,7 +428,7 @@ ca: updated_at: Actualitzat settings: activity_api_enabled: - desc_html: Nombre d'estats publicats localment, usuaris actius i registres nous en períodes setmanals + desc_html: Nombre de tuts publicats localment, usuaris actius i registres nous en períodes setmanals title: Publica estadístiques agregades sobre l'activitat de l'usuari bootstrap_timeline_accounts: desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals. @@ -486,8 +483,8 @@ ca: open: Qualsevol pot registrar-se title: Mode de registres show_known_fediverse_at_about_page: - desc_html: Quan s'activa, mostrarà tots els brams del fedivers conegut en vista prèvia. En cas contrari, només es mostraran els locals - title: Mostra el fedivers conegut en vista prèvia de la cronología + desc_html: Quan està desactivat, restringeix la línia de temps pública enllaçada des de la pàgina inicial a mostrar només contingut local + title: Inclou el contingut federat a la pàgina no autenticada de la línia de temps pública show_staff_badge: desc_html: Mostra una insígnia de personal en la pàgina d'usuari title: Mostra insígnia de personal @@ -498,21 +495,21 @@ ca: desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML title: Descripció ampliada del lloc site_short_description: - desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodont i què fa que aquest servidor sigui especial. Si està buit, s'estableix per defecte la descripció del servidor. + desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. title: Descripció curta del servidor site_terms: desc_html: Pots escriure la teva pròpia política de privadesa, els termes del servei o d'altres normes legals. Pots utilitzar etiquetes HTML title: Termes del servei personalitzats site_title: Nom del servidor spam_check_enabled: - desc_html: Mastodont pot auto-silenciar i informar automàticament de comptes basat en mesures com ara la detecció de comptes que envien missatges repetits no sol·licitats. Pot haver-hi falsos positius. + desc_html: Mastodon pot informar automàticament de comptes que envien repetits missatges no sol·licitats. Pot haver-hi falsos positius. title: Anti-spam thumbnail: desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px title: Miniatura del servidor timeline_preview: - desc_html: Mostra la cronología pública a la pàgina inicial - title: Vista prèvia de la cronología + desc_html: Mostra l'enllaç a la línia de temps pública a la pàgina inicial i permet l'accés a l'API a la línia de temps pública sense autenticació + title: Permet l'accés no autenticat a la línia de temps pública title: Configuració del lloc trendable_by_default: desc_html: Afecta a les etiquetes que no s'havien rebutjat prèviament @@ -578,7 +575,7 @@ ca: remove: Desvincula l'àlies appearance: advanced_web_interface: Interfície web avançada - advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, cronología federada i qualsevol número de llistes i etiquetes.' + advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, línia de temps federada i qualsevol número de llistes i etiquetes.' animations_and_accessibility: Animacions i accessibilitat confirmation_dialogs: Diàlegs de confirmació discovery: Descobriment @@ -611,9 +608,9 @@ ca: delete_account: Suprimeix el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. description: - prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodont!" - prefix_sign_up: Registra't avui a Mastodont! - suffix: Amb un compte seràs capaç de seguir persones, publicar i intercanviar missatges amb usuaris de qualsevol servidor de Mastodont i més! + prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodon!" + prefix_sign_up: Registra't avui a Mastodon! + suffix: Amb un compte seràs capaç de seguir persones, publicar i intercanviar missatges amb usuaris de qualsevol servidor de Mastodon i més! didnt_get_confirmation: No has rebut el correu de confirmació? forgot_password: Has oblidat la contrasenya? invalid_reset_password_token: L'enllaç de restabliment de la contrasenya no és vàlid o ha caducat. Torna-ho a provar. @@ -709,7 +706,7 @@ ca: content: Ho sentim, però alguna cosa ha fallat a la nostra banda. title: Aquesta pàgina no es correcta '503': La pàgina no podria ser servida a causa d'un error temporal del servidor. - noscript_html: Per a utilitzar Mastodont, activa el JavaScript. També pots provar una de les aplicacions natives de Mastodont per a la vostra plataforma. + noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les aplicacions natives de Mastodon per a la teva plataforma. existing_username_validator: not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari not_found_multiple: no s'ha pogut trobar %{usernames} @@ -717,7 +714,7 @@ ca: archive_takeout: date: Data download: Baixa l’arxiu - hint_html: Pots sol·licitar un arxiu de les teves barritades i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies. + hint_html: Pots sol·licitar un arxiu dels teus tuts i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies. in_progress: S'està compilant el teu arxiu... request: Sol·licita el teu arxiu size: Mida @@ -731,12 +728,12 @@ ca: add_new: Afegir nova errors: limit: Ja has mostrat la quantitat màxima d'etiquetes - hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per les teves publicacions amb aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini." + hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per les teves publicacions gràcies a aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini." filters: contexts: - home: Cronología d'inici + home: Línia de temps Inici notifications: Notificacions - public: Cronologíes públiques + public: Línies de temps públiques thread: Converses edit: title: Editar filtre @@ -748,7 +745,7 @@ ca: empty: No hi tens cap filtre. title: Filtres new: - title: Afegeix un filtre + title: Afegeix un nou filtre footer: developers: Desenvolupadors more: Més… @@ -776,11 +773,11 @@ ca: invalid_token: Els tokens de Keybase són hashs de signatures i han de tenir 66 caràcters hexadecimals verification_failed: Keybase no reconeix aquest token com a signatura del usuari de Keybase %{kb_username}. Si us plau prova des de Keybase. wrong_user: No es pot crear una prova per a %{proving} mentre es connectava com a %{current}. Inicia sessió com a %{proving} i prova de nou. - explanation_html: Aquí pots connectar criptogràficament les teves altres identitats com ara el teu perfil de Keybase. Això permet que altres persones t'envïin missatges xifrats i confiar en el contingut que els hi envies. + explanation_html: Aquí pots connectar criptogràficament les teves altres identitats com ara el teu perfil de Keybase. Això permet que altres persones t'enviïn missatges xifrats i confiar en el contingut que els hi envies. i_am_html: Sóc %{username} a %{service}. identity: Identitat inactive: Inactiu - publicize_checkbox: 'I barrita això:' + publicize_checkbox: 'I envia un tut d''això:' publicize_toot: 'Està provat! Sóc %{username} a %{service}: %{url}' status: Estat de verificació view_proof: Veure la prova @@ -829,7 +826,7 @@ ca: images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges too_many: No es poden adjuntar més de 4 fitxers migrations: - acct: usuari@domini del nou compte + acct: Mogut a cancel: Cancel·la redirecció cancel_explanation: Cancel·lant la redirecció reactivará el teu compte actual però no recuperarà els seguidors que han estat moguts a aquell compte. cancelled_msg: Redirecció cancel·lada amb èxit. @@ -838,7 +835,7 @@ ca: missing_also_known_as: no fa referencia a aquest compte move_to_self: no pot ser el compte actual not_found: podria no ser trobat - on_cooldown: Estàs en temps de recuperació + on_cooldown: Estàs en temps de refredament followers_count: Seguidors en el moment del moviment incoming_migrations: Movent des d'un compte diferent incoming_migrations_html: Per a moure't des d'un altre compte a aquest, primer necessites crear un àlies de compte. @@ -863,7 +860,7 @@ ca: notification_mailer: digest: action: Mostra totes les notificacions - body: Un resum del que et vas perdre desde la darrera visita el %{since} + body: Un resum del que et vas perdre des de la darrera visita el %{since} mention: "%{name} t'ha mencionat en:" new_followers_summary: one: A més, has adquirit un nou seguidor durant la teva absència! Visca! @@ -928,7 +925,7 @@ ca: preferences: other: Altre posting_defaults: Valors predeterminats de publicació - public_timelines: Cronologíes públiques + public_timelines: Línies de temps públiques relationships: activity: Activitat del compte dormant: Inactiu @@ -946,7 +943,7 @@ ca: status: Estat del compte remote_follow: acct: Escriu el teu usuari@domini des del qual vols seguir - missing_resource: No s'ha pogut trobar la URL de redirecció necessaria per al compte + missing_resource: No s'ha pogut trobar la URL de redirecció necessària per al compte no_account_html: No tens cap compte? Pots registrar-te aquí proceed: Comença a seguir prompt: 'Seguiràs a:' @@ -954,16 +951,16 @@ ca: remote_interaction: favourite: proceed: Procedir a afavorir - prompt: 'Vols marcar com a favorit aquesta barritada:' + prompt: 'Vols marcar com a favorit aquest tut:' reblog: proceed: Procedir a impulsar - prompt: 'Vols impulsar aquesta barritada:' + prompt: 'Vols impulsar aquest tut:' reply: proceed: Procedir a respondre - prompt: 'Vols respondre a aquesta barritada:' + prompt: 'Vols respondre a aquest tut:' scheduled_statuses: - over_daily_limit: Has superat el límit de %{limit} barritades programades per a aquell dia - over_total_limit: Has superat el limit de %{limit} barritades programades + over_daily_limit: Has superat el límit de %{limit} tuts programats per a aquell dia + over_total_limit: Has superat el limit de %{limit} tuts programats too_soon: La data programada ha de ser futura sessions: activity: Última activitat @@ -988,7 +985,7 @@ ca: weibo: Weibo current_session: Sessió actual description: "%{browser} de %{platform}" - explanation: Aquests són els navegadors web que actualment han iniciat la sessió amb el teu compte de Mastodont. + explanation: Aquests són els navegadors web que actualment han iniciat la sessió amb el teu compte de Mastodon. ip: IP platforms: adobe_air: Adobe Air @@ -1012,7 +1009,7 @@ ca: aliases: Àlies de compte appearance: Aparença authorized_apps: Aplicacions autoritzades - back: Torna a Mastodont + back: Torna a Mastodon delete: Eliminació del compte development: Desenvolupament edit_profile: Edita el perfil @@ -1047,9 +1044,9 @@ ca: open_in_web: Obre en la web over_character_limit: Límit de caràcters de %{max} superat pin_errors: - limit: Ja has fixat el màxim nombre de barritades - ownership: No es pot fixar la barritada d'altra persona - private: No es pot fixar la barritada no pública + limit: Ja has fixat el màxim nombre de tuts + ownership: No es pot fixar el tut d'algú altre + private: No es pot fixar un tut no públic reblog: No es pot fixar un impuls poll: total_people: @@ -1068,7 +1065,7 @@ ca: public: Públic public_long: Tothom pot veure-ho unlisted: No llistat - unlisted_long: Tothom ho pot veure, però no es mostra en la cronología federada + unlisted_long: Tothom ho pot veure, però no es mostra en les línies de temps públiques stream_entries: pinned: Tut fixat reblogged: ha impulsat @@ -1175,23 +1172,23 @@ ca: enabled_success: Autenticació de dos factors activada correctament generate_recovery_codes: Genera codis de recuperació instructions_html: "Escaneja aquest codi QR desde Google Authenticator o una aplicació similar del teu telèfon. Desde ara, aquesta aplicació generarà tokens que tens que ingresar quan volguis iniciar sessió." - lost_recovery_codes: Els codis de recuperació et permeten recuperar l'accés al teu compte si perds el telèfon. Si has perdut els codis de recuperació els pots tornar a generar aquí. Els codis de recuperació anteriors s'anul·laran. - manual_instructions: 'Si no pots escanejar el codi QR code i necessites introduir-lo manualment, aquí tens el secret en text pla:' + lost_recovery_codes: Els codis de recuperació et permeten recuperar l'accés al teu compte si perds el telèfon. Si has perdut els codis de recuperació els pots tornar a generar aquí. S'anul·laran els codis de recuperació anteriors. + manual_instructions: 'Si no pots escanejar el codi QR i necessites introduir-lo manualment, aquí tens el secret en text pla:' recovery_codes: Codis de recuperació de còpia de seguretat recovery_codes_regenerated: Codis de recuperació regenerats amb èxit - recovery_instructions_html: Si mai perds l'accéss al teu telèfon pots utilitzar un dels codis de recuperació a continuació per a recuperar l'accés al teu compte. Cal mantenir els codis de recuperació en lloc segur. Per exemple, imprimint-los i guardar-los amb altres documents importants. + recovery_instructions_html: Si mai perds l'accés al teu telèfon pots utilitzar un dels codis de recuperació a continuació per a recuperar l'accés al teu compte. Cal mantenir els codis de recuperació en lloc segur. Per exemple, imprimint-los i guardar-los amb altres documents importants. setup: Establir wrong_code: El codi introduït no és vàlid! És correcta l'hora del servidor i del dispositiu? user_mailer: backup_ready: - explanation: Has sol·licitat una copia completa del teu compte Mastodont. Ara ja està a punt per descàrrega! + explanation: Has sol·licitat una copia completa del teu compte Mastodon. Ara ja està a punt per a descàrrega! subject: El teu arxiu està preparat per a descàrrega title: Recollida del arxiu warning: explanation: disable: Mentre el teu compte estigui congelat les dades romandran intactes però no pots dur a terme cap acció fins que no estigui desbloquejat. silence: Mentre el teu compte estigui limitat només les persones que ja et segueixen veuen les teves dades en aquest servidor i pots ser exclòs de diverses llistes públiques. No obstant això, d'altres encara poden seguir-te manualment. - suspend: El teu compte s'ha suspès i totes les teves barritades i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidores. + suspend: El teu compte s'ha suspès i tots els teus tuts i fitxers multimèdia penjats s'han eliminat de manera irreversible d'aquest servidor i dels servidors on tenies seguidors. get_in_touch: Pots respondre a aquest correu electrònic per a contactar amb el personal de %{instance}. review_server_policies: Revisa les polítiques del servidor statuses: 'Concretament, per:' @@ -1215,11 +1212,11 @@ ca: full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor. review_preferences_action: Canviar preferències review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. - subject: Et donem la benvinguda a Mastodont - tip_federated_timeline: La cronología federada és el cabal principal de la xarxa Mastodont. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. + subject: Et donem la benvinguda a Mastodon + tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està completa. tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! - tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodont a la teva pantalla d'inici, podràs rebre notificacions d'empènyer "push". Es comporta com una aplicació nativa en molts aspectes! + tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes! tips: Consells title: Benvingut a bord, %{name}! users: @@ -1230,5 +1227,5 @@ ca: seamless_external_login: Has iniciat sessió via un servei extern per tant els ajustos de contrasenya i correu electrònic no estan disponibles. signed_in_as: 'Sessió iniciada com a:' verification: - explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodont. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' + explanation_html: 'Pots verificar-te com a propietari dels enllaços a les metadades del teu perfil. Per això, el lloc web enllaçat ha de contenir un enllaç al teu perfil de Mastodon. El vincle ha de tenir l''atribut rel="me". El contingut del text de l''enllaç no importa. Aquí tens un exemple:' verification: Verificació diff --git a/config/locales/co.yml b/config/locales/co.yml index 4cc1ed5fb..b21fc8d15 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -344,9 +344,6 @@ co: create: Creà un blucchime title: Nova iscrizzione nant’a lista nera e-mail title: Lista nera e-mail - followers: - back_to_account: Rivene à u Contu - title: Abbunati à %{acct} instances: by_domain: Duminiu delivery_available: Rimessa dispunibule diff --git a/config/locales/cs.yml b/config/locales/cs.yml index a9b101758..547468e50 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -354,9 +354,6 @@ cs: create: Přidat doménu title: Nová položka pro černou listinu e-mailů title: Černá listina e-mailů - followers: - back_to_account: Zpět na účet - title: Sledující uživatele %{acct} instances: by_domain: Doména delivery_available: Doručení je k dispozici diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 5e63f1702..ee8807d20 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -359,13 +359,11 @@ cy: delete: Dileu destroyed_msg: Llwyddwyd i ddileu parth e-bost o'r gosbrestr domain: Parth + empty: Dim parthiau ebost ar y rhestr rhwystro. new: create: Ychwanegu parth title: Cofnod newydd yng nghosbrestr e-byst title: Cosbrestr e-bost - followers: - back_to_account: Nôl i'r gyfrif - title: Dilynwyr %{acct} instances: by_domain: Parth delivery_available: Mae'r cyflenwad ar gael @@ -776,6 +774,7 @@ cy: invalid_irreversible: Mae hidlo anadferadwy ond yn gweithio yng nghyd-destun cartref neu hysbysiadau index: delete: Dileu + empty: Nid oes gennych chi hidlyddion. title: Hidlyddion new: title: Ychwanegu hidlydd newydd @@ -967,6 +966,7 @@ cy: duration_too_long: yn rhy bell yn y dyfodol duration_too_short: yn rhy fuan expired: Mae'r pleidlais wedi gorffen yn barod + invalid_choice: Nid yw'r dewis pleidlais hyn yn bodoli over_character_limit: ni all fod yn hirach na %{max} cymeriad yr un too_few_options: rhaid cael fwy nag un eitem too_many_options: ni all cynnwys fwy na %{max} o eitemau diff --git a/config/locales/da.yml b/config/locales/da.yml index e20496918..1cdf7722e 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -335,9 +335,6 @@ da: create: Tilføj domæne title: Ny email blokade opslag title: Email sortliste - followers: - back_to_account: Tilbage til konto - title: "%{acct}'s følgere" instances: by_domain: Domæne delivery_available: Levering er tilgængelig diff --git a/config/locales/de.yml b/config/locales/de.yml index 9361ad4f3..99e75d15f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -344,9 +344,6 @@ de: create: Blockade erstellen title: Neue E-Mail-Domain-Blockade title: E-Mail-Domain-Blockade - followers: - back_to_account: Zurück zum Konto - title: "%{acct}'s Follower" instances: by_domain: Domain delivery_available: Zustellung funktioniert @@ -921,6 +918,7 @@ de: duration_too_long: ist zu weit in der Zukunft duration_too_short: ist zu früh expired: Die Umfrage ist bereits vorbei + invalid_choice: Die gewählte Stimmenoption existiert nicht over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein too_few_options: muss mindestens einen Eintrag haben too_many_options: kann nicht mehr als %{max} Einträge beinhalten diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 204ac429b..49c7cade9 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -38,6 +38,7 @@ ar: application: تطبيق callback_url: رابط رد النداء delete: حذف + empty: ليس لديك أية تطبيقات. name: التسمية new: تطبيق جديد scopes: المجالات diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index db6eb1e51..5c54b5353 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -27,6 +27,7 @@ ast: help: native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales index: + empty: Nun tienes aplicaciones. name: Nome new: Aplicación nueva scopes: Ámbitos diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index 3c69cf8e7..3de9d4bab 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -38,6 +38,7 @@ ca: application: Aplicació callback_url: URL de retorn delete: Suprimeix + empty: No tens cap aplicació. name: Nom new: Aplicació nova scopes: Àmbits diff --git a/config/locales/doorkeeper.co.yml b/config/locales/doorkeeper.co.yml index a64a07931..4f03c0c32 100644 --- a/config/locales/doorkeeper.co.yml +++ b/config/locales/doorkeeper.co.yml @@ -38,6 +38,7 @@ co: application: Applicazione callback_url: URL di richjama delete: Toglie + empty: Ùn avete micca d'applicazione. name: Nome new: Applicazione nova scopes: Scopi diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index 8c5c175f5..00345db76 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -38,6 +38,7 @@ cs: application: Aplikace callback_url: Zpáteční URL delete: Smazat + empty: Nemáte žádné aplikace. name: Název new: Nová aplikace scopes: Rozsahy diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 65fb2de88..8b850b56a 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -38,6 +38,7 @@ de: application: Anwendung callback_url: Callback-URL delete: Löschen + empty: Du hast keine Anwendungen. name: Name new: Neue Anwendung scopes: Befugnisse diff --git a/config/locales/doorkeeper.el.yml b/config/locales/doorkeeper.el.yml index d4bf0ae77..7423606d4 100644 --- a/config/locales/doorkeeper.el.yml +++ b/config/locales/doorkeeper.el.yml @@ -38,6 +38,7 @@ el: application: Εφαρμογή callback_url: URL επιστροφής (Callback) delete: Διαγραφή + empty: Δεν έχετε αιτήσεις. name: Όνομα new: Νέα εφαρμογή scopes: Εύρος εφαρμογής diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml index cb12d0e82..89a579ae9 100644 --- a/config/locales/doorkeeper.eo.yml +++ b/config/locales/doorkeeper.eo.yml @@ -38,6 +38,7 @@ eo: application: Aplikaĵo callback_url: Revena URL delete: Forigi + empty: Vi havas neniun aplikaĵon. name: Nomo new: Nova aplikaĵo scopes: Ampleksoj diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml index 61b14ba16..85ab7729d 100644 --- a/config/locales/doorkeeper.es-AR.yml +++ b/config/locales/doorkeeper.es-AR.yml @@ -38,6 +38,7 @@ es-AR: application: Aplicación callback_url: Dirección web de respuesta ("callback") delete: Eliminar + empty: No tenés aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 75a04eccf..61e6cb6a1 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -38,6 +38,7 @@ es: application: Aplicación callback_url: URL de callback delete: Eliminar + empty: No tienes aplicaciones. name: Nombre new: Nueva aplicación scopes: Ámbitos @@ -139,7 +140,7 @@ es: write:accounts: modifica tu perfil write:blocks: bloquear cuentas y dominios write:bookmarks: guardar estados como marcadores - write:favourites: estados favoritos + write:favourites: toots favoritos write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml index 8fb944631..d3b011a67 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -38,6 +38,7 @@ et: application: Rakendus callback_url: Ümbersuunamise URL delete: Kustuta + empty: Teil pole rakendusi. name: Nimi new: Uus rakendus scopes: Ulatused diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml index 19cc40992..07fc13983 100644 --- a/config/locales/doorkeeper.eu.yml +++ b/config/locales/doorkeeper.eu.yml @@ -38,6 +38,7 @@ eu: application: Aplikazioa callback_url: Itzulera URLa delete: Ezabatu + empty: Ez duzu aplikaziorik. name: Izena new: Aplikazio berria scopes: Irismena diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml index 03a8d7963..c9ca1895e 100644 --- a/config/locales/doorkeeper.fa.yml +++ b/config/locales/doorkeeper.fa.yml @@ -38,6 +38,7 @@ fa: application: برنامه callback_url: نشانی Callback delete: حذف + empty: شما هیچ برنامه‌ای ندارید. name: نام new: برنامهٔ تازه scopes: دامنه‌ها diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 11bbe8cf1..e9bf70cd2 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -38,6 +38,7 @@ fr: application: Application callback_url: URL de retour d’appel delete: Effacer + empty: Vous n’avez pas d’application. name: Nom new: Nouvelle application scopes: Permissions diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 9cb5d754c..7a33802d4 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -3,10 +3,10 @@ gl: activerecord: attributes: doorkeeper/application: - name: Nome do aplicativo + name: 'Aplicación: %{name}' redirect_uri: URI a redireccionar scopes: Permisos - website: Sitio web do aplicativo + website: Sitio web da aplicación errors: models: doorkeeper/application: @@ -27,31 +27,32 @@ gl: confirmations: destroy: Está segura? edit: - title: Editar aplicativo + title: Editar aplicación form: - error: Eeeeepa! Comprobe os posibles erros no formulario + error: Eeeeepa! Comproba os posibles erros no formulario help: - native_redirect_uri: Utilice %{native_redirect_uri} para probas locais - redirect_uri: Utilice unha liña por URI - scopes: Separar permisos con espazos. Deixar en blanco para utilizar os permisos por omisión. + native_redirect_uri: Utiliza %{native_redirect_uri} para probas locais + redirect_uri: Utiliza unha liña por URI + scopes: Separar permisos con espazos. Deixar en branco para utilizar os permisos por omisión. index: - application: Aplicativo + application: Aplicación callback_url: URL de chamada delete: Eliminar + empty: Non tes aplicacións. name: Nome - new: Novo aplicativo - scopes: Permisos + new: Nova aplicación + scopes: Ámbitos show: Mostrar - title: Os seus aplicativos + title: As túas aplicacións new: - title: Novo aplicativo + title: Nova aplicación show: actions: Accións application_id: Chave do cliente callback_urls: URLs de chamada - scopes: Permisos - secret: Chave secreta do cliente - title: 'Aplicativo: %{name}' + scopes: Ámbitos + secret: Chave segreda do cliente + title: 'Aplicación: %{name}' authorizations: buttons: authorize: Autorizar @@ -60,21 +61,21 @@ gl: title: Algo fallou new: able_to: Poderá - prompt: O aplicativo %{client_name} solicita acceso a súa conta + prompt: A aplicación %{client_name} solicita acceso a túa conta title: Autorización necesaria show: - title: Copie este código de autorización e pégueo no aplicativo. + title: Copia este código de autorización e pégao na aplicación. authorized_applications: buttons: revoke: Retirar autorización confirmations: - revoke: Está segura? + revoke: Estás segura? index: - application: Aplicativo + application: Aplicación created_at: Autorizado date_format: "%d-%m-%Y %H:%M:%S" - scopes: Permisos - title: Os seus aplicativos autorizados + scopes: Ámbitos + title: As túas aplicacións autorizadas errors: messages: access_denied: O propietario do recurso ou o servidor autorizado denegaron a petición. diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index 61e7dd5f1..32709299f 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -38,6 +38,7 @@ hu: application: Alkalmazás callback_url: Callback URL delete: Eltávolítás + empty: Nincsenek alkalmazásaid. name: Név new: Új alkalmazás scopes: Hatáskör diff --git a/config/locales/doorkeeper.id.yml b/config/locales/doorkeeper.id.yml index efaeaae16..840390481 100644 --- a/config/locales/doorkeeper.id.yml +++ b/config/locales/doorkeeper.id.yml @@ -38,6 +38,7 @@ id: application: Aplikasi callback_url: URL Callback delete: Hapus + empty: Anda tidak memiliki aplikasi. name: Nama new: Aplikasi baru scopes: Cakupan diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml index 31c4bca9f..0d15479c5 100644 --- a/config/locales/doorkeeper.is.yml +++ b/config/locales/doorkeeper.is.yml @@ -38,6 +38,7 @@ is: application: Forrit callback_url: URL-slóð baksvörunar (callback) delete: Eyða + empty: Þú ert ekki með nein forrit. name: Heiti new: Nýtt forrit scopes: Gildissvið @@ -78,12 +79,22 @@ is: errors: messages: access_denied: Eigandi tilfangs eða auðkenningarþjónn höfnuðu beininni. + credential_flow_not_configured: Flæði á lykilorðsauðkennum eiganda tilfangs (Resource Owner) brást vegna þess að Doorkeeper.configure.resource_owner_from_credentials er óskilgreint. + invalid_client: Auðkenning á biðlara brást vegna þess að biðlarinn er óþekktur, að auðkenning biðlarans fylgdi ekki með, eða að notuð var óstudd auðkenningaraðferð. + invalid_grant: Uppgefin auðkenningarheimild er ógild, útrunnin, afturkölluð, samsvarar ekki endurbirtingarslóðinni í auðkenningarbeiðninni, eða var gefin út til annars biðlara. invalid_redirect_uri: Endurbeiningarslóðin sem fylgdi er ekki gild. + invalid_request: Í beiðnina vantar nauðsynlega færibreytu, hún inniheldur óleyfilegt gildi á færibreytu, eða er gölluð á einhvern annan hátt. + invalid_resource_owner: Uppgefin auðkenni eiganda tilfangs eru ekki gild, eða að eigandi tilfangs finnst ekki invalid_scope: Umbeðið gildissvið er ógilt, óþekkt eða rangt uppsett. invalid_token: expired: Auðkenningarteiknið er útrunnið revoked: Auðkenningarteiknið var aturkallað unknown: Auðkenningarteiknið er ógilt + resource_owner_authenticator_not_configured: Leit að eiganda tilfangs (Resource Owner) brást vegna þess að Doorkeeper.configure.resource_owner_authenticator er óskilgreint. + server_error: Auðkenningarþjónninn rakst á óvænt skilyrði sem kom í veg fyrir að hægt væri að uppfylla beiðnina. + temporarily_unavailable: Auðkenningarþjónninn hefur ekki tök á að meðhöndla beiðnina vegna of mikils tímabundins álags eða viðhalds á vefþvóninum. + unauthorized_client: Biðlaraforritið hefur ekki heimild til að framkvæma beiðnina með þessari aðferð. + unsupported_grant_type: Þessi gerð auðkenningaraðferðar er ekki studd af auðkenningarþjóninum. unsupported_response_type: Auðkenningarþjónninn styður ekki þessa tegund svars. flash: applications: diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml index 122b38c04..68e2b57f3 100644 --- a/config/locales/doorkeeper.it.yml +++ b/config/locales/doorkeeper.it.yml @@ -38,6 +38,7 @@ it: application: Applicazione callback_url: URL di callback delete: Elimina + empty: Non hai applicazioni. name: Nome new: Nuova applicazione scopes: Visibilità diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml index 67eadbf2d..73932bafd 100644 --- a/config/locales/doorkeeper.ja.yml +++ b/config/locales/doorkeeper.ja.yml @@ -38,6 +38,7 @@ ja: application: アプリ callback_url: コールバックURL delete: 削除 + empty: アプリはありません name: 名前 new: 新規アプリ scopes: アクセス権 @@ -125,7 +126,7 @@ ja: read: アカウントのすべてのデータの読み取り read:accounts: アカウント情報の読み取り read:blocks: ブロックの読み取り - read:bookmarks: ブックマークを見る + read:bookmarks: ブックマークの読み取り read:favourites: お気に入りの読み取り read:filters: フィルターの読み取り read:follows: フォローの読み取り diff --git a/config/locales/doorkeeper.kk.yml b/config/locales/doorkeeper.kk.yml index 2c3346b6e..75f8de542 100644 --- a/config/locales/doorkeeper.kk.yml +++ b/config/locales/doorkeeper.kk.yml @@ -38,6 +38,7 @@ kk: application: Қосымша callback_url: Callbаck URL delete: Өшіру + empty: Сізде ешқандай қосымша жоқ. name: Аты new: Жаңа қосымша scopes: Scopеs diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml index 3f9e12857..6f4192ebe 100644 --- a/config/locales/doorkeeper.ko.yml +++ b/config/locales/doorkeeper.ko.yml @@ -38,6 +38,7 @@ ko: application: 애플리케이션 callback_url: 콜백 URL delete: 삭제 + empty: 어플리케이션이 없습니다. name: 이름 new: 새 애플리케이션 scopes: 범위 diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml index 215c8795d..90d8f9358 100644 --- a/config/locales/doorkeeper.pt-BR.yml +++ b/config/locales/doorkeeper.pt-BR.yml @@ -38,6 +38,7 @@ pt-BR: application: Aplicativos callback_url: Link de retorno delete: Excluir + empty: Não tem aplicações. name: Nome new: Novo aplicativo scopes: Autorizações diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml index e23310a18..2433f23e9 100644 --- a/config/locales/doorkeeper.pt-PT.yml +++ b/config/locales/doorkeeper.pt-PT.yml @@ -38,6 +38,7 @@ pt-PT: application: Aplicações callback_url: URL de retorno delete: Eliminar + empty: Não tem aplicações. name: Nome new: Nova Aplicação scopes: Autorizações diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml index f04a1306d..532e2c9ac 100644 --- a/config/locales/doorkeeper.ru.yml +++ b/config/locales/doorkeeper.ru.yml @@ -38,6 +38,7 @@ ru: application: Приложение callback_url: Callback URL delete: Удалить + empty: У вас нет созданных приложений. name: Название new: Новое приложение scopes: Разрешения diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index af98020c1..d9367ce5e 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -38,6 +38,7 @@ sv: application: Applikation callback_url: Återkalls URL delete: Ta bort + empty: Du har inga program. name: Namn new: Ny applikation scopes: Omfattning diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml index 33d6944f0..597a65038 100644 --- a/config/locales/doorkeeper.th.yml +++ b/config/locales/doorkeeper.th.yml @@ -36,6 +36,7 @@ th: application: แอปพลิเคชัน callback_url: URL เรียกกลับ delete: ลบ + empty: คุณไม่มีแอปพลิเคชัน name: ชื่อ new: แอปพลิเคชันใหม่ scopes: ขอบเขต diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index b4362f2a2..a218e3157 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -38,6 +38,7 @@ tr: application: Uygulama callback_url: Geri Dönüş URL delete: Sil + empty: Hiç uygulamanız yok. name: İsim new: Yeni uygulama scopes: Kapsam diff --git a/config/locales/el.yml b/config/locales/el.yml index 97ae2bd6c..53d475523 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -339,13 +339,11 @@ el: delete: Διαγραφή destroyed_msg: Επιτυχής διαγραφή email τομέα από τη μαύρη λίστα domain: Τομέας + empty: Δεν έχουν οριστεί αποκλεισμένοι τομείς email. new: create: Πρόσθεση τομέα title: Νέα εγγραφή email στη μαύρη λίστα title: Μαύρη λίστα email - followers: - back_to_account: Επιστροφή στον λογαριασμό - title: Ακόλουθοι του/της %{acct} instances: by_domain: Τομέας delivery_available: Διαθέσιμη παράδοση @@ -920,6 +918,7 @@ el: duration_too_long: είναι πολύ μακριά στο μέλλον duration_too_short: είναι πολύ σύντομα expired: Η ψηφοφορία έχει ήδη λήξει + invalid_choice: Αυτή η επιλογή ψήφου δεν υπάρχει over_character_limit: δε μπορεί να υπερβαίνει τους %{max} χαρακτήρες έκαστη too_few_options: πρέπει να έχει περισσότερες από μια επιλογές too_many_options: δεν μπορεί να έχει περισσότερες από %{max} επιλογές diff --git a/config/locales/eo.yml b/config/locales/eo.yml index f9374272f..fb4d5c8be 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -11,6 +11,7 @@ eo: apps: Poŝtelefonaj aplikaĵoj apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn browse_directory: Esplori profilujo kaj filtri per interesoj + browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon contact: Kontakti contact_missing: Ne elektita @@ -267,6 +268,7 @@ eo: features: Funkcioj hidden_service: Federacio kun kaŝitaj servoj open_reports: nesolvitaj signaloj + pending_tags: kradvortoj atendantaj revizion pending_users: uzantoj atendantaj revizion recent_users: Lastatempaj uzantoj search: Tutteksta serĉado @@ -333,9 +335,6 @@ eo: create: Aldoni domajnon title: Nova blokado de retadresa domajno title: Nigra listo de retadresaj domajnoj - followers: - back_to_account: Reen al la konto - title: Sekvantoj de %{acct} instances: by_domain: Domajno delivery_available: Liverado disponeblas diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index da1ad126f..47b0ff41d 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -344,9 +344,6 @@ es-AR: create: Agregar dominio title: Nueva desaprobación de correo electrónico title: Desaprobación de correo electrónico - followers: - back_to_account: Volver a la cuenta - title: Seguidores de %{acct} instances: by_domain: Dominio delivery_available: La entrega está disponible @@ -375,6 +372,8 @@ es-AR: title: Invitaciones pending_accounts: title: Cuentas pendientes (%{count}) + relationships: + title: Relaciones de %{acct} relays: add_new: Agregar nuevo relé delete: Eliminar @@ -934,6 +933,7 @@ es-AR: dormant: Inactivas followers: Seguidores following: Siguiendo + invited: Invitado last_active: Última actividad most_recent: Más reciente moved: Mudada diff --git a/config/locales/es.yml b/config/locales/es.yml index 113ea3672..719c388d7 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -7,7 +7,7 @@ es: active_count_after: activo active_footnote: Usuarios Activos Mensuales (UAM) administered_by: 'Administrado por:' - api: API + api: Interfaz de Programación de la Aplicación apps: Aplicaciones móviles apps_platforms: Utiliza Mastodonte desde iOS, Android y otras plataformas browse_directory: Navega por el directorio de perfiles y filtra por intereses @@ -344,9 +344,6 @@ es: create: Añadir dominio title: Nueva entrada en la lista negra de correo title: Lista negra de correo - followers: - back_to_account: Volver a la cuenta - title: Seguidores de %{acct} instances: by_domain: Dominio delivery_available: Entrega disponible @@ -375,6 +372,8 @@ es: title: Invitaciones pending_accounts: title: Cuentas pendientes (%{count}) + relationships: + title: Relaciones de %{acct} relays: add_new: Añadir un nuevo relés delete: Borrar @@ -486,7 +485,7 @@ es: open: Cualquiera puede registrarse title: Modo de registros show_known_fediverse_at_about_page: - desc_html: Cuando esté desactivado, mostrará solamente la cronología local, y no la federada + desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales. title: Mostrar fediverso conocido en la vista previa de la cronología show_staff_badge: desc_html: Mostrar un parche de staff en la página de un usuario @@ -587,7 +586,7 @@ es: guide_link: https://es.crowdin.com/project/mastodon guide_link_text: Todos pueden contribuir. sensitive_content: Contenido sensible - toot_layout: Diseño para barritar + toot_layout: Diseño de los toots application_mailer: notification_preferences: Cambiar preferencias de correo electrónico salutation: "%{name}," @@ -780,7 +779,7 @@ es: i_am_html: Soy %{username} en %{service}. identity: Identidad inactive: Inactivo - publicize_checkbox: 'Y barrite esto:' + publicize_checkbox: 'Y tootee esto:' publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}" status: Estado de la verificación view_proof: Ver prueba @@ -934,6 +933,7 @@ es: dormant: Inactivo followers: Seguidores following: Siguiendo + invited: Invitado last_active: Última actividad most_recent: Más reciente moved: Movido @@ -954,16 +954,16 @@ es: remote_interaction: favourite: proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorito este bramido:' + prompt: 'Quieres marcar como favorito este toot:' reblog: - proceed: Proceder a rebarritar - prompt: 'Quieres rebarritar este bramido:' + proceed: Proceder a retootear + prompt: 'Quieres retootear este toot:' reply: proceed: Proceder a responder - prompt: 'Quieres responder a este bramido:' + prompt: 'Quieres responder a este toot:' scheduled_statuses: - over_daily_limit: Ha superado el límite de %{limit} bramidos programados para ese día - over_total_limit: Ha superado el límite de %{limit} bramidos programados + over_daily_limit: Ha superado el límite de %{limit} toots programados para ese día + over_total_limit: Ha superado el límite de %{limit} toots programados too_soon: La fecha programada debe estar en el futuro sessions: activity: Última actividad @@ -1190,8 +1190,8 @@ es: warning: explanation: disable: Mientras su cuenta esté congelada, la información de su cuenta permanecerá intacta, pero no puede realizar ninguna acción hasta que se desbloquee. - silence: Mientras su cuenta está limitada, sólo las personas que ya le están siguiendo verán sus bramidos en este servidor, y puede que se le excluya de varios listados públicos. Sin embargo, otros pueden seguirle manualmente. - suspend: Su cuenta ha sido suspendida, y todos tus bramidos y tus archivos multimedia subidos han sido irreversiblemente eliminados de este servidor, y de los servidores donde tenías seguidores. + silence: Mientras su cuenta está limitada, sólo las personas que ya le están siguiendo verán sus toots en este servidor, y puede que se le excluya de varios listados públicos. Sin embargo, otros pueden seguirle manualmente. + suspend: Su cuenta ha sido suspendida, y todos tus toots y tus archivos multimedia subidos han sido irreversiblemente eliminados de este servidor, y de los servidores donde tenías seguidores. get_in_touch: Puede responder a esta dirección de correo electrónico para ponerse en contacto con el personal de %{instance}. review_server_policies: Revisar las políticas del servidor statuses: 'Específicamente, para:' diff --git a/config/locales/et.yml b/config/locales/et.yml index 16e80ae35..8969cae0d 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -347,9 +347,6 @@ et: create: Lisa domeen title: Uus e-posti keelunimekirja sisend title: E-posti keelunimekiri - followers: - back_to_account: Tagasi minu kontole - title: "%{acct}-i jälgijad" instances: by_domain: Domeen delivery_available: Üleandmine on saadaval @@ -378,6 +375,8 @@ et: title: Kutsed pending_accounts: title: Ootel olevad kasutajad (%{count}) + relationships: + title: "%{acct}-i suhted" relays: add_new: Lisa uus relee delete: Kustuta @@ -937,6 +936,7 @@ et: dormant: Seisev followers: Jälgijad following: Jälgib + invited: Kutsutud last_active: Viimati aktiivne most_recent: Viimased moved: Kolinud diff --git a/config/locales/eu.yml b/config/locales/eu.yml index bfa91beb8..999772cfe 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -344,9 +344,6 @@ eu: create: Gehitu domeinua title: Sarrera berria e-mail zerrenda beltzean title: E-mail zerrenda beltza - followers: - back_to_account: Itzuli kontura - title: "%{acct} kontuaren jarraitzaileak" instances: by_domain: Domeinua delivery_available: Bidalketa eskuragarri dago @@ -921,6 +918,7 @@ eu: duration_too_long: etorkizunean urrunegi dago duration_too_short: goizegi da expired: Inkesta amaitu da jada + invalid_choice: Hautatutako boto aukera ez da existitzen over_character_limit: bakoitzak gehienez %{max} karaktere izan ditzake too_few_options: elementu bat baino gehiago izan behar du too_many_options: ezin ditu %{max} elementu baino gehiago izan diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 81c163f7f..ecf3bc391 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -346,9 +346,6 @@ fa: create: ساختن مسدودسازی title: مسدودسازی دامین ایمیل تازه title: مسدودسازی دامین‌های ایمیل - followers: - back_to_account: بازگشت به حساب - title: پیگیران %{acct} instances: by_domain: دامین delivery_available: پیام آماده است diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 9c8f56889..87e0b177c 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -344,9 +344,6 @@ fr: create: Créer le blocage title: Nouveau blocage de domaine de courriel title: Blocage de domaines de courriel - followers: - back_to_account: Retour au compte - title: Abonné⋅e⋅s de %{acct} instances: by_domain: Domaine delivery_available: Livraison disponible diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 7e8776a5b..f531656b8 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -2,26 +2,26 @@ gl: about: about_hashtag_html: Estes son toots públicos etiquetados con #%{hashtag}. Podes interactuar con eles se tes unha conta nalgures do fediverso. - about_mastodon_html: O Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada coma o correo electrónico! + about_mastodon_html: Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada como o correo electrónico. about_this: Acerca de - active_count_after: activo - active_footnote: Usuarios Activos Mensuais (UAM) - administered_by: 'Administrado por:' + active_count_after: activas + active_footnote: Usuarias Activas no Mes (UAM) + administered_by: 'Administrada por:' api: API apps: Aplicacións móbiles - apps_platforms: Emprega o Mastodon dende iOS, Android e outras plataformas + apps_platforms: Emprega Mastodon dende iOS, Android e outras plataformas browse_directory: Navega polo directorio de perfís e filtra por intereses browse_local_posts: Navega polas publicacións públicas deste servidor en tempo real - browse_public_posts: Navega polas publicacións públicas do Mastodon en tempo real + browse_public_posts: Navega polas publicacións públicas de Mastodon en tempo real contact: Contacto - contact_missing: Non estabelecido + contact_missing: Non establecido contact_unavailable: Non dispoñíbel - discover_users: Descobrir usuarios + discover_users: Descubrir usuarias documentation: Documentación federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alén. get_apps: Probar unha aplicación móbil - hosted_on: O Mastodon está aloxado en %{domain} - instance_actor_flash: 'Esta conta é un actor virtual empregado para representar ó servidor e non a un usuario individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías empregar o bloqueo de dominio. + hosted_on: Mastodon aloxado en %{domain} + instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio. ' learn_more: Saber máis @@ -32,7 +32,7 @@ gl: status_count_after: one: estado other: estados - status_count_before: Que escribiron + status_count_before: Que publicaron tagline: Segue ás túas amizades e coñece novas terms: Termos do servizo unavailable_content: Contido non dispoñíbel @@ -40,22 +40,22 @@ gl: domain: Servidor reason: Razón rejecting_media: 'Os ficheiros multimedia deste servidor non serán procesados e non se amosarán miniaturas, o que require un clic manual no ficheiro orixinal:' - silenced: 'As publicacións deste servidor non se amosarán en ningún lugar agás que as sigas:' - suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación cos usuarios dende estes servidores:' - unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar cos seus usuarios. Estas son as excepcións que se estabeleceron neste servidor en particular. + silenced: 'As publicacións deste servidor non se amosarán en conversas e liñas temporais, nin terás notificacións das súas usuarias agás que as sigas:' + suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación coas usuarias dende estes servidores:' + unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular. user_count_after: - one: usuario - other: usuarios + one: usuaria + other: usuarias user_count_before: Fogar de - what_is_mastodon: Que é o Mastodon? + what_is_mastodon: Qué é Mastodon? accounts: - choices_html: 'Suxestións de %{name}:' + choices_html: 'Escollas de %{name}:' endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí. - featured_tags_hint: Podes destacar determinados cancelos (hashtags) que se amosarán aquí. + featured_tags_hint: Podes destacar determinadas etiquetas que se amosarán aquí. follow: Seguir followers: - one: Seguidor - other: Seguidores + one: Seguidora + other: Seguidoras following: Seguindo joined: Uniuse en %{date} last_active: última actividade @@ -74,18 +74,18 @@ gl: other: Toots posts_tab_heading: Toots posts_with_replies: Toots e respostas - reserved_username: O nome de usuario está reservado + reserved_username: O nome de usuaria está reservado roles: - admin: Administrador + admin: Administradora bot: Bot group: Grupo - moderator: Moderador + moderator: Moderadora unavailable: Perfil non dispoñíbel unfollow: Deixar de seguir admin: account_actions: action: Executar acción - title: Executar acción de moderación en %{acct} + title: Executar acción de moderación a %{acct} account_moderation_notes: create: Deixar nota created_msg: Nota de moderación creada de xeito correcto! @@ -94,7 +94,7 @@ gl: accounts: approve: Aprobar approve_all: Aprobar todos - are_you_sure: Estás seguro? + are_you_sure: Está segura? avatar: Imaxe de perfil by_domain: Dominio change_email: @@ -110,7 +110,7 @@ gl: deleted: Eliminado demote: Rebaixar disable: Desactivar - disable_two_factor_authentication: Desactivar dobre factor + disable_two_factor_authentication: Desactivar 2FA disabled: Desactivado display_name: Nome a amosar domain: Dominio @@ -119,13 +119,13 @@ gl: email_status: Estado do email enable: Activar enabled: Activado - followers: Seguidores + followers: Seguidoras follows: Seguindo header: Cabeceira inbox_url: URL da caixa de entrada - invited_by: Convidado por + invited_by: Convidada por ip: IP - joined: Unido + joined: Uniuse location: all: Todo local: Local @@ -135,7 +135,7 @@ gl: media_attachments: Multimedia adxunta memorialize: Converter en lembranza moderation: - active: Activo + active: Activa all: Todo pending: Pendente silenced: Silenciados @@ -159,7 +159,7 @@ gl: remove_avatar: Eliminar imaxe de perfil remove_header: Eliminar cabeceira resend_confirmation: - already_confirmed: Este usuario xa está confirmado + already_confirmed: Esta usuaria xa está confirmada send: Reenviar o email de confirmación success: Email de confirmación enviado de xeito correcto! reset: Restabelecer @@ -170,9 +170,9 @@ gl: admin: Administrador moderator: Moderador staff: Persoal (staff) - user: Usuario + user: Usuaria search: Procurar - search_same_ip: Outros usuarios co mesmo IP + search_same_ip: Outras usuarias co mesmo IP shared_inbox_url: URL da caixa de entrada compartida show: created_reports: Denuncias feitas @@ -188,36 +188,36 @@ gl: undo_silenced: Desfacer silencio undo_suspension: Desfacer suspensión unsubscribe: Desbotar a subscrición - username: Nome de usuario + username: Nome de usuaria warn: Aviso web: Web whitelisted: Listaxe branca action_logs: actions: assigned_to_self_report: "%{name} atribuíu a denuncia %{target} a el mesmo" - change_email_user: "%{name} mudou o enderezo de email do usuario %{target}" - confirm_user: "%{name} confirmou o enderezo de email do usuario %{target}" + change_email_user: "%{name} cambiou o enderezo de correo-e da usuaria %{target}" + confirm_user: "%{name} comfirmou o enderezo de correo da usuaria %{target}" create_account_warning: "%{name} enviou un aviso a %{target}" create_custom_emoji: "%{name} subiu unha nova emoticona %{target}" create_domain_allow: "%{name} engadiu á listaxe branca o dominio %{target}" create_domain_block: "%{name} bloqueou o dominio %{target}" create_email_domain_block: "%{name} engadiu á listaxe negra o dominio de email %{target}" - demote_user: "%{name} rebaixou ó usuario %{target}" + demote_user: "%{name} degradou a usuaria %{target}" destroy_custom_emoji: "%{name} eliminou a emoticona %{target}" destroy_domain_allow: "%{name} eliminou o dominio %{target} da listaxe branca" destroy_domain_block: "%{name} desbloqueou o dominio %{target}" destroy_email_domain_block: "%{name} engadiu á lista branca o dominio de email %{target}" destroy_status: "%{name} eliminou o estado de %{target}" - disable_2fa_user: "%{name} desactivou o requirimento de dobre factor para o usuario %{target}" + disable_2fa_user: "%{name} desactivou o requirimento de dobre factor para a usuaria %{target}" disable_custom_emoji: "%{name} desactivou a emoticona %{target}" - disable_user: "%{name} desactivou o acceso á conta para o usuario %{target}" + disable_user: "%{name} desactivou o acceso á conta para a usuaria %{target}" enable_custom_emoji: "%{name} activou a emoticona %{target}" - enable_user: "%{name} activou o acceso á conta para o usuario %{target}" + enable_user: "%{name} activou o acceso á conta para a usuaria %{target}" memorialize_account: "%{name} converteu a conta de %{target} nunha páxina para a lembranza" - promote_user: "%{name} promocionou o usuario %{target}" + promote_user: "%{name} promoveu a usuaria %{target}" remove_avatar_user: "%{name} eliminou a imaxe de perfil de %{target}" reopen_report: "%{name} reabriu a denuncia %{target}" - reset_password_user: "%{name} restabeleceu o contrasinal do usuario %{target}" + reset_password_user: "%{name} restableceu o contrasinal da usuaria %{target}" resolve_report: "%{name} resolveu a denuncia %{target}" silence_account: "%{name} silenciou a conta de %{target}" suspend_account: "%{name} suspendeu a conta de %{target}" @@ -275,18 +275,18 @@ gl: hidden_service: Federación con servizos agochados open_reports: denuncias abertas pending_tags: cancelos agardando revisión - pending_users: usuarios agardando revisión - recent_users: Usuarios recentes + pending_users: usuarias agardando revisión + recent_users: Usuarias recentes search: Procura por texto completo - single_user_mode: Modo de usuario único + single_user_mode: Modo de usuaria única software: Software space: Uso de almacenamento title: Taboleiro - total_users: usuarios en total + total_users: usuarias en total trends: Tendencias week_interactions: interaccións desta semana week_users_active: activos desta semana - week_users_new: usuarios desta semana + week_users_new: usuarias esta semana whitelist_mode: Modo de listaxe branca domain_allows: add_new: Engadir dominio á listaxe branca @@ -344,9 +344,6 @@ gl: create: Engadir dominio title: Nova entrada na listaxe negra de email title: Listaxe negra de email - followers: - back_to_account: Voltar á conta - title: Seguidores de %{acct} instances: by_domain: Dominio delivery_available: Entrega dispoñíbel @@ -375,94 +372,96 @@ gl: title: Convites pending_accounts: title: Contas pendentes (%{count}) + relationships: + title: Relacións de %{acct} relays: add_new: Engadir un novo repetidor delete: Eliminar description_html: Un repetidor da federación é un servidor intermedio que intercambia grandes volumes de toots públicos entre servidores que se suscriban e publiquen nel. Pode axudar a servidores pequenos e medios a descubrir contido no fediverso, o que de outro xeito precisaría que as usuarias locais seguisen a outra xente en servidores remotos. disable: Desactivar - disabled: Desactivada + disabled: Desactivado enable: Activar - enable_hint: Unha vez activado, o seu servidor suscribirase a todos os toots públicos de este servidor, e tamén comezará a eviar a el os toots públicos do servidor. - enabled: Activada + enable_hint: Unha vez activado, o teu servidor subscribirase a todos os toots públicos deste repetidor, e tamén comezará a enviar a el os toots públicos do servidor. + enabled: Activado inbox_url: URL do repetidor - pending: Agardando polo permiso do repetidor + pending: Agardando pola aprobación do repetidor save_and_enable: Gardar e activar - setup: Configurar a conexión ao repetidor - signatures_not_enabled: Os repetidores non funcionarán correctamente se o modo seguro ou lista branca están activados + setup: Configurar unha conexión ó repetidor + signatures_not_enabled: Os repetidores non funcionarán de xeito correcto se o modo seguro ou listaxe branca están activados status: Estado title: Repetidores report_notes: - created_msg: Creouse correctamente a nota do informe! - destroyed_msg: Nota do informe eliminouse con éxito! + created_msg: A nota da denuncia creouse de xeito correcto! + destroyed_msg: A nota da denuncia borrouse de xeito correcto! reports: account: notes: one: "%{count} nota" other: "%{count} notas" reports: - one: "%{count} informe" - other: "%{count} informes" + one: "%{count} denuncia" + other: "%{count} denuncias" action_taken_by: Acción tomada por - are_you_sure: Está segura? - assign_to_self: Asignarmo + are_you_sure: Estás seguro? + assign_to_self: Asignarme assigned: Moderador asignado - by_target_domain: Dominio da conta sobre a que informa + by_target_domain: Dominio da conta denunciada comment: - none: Nada - created_at: Reportado + none: Ningún + created_at: Denunciado mark_as_resolved: Marcar como resolto mark_as_unresolved: Marcar como non resolto notes: create: Engadir nota - create_and_resolve: Resolver con nota - create_and_unresolve: Voltar a abrir con nota + create_and_resolve: Resolver cunha nota + create_and_unresolve: Reabrir cunha nota delete: Eliminar - placeholder: Describe qué medidas foron tomadas, ou calquer outra información relacionada... - reopen: Voltar a abrir o informe - report: 'Informe #%{id}' - reported_account: Conta reportada - reported_by: Reportada por + placeholder: Describir que accións foron tomadas ou calquera outra novidade sobre esta denuncia... + reopen: Reabrir denuncia + report: 'Denuncia #%{id}' + reported_account: Conta denunciada + reported_by: Denunciado por resolved: Resolto - resolved_msg: Resolveuse con éxito o informe! + resolved_msg: Resolveuse con éxito a denuncia! status: Estado - title: Informes + title: Denuncias unassign: Non asignar unresolved: Non resolto updated_at: Actualizado settings: activity_api_enabled: - desc_html: Conta de estados publicados localmente, usuarias activas, e novos rexistros por semana + desc_html: Conta de estados publicados de xeito local, usuarias activas, e novos rexistros en períodos semanais title: Publicar estatísticas agregadas sobre a actividade da usuaria bootstrap_timeline_accounts: - desc_html: Separar múltiples nomes de usuaria con vírgulas. Só funcionarán as contas locais non bloqueadas. Si baldeiro, por omisión son todos os local admin. - title: Seguimentos por omisión para novas usuarias + desc_html: Separar os múltiples nomes de usuaria con vírgulas. Só funcionarán as contas locais non bloqueadas. Se fica baleiro, serán todos os administradores locais. + title: Seguimentos por defecto para novas contas contact_information: - email: e-mail de traballo + email: Email de negocios username: Nome de usuaria de contacto custom_css: - desc_html: Modificar o aspecto con CSS cargado en cada páxina + desc_html: Modificar a aparencia con CSS cargado en cada páxina title: CSS personalizado default_noindex: desc_html: Aféctalle a todas as usuarias que non cambiaron os axustes elas mesmas title: Por omisión exclúe as usuarias do indexado por servidores de busca domain_blocks: - all: Para todas + all: Para todos disabled: Para ninguén - title: Mostrar dominios bloqueados + title: Amosar dominios bloqueados users: Para usuarias locais conectadas domain_blocks_rationale: - title: Mostrar razón + title: Amosar motivo enable_bootstrap_timeline_accounts: title: Activar seguimentos por omisión para novas usuarias hero: - desc_html: Mostrado na portada. Recoméndase 600x100px como mínimo. Se non se establece, mostrará a imaxe por omisión do servidor - title: Imáxe Heróe + desc_html: Amosado na páxina principal. Polo menos 600x100px recomendados. Se non está definido, estará por defecto a miniatura do servidor + title: Imaxe do heroe mascot: - desc_html: Mostrado en varias páxinas. Recoméndase 293x205 como mínimo. Se non se establece publícase a mascota por omisión + desc_html: Amosado en varias páxinas. Polo menos 293x205px recomendados. Se non está definido, estará a mascota por defecto title: Imaxe da mascota peers_api_enabled: desc_html: Nomes de dominio que este servidor atopou no fediverso - title: Publicar lista de servidores descubertos + title: Publicar listaxe de servidores descobertos preview_sensitive_media: desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles title: Mostrar medios sensibles con vista previa OpenGraph @@ -916,11 +915,11 @@ gl: truncate: "…" polls: errors: - already_voted: Xa votou en esta sondaxe + already_voted: Xa votaches nesta enquisa duplicate_options: contén elementos duplicados duration_too_long: está moi lonxe no futuro duration_too_short: é demasiado cedo - expired: A sondaxe rematou + expired: A enquisa rematou invalid_choice: A opción de voto escollida non existe over_character_limit: non poden ter máis de %{max} caracteres cada unha too_few_options: debe ter máis de unha opción @@ -934,6 +933,7 @@ gl: dormant: En repouso followers: Seguidoras following: Seguindo + invited: Convidado last_active: Último activo most_recent: Máis recente moved: Movida diff --git a/config/locales/hu.yml b/config/locales/hu.yml index ae3cc479c..9f0e2f948 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -341,13 +341,11 @@ hu: delete: Törlés destroyed_msg: E-mail domain sikeresen eltávolítva a feketelistáról domain: Domain + empty: Nincs email domain a feketelistán. new: create: Domain hozzáadása title: Új e-mail feketelista bejegyzés title: E-mail feketelista - followers: - back_to_account: Vissza a fiókhoz - title: "%{acct} követői" instances: by_domain: Domain delivery_available: Kézbesítés elérhető diff --git a/config/locales/id.yml b/config/locales/id.yml index 2a759bc5f..8cdb2f1fc 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -308,6 +308,7 @@ id: private_comment: Komentar pribadi private_comment_hint: Komentar tentang pembatasan domain ini untuk penggunaan internal oleh moderator. public_comment: Komentar publik + public_comment_hint: Komentar tentang pembatasan domain ini untuk publik umum, jika mengiklankan daftar pembatasan domain diaktifkan. reject_media: Tolak berkas media reject_media_hint: Hapus file media yang tersimpan dan menolak semua unduhan nantinya. Tidak terpengaruh dengan suspen reject_reports: Tolak laporan @@ -338,9 +339,6 @@ id: create: Tambah domain title: Entri daftar hitam surel baru title: Daftar hitam surel - followers: - back_to_account: Kembali Ke Akun - title: Pengikut %{acct} instances: by_domain: Domain delivery_available: Pengiriman tersedia @@ -440,6 +438,9 @@ id: all: Kepada semua orang disabled: Tidak kepada siapa pun title: Lihat blokir domain + users: Ke pengguna lokal yang sudah login + domain_blocks_rationale: + title: Tampilkan alasan enable_bootstrap_timeline_accounts: title: Aktifkan opsi ikuti otomatis untuk pengguna baru hero: diff --git a/config/locales/is.yml b/config/locales/is.yml index a4d21deb2..70d6e4e75 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -52,7 +52,7 @@ is: choices_html: "%{name} hefur valið:" endorsements_hint: Þú getur auglýst efni frá fólki sem þú fylgir í vefviðmótinu og mun það birtast hér. featured_tags_hint: Þú getur gefið sérstökum myllumerkjum aukið vægi og birtast þau þá hér. - follow: Fylgja + follow: Fylgjast með followers: one: fylgjandi other: fylgjendur @@ -344,9 +344,6 @@ is: create: Bæta við léni title: Ný færsla á bannlista fyrir tölvupóstföng title: Bannlisti yfir tölvupóstföng - followers: - back_to_account: Til baka í notandaaðgang - title: Fylgjast með %{acct} instances: by_domain: Lén delivery_available: Afhending er til taks @@ -495,7 +492,7 @@ is: desc_html: Kynningarmálsgrein í API. Lýstu því hvað það er sem geri þennan Mastodon-þjón sérstakan, auk annarra mikilvægra upplýsinga. Þú getur notað HTML-einindi, sér í lagi <a> og <em>. title: Lýsing á vefþjóni site_description_extended: - desc_html: góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi + desc_html: Góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi title: Sérsniðnar ítarlegar upplýsingar site_short_description: desc_html: Birt á hliðarspjaldi og í lýsigögnum. Lýstu því hvað Mastodon gerir og hvað það er sem geri þennan vefþjón sérstakan, í einni málsgrein. @@ -645,7 +642,7 @@ is: authorize_follow: already_following: Þú ert að þegar fylgjast með þessum aðgangi error: Því miður, það kom upp villa við að fletta upp fjartengda notandaaðgangnum - follow: Fylgja + follow: Fylgjast með follow_request: 'Þú sendir beiðni um að fylgjast með til:' following: 'Tókst! Þú ert núna að fylgjast með:' post_follow: @@ -731,6 +728,7 @@ is: add_new: Bæta við nýju errors: limit: Þú ert þegar búin/n að gefa hámarksfjölda myllumerkja aukið vægi + hint_html: "Hvað eru myllumerki með aukið vægi? Þau eru birt áberandi á opinbera notandasniðinu þínu og gera fólki kleift að fletta í gegnum opinberu færslurnar þínar sérstaklega undir þessum myllumerkjum. Þau eru frábær aðferð við að halda utan um skapandi vinnu eða langtíma verkefni." filters: contexts: home: Heimatímalína @@ -741,6 +739,7 @@ is: title: Breyta síu errors: invalid_context: Ekkert eða ógilt samhengi var gefið + invalid_irreversible: Óendurkræf síun virkar bara í sambandi við heimasvæði eða tilkynningar index: delete: Eyða empty: Þú ert ekki með neinar síur. @@ -770,6 +769,11 @@ is: authorize_connection_prompt: Auðkenna dulkóðaða tengingu? errors: failed: Dulrituð tenging mistókst, endilega reyndu aftur frá %{provider}. + keybase: + invalid_token: Keybase-teikn eru tætigildi undirritana og verða að vera 66 hex-stafir + verification_failed: Keybase skilur þetta teikn ekki sem undirritun Keybase-notandans %{kb_username}. Prófaðu aftur í Keybase. + wrong_user: Get ekki búið til sannvottun fyrir %{proving} á meðan skráð er inn sem %{current}. Skráðu inn sem %{proving} og prófaðu aftur. + explanation_html: Hér geturðu tengt dulritað önnur auðkenni þín, eins og t.d. Keybase-notandasnið. Þetta gerir öðru fólki kleift að senda þér dulrituð skilaboð og að treysta efni sem þú sendir þeim. i_am_html: Ég er %{username} á %{service}. identity: Auðkenni inactive: Óvirkt @@ -783,10 +787,12 @@ is: merge_long: Halda fyrirliggjandi færslum og bæta við nýjum overwrite: Skrifa yfir overwrite_long: Skipta út fyrirliggjandi færslum með þeim nýju + preface: Þú getur flutt inn gögn sem þú hefur flutt út frá öðrum vefþjóni, svo sem lista yfir fólk sem þú fylgist með eða útilokar. + success: Það tókst að senda inn gögnin þín og verður unnið með þau þegar færi gefst types: blocking: Listi yfir útilokanir domain_blocking: Listi yfir útilokanir léna - following: Listi yfir fylgjendur + following: Listi yfir þá sem fylgst er með muting: Listi yfir þagganir upload: Senda inn in_memoriam_html: Minning. @@ -844,9 +850,11 @@ is: backreference_required: Það verður fyrst að stilla nýja aðganginn til að bakvísa á þennan aðgang before: 'Áður en haldið er áfram, skaltu lesa þessa minnispunkta gaumgæfilega:' cooldown: Eftir yfirfærslu/flutning kemur kælingartímabil á meðan þú getur ekki flutt þig aftur + disabled_account: Núverandi aðgangur þinn verður ekki nothæfur að fullu eftir þetta. Hinsvegar muntu geta flutt út gögn af honum og einnig endurvirkjað hann. followers: Þessi aðgerð mun flytja alla fylgjendur af núverandi aðgangi yfir á nýja aðganginn only_redirect_html: Einnig geturðu einungis sett upp endurbeiningu á notandasniðið þitt. other_data: Engin önnur gögn munu flytjast sjálfvirkt + redirect: Notandasnið aðgangsins verður uppfært með athugasemd um endurbeininguna og verður undanþegið frá leitum moderation: title: Umsjón notification_mailer: @@ -854,6 +862,9 @@ is: action: Skoða allar tilkynningar body: Hér er stutt yfirlit yfir þau skilaboð sem þú gætir hafa misst af síðan þú leist inn síðast %{since} mention: "%{name} minntist á þig í:" + new_followers_summary: + one: Að auki, þú hefur fengið einn nýjan fylgjanda á meðan þú varst fjarverandi! Húh! + other: Að auki, þú hefur fengið %{count} nýja fylgjendur á meðan þú varst fjarverandi! Frábært! subject: one: "1 ný tilkynning síðan þú leist inn síðast \U0001F418" other: "%{count} nýjar tilkynningar síðan þú leist inn síðast \U0001F418" @@ -873,6 +884,9 @@ is: title: Ný beiðni um að fylgjast með mention: action: Svara + body: "%{name} minntist á þig í:" + subject: "%{name} minntist á þig" + title: Ný tilvísun reblog: body: "%{name} endurbirti stöðufærsluna þína:" subject: "%{name} endurbirti stöðufærsluna þína" @@ -904,6 +918,7 @@ is: duration_too_long: er of langt inn í framtíðina duration_too_short: er of snemma expired: Könnuninni er þegar lokið + invalid_choice: Þessi valkostur er ekki til over_character_limit: geta ekki verið lengri en %{max} stafir hvert too_few_options: verður að vera með fleiri en eitt atriði too_many_options: getur ekki innihaldið meira en %{max} atriði @@ -928,8 +943,9 @@ is: status: Staða aðgangs remote_follow: acct: Settu inn notandanafn@lén þaðan sem þú vilt vera virk/ur + missing_resource: Gat ekki fundið endurbeiningarslóðina fyrir notandaaðganginn þinn no_account_html: Ertu ekki með aðgang? Þú getur nýskráð þig hér - proceed: Halda áfram í að fylgja + proceed: Halda áfram í að fylgjast með prompt: 'Þú ætlar að fara að fylgjast með:' reason_html: "Hvers vegna er þetta skref nauðsynlegt? %{instance} er ekki endilega netþjónninn þar sem þú ert skráð/ur, þannig að við verðum að endurbeina þér á heimaþjóninn þinn fyrst." remote_interaction: @@ -998,7 +1014,7 @@ is: development: Þróun edit_profile: Breyta notandasniði export: Útflutningur gagna - featured_tags: Myllumerki í umræðunni + featured_tags: Myllumerki með aukið vægi identity_proofs: Sannanir á auðkenni import: Flytja inn import_and_export: Inn- og útflutningur @@ -1148,21 +1164,32 @@ is: default: "%d. %b, %Y, %H:%M" month: "%b %Y" two_factor_authentication: + code_hint: Settu inn kóðann sem auðkenningarforritið útbjó til staðfestingar + description_html: Ef þú virkjar tvíþátta auðkenningu mun innskráning krefjast þess að þú hafir símann þinn við hendina, með honum þarf að útbúa öryggisteikn sem þú þarft að setja inn. disable: Gera óvirkt enable: Virkja enabled: Tveggja-þátta auðkenning er virk enabled_success: Það tókst að virkja tveggja-þátta auðkenningu generate_recovery_codes: Útbúa endurheimtukóða + instructions_html: "Skannaðu þennar QR-kóða inn í Google Authenticator eða álíka TOTP-forrit á símanum þínum. Héðan í frá mun það forrit útbúa teikn sem þú verður að setja inn til að geta skráð þig inn." + lost_recovery_codes: Endurheimtukóðar gera þér kleift að fá aftur samband við notandaaðganginn þinn ef þú tapar símanum þínum. Ef þú aftur hefur tapað endurheimtukóðunum, geturðu endurgert þá hér. Gömlu endurheimtukóðarnir verða þá ógiltir. + manual_instructions: 'Ef þú getur ekki skannað QR-kóðann og verður að setja hann inn handvirkt, þá er hér leyniorðið á textaformi:' recovery_codes: Kóðar fyrir endurheimtingu öryggisafrits + recovery_codes_regenerated: Það tókst að endurgera endurheimtukóða + recovery_instructions_html: Ef þú tapar símanum þínum geturðu notað einn af endurheimtukóðunum hér fyrir neðan til að fá aftur samband við notandaaðganginn þinn. Geymdu endurheimtukóðana á öruggum stað. Sem dæmi gætirðu prentað þá út og geymt með öðrum mikilvægum skjölum. setup: Setja upp wrong_code: Kóðinn sem þú settir inn er ógildur! Eru klukkur netþjónsins og tækisins réttar? user_mailer: backup_ready: + explanation: Þú baðst um fullt öryggisafrit af Mastodon notandaaðgangnum þínum. Það er núna tilbúið til niðurhals! subject: Safnskráin þín er tilbúin til niðurhals title: Taka út í safnskrá warning: explanation: + disable: Á meðan aðgangurinn þinn er frystur, eru gögn aðgangsins ósnert, en þú getur ekki framkvæmt neinar aðgerðir fyrr en honum hefur verið aflæst. + silence: Á meðan aðgangurinn þinn er takmarkaður, mun aðeins fólk sem þegar fylgist með þér sjá tístin þín á þessum vefþjóni, auk þess sem lokað gæti verið á þig á ýmsum opinberum listum. Aftur á móti geta aðrir gerst fylgjendur þínir handvirkt. suspend: Aðgangurinn þinn hefur verið settur í biðstöðu, öll þín tíst og innsent myndefni hafa verið óafturkræft fjarlægð af þessum vefþjóni, sem og af þeim vefþjónum þar sem þú áttir þér fylgjendur. + get_in_touch: Þú getur svarað þessum tölvupósti til að setja þig í samband við umsjónarmenn %{instance}. review_server_policies: Yfirfara reglur vefþjónsins statuses: 'Sérstaklega fyrir:' subject: @@ -1177,17 +1204,28 @@ is: suspend: Notandaaðgangur í bið welcome: edit_profile_action: Setja upp notandasnið + edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að senda inn auðkennismynd, síðuhaus, breytt birtingarnafninu þínu og ýmislegt fleira. Ef þú vilt yfirfara nýja fylgjendur áður en þeim er leyft að fylgjast með þér geturðu læst aðgangnum þínum. explanation: Hér eru nokkrar ábendingar til að koma þér í gang final_action: Byrjaðu að skrifa + final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni og í myllumerkjum. Þú gætir jafnvel viljað kynna þig með myllumerkinu #introductions.' + full_handle: Fullt auðkenni þitt + full_handle_hint: Þetta er það sem þú myndir gefa upp við vini þína svo þeir geti sent þér skilaboð eða fylgst með þér af öðrum netþjóni. review_preferences_action: Breyta kjörstillingum + review_preferences_step: Gakktu úr skugga um að kjörstillingarnar séu eins og þú vilt hafa þær, eins og t.d. hvaða tölvupóst þú vilt fá, eða hvaða stig friðhelgi þú vilt að færslurnar þínar hafi sjálfgefið. Ef þú hefur ekkert á móti sjónrænu áreiti geturðu virkjað sjálvirka spilun GIF-hreyfimynda. subject: Velkomin í Mastodon + tip_federated_timeline: Sameiginlega tímalínan er færibandasýn á Mastodon netkerfið. En hún inniheldur bara fólk sem nágrannar þínir eru áskrifendur að, þannig að hún er ekki tæmandi. + tip_following: Sjálfgefið er að þú fylgist með stjórnanda eða stjórnendum vefþjónsins. Til að finna fleira áhugavert fólk ættirðu að kíkja á staðværu og sameiginlegu tímalínurnar. tip_local_timeline: Staðværa tímalínan er færibandasýn á allt fólkið á %{instance}. Þetta eru þínir næstu nágrannar! + tip_mobile_webapp: Ef farsímavafrinn býður þér að bæta Mastodon á heimaskjáinn þinn, muntu geta tekið á móti ýti-tilkynningum. Það virkar á ýmsa vegu eins og um uppsett forrit sé að ræða! tips: Ábendingar title: Velkomin/n um borð, %{name}! users: follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum invalid_email: Tölvupóstfangið er ógilt invalid_otp_token: Ógildur tveggja-þátta kóði + otp_lost_help_html: Ef þú hefur misst aðganginn að hvoru tveggja, geturðu sett þig í samband við %{email} + seamless_external_login: Innskráning þín er í gegnum utanaðkomandi þjónustu, þannig að stillingar fyrir lykilorð og tölvupóst eru ekki aðgengilegar. signed_in_as: 'Skráð inn sem:' verification: + explanation_html: 'Þú getur vottað að þú sért eigandi og ábyrgur fyrir tenglunum í lýsigögnum notandasniðsins þíns. Til að það virki, þurfa vefsvæðin sem vísað er í að innihalda tengil til baka í Mastodon-notandasniðið. Tengillinn sem vísar til baka verður að vera með rel="me" eigindi. Textinn í tenglinum skiptir ekki máli. Hérna er dæmi:' verification: Sannprófun diff --git a/config/locales/it.yml b/config/locales/it.yml index 7bce8d3d6..a7e811e22 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -344,9 +344,6 @@ it: create: Aggiungi dominio title: Nuova voce della lista nera delle email title: Lista nera email - followers: - back_to_account: Torna all'account - title: Seguaci di %{acct} instances: by_domain: Dominio delivery_available: Distribuzione disponibile @@ -922,6 +919,7 @@ it: duration_too_long: è troppo lontano nel futuro duration_too_short: è troppo presto expired: Il sondaggio si è già concluso + invalid_choice: L'opzione di voto scelta non esiste over_character_limit: non possono essere più lunghi di %{max} caratteri ciascuno too_few_options: deve avere più di un elemento too_many_options: non può contenere più di %{max} elementi diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 8197423af..12b1a90e8 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -339,9 +339,6 @@ ja: create: ドメインを追加 title: メールアドレス用ブラックリスト新規追加 title: メールブラックリスト - followers: - back_to_account: 戻る - title: "%{acct}さんのフォロワー" instances: by_domain: ドメイン delivery_available: 配送可能 @@ -909,6 +906,7 @@ ja: duration_too_long: が長過ぎます duration_too_short: が短過ぎます expired: アンケートは既に終了しました + invalid_choice: 選択された項目は存在しません over_character_limit: は%{max}文字より長くすることはできません too_few_options: は複数必要です too_many_options: は%{max}個までです diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 629793736..5cedbd364 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -1,7 +1,7 @@ --- kab: about: - about_hashtag_html: Tigi d tiberraḥin tizuyaz, ɣur-sent #%{hashtag}. Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fediverse. + about_hashtag_html: Tigi d tiberraḥin tizuyaz, γur-sent #%{hashtag}. Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fediverse. about_mastodon_html: 'Azeṭṭa ametti n uzekka: Ulac deg-s asussen, ulac taɛessast n tsuddiwin fell-ak, yebna ɣef leqder d ttrebga, daɣen d akeslemmas! Akked Mastudun, isefka-inek ad qimen inek!' about_this: Ɣef active_count_after: yekker @@ -215,9 +215,6 @@ kab: create: Rnu taγult title: Timerna n taɣult tamaynut n imayl ɣer tebdart taberkant title: Tabdart taberkant n imayl - followers: - back_to_account: Uγal γer umiḍan - title: Imeḍfaṛen n %{acct} instances: by_domain: Taγult delivery_available: Yella usiweḍ @@ -259,6 +256,9 @@ kab: all: Ɣef medden akk disabled: Ɣef yiwen ala users: Ɣef yimseqdacen idiganen i yeqqnen + site_description: + title: Aglam n uqeddac + site_title: Isem n uqeddac title: Iγewwaṛen n usmel statuses: batch: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 4ef87a5bc..74c486ef6 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -344,9 +344,6 @@ kk: create: Add dоmain title: New e-mail blаcklist entry title: E-mail қаратізімі - followers: - back_to_account: Back To Accоunt - title: "%{acct} оқырмандары" instances: by_domain: Domаin delivery_available: Жеткізу қол жетімді diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 25bb714ef..1f638e672 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -341,9 +341,6 @@ ko: create: 차단 규칙 생성 title: 새 이메일 도메인 차단 title: Email 도메인 차단 - followers: - back_to_account: 계정으로 돌아가기 - title: "%{acct}의 팔로워" instances: by_domain: 도메인 delivery_available: 전송 가능 diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 41f0284d8..9af094c01 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -261,9 +261,6 @@ lt: create: Pridėto domeną title: Naujas el pašto juodojo sąrašo įtraukimas title: El pašto juodasis sąrašas - followers: - back_to_account: Atgal Į Paskyrą - title: "%{acct} Sekėjai" instances: by_domain: Domenas delivery_available: Pristatymas galimas diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 5975ba68e..092a46d57 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -343,9 +343,6 @@ nl: create: Blokkeren title: Nieuw e-maildomein blokkeren title: E-maildomeinen blokkeren - followers: - back_to_account: Terug naar account - title: Volgers van %{acct} instances: by_domain: Domein delivery_available: Bezorging is mogelijk diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 4eb8c69b3..c61523efe 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -331,9 +331,6 @@ nn: create: Legg til domene title: Ny blokkeringsoppføring av e-postdomene title: Blokkerte e-postadresser - followers: - back_to_account: Tilbake til konto - title: "%{acct} sine fylgjarar" instances: by_domain: Domene delivery_available: Levering er tilgjengelig diff --git a/config/locales/no.yml b/config/locales/no.yml index 51d0eb1bd..12772f335 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -317,9 +317,6 @@ create: Legg til domene title: Ny blokkeringsoppføring av e-postdomene title: Blokkering av e-postdomene - followers: - back_to_account: Tilbake til kontoen - title: "%{acct} sine følgere" instances: by_domain: Domene delivery_available: Levering er tilgjengelig diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 985d2a311..ea0729f74 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -331,9 +331,6 @@ oc: create: Crear un blocatge title: Nòu blocatge de domeni de corrièl title: Blocatge de domeni de corrièl - followers: - back_to_account: Tornar al compte - title: Seguidors de %{acct} instances: by_domain: Domeni delivery_available: Liurason disponibla diff --git a/config/locales/pl.yml b/config/locales/pl.yml index eec58bc5e..2762d90b1 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -346,9 +346,6 @@ pl: create: Utwórz blokadę title: Nowa blokada domeny e-mail title: Blokowanie domen e-mail - followers: - back_to_account: Wróć do konta - title: Śledzący %{acct} instances: by_domain: Domena delivery_available: Doręczanie jest dostępne diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 7fe2c8946..9ff366d01 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -344,9 +344,6 @@ pt-BR: create: Adicionar domínio title: Novo domínio de e-mail bloqueado title: Lista de bloqueio de domínios de e-mail - followers: - back_to_account: Voltar para a conta - title: Seguidores de %{acct} instances: by_domain: Domínio delivery_available: Envio disponível @@ -375,6 +372,8 @@ pt-BR: title: Convites pending_accounts: title: Contas pendentes (%{count}) + relationships: + title: Relações de %{acct} relays: add_new: Adicionar novo repetidor delete: Excluir @@ -934,6 +933,7 @@ pt-BR: dormant: Inativo followers: Seguidores following: Seguindo + invited: Convidado last_active: Última atividade most_recent: Mais recente moved: Mudou-se diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 8628c5774..99b2e5859 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -344,9 +344,6 @@ pt-PT: create: Adicionar domínio title: Novo bloqueio de domínio de email title: Bloqueio de Domínio de Email - followers: - back_to_account: Voltar à conta - title: Seguidores de %{acct} instances: by_domain: Domínio delivery_available: Entrega disponível @@ -375,6 +372,8 @@ pt-PT: title: Convites pending_accounts: title: Contas pendentes (%{count}) + relationships: + title: Relações de %{acct} relays: add_new: Adicionar novo repetidor delete: Apagar @@ -934,6 +933,7 @@ pt-PT: dormant: Inativo followers: Seguidores following: A seguir + invited: Convidado last_active: Última atividade most_recent: Mais recente moved: Mudou-se diff --git a/config/locales/ru.yml b/config/locales/ru.yml index a62995721..7a0bd1210 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -140,7 +140,7 @@ ru: remote: Удаленные title: Размещение login_status: Статус учётной записи - media_attachments: Мультимедийные вложения + media_attachments: Файлы мультимедиа memorialize: Сделать мемориалом moderation: active: Действующие @@ -359,9 +359,6 @@ ru: create: Создать блокировку title: Новая блокировка по домену title: Блокировка e-mail доменов - followers: - back_to_account: Вернуться к учётной записи - title: Подписчики пользователя %{acct} instances: by_domain: Домен delivery_available: Доставка возможна @@ -550,11 +547,11 @@ ru: deleted: Удалено failed_to_execute: Не удалось выполнить media: - title: Файлы медиа - no_media: Без медиа + title: Файлы мультимедиа + no_media: Без файлов no_status_selected: Ничего не изменилось, так как ни один пост не был выделен title: Посты пользователя - with_media: С медиа + with_media: С файлами tags: accounts_today: Уникальных использований за сегодня accounts_week: Уникальных использований за эту неделю diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index e3355e8c5..f7a38a92c 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -42,7 +42,7 @@ ar: setting_use_pending_items: إخفاء تحديثات الخط وراء نقرة بدلًا مِن التمرير التلقائي للتدفق username: اسم المستخدم الخاص بك سوف يكون فريدا مِن نوعه على %{domain} featured_tag: - name: 'رُبَّما تريد·ين استخدام واحد مِن هذه:' + name: 'رُبَّما تريد·ين استخدام واحد مِن بين هذه:' form_challenge: current_password: إنك بصدد الدخول إلى منطقة آمنة imports: @@ -123,7 +123,7 @@ ar: setting_theme: سمة الموقع setting_trends: اعرض ما يُتداوَل اليوم setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب - setting_use_blurhash: أظهر ألوانًا متدرّجة على الوسائط الحساسة + setting_use_blurhash: أظهر ألوانًا متدرّجة على الوسائط المَخفية setting_use_pending_items: الوضع البطيء severity: القوّة type: صيغة الاستيراد diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 3fae05830..d43ab04fe 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -31,7 +31,7 @@ ca: locale: El llenguatge de l’interfície d’usuari, els correus i les notificacions push locked: Requereix que aprovis manualment els seguidors password: Utilitza com a mínim 8 caràcters - phrase: Es combinarà independentment del format en el text o l'avís de contingut del bram + phrase: Es combinarà independentment del format en el text o l'avís de contingut del tut scopes: A quines API es permetrà a l'aplicació accedir. Si selecciones un àmbit d'alt nivell, no cal que seleccionis un d'individual. setting_aggregate_reblogs: No mostra els nous impulsos dels tuts que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_default_sensitive: Els mèdia sensibles estan ocults per defecte i es poden revelar amb un clic diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index da3904680..20467dba4 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -7,11 +7,11 @@ es: account_migration: acct: Especifique el nombre de usuario@dominio de la cuenta a la cual se desea migrar account_warning_preset: - text: Puede usar sintaxis de barritadas, como URLs, etiquetas y menciones + text: Puede usar sintaxis de toots, como URLs, hashtags y menciones admin_account_action: - include_statuses: El usuario verá qué bramidos han causado la acción de moderación o advertencia + include_statuses: El usuario verá qué toots han causado la acción de moderación o advertencia send_email_notification: El usuario recibirá una explicación de lo que sucedió con respecto a su cuenta - text_html: Opcional. Puede usar sintaxis de bramidos. Puede añadir configuraciones predefinidas de advertencia para ahorrar tiempo + text_html: Opcional. Puede usar sintaxis de toots. Puede añadir configuraciones predefinidas de advertencia para ahorrar tiempo type_html: Elige qué hacer con %{acct} warning_preset_id: Opcional. Aún puede añadir texto personalizado al final de la configuración predefinida defaults: @@ -27,20 +27,20 @@ es: fields: Puedes tener hasta 4 elementos mostrándose como una tabla en tu perfil header: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px inbox_url: Copia la URL de la página principal del relés que quieres utilizar - irreversible: Las bramidos filtradas desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante + irreversible: Los toots filtrados desaparecerán irreversiblemente, incluso si este filtro es eliminado más adelante locale: El idioma de la interfaz de usuario, correos y notificaciones push locked: Requiere que manualmente apruebes seguidores y las publicaciones serán mostradas solamente a tus seguidores password: Utilice al menos 8 caracteres - phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de una bramido + phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de un toot scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. - setting_aggregate_reblogs: No mostrar nuevas rebramidos para las bramidos que han sido recientemente rebramidos (sólo afecta a las rebramidos recibidos recientemente) + setting_aggregate_reblogs: No mostrar nuevos retoots para los toots que han sido recientemente retooteados (sólo afecta a los retoots recibidos recientemente) setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un click setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible setting_hide_network: A quién sigues y quién te sigue no será mostrado en tu perfil setting_noindex: Afecta a tu perfil público y páginas de estado - setting_show_application: La aplicación que utiliza usted para publicar bramidos se mostrará en la vista detallada de sus bramidos + setting_show_application: La aplicación que utiliza usted para publicar toots se mostrará en la vista detallada de sus toots setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles setting_use_pending_items: Ocultar actualizaciones cronológicas tras un clic en lugar de desplazar automáticamente la ristra username: Tu nombre de usuario será único en %{domain} @@ -60,7 +60,7 @@ es: tag: name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible user: - chosen_languages: Cuando se marca, solo se mostrarán las barritadas en los idiomas seleccionados en las cronologías públicas + chosen_languages: Cuando se marca, solo se mostrarán los toots en los idiomas seleccionados en los timelines públicos labels: account: fields: @@ -73,7 +73,7 @@ es: account_warning_preset: text: Texto predefinido admin_account_action: - include_statuses: Incluir en el correo electrónico a los bramidos denunciados + include_statuses: Incluir en el correo electrónico a los toots denunciados send_email_notification: Notificar al usuario por correo electrónico text: Aviso personalizado type: Acción @@ -112,21 +112,21 @@ es: setting_advanced_layout: Habilitar interfaz web avanzada setting_aggregate_reblogs: Agrupar rebarritadas en las cronologías setting_auto_play_gif: Reproducir automáticamente los GIFs animados - setting_boost_modal: Mostrar ventana de confirmación antes de un Rebramido - setting_crop_images: Recortar a 16x9 las imágenes de los bramidos no expandidos + setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot + setting_crop_images: Recortar a 16x9 las imágenes de los toots no expandidos setting_default_language: Idioma de publicación setting_default_privacy: Privacidad de publicaciones setting_default_sensitive: Marcar siempre imágenes como sensibles - setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un bramido + setting_delete_modal: Mostrar diálogo de confirmación antes de borrar un toot setting_display_media: Visualización multimedia setting_display_media_default: Por defecto setting_display_media_hide_all: Ocultar todo setting_display_media_show_all: Mostrar todo - setting_expand_spoilers: Siempre expandir los bramidos marcados con advertencias de contenido + setting_expand_spoilers: Siempre expandir los toots marcados con advertencias de contenido setting_hide_network: Ocultar tu red setting_noindex: Excluirse del indexado de motores de búsqueda setting_reduce_motion: Reducir el movimiento de las animaciones - setting_show_application: Mostrar aplicación usada para publicar bramidos + setting_show_application: Mostrar aplicación usada para publicar toots setting_system_font_ui: Utilizar la tipografía por defecto del sistema setting_theme: Tema del sitio setting_trends: Mostrar las tendencias de hoy @@ -162,7 +162,7 @@ es: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta trendable: Permitir que esta etiqueta aparezca bajo tendencias - usable: Permitir a las barritadas usar esta etiqueta + usable: Permitir a los toots usar esta etiqueta 'no': 'No' recommended: Recomendado required: diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index c6a89fb40..b7aabd5d1 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -6,31 +6,61 @@ is: acct: Tilgreindu notandanafn@lén á notandaaðgangnum sem þú vilt flytjast frá account_migration: acct: Tilgreindu notandanafn@lén á notandaaðgangnum sem þú vilt flytjast til + account_warning_preset: + text: Þú getur notað sömu skilgreiningar og fyrir tíst, svo sem URL-slóðir, myllumerki og tilvísanir admin_account_action: + include_statuses: Notandinn mun sjá hvaða tíst hafa valdið viðbrögðum umsjónarmanns eða aðvörun kerfisins + send_email_notification: Notandinn mun fá útskýringar á því hvað gerðist með notandaaðganginn hans + text_html: Valfrjálst. Þú getur notað sömu skilgreiningar og fyrir tíst. Þú getur bætt inn forstilltum aðvörunum til að spara tíma type_html: Veldu hvað eigi að gera við %{acct} + warning_preset_id: Valkvætt. Þú getur ennþá bætt sérsniðnum texta við enda forstillinga defaults: + autofollow: Fólk sem skráir sig í gegnum boðið mun sjálfkrafa fylgjast með þér avatar: PNG, GIF eða JPG. Mest %{size}. Verður smækkað í %{dimensions}px bot: Þessi aðgangur er aðallega til að framkvæma sjálfvirkar aðgerðir og gæti verið án þess að hann sé vaktaður reglulega - current_password: Í öryggisskyni skaltu setja inn lykiloðið fyrir þennan notandaaðgang + context: Eitt eða fleiri samhengi þar sem sían ætti að gilda + current_password: Í öryggisskyni skaltu setja inn lykilorðið fyrir þennan notandaaðgang + current_username: Til að staðfesta skaltu setja inn notandanafnið fyrir þennan notandaaðgang + digest: Er aðeins sent eftir lengri tímabil án virkni og þá aðeins ef þú hefur fengið persónuleg skilaboð á meðan þú hefur ekki verið á línunni discoverable: Persónusniðamappan er önnur leið til að láta notandaaðganginn þinn ná til fleiri lesenda email: Þú munt fá sendan staðfestingarpóst + fields: Þú getur birt allt að 4 atriði sem töflu á notandasniðinu þínu header: PNG, GIF eða JPG. Mest %{size}. Verður smækkað í %{dimensions}px + inbox_url: Afritaðu slóðina af forsíðu endurvarpans sem þú vilt nota + irreversible: Síuð tíst munu hverfa óendurkræft, jafnvel þó sían sé seinna fjarlægð locale: Tungumál notandaviðmótsins, tölvupósts og ýti-tilkynninga locked: Krefst þess að þú samþykkir fylgjendur handvirkt password: Notaðu minnst 8 stafi + phrase: Verður notað til samsvörunar burtséð frá stafstöðu texta eða viðvörunar vegna efnis í tísti + scopes: Að hvaða API-kerfisviðmótum forritið fær aðgang. Ef þú velur efsta-stigs svið, þarftu ekki að gefa einstakar heimildir. + setting_aggregate_reblogs: Ekki sýna nýjar endurbirtingar á tístum sem hafa nýlega verið endurbirt (hefur bara áhrif á ný-mótteknar endurbirtingar) setting_default_sensitive: Viðkvæmt myndefni er sjálfgefið falið og er hægt að birta með smelli setting_display_media_default: Fela myndefni sem merkt er viðkvæmt setting_display_media_hide_all: Alltaf fela allt myndefni setting_display_media_show_all: Alltaf birta myndefni sem merkt er viðkvæmt - setting_noindex: Hefur áhrip á opinbera notandasniðið þitt og stöðusíður + setting_hide_network: Hverjum þú fylgist með og hverjir fylgjast með þér verður ekki birt á notandasniðinu þínu + setting_noindex: Hefur áhrif á opinbera notandasniðið þitt og stöðusíður + setting_show_application: Nafnið á forritinu sem þú notar til að tísta mun birtast í ítarlegri sýn á tístunum þínum setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr - setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er í stað þess að hún skruni streyminu sjálfvirkt + setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt + username: Notandanafnið þitt verður einstakt á %{domain} + whole_word: Þegar stikkorð eða frasi er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði + domain_allow: + domain: Þetta lén mun geta sótt gögn af þessum vefþjóni og tekið verður á móti innsendum gögnum frá léninu til vinnslu og geymslu featured_tag: name: 'Þú gætir viljað nota eitt af þessum:' + form_challenge: + current_password: Þú ert að fara inn á öryggissvæði imports: data: CSV-skrá sem flutt hefur verið út af öðrum Mastodon-þjóni invite_request: text: Þetta mun hjálpa okkur við að yfirfara umsóknina þína + sessions: + otp: 'Settu inn tveggja-þátta kóðann sem farsímaforritið útbjó eða notaðu einn af endurheimtukóðunum þínum:' + tag: + name: Þú getur aðeins breytt stafstöði mill há-/lágstafa, til gæmis til að gera þetta læsilegra + user: + chosen_languages: Þegar merkt er við þetta, birtast einungis tíst á völdum tungumálum á opinberum tímalínum labels: account: fields: @@ -38,6 +68,10 @@ is: value: Efni account_alias: acct: Auðkenni gamla aðgangsins + account_migration: + acct: Auðkenni nýja aðgangsins + account_warning_preset: + text: Forstilltur texti admin_account_action: include_statuses: Innifela kærð tíst í tölvupóstinum send_email_notification: Láta notanda vita með tölvupósti @@ -65,6 +99,7 @@ is: expires_in: Rennur út eftir fields: Lýsigögn notandasniðs header: Síðuhaus + inbox_url: URL-slóð á innhólf endurvarpa irreversible: Fella niður í staðinn fyrir að fela locale: Tungumál viðmóts locked: Læsa aðgangi diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 63475167c..21c5c144d 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -157,7 +157,7 @@ ja: pending_account: 新しいアカウントの承認が必要な時 reblog: トゥートがブーストされた時 report: 通報を受けた時 - trending_tag: 未審査のハッシュタグが人気の時にメールで通知する + trending_tag: 未審査のハッシュタグが人気の時 tag: listable: 検索とディレクトリへの使用を許可する name: ハッシュタグ diff --git a/config/locales/sk.yml b/config/locales/sk.yml index b127bee0f..b02ee8eca 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -350,9 +350,6 @@ sk: create: Pridaj doménu title: Nový email na zablokovanie title: Blokované emailové adresy - followers: - back_to_account: Späť na účet - title: Sledovatielia užívateľa %{acct} instances: by_domain: Doména delivery_available: Je v dosahu doručovania @@ -917,6 +914,7 @@ sk: duration_too_long: je príliš ďaleko do budúcnosti duration_too_short: je príliš skoro expired: Anketa už skončila + invalid_choice: Zvolená hlasovacia možnosť neexistuje over_character_limit: každá nemôže byť dlhšia ako %{max} znakov too_few_options: musí mať viac ako jednu položku too_many_options: nemôže zahŕňať viac ako %{max} položiek diff --git a/config/locales/sl.yml b/config/locales/sl.yml index c078cea1b..afb928f11 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -320,9 +320,6 @@ sl: create: Dodaj domeno title: Nov vnos e-pošte na črni seznam title: Črni seznam e-pošt - followers: - back_to_account: Nazaj na račun - title: Sledilci od %{acct} instances: by_domain: Domena delivery_available: Na voljo je dostava diff --git a/config/locales/sq.yml b/config/locales/sq.yml index c4d95a6f7..6a7a945c4 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -266,9 +266,6 @@ sq: create: Shtoni përkatësi title: Zë i ri email në listë bllokimesh title: Listë bllokimesh email-esh - followers: - back_to_account: Mbrapsht Te Llogaria - title: Ndjekës të %{acct} instances: delivery_available: Ka shpërndarje të mundshme known_accounts: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 23a826685..c68681215 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -280,9 +280,6 @@ sr: create: Додај домен title: Нова ставка е-поштe у црној листи title: Црна листа E-поште - followers: - back_to_account: Назад на налог - title: "%{acct} Пратиоци" instances: delivery_available: Достава је доступна known_accounts: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index b94277825..0094ff06b 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -328,9 +328,6 @@ sv: create: Skapa domän title: Ny E-postdomänblocklistningsinmatning title: E-postdomänblock - followers: - back_to_account: Tillbaka till konto - title: "%{acct}'s följare" instances: by_domain: Domän moderation: diff --git a/config/locales/th.yml b/config/locales/th.yml index b7f4a5f34..02b8fc97e 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -306,9 +306,6 @@ th: create: เพิ่มโดเมน title: รายการบัญชีดำอีเมลใหม่ title: บัญชีดำอีเมล - followers: - back_to_account: กลับไปที่บัญชี - title: ผู้ติดตามของ %{acct} instances: by_domain: โดเมน known_accounts: @@ -386,7 +383,10 @@ th: custom_css: title: CSS ที่กำหนดเอง domain_blocks: + all: ให้กับทุกคน + disabled: ให้กับไม่มีใคร title: แสดงการปิดกั้นโดเมน + users: ให้กับผู้ใช้ในเว็บที่เข้าสู่ระบบ domain_blocks_rationale: title: แสดงคำชี้แจงเหตุผล enable_bootstrap_timeline_accounts: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 1e80315c0..0fa4750bc 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -6,7 +6,7 @@ tr: about_this: Bu sunucu hakkında active_count_after: etkin active_footnote: Aylık Aktif Kullanıcılar (AAK) - administered_by: 'Tarafından yönetildi:' + administered_by: 'Yöneten:' api: API apps: Mobil uygulamalar apps_platforms: İos, Android ve diğer platformlardaki Mastodon'u kullanın @@ -344,9 +344,6 @@ tr: create: Alan adı ekle title: Yeni e-posta kara liste girişi title: E-posta kara listesi - followers: - back_to_account: Hesaba Geri Dön - title: "%{acct} Takipçileri" instances: by_domain: Alan adı delivery_available: Teslimat mevcut @@ -375,6 +372,8 @@ tr: title: Davetler pending_accounts: title: Bekleyen hesaplar (%{count}) + relationships: + title: "%{acct} kişisinin ilişkileri" relays: add_new: Yeni aktarıcı ekle delete: Sil @@ -692,7 +691,7 @@ tr: directories: directory: Profil dizini explanation: Kullanıcıları ilgi alanlarına göre keşfedin - explore_mastodon: "%{title} keşfet" + explore_mastodon: "%{title} sunucusunu keşfet" domain_validator: invalid_domain: geçerli bir alan adı değil errors: @@ -721,7 +720,7 @@ tr: in_progress: Arşivinizi derliyoruz... request: Arşiv isteği size: Boyut - blocks: Blokladıklarınız + blocks: Engelledikleriniz csv: CSV domain_blocks: Alan adı blokları lists: Listeler @@ -734,6 +733,7 @@ tr: hint_html: "Öne çıkan etiketler nelerdir? Genel profilinizde belirgin bir şekilde görüntülenirler ve kişilerin genel yayınlarınıza özellikle bu etiketler altında göz atmalarına izin verir. Yaratıcı çalışmaları veya uzun vadeli projeleri takip etmek için harika bir araçtır." filters: contexts: + account: Profiller home: Ana zaman çizelgesi notifications: Bildirimler public: Genel zaman çizelgesi @@ -934,6 +934,7 @@ tr: dormant: Atıl followers: Takipçiler following: Takip edilenler + invited: Davet edildi last_active: Son aktivite most_recent: En son moved: Taşındı @@ -1215,7 +1216,7 @@ tr: full_handle_hint: Arkadaşlarınıza, size başka bir sunucudan mesaj atabilmeleri veya sizi takip edebilmeleri için söyleyeceğiniz şey budur. review_preferences_action: Tercihleri değiştirin review_preferences_step: Hangi e-postaları almak veya gönderilerinizin varsayılan olarak hangi gizlilik seviyesinde olmasını istediğiniz gibi tercihlerinizi ayarladığınızdan emin olun. Hareket hastalığınız yoksa, GIF otomatik oynatmayı etkinleştirmeyi seçebilirsiniz. - subject: Mastodon'a hoşgeldiniz + subject: Mastodon'a hoş geldiniz tip_federated_timeline: Federe zaman tüneli, Mastodon ağının genel bir görüntüsüdür. Ancak yalnızca komşularınızın abone olduğu kişileri içerir, bu yüzden tamamı değildir. tip_following: Sunucu yönetici(ler)ini varsayılan olarak takip edersiniz. Daha ilginç insanlar bulmak için yerel ve federe zaman çizelgelerini kontrol edin. tip_local_timeline: Yerel zaman çizelgesi, %{instance} üzerindeki kişilerin genel bir görüntüsüdür. Bunlar senin en yakın komşularındır! diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 32b38067b..7df8abcce 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -352,9 +352,6 @@ uk: create: Додати домен title: Нове блокування поштового домену title: Чорний список поштових доменів - followers: - back_to_account: Повернутися до Облікового запису - title: Підписники %{acct} instances: by_domain: Домен delivery_available: Доставлення доступне diff --git a/config/locales/vi.yml b/config/locales/vi.yml index b01c1ea20..ec8e853fe 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -336,9 +336,6 @@ vi: create: Thêm tên miền title: Mục nhập danh sách đen e-mail mới title: Danh sách đen e-mail - followers: - back_to_account: Quay lại tài khoản - title: Người theo dõi của %{acct} instances: by_domain: Miền delivery_available: Giao hàng tận nơi diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index a1deb13e2..21b0ecf78 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -338,9 +338,6 @@ zh-CN: create: 添加域名 title: 添加电子邮件域名屏蔽 title: 电子邮件域名屏蔽 - followers: - back_to_account: 返回帐户 - title: "%{acct} 的关注者" instances: by_domain: 域名 delivery_available: 无法投递 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 8dd4c346b..ffd5ba5e9 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -294,9 +294,6 @@ zh-HK: create: 新增網域 title: 新增電郵網域阻隔 title: 電郵網域阻隔 - followers: - back_to_account: 返回帳戶 - title: "%{acct} 的關注者" instances: moderation: all: 全部 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 1ba2c82c8..5b25688ed 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -294,9 +294,6 @@ zh-TW: create: 新增站點 title: 新增電子信箱黑名單項目 title: 電子信箱黑名單 - followers: - back_to_account: 返回帳戶 - title: "%{acct} 的關注者" instances: moderation: all: 全部 From dee853f23c65988d505796d11ac71c0fd2f8053e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 00:20:03 +0100 Subject: [PATCH 163/207] Remove bad encoding middleware (#12931) Revert #12741 --- .../handle_bad_encoding_middleware.rb | 18 ---------------- config/application.rb | 2 -- .../handle_bad_encoding_middleware_spec.rb | 21 ------------------- 3 files changed, 41 deletions(-) delete mode 100644 app/middleware/handle_bad_encoding_middleware.rb delete mode 100644 spec/middleware/handle_bad_encoding_middleware_spec.rb diff --git a/app/middleware/handle_bad_encoding_middleware.rb b/app/middleware/handle_bad_encoding_middleware.rb deleted file mode 100644 index 6fce84b15..000000000 --- a/app/middleware/handle_bad_encoding_middleware.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true -# See: https://jamescrisp.org/2018/05/28/fixing-invalid-query-parameters-invalid-encoding-in-a-rails-app/ - -class HandleBadEncodingMiddleware - def initialize(app) - @app = app - end - - def call(env) - begin - Rack::Utils.parse_nested_query(env['QUERY_STRING'].to_s) - rescue Rack::Utils::InvalidParameterError - env['QUERY_STRING'] = '' - end - - @app.call(env) - end -end diff --git a/config/application.rb b/config/application.rb index c1bc18a30..bf25fa0d9 100644 --- a/config/application.rb +++ b/config/application.rb @@ -7,7 +7,6 @@ require 'rails/all' Bundler.require(*Rails.groups) require_relative '../app/lib/exceptions' -require_relative '../app/middleware/handle_bad_encoding_middleware' require_relative '../lib/paperclip/lazy_thumbnail' require_relative '../lib/paperclip/gif_transcoder' require_relative '../lib/paperclip/video_transcoder' @@ -120,7 +119,6 @@ module Mastodon config.active_job.queue_adapter = :sidekiq - config.middleware.insert_before Rack::Runtime, HandleBadEncodingMiddleware config.middleware.use Rack::Attack config.middleware.use Rack::Deflater diff --git a/spec/middleware/handle_bad_encoding_middleware_spec.rb b/spec/middleware/handle_bad_encoding_middleware_spec.rb deleted file mode 100644 index 8c0d24f18..000000000 --- a/spec/middleware/handle_bad_encoding_middleware_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'rails_helper' - -RSpec.describe HandleBadEncodingMiddleware do - let(:app) { double() } - let(:middleware) { HandleBadEncodingMiddleware.new(app) } - - it "request with query string is unchanged" do - expect(app).to receive(:call).with("PATH" => "/some/path", "QUERY_STRING" => "name=fred") - middleware.call("PATH" => "/some/path", "QUERY_STRING" => "name=fred") - end - - it "request with no query string is unchanged" do - expect(app).to receive(:call).with("PATH" => "/some/path") - middleware.call("PATH" => "/some/path") - end - - it "request with invalid encoding in query string drops query string" do - expect(app).to receive(:call).with("QUERY_STRING" => "", "PATH" => "/some/path") - middleware.call("QUERY_STRING" => "q=%2Fsearch%2Fall%Forder%3Ddescending%26page%3D5%26sort%3Dcreated_at", "PATH" => "/some/path") - end -end From ce1dee85b58fb7ab41af7ea1d276853630ce59a0 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 00:20:23 +0100 Subject: [PATCH 164/207] Fix relationships page not showing results in admin UI (#12934) Follow-up to #12927 --- .../admin/relationships_controller.rb | 2 +- app/models/relationship_filter.rb | 20 +++++++++---------- app/views/admin/accounts/show.html.haml | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/controllers/admin/relationships_controller.rb b/app/controllers/admin/relationships_controller.rb index 07d121340..f8a95cfc8 100644 --- a/app/controllers/admin/relationships_controller.rb +++ b/app/controllers/admin/relationships_controller.rb @@ -19,7 +19,7 @@ module Admin end def filter_params - params.slice(RelationshipFilter::KEYS).permit(RelationshipFilter::KEYS) + params.slice(*RelationshipFilter::KEYS).permit(*RelationshipFilter::KEYS) end end end diff --git a/app/models/relationship_filter.rb b/app/models/relationship_filter.rb index fcb3a8dc5..e6859bf3d 100644 --- a/app/models/relationship_filter.rb +++ b/app/models/relationship_filter.rb @@ -20,12 +20,12 @@ class RelationshipFilter end def results - scope = scope_for('relationship', params['relationship']) + scope = scope_for('relationship', params['relationship'].to_s.strip) params.each do |key, value| next if key.to_s == 'page' - scope.merge!(scope_for(key, value)) if value.present? + scope.merge!(scope_for(key.to_s, value.to_s.strip)) if value.present? end scope @@ -39,7 +39,7 @@ class RelationshipFilter end def scope_for(key, value) - case key.to_s + case key when 'relationship' relationship_scope(value) when 'by_domain' @@ -58,7 +58,7 @@ class RelationshipFilter end def relationship_scope(value) - case value.to_s + case value when 'following' account.following.eager_load(:account_stat).reorder(nil) when 'followed_by' @@ -73,11 +73,11 @@ class RelationshipFilter end def by_domain_scope(value) - Account.where(domain: value.to_s) + Account.where(domain: value) end def location_scope(value) - case value.to_s + case value when 'local' Account.local when 'remote' @@ -88,7 +88,7 @@ class RelationshipFilter end def status_scope(value) - case value.to_s + case value when 'moved' Account.where.not(moved_to_account_id: nil) when 'primary' @@ -99,18 +99,18 @@ class RelationshipFilter end def order_scope(value) - case value.to_s + case value when 'active' Account.by_recent_status when 'recent' - Follow.recent + params[:relationship] == 'invited' ? Account.recent : Follow.recent else raise "Unknown order: #{value}" end end def activity_scope(value) - case value.to_s + case value when 'dormant' AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago))) else diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index f191d8f25..a83f77134 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -41,7 +41,7 @@ .dashboard__counters__num= number_to_human_size @account.media_attachments.sum('file_file_size') .dashboard__counters__label= t 'admin.accounts.media_attachments' %div - = link_to admin_account_relationships_path(@account.id, location: 'local') do + = link_to admin_account_relationships_path(@account.id, location: 'local', relationship: 'followed_by') do .dashboard__counters__num= number_with_delimiter @account.local_followers_count .dashboard__counters__label= t 'admin.accounts.followers' %div From daf71573d0e5f1376264c7d32cf55fae284ba9e5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 00:20:38 +0100 Subject: [PATCH 165/207] Fix password change/reset not immediately invalidating other sessions (#12928) While making browser requests in the other sessions after a password change or reset does not allow you to be logged in and correctly invalidates the session making the request, sessions have API tokens associated with them, which can still be used until that session is invalidated. This is a security issue for accounts that were already compromised some other way because it makes it harder to throw out the hijacker. --- app/controllers/auth/passwords_controller.rb | 6 ++++++ app/controllers/auth/registrations_controller.rb | 7 +++++++ app/models/user.rb | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/controllers/auth/passwords_controller.rb b/app/controllers/auth/passwords_controller.rb index 34b98da53..b98bcecd0 100644 --- a/app/controllers/auth/passwords_controller.rb +++ b/app/controllers/auth/passwords_controller.rb @@ -6,6 +6,12 @@ class Auth::PasswordsController < Devise::PasswordsController layout 'auth' + def update + super do |resource| + resource.session_activations.destroy_all if resource.errors.empty? + end + end + private def check_validity_of_reset_password_token diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 212519c8b..745b91d46 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -22,10 +22,17 @@ class Auth::RegistrationsController < Devise::RegistrationsController not_found end + def update + super do |resource| + resource.clear_other_sessions(current_session.session_id) if resource.saved_change_to_encrypted_password? + end + end + protected def update_resource(resource, params) params[:password] = nil if Devise.pam_authentication && resource.encrypted_password.blank? + super end diff --git a/app/models/user.rb b/app/models/user.rb index a43e63b2e..058a8d5f8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -247,7 +247,7 @@ class User < ApplicationRecord ip: request.remote_ip).session_id end - def exclusive_session(id) + def clear_other_sessions(id) session_activations.exclusive(id) end From c4c315ea40356b9b598a10b49ea9455deace4553 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 00:20:51 +0100 Subject: [PATCH 166/207] Fix OEmbed leaking information about existence of non-public statuses (#12930) --- app/controllers/api/oembed_controller.rb | 14 +++++++++++--- app/controllers/statuses_controller.rb | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/oembed_controller.rb b/app/controllers/api/oembed_controller.rb index c8c60b1cf..66da65bed 100644 --- a/app/controllers/api/oembed_controller.rb +++ b/app/controllers/api/oembed_controller.rb @@ -1,17 +1,25 @@ # frozen_string_literal: true class Api::OEmbedController < Api::BaseController - respond_to :json - skip_before_action :require_authenticated_user! + before_action :set_status + before_action :require_public_status! + def show - @status = status_finder.status render json: @status, serializer: OEmbedSerializer, width: maxwidth_or_default, height: maxheight_or_default end private + def set_status + @status = status_finder.status + end + + def require_public_status! + not_found if @status.hidden? + end + def status_finder StatusFinder.new(params[:url]) end diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 57bbeca64..4fa128303 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -46,7 +46,7 @@ class StatusesController < ApplicationController end def embed - raise ActiveRecord::RecordNotFound if @status.hidden? + return not_found if @status.hidden? expires_in 180, public: true response.headers['X-Frame-Options'] = 'ALLOWALL' @@ -68,7 +68,7 @@ class StatusesController < ApplicationController @status = @account.statuses.find(params[:id]) authorize @status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def set_instance_presenter From dd4738a3f239ab17429e103750bcc95bb042066e Mon Sep 17 00:00:00 2001 From: koyu Date: Fri, 24 Jan 2020 00:21:13 +0100 Subject: [PATCH 167/207] Mac is now known as macOS (#12935) --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index c4e846354..bb9084b32 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1022,7 +1022,7 @@ en: firefox_os: Firefox OS ios: iOS linux: Linux - mac: Mac + mac: macOS other: unknown platform windows: Windows windows_mobile: Windows Mobile From ea215ef63fbf067d13debc9c0428aa21371251e7 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 00:23:30 +0100 Subject: [PATCH 168/207] New Crowdin translations (#12933) * New translations doorkeeper.en.yml (Kazakh) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations doorkeeper.en.yml (Korean) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations en.json (Galician) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Georgian) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations doorkeeper.en.yml (Hebrew) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations simple_form.en.yml (Serbian (Latin)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Latin)) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations doorkeeper.en.yml (Slovenian) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Malayalam) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.json (Macedonian) [ci skip] * New translations en.yml (Macedonian) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations simple_form.en.yml (Malayalam) [ci skip] * New translations doorkeeper.en.yml (Occitan) [ci skip] * New translations doorkeeper.en.yml (Malayalam) [ci skip] * New translations en.json (Marathi) [ci skip] * New translations en.yml (Marathi) [ci skip] * New translations doorkeeper.en.yml (Marathi) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations doorkeeper.en.yml (Norwegian) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations simple_form.en.yml (Occitan) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations doorkeeper.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.json (German) [ci skip] * New translations doorkeeper.en.yml (Kabyle) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations doorkeeper.en.yml (Dutch) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations doorkeeper.en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations doorkeeper.en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations doorkeeper.en.yml (Croatian) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations en.json (Danish) [ci skip] * New translations doorkeeper.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Albanian) [ci skip] * New translations doorkeeper.en.yml (Arabic) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations doorkeeper.en.yml (Asturian) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.json (Basque) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations doorkeeper.en.yml (Tamil) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.json (Thai) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations doorkeeper.en.yml (Spanish, Argentina) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (French) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.json (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Korean) [ci skip] * i18n-tasks normalize * yarn manage:translations --- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/fr.json | 2 +- app/javascript/mastodon/locales/gl.json | 2 +- app/javascript/mastodon/locales/ja.json | 2 +- config/locales/ca.yml | 4 ++++ config/locales/de.yml | 26 +++++++++++++++++++++++++ config/locales/doorkeeper.gl.yml | 2 +- config/locales/es-AR.yml | 1 + config/locales/es.yml | 1 + config/locales/et.yml | 1 + config/locales/fr.yml | 26 +++++++++++++++++++++++++ config/locales/gl.yml | 23 ++++++++++++++++++++++ config/locales/ja.yml | 4 ++++ config/locales/ko.yml | 1 + config/locales/pt-BR.yml | 1 + config/locales/pt-PT.yml | 1 + config/locales/ru.yml | 4 ++++ config/locales/simple_form.de.yml | 12 ++++++++++++ config/locales/simple_form.fr.yml | 12 ++++++++++++ config/locales/simple_form.gl.yml | 12 ++++++++++++ config/locales/simple_form.ja.yml | 2 ++ 21 files changed, 136 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 165a48d1a..aae5ad1c1 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Anfragelimit überschritten", "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.", "alert.unexpected.title": "Hoppla!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Ankündigung", "autosuggest_hashtag.per_week": "{count} pro Woche", "boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen", "bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 09ff5648f..7cd5ec0e3 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Débit limité", "alert.unexpected.message": "Une erreur inattendue s’est produite.", "alert.unexpected.title": "Oups !", - "announcement.announcement": "Announcement", + "announcement.announcement": "Annonce", "autosuggest_hashtag.per_week": "{count} par semaine", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci, la prochaine fois", "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 550d9452c..b2715cc4b 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Límite de intentos", "alert.unexpected.message": "Ocorreu un erro non agardado.", "alert.unexpected.title": "Vaites!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Anuncio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez", "bundle_column_error.body": "Ocorreu un erro ó cargar este compoñente.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 4018fba2b..42cc38820 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "制限に達しました", "alert.unexpected.message": "不明なエラーが発生しました。", "alert.unexpected.title": "エラー!", - "announcement.announcement": "Announcement", + "announcement.announcement": "告知", "autosuggest_hashtag.per_week": "{count} 回 / 週", "boost_modal.combo": "次からは{combo}を押せばスキップできます", "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 3e37ffa52..ccbd16e2a 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -372,6 +372,8 @@ ca: title: Convida pending_accounts: title: Comptes pendents (%{count}) + relationships: + title: relacions del %{acct} relays: add_new: Afegiu un nou relay delete: Esborra @@ -731,6 +733,7 @@ ca: hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per les teves publicacions gràcies a aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini." filters: contexts: + account: Perfils home: Línia de temps Inici notifications: Notificacions public: Línies de temps públiques @@ -931,6 +934,7 @@ ca: dormant: Inactiu followers: Seguidors following: Seguint + invited: Convidat last_active: Darrer actiu most_recent: Més recent moved: Mogut diff --git a/config/locales/de.yml b/config/locales/de.yml index 99e75d15f..218267cd3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -198,11 +198,13 @@ de: change_email_user: "%{name} hat die E-Mail-Adresse des Nutzers %{target} geändert" confirm_user: "%{name} hat die E-Mail-Adresse von %{target} bestätigt" create_account_warning: "%{name} hat eine Warnung an %{target} gesendet" + create_announcement: "%{name} hat die neue Ankündigung %{target} erstellt" create_custom_emoji: "%{name} hat neues Emoji %{target} hochgeladen" create_domain_allow: "%{name} hat die Domain %{target} gewhitelistet" create_domain_block: "%{name} hat die Domain %{target} blockiert" create_email_domain_block: "%{name} hat die E-Mail-Domain %{target} geblacklistet" demote_user: "%{name} stufte Benutzer_in %{target} herunter" + destroy_announcement: "%{name} hat die neue Ankündigung %{target} gelöscht" destroy_custom_emoji: "%{name} zerstörte Emoji %{target}" destroy_domain_allow: "%{name} hat die Domain %{target} von der Whitelist entfernt" destroy_domain_block: "%{name} hat die Domain %{target} entblockt" @@ -224,10 +226,22 @@ de: unassigned_report: "%{name} hat die Zuweisung der Meldung %{target} entfernt" unsilence_account: "%{name} hat die Stummschaltung von %{target} aufgehoben" unsuspend_account: "%{name} hat die Verbannung von %{target} aufgehoben" + update_announcement: "%{name} aktualisierte Ankündigung %{target}" update_custom_emoji: "%{name} hat das %{target} Emoji geändert" update_status: "%{name} hat einen Beitrag von %{target} aktualisiert" deleted_status: "(gelöschter Beitrag)" title: Überprüfungsprotokoll + announcements: + edit: + title: Ankündigung bearbeiten + empty: Keine Ankündigungen gefunden. + live: Live + new: + create: Ankündigung erstellen + title: Neue Ankündigung + published: Veröffentlicht + time_range: Zeitraum + title: Ankündigungen custom_emojis: assign_category: Kategorie zuweisen by_domain: Domain @@ -372,6 +386,8 @@ de: title: Einladungen pending_accounts: title: Ausstehende Konten (%{count}) + relationships: + title: Beziehungen von %{acct} relays: add_new: Neues Relay hinzufügen delete: Löschen @@ -655,6 +671,9 @@ de: hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen." invalid_password: Ungültiges Passwort prompt: Gib dein Passwort ein um fortzufahren + date: + formats: + default: "%d. %b %Y" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -731,6 +750,7 @@ de: hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil deutlich angezeigt und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen." filters: contexts: + account: Profile home: Startseite notifications: Benachrichtigungen public: Öffentliche Zeitleisten @@ -755,6 +775,8 @@ de: all: Alle changes_saved_msg: Änderungen gespeichert! copy: Kopieren + delete: Löschen + edit: Bearbeiten no_batch_actions_available: Keine Massenaktionen auf dieser Seite verfügbar order_by: Sortieren nach save_changes: Änderungen speichern @@ -926,11 +948,15 @@ de: other: Weiteres posting_defaults: Standardeinstellungen für Beiträge public_timelines: Öffentliche Zeitleisten + reactions: + errors: + unrecognized_emoji: ist kein anerkanntes Emoji relationships: activity: Kontoaktivität dormant: Inaktiv followers: Folgende following: Folgt + invited: Eingeladen last_active: Zuletzt aktiv most_recent: Neuste moved: Umgezogen diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 7a33802d4..281f03f84 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -3,7 +3,7 @@ gl: activerecord: attributes: doorkeeper/application: - name: 'Aplicación: %{name}' + name: Nome do aplicativo redirect_uri: URI a redireccionar scopes: Permisos website: Sitio web da aplicación diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 47b0ff41d..f298cfbf5 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -733,6 +733,7 @@ es-AR: hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus toots públicos específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: + account: Perfiles home: Línea temporal principal notifications: Notificaciones public: Líneas temporales públicas diff --git a/config/locales/es.yml b/config/locales/es.yml index 719c388d7..cc8857bfd 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -733,6 +733,7 @@ es: hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a las personas usuarias navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de obras creativas o proyectos a largo plazo." filters: contexts: + account: Perfiles home: Cronología propia notifications: Notificaciones public: Cronología pública diff --git a/config/locales/et.yml b/config/locales/et.yml index 8969cae0d..e0e861c33 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -736,6 +736,7 @@ et: hint_html: "Mis on esile toodud sildid? Need sildid näidatakse nähtavalt Teie avalikul profiilil ning nad aitavad inimestel leida postitusi, millel on antud sildid. Nad on hea viis kuidas näiteks hoida järge loovtöödel või pikaajalistel projektidel." filters: contexts: + account: Profiilid home: Kodu ajajoon notifications: Teated public: Avalikud ajajooned diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 87e0b177c..09a599494 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -198,11 +198,13 @@ fr: change_email_user: "%{name} a modifié l’adresse de courriel de l’utilisateur·rice %{target}" confirm_user: "%{name} adresse courriel confirmée de l’utilisateur·ice %{target}" create_account_warning: "%{name} a envoyé un avertissement à %{target}" + create_announcement: "%{name} a créé une nouvelle annonce %{target}" create_custom_emoji: "%{name} a importé de nouveaux émojis %{target}" create_domain_allow: "%{name} a inscrit le domaine %{target} sur liste blanche" create_domain_block: "%{name} a bloqué le domaine %{target}" create_email_domain_block: "%{name} a mis le domaine de courriel %{target} sur liste noire" demote_user: "%{name} a rétrogradé l’utilisateur·ice %{target}" + destroy_announcement: "%{name} a supprimé l’annonce %{target}" destroy_custom_emoji: "%{name} a détruit l’émoticône %{target}" destroy_domain_allow: "%{name} a supprimé le domaine %{target} de la liste blanche" destroy_domain_block: "%{name} a débloqué le domaine %{target}" @@ -224,10 +226,22 @@ fr: unassigned_report: "%{name} a désassigné le signalement %{target}" unsilence_account: "%{name} a mis fin au mode silence de %{target}" unsuspend_account: "%{name} a réactivé le compte de %{target}" + update_announcement: "%{name} a actualisé l’annonce %{target}" update_custom_emoji: "%{name} a mis à jour l’émoji %{target}" update_status: "%{name} a mis à jour le statut de %{target}" deleted_status: "(statut supprimé)" title: Journal d’audit + announcements: + edit: + title: Modifier l’annonce + empty: Aucune annonce trouvée. + live: En direct + new: + create: Créer une annonce + title: Nouvelle annonce + published: Publié + time_range: Intervalle de temps + title: Annonces custom_emojis: assign_category: Attribuer une catégorie by_domain: Domaine @@ -372,6 +386,8 @@ fr: title: Invitations pending_accounts: title: Comptes en attente (%{count}) + relationships: + title: Relations de %{acct} relays: add_new: Ajouter un nouveau relais delete: Effacer @@ -655,6 +671,9 @@ fr: hint_html: "Astuce : Nous ne vous demanderons plus votre mot de passe pour la prochaine heure." invalid_password: Mot de passe invalide prompt: Confirmez votre mot de passe pour continuer + date: + formats: + default: "%d %b %Y" datetime: distance_in_words: about_x_hours: "%{count} h" @@ -731,6 +750,7 @@ fr: hint_html: "Que sont les hashtags vedettes ? Ils sont affichés avec emphase sur votre flux d'actualités publique et permettent aux gens de parcourir vos messages publics spécifiquement sous ces hashtags. Ils sont un excellent outil pour garder trace des œuvres créatives ou des projets à long terme." filters: contexts: + account: Profils home: Accueil notifications: Notifications public: Fils publics @@ -755,6 +775,8 @@ fr: all: Tous changes_saved_msg: Les modifications ont été enregistrées avec succès ! copy: Copier + delete: Supprimer + edit: Modifier no_batch_actions_available: Aucune action par lots disponible sur cette page order_by: Classer par save_changes: Enregistrer les modifications @@ -926,11 +948,15 @@ fr: other: Autre posting_defaults: Paramètres par défaut des pouets public_timelines: Fils publics + reactions: + errors: + unrecognized_emoji: n’est pas un émoji reconnu relationships: activity: Activité du compte dormant: Dormant followers: Abonné·e·s following: Abonnements + invited: Invité·e last_active: Dernière activité most_recent: Plus récent moved: Déménagé diff --git a/config/locales/gl.yml b/config/locales/gl.yml index f531656b8..9fa44456e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -198,11 +198,13 @@ gl: change_email_user: "%{name} cambiou o enderezo de correo-e da usuaria %{target}" confirm_user: "%{name} comfirmou o enderezo de correo da usuaria %{target}" create_account_warning: "%{name} enviou un aviso a %{target}" + create_announcement: "%{name} creou un novo anuncio %{target}" create_custom_emoji: "%{name} subiu unha nova emoticona %{target}" create_domain_allow: "%{name} engadiu á listaxe branca o dominio %{target}" create_domain_block: "%{name} bloqueou o dominio %{target}" create_email_domain_block: "%{name} engadiu á listaxe negra o dominio de email %{target}" demote_user: "%{name} degradou a usuaria %{target}" + destroy_announcement: "%{name} eliminou o anuncio %{target}" destroy_custom_emoji: "%{name} eliminou a emoticona %{target}" destroy_domain_allow: "%{name} eliminou o dominio %{target} da listaxe branca" destroy_domain_block: "%{name} desbloqueou o dominio %{target}" @@ -224,10 +226,22 @@ gl: unassigned_report: "%{name} deixou de atribuír a denuncia %{target}" unsilence_account: "%{name} deixou de silenciar a conta de %{target}" unsuspend_account: "%{name} desactivou a suspensión da conta de %{target}" + update_announcement: "%{name} actualizou o anuncio %{target}" update_custom_emoji: "%{name} actualizou a emoticona %{target}" update_status: "%{name} actualizou o estado de %{target}" deleted_status: "(estado eliminado)" title: Rexistro de auditoría + announcements: + edit: + title: Editar anuncio + empty: Ningún anuncio atopado. + live: Ao vivo + new: + create: Crear anuncio + title: Novo anuncio + published: Publicado + time_range: Intre de tempo + title: Anuncios custom_emojis: assign_category: Atribuír categoría by_domain: Dominio @@ -657,6 +671,9 @@ gl: hint_html: "Nota: Non che pediremos o contrasinal na seguinte hora." invalid_password: Contrasinal incorrecto prompt: Confirma o contrasinal para continuar + date: + formats: + default: "%d %b, %Y" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -733,6 +750,7 @@ gl: hint_html: "¿Qué son as etiquetas destacadas? Móstranse destacadas no seu perfil público e permítenlle a outras persoas ver os seus toots públicos nos que as utilizou. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo." filters: contexts: + account: Perfís home: Liña temporal inicial notifications: Avisos public: Liñas temporais públicas @@ -757,6 +775,8 @@ gl: all: Todo changes_saved_msg: Cambios gardados correctamente!! copy: Copiar + delete: Eliminar + edit: Editar no_batch_actions_available: Non hai accións en pila dispoñibles nesta páxina order_by: Ordenar por save_changes: Gardar cambios @@ -928,6 +948,9 @@ gl: other: Outro posting_defaults: Valores por omisión public_timelines: Liñas temporais públicas + reactions: + errors: + unrecognized_emoji: non é unha emoticona recoñecida relationships: activity: Actividade da conta dormant: En repouso diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 12b1a90e8..846363ae0 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -224,6 +224,8 @@ ja: update_status: "%{name} さんが %{target} さんの投稿を更新しました" deleted_status: "(削除済)" title: 操作履歴 + announcements: + title: 告知 custom_emojis: assign_category: カテゴリーを割り当て by_domain: ドメイン @@ -747,6 +749,8 @@ ja: all: すべて changes_saved_msg: 正常に変更されました! copy: コピー + delete: 削除 + edit: 編集 no_batch_actions_available: このページに一括操作はありません order_by: 並び順 save_changes: 変更を保存 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 1f638e672..21ea5b554 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -921,6 +921,7 @@ ko: dormant: 휴면 followers: 팔로워 following: 팔로잉 + invited: 초대됨 last_active: 마지막 활동 most_recent: 가장 최근 moved: 이동함 diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 9ff366d01..fb741b0d0 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -733,6 +733,7 @@ pt-BR: hint_html: "O que são hashtags em destaque? Elas são mostradas no seu perfil público e permitem que as pessoas acessem seus toots públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo." filters: contexts: + account: Perfis home: Página inicial notifications: Notificações public: Linhas públicas diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 99b2e5859..deee43287 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -733,6 +733,7 @@ pt-PT: hint_html: "O que são hashtags em destaque? Elas são exibidas de forma bem visível no seu perfil público e permitem que as pessoas consultem as suas publicações públicas especificamente sob essas hashtags. São uma ótima ferramenta para manter o controlo de trabalhos criativos ou projetos de longo prazo." filters: contexts: + account: Perfis home: Cronologia inicial notifications: Notificações public: Cronologias públicas diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 7a0bd1210..bd019ee17 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -389,6 +389,8 @@ ru: title: Приглашения pending_accounts: title: Ожидающие учетные записи (%{count}) + relationships: + title: Связи %{acct} relays: add_new: Добавить ретранслятор delete: Удалить @@ -752,6 +754,7 @@ ru: hint_html: "Особенные хэштеги отображаются в вашем профиле и позволяют людям просматривать ваши посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ." filters: contexts: + account: Посты в профилях home: Домашняя лента notifications: Уведомления public: Публичные ленты @@ -960,6 +963,7 @@ ru: dormant: Заброшенная followers: Подписчики following: Подписки + invited: Приглашённые last_active: По последней активности most_recent: По недавности moved: Мигрировавшая diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 84787a6c5..0863cc4a8 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -14,6 +14,12 @@ de: text_html: Optional. Du kannst Beitragssyntax nutzen. Du kannst Warnungsvorlagen benutzen um Zeit zu sparen type_html: Wähle aus, was du mit %{acct} machen möchtest warning_preset_id: Optional. Du kannst immer noch eigenen Text an das Ende der Vorlage hinzufügen + announcement: + all_day: Wenn aktiviert werden nur die Daten des Zeitraums angezeigt + ends_at: Optional. Die Ankündigung wird zu diesem Zeitpunkt automatisch zurückgezogen + scheduled_at: Leer lassen um die Ankündigung sofort zu veröffentlichen + starts_at: Optional. Falls deine Ankündigung an einen bestimmten Zeitraum gebunden ist + text: Du kannst die Toot-Syntax verwenden. Bitte beachte den Platz, den die Ankündigung auf dem Bildschirm des Benutzers einnehmen wird defaults: autofollow: Leute, die sich über deine Einladung registrieren, werden dir automatisch folgen avatar: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert @@ -83,6 +89,12 @@ de: silence: Stummschalten suspend: Deaktivieren und Benutzerdaten unwiderruflich löschen warning_preset_id: Benutze eine Warnungsvorlage + announcement: + all_day: Ganztägiges Ereignis + ends_at: Ereignisende + scheduled_at: Veröffentlichung planen + starts_at: Beginn des Ereignisses + text: Ankündigung defaults: autofollow: Eingeladene Nutzer sollen dir automatisch folgen avatar: Profilbild diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 7b9e466ee..0e5332f1e 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -14,6 +14,12 @@ fr: text_html: Optionnel. Vous pouvez utilisez la syntaxe des pouets. Vous pouvez ajouter des présélections d’attention pour économiser du temps type_html: Choisir que faire avec %{acct} warning_preset_id: Optionnel. Vous pouvez toujours ajouter un texte personnalisé à la fin de la présélection + announcement: + all_day: Si coché, seules les dates de l’intervalle de temps seront affichées + ends_at: Optionnel. L’annonce sera automatiquement dépubliée à ce moment + scheduled_at: Laisser vide pour publier l’annonce immédiatement + starts_at: Optionnel. Si votre annonce est liée à une période spécifique + text: Vous pouvez utiliser la syntaxe d’un pouet. Veuillez prendre en compte l’espace que l'annonce prendra sur l’écran de l'utilisateur defaults: autofollow: Les personnes qui s’inscrivent grâce à l’invitation vous suivront automatiquement avatar: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px @@ -83,6 +89,12 @@ fr: silence: Masquer suspend: Suspendre et effacer les données du compte de manière irréversible warning_preset_id: Utiliser un modèle d’avertissement + announcement: + all_day: Événement de toute la journée + ends_at: Fin de l’événement + scheduled_at: Planifier la publication + starts_at: Début de l’événement + text: Annonce defaults: autofollow: Invitation à suivre votre compte avatar: Image de profil diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 0fdf3e74e..0af6bd690 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -14,6 +14,12 @@ gl: text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo type_html: Escolla que facer con %{acct} warning_preset_id: Optativo. Poderá engadir texto persoalizado ao final do preestablecido + announcement: + all_day: Cando se marca, só serán amosadas as datas do intre de tempo + ends_at: Opcional. O anuncio non se publicará de xeito automático neste intre + scheduled_at: Déixao baleiro para publicar o anuncio de xeito inmediato + starts_at: Opcional. No caso de que o teu anuncio estea vinculado a un intre de tempo específico + text: Podes empregar a sintaxe do toot. Ten en conta o espazo que ocupará o anuncio na pantalla do usuario defaults: autofollow: As persoas que se conectaron a través de un convite seguirana automáticamente a vostede avatar: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px @@ -83,6 +89,12 @@ gl: silence: Acalar suspend: Suspender e eliminar irreversiblemente datos da conta warning_preset_id: Utilizar un aviso preestablecido + announcement: + all_day: Acontecemento diario + ends_at: Final do acontecemento + scheduled_at: Publicación programada + starts_at: Comezo do acontecemento + text: Anuncio defaults: autofollow: Convide a seguir a súa conta avatar: Avatar diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 21c5c144d..6c675a9f2 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -83,6 +83,8 @@ ja: silence: サイレンス suspend: 停止しアカウントのデータを恒久的に削除する warning_preset_id: プリセット警告文を使用 + announcement: + text: 告知 defaults: autofollow: 招待から参加後、あなたをフォロー avatar: アイコン From 4bae4e972d43f71bffb888ac82c180b2fa3f1ada Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 24 Jan 2020 01:14:51 +0100 Subject: [PATCH 169/207] Bump version to 3.1.0rc1 (#12932) --- lib/mastodon/version.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index f3ead6d8d..5900c49c9 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,15 +9,15 @@ module Mastodon end def minor - 0 - end - - def patch 1 end + def patch + 0 + end + def flags - '' + 'rc1' end def suffix From 14ca559705285432f06d9343dc2d00c0b009184b Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Fri, 24 Jan 2020 14:50:49 -0500 Subject: [PATCH 170/207] Evenly spread space between tabs (#12944) This commit fixes uneven spread of space between the tabs in profiles or notifications (filters). The problem was that links and buttons shown as blocks had their width determined according to the content inside of them, so if one tab has more text content than another, it is going to take over others space, which is uneven and results in incorrectly aligned (?) tabs display. By specifying the size of 100% for each tab, parent container will be forced to divide available space by the number of elements and evenly give each child fixed space, "text-align: center" then doing its best job to keep tabs text centered in that space. This relatively fixes the problem, but will introduce another one - when the block has more content that its width allows to have, in this scenario the text should be wrapped or will be displayed over the other elements, but I see this more as translators' problem. Still, for this case "overflow: hidden" is added and any unfitting text will be cut out. --- app/javascript/styles/mastodon/components.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 922d48ad7..8147ef28d 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -5731,6 +5731,8 @@ a.status-card.compact:hover { text-align: center; text-decoration: none; position: relative; + overflow: hidden; + width: 100%; &.active { color: $secondary-text-color; From 0dfba0884e8885cf242010e0d9da6b328b3560a6 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Fri, 24 Jan 2020 13:51:33 -0600 Subject: [PATCH 171/207] minor server-sent events fixes (#12945) * Send output on the server-sent events stream immediately so the client sees that it was successfully opened even if it doesn't have any messages. Fix transparent SSE streaming for the public:local and hashtag:local stream types. * Tell caches to never store server-sent events. --- app/javascript/mastodon/stream.js | 1 + streaming/index.js | 3 +++ 2 files changed, 4 insertions(+) diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js index fe965bcb0..0cb2b228f 100644 --- a/app/javascript/mastodon/stream.js +++ b/app/javascript/mastodon/stream.js @@ -92,6 +92,7 @@ export default function getStream(streamingAPIBaseURL, accessToken, stream, { co return ws; } + stream = stream.replace(/:/g, '/'); params.push(`access_token=${accessToken}`); const es = new EventSource(`${streamingAPIBaseURL}/api/v1/streaming/${stream}?${params.join('&')}`); diff --git a/streaming/index.js b/streaming/index.js index 304e7e046..0a19c74a6 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -436,8 +436,11 @@ const startWorker = (workerId) => { const accountId = req.accountId || req.remoteAddress; res.setHeader('Content-Type', 'text/event-stream'); + res.setHeader('Cache-Control', 'no-store'); res.setHeader('Transfer-Encoding', 'chunked'); + res.write(':)\n'); + const heartbeat = setInterval(() => res.write(':thump\n'), 15000); req.on('close', () => { From 288f50942411add68d097985d46d701deba17c2f Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 24 Jan 2020 22:08:24 +0100 Subject: [PATCH 172/207] Fix type error in announcement reaction update event payload (#12946) --- app/workers/publish_announcement_reaction_worker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/workers/publish_announcement_reaction_worker.rb b/app/workers/publish_announcement_reaction_worker.rb index 6f3b6dc5b..e01deb64d 100644 --- a/app/workers/publish_announcement_reaction_worker.rb +++ b/app/workers/publish_announcement_reaction_worker.rb @@ -10,7 +10,7 @@ class PublishAnnouncementReactionWorker reaction, = announcement.announcement_reactions.where(name: name).group(:announcement_id, :name, :custom_emoji_id).select('name, custom_emoji_id, count(*) as count, false as me') reaction ||= announcement.announcement_reactions.new(name: name) - payload = InlineRenderer.render(reaction, nil, :reaction).tap { |h| h[:announcement_id] = announcement_id } + payload = InlineRenderer.render(reaction, nil, :reaction).tap { |h| h[:announcement_id] = announcement_id.to_s } payload = Oj.dump(event: :'announcement.reaction', payload: payload) Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each do |account| From 1268e3b5726b0650afda20410a714995aa9aeae7 Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Fri, 24 Jan 2020 16:37:04 -0500 Subject: [PATCH 173/207] Fix unlocalized dropdown button title (#12947) In detailed status component, "More" action bar button wasn't localized. This commit fixes it according to previously used code. --- .../mastodon/features/status/components/action_bar.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index bf6469f2f..657d2bb1c 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -19,6 +19,7 @@ const messages = defineMessages({ cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' }, + more: { id: 'status.more', defaultMessage: 'More' }, mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' }, muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' }, unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, @@ -275,7 +276,7 @@ class ActionBar extends React.PureComponent {
- +
); From b89e6cfe7071901a43d1bfbde9dc7b872443e1b2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 04:20:06 +0100 Subject: [PATCH 174/207] Change font size of announcements to be the same as statuses (#12949) --- app/javascript/styles/mastodon/components.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 8147ef28d..6c412bc89 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6654,6 +6654,10 @@ noscript { padding: 15px; padding-right: 15px + 18px; position: relative; + font-size: 15px; + line-height: 20px; + word-wrap: break-word; + font-weight: 400; &__range { display: block; From 71921f6bc35b3bbcca8147b20befea113a21dd1f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 05:22:35 +0100 Subject: [PATCH 175/207] Fix user disabling changing activity timestamps, fix nil error (#12943) --- app/models/user.rb | 6 ++---- spec/models/user_spec.rb | 15 +-------------- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 058a8d5f8..85ee5cd06 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -128,9 +128,7 @@ class User < ApplicationRecord end def disable! - update!(disabled: true, - last_sign_in_at: current_sign_in_at, - current_sign_in_at: nil) + update!(disabled: true) end def enable! @@ -301,7 +299,7 @@ class User < ApplicationRecord arr << [current_sign_in_at, current_sign_in_ip] if current_sign_in_ip.present? arr << [last_sign_in_at, last_sign_in_ip] if last_sign_in_ip.present? - arr.sort_by(&:first).uniq(&:last).reverse! + arr.sort_by { |pair| pair.first || Time.now.utc }.uniq(&:last).reverse! end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d7c0b5359..5686ec909 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -322,20 +322,7 @@ RSpec.describe User, type: :model do end it 'disables user' do - expect(user).to have_attributes(disabled: true, current_sign_in_at: nil, last_sign_in_at: current_sign_in_at) - end - end - - describe '#disable!' do - subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) } - let(:current_sign_in_at) { Time.zone.now } - - before do - user.disable! - end - - it 'disables user' do - expect(user).to have_attributes(disabled: true, current_sign_in_at: nil, last_sign_in_at: current_sign_in_at) + expect(user).to have_attributes(disabled: true) end end From 76f1ed834efd3b58b6ebc8e951b661bbc1b7bf9b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 05:23:05 +0100 Subject: [PATCH 176/207] Add number animations (#12948) --- .../mastodon/components/animated_number.js | 47 +++++++++++++++++++ .../components/announcements.js | 5 +- .../status/components/detailed_status.js | 11 +++-- .../styles/mastodon/components.scss | 12 ++++- 4 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 app/javascript/mastodon/components/animated_number.js diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.js new file mode 100644 index 000000000..2d359fbc6 --- /dev/null +++ b/app/javascript/mastodon/components/animated_number.js @@ -0,0 +1,47 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { FormattedNumber } from 'react-intl'; +import TransitionMotion from 'react-motion/lib/TransitionMotion'; +import spring from 'react-motion/lib/spring'; +import { reduceMotion } from 'mastodon/initial_state'; + +export default class AnimatedNumber extends React.PureComponent { + + static propTypes = { + value: PropTypes.number.isRequired, + }; + + willEnter () { + return { y: -1 }; + } + + willLeave () { + return { y: spring(1, { damping: 35, stiffness: 400 }) }; + } + + render () { + const { value } = this.props; + + if (reduceMotion) { + return ; + } + + const styles = [{ + key: value, + style: { y: spring(0, { damping: 35, stiffness: 400 }) }, + }]; + + return ( + + {items => ( + + {items.map(({ key, style }) => ( + 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}> + ))} + + )} + + ); + } + +} diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index ee444e3f0..18b1de127 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -5,13 +5,14 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import IconButton from 'mastodon/components/icon_button'; import Icon from 'mastodon/components/icon'; -import { defineMessages, injectIntl, FormattedMessage, FormattedDate, FormattedNumber } from 'react-intl'; +import { defineMessages, injectIntl, FormattedMessage, FormattedDate } from 'react-intl'; import { autoPlayGif } from 'mastodon/initial_state'; import elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg'; import { mascot } from 'mastodon/initial_state'; import unicodeMapping from 'mastodon/features/emoji/emoji_unicode_mapping_light'; import classNames from 'classnames'; import EmojiPickerDropdown from 'mastodon/features/compose/containers/emoji_picker_dropdown_container'; +import AnimatedNumber from 'mastodon/components/animated_number'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, @@ -225,7 +226,7 @@ class Reaction extends ImmutablePureComponent { return ( ); } diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index d5bc82735..2fec247c1 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -6,7 +6,7 @@ import DisplayName from '../../../components/display_name'; import StatusContent from '../../../components/status_content'; import MediaGallery from '../../../components/media_gallery'; import { Link } from 'react-router-dom'; -import { FormattedDate, FormattedNumber } from 'react-intl'; +import { FormattedDate } from 'react-intl'; import Card from './card'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Video from '../../video'; @@ -14,6 +14,7 @@ import Audio from '../../audio'; import scheduleIdleTask from '../../ui/util/schedule_idle_task'; import classNames from 'classnames'; import Icon from 'mastodon/components/icon'; +import AnimatedNumber from 'mastodon/components/animated_number'; export default class DetailedStatus extends ImmutablePureComponent { @@ -172,7 +173,7 @@ export default class DetailedStatus extends ImmutablePureComponent { - + ); @@ -181,7 +182,7 @@ export default class DetailedStatus extends ImmutablePureComponent { - + ); @@ -192,7 +193,7 @@ export default class DetailedStatus extends ImmutablePureComponent { - + ); @@ -201,7 +202,7 @@ export default class DetailedStatus extends ImmutablePureComponent { - + ); diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 6c412bc89..1e1000ff3 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -3,6 +3,14 @@ -ms-overflow-style: -ms-autohiding-scrollbar; } +.animated-number { + display: inline-flex; + flex-direction: column; + align-items: stretch; + overflow: hidden; + position: relative; +} + .link-button { display: block; font-size: 15px; @@ -6754,10 +6762,10 @@ noscript { &.active { transition: all 100ms ease-in; transition-property: background-color, color; - background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 90%); + background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%); .reactions-bar__item__count { - color: $highlight-text-color; + color: lighten($highlight-text-color, 8%); } } } From f816da9c6474ddf437681fbf7f5346672436ccdf Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 05:23:33 +0100 Subject: [PATCH 177/207] Add limit of 8 different reaction types per announcement (#12950) --- .../features/getting_started/components/announcements.js | 2 +- app/validators/reaction_validator.rb | 7 +++++++ config/locales/en.yml | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index 18b1de127..975db0265 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -265,7 +265,7 @@ class ReactionsBar extends ImmutablePureComponent { /> ))} - } /> + {visibleReactions.size < 8 && } />}
); } diff --git a/app/validators/reaction_validator.rb b/app/validators/reaction_validator.rb index de0f2c94b..be899c89d 100644 --- a/app/validators/reaction_validator.rb +++ b/app/validators/reaction_validator.rb @@ -3,10 +3,13 @@ class ReactionValidator < ActiveModel::Validator SUPPORTED_EMOJIS = Oj.load(File.read(Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json'))).keys.freeze + LIMIT = 8 + def validate(reaction) return if reaction.name.blank? || reaction.custom_emoji_id.present? reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) unless unicode_emoji?(reaction.name) + reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if limit_reached?(reaction) end private @@ -14,4 +17,8 @@ class ReactionValidator < ActiveModel::Validator def unicode_emoji?(name) SUPPORTED_EMOJIS.include?(name) end + + def limit_reached?(reaction) + reaction.announcement.announcement_reactions.where.not(name: reaction.name).count('distinct name') >= LIMIT + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index bb9084b32..0ba573020 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -951,6 +951,7 @@ en: public_timelines: Public timelines reactions: errors: + limit_reached: Limit of different reactions reached unrecognized_emoji: is not a recognized emoji relationships: activity: Account activity From fcd79a55842069e96f706a18c10b75aa131e4f28 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 11:54:10 +0100 Subject: [PATCH 178/207] New Crowdin translations (#12936) * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations doorkeeper.en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations en.yml (Kannada) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations en.json (Kannada) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.json (Thai) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations doorkeeper.en.yml (Icelandic) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations simple_form.en.yml (Kabyle) [ci skip] * New translations doorkeeper.en.yml (Kabyle) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Dutch) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations doorkeeper.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations doorkeeper.en.yml (Hebrew) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations doorkeeper.en.yml (Hungarian) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations simple_form.en.yml (Ido) [ci skip] * New translations doorkeeper.en.yml (Ido) [ci skip] * New translations doorkeeper.en.yml (Indonesian) [ci skip] * New translations en.json (Italian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.json (Greek) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Dutch) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations en.yml (French) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations activerecord.en.yml (Kabyle) [ci skip] * New translations devise.en.yml (Kabyle) [ci skip] * New translations activerecord.en.yml (Spanish) [ci skip] * New translations devise.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations devise.en.yml (Catalan) [ci skip] * New translations activerecord.en.yml (Catalan) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Persian) [ci skip] * New translations devise.en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * i18n-tasks normalize * yarn manage:translations --- app/javascript/mastodon/locales/br.json | 38 +-- app/javascript/mastodon/locales/ca.json | 14 +- app/javascript/mastodon/locales/co.json | 2 +- .../mastodon/locales/defaultMessages.json | 4 + app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es.json | 54 ++-- app/javascript/mastodon/locales/eu.json | 2 +- app/javascript/mastodon/locales/fa.json | 290 +++++++++--------- app/javascript/mastodon/locales/gl.json | 36 +-- app/javascript/mastodon/locales/hu.json | 2 +- app/javascript/mastodon/locales/ja.json | 6 +- app/javascript/mastodon/locales/ko.json | 2 +- app/javascript/mastodon/locales/nn.json | 8 +- app/javascript/mastodon/locales/no.json | 8 +- app/javascript/mastodon/locales/ru.json | 2 +- app/javascript/mastodon/locales/sk.json | 2 +- app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 2 +- app/javascript/mastodon/locales/uk.json | 10 +- config/locales/ca.yml | 22 ++ config/locales/co.yml | 30 +- config/locales/de.yml | 1 + config/locales/devise.ca.yml | 4 +- config/locales/devise.es.yml | 20 +- config/locales/doorkeeper.uk.yml | 3 + config/locales/el.yml | 26 ++ config/locales/es-AR.yml | 22 ++ config/locales/es.yml | 143 +++++---- config/locales/eu.yml | 26 ++ config/locales/hu.yml | 26 ++ config/locales/ja.yml | 27 +- config/locales/kk.yml | 6 + config/locales/ko.yml | 26 ++ config/locales/nn.yml | 34 ++ config/locales/no.yml | 56 ++++ config/locales/ru.yml | 23 ++ config/locales/simple_form.ca.yml | 12 + config/locales/simple_form.co.yml | 12 + config/locales/simple_form.cs.yml | 4 + config/locales/simple_form.el.yml | 12 + config/locales/simple_form.es-AR.yml | 12 + config/locales/simple_form.es.yml | 20 +- config/locales/simple_form.eu.yml | 12 + config/locales/simple_form.gl.yml | 6 +- config/locales/simple_form.hu.yml | 12 + config/locales/simple_form.id.yml | 6 + config/locales/simple_form.ja.yml | 12 +- config/locales/simple_form.ko.yml | 12 + config/locales/simple_form.nn.yml | 38 +++ config/locales/simple_form.no.yml | 45 +++ config/locales/simple_form.ru.yml | 12 + config/locales/simple_form.th.yml | 2 + config/locales/simple_form.tr.yml | 12 + config/locales/simple_form.uk.yml | 12 + config/locales/sk.yml | 8 + config/locales/th.yml | 28 ++ config/locales/tr.yml | 23 ++ config/locales/uk.yml | 47 +++ 59 files changed, 1016 insertions(+), 326 deletions(-) diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 967577f2e..b6bf0eb8a 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Ouzhpenn pe lemel ag ar listennadoù", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Strollad", "account.block": "Stankañ @{name}", "account.block_domain": "Kuzh kement tra a {domain}", "account.blocked": "Stanket", @@ -35,17 +35,17 @@ "account.show_reblogs": "Diskouez toudoù a @{name}", "account.unblock": "Distankañ @{name}", "account.unblock_domain": "Diguzh {domain}", - "account.unendorse": "Don't feature on profile", + "account.unendorse": "Paouez da lakaat war-wel war ar profil", "account.unfollow": "Diheuliañ", "account.unmute": "Diguzhat @{name}", "account.unmute_notifications": "Diguzhat kemennoù a @{name}", - "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.", "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.", "alert.unexpected.title": "C'hem !", - "announcement.announcement": "Announcement", + "announcement.announcement": "Kemenn", "autosuggest_hashtag.per_week": "{count} bep sizhun", - "boost_modal.combo": "You can press {combo} to skip this next time", + "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", "bundle_column_error.body": "Something went wrong while loading this component.", "bundle_column_error.retry": "Klask endro", "bundle_column_error.title": "Fazi rouedad", @@ -53,12 +53,12 @@ "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.bookmarks": "Sinedoù", "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.favourites": "Ar re vuiañ-karet", "column.follow_requests": "Pedadoù heuliañ", "column.home": "Degemer", "column.lists": "Listennoù", @@ -93,28 +93,28 @@ "compose_form.sensitive.marked": "Media is marked as sensitive", "compose_form.sensitive.unmarked": "Media is not marked as sensitive", "compose_form.spoiler.marked": "Text is hidden behind warning", - "compose_form.spoiler.unmarked": "Text is not hidden", + "compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn", "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", + "confirmation_modal.cancel": "Nullañ", "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.delete.confirm": "Delete", + "confirmations.delete.confirm": "Dilemel", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.delete_list.confirm": "Delete", - "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", - "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.delete_list.confirm": "Dilemel", + "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", + "confirmations.domain_block.confirm": "Kuzhat an domani a-bezh", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", - "confirmations.logout.confirm": "Log out", + "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Are you sure you want to log out?", - "confirmations.mute.confirm": "Mute", + "confirmations.mute.confirm": "Kuzhat", "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": "Are you sure you want to mute {name}?", - "confirmations.redraft.confirm": "Delete & redraft", + "confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?", + "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "confirmations.reply.confirm": "Reply", + "confirmations.reply.confirm": "Respont", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", - "confirmations.unfollow.confirm": "Unfollow", + "confirmations.unfollow.confirm": "Diheuliañ", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 6516a4a80..65ec5750b 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -8,8 +8,8 @@ "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment", "account.direct": "Missatge directe @{name}", "account.domain_blocked": "Domini ocult", - "account.edit_profile": "Editar el perfil", - "account.endorse": "Recomanar en el teu perfil", + "account.edit_profile": "Edita el perfil", + "account.endorse": "Recomana en el teu perfil", "account.follow": "Segueix", "account.followers": "Seguidors", "account.followers.empty": "Encara ningú no segueix aquest usuari.", @@ -29,13 +29,13 @@ "account.never_active": "Mai", "account.posts": "Tuts", "account.posts_with_replies": "Tuts i respostes", - "account.report": "Informe @{name}", + "account.report": "Informar sobre @{name}", "account.requested": "Esperant aprovació. Clic per a cancel·lar la petició de seguiment", "account.share": "Comparteix el perfil de @{name}", "account.show_reblogs": "Mostra els impulsos de @{name}", - "account.unblock": "Desbloca @{name}", + "account.unblock": "Desbloqueja @{name}", "account.unblock_domain": "Mostra {domain}", - "account.unendorse": "No es mostren al perfil", + "account.unendorse": "No recomanar en el perfil", "account.unfollow": "Deixa de seguir", "account.unmute": "Treure silenci de @{name}", "account.unmute_notifications": "Activar notificacions de @{name}", @@ -43,9 +43,9 @@ "alert.rate_limited.title": "Límit de freqüència", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Anunci", "autosuggest_hashtag.per_week": "{count} per setmana", - "boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop", + "boost_modal.combo": "Pots prémer {combo} per saltar-te això el proper cop", "bundle_column_error.body": "S'ha produït un error en carregar aquest component.", "bundle_column_error.retry": "Torna-ho a provar", "bundle_column_error.title": "Error de connexió", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 091a73c85..8f3c99f8a 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Ghjettu limitatu", "alert.unexpected.message": "Un prublemu inaspettatu hè accadutu.", "alert.unexpected.title": "Uups!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Annunziu", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta", "bundle_column_error.body": "C'hè statu un prublemu caricandu st'elementu.", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index a2efd2d64..3fc726dfd 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -2319,6 +2319,10 @@ "defaultMessage": "Bookmark", "id": "status.bookmark" }, + { + "defaultMessage": "More", + "id": "status.more" + }, { "defaultMessage": "Mute @{name}", "id": "status.mute" diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index d9d2ef590..abb6f0d33 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Περιορισμός συχνότητας", "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.", "alert.unexpected.title": "Εεπ!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Ανακοίνωση", "autosuggest_hashtag.per_week": "{count} ανα εβδομάδα", "boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά", "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 70bcef133..f83e5a251 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Tarifa limitada", "alert.unexpected.message": "Ocurrió un error.", "alert.unexpected.title": "¡Epa!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Anuncio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez", "bundle_column_error.body": "Algo salió mal al cargar este componente.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 31f190616..93484b412 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -40,10 +40,10 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}", "alert.rate_limited.message": "Por favor reintente después de {retry_time, time, medium}.", - "alert.rate_limited.title": "Tasa limitada", + "alert.rate_limited.title": "Tarifa limitada", "alert.unexpected.message": "Hubo un error inesperado.", "alert.unexpected.title": "¡Ups!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Anuncio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", "bundle_column_error.body": "Algo salió mal al cargar este componente.", @@ -54,7 +54,7 @@ "bundle_modal_error.retry": "Inténtalo de nuevo", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", - "column.community": "Cronología local", + "column.community": "Línea de tiempo local", "column.direct": "Mensajes directos", "column.directory": "Buscar perfiles", "column.domain_blocks": "Dominios ocultados", @@ -65,7 +65,7 @@ "column.mutes": "Usuarios silenciados", "column.notifications": "Notificaciones", "column.pins": "Toots fijados", - "column.public": "Cronología federada", + "column.public": "Línea de tiempo federada", "column_back_button.label": "Atrás", "column_header.hide_settings": "Ocultar configuración", "column_header.moveLeft_settings": "Mover columna a la izquierda", @@ -87,7 +87,7 @@ "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", - "compose_form.publish": "Ipotxa", + "compose_form.publish": "Tootear", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar multimedia como sensible", "compose_form.sensitive.marked": "Material marcado como sensible", @@ -104,7 +104,7 @@ "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.domain_block.confirm": "Ocultar dominio entero", - "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.\nNo podrás ver contenido de ese dominio en ninguna de las cronologías públicas o tus notificaciones. Tus seguidoras de ese dominio serán borradas.", + "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", @@ -143,23 +143,23 @@ "empty_column.account_timeline": "¡No hay toots aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Aún no has bloqueado a ningún usuario.", - "empty_column.bookmarked_statuses": "Aún no tienes ninguna barritada guardada como marcador. Cuando guardes una, se mostrará aquí.", - "empty_column.community": "La cronología local está vacía. ¡Escribe algo para empezar la fiesta!", + "empty_column.bookmarked_statuses": "Aún no tienes ningún toot guardado como marcador. Cuando guardes uno, se mostrará aquí.", + "empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!", "empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.favourited_statuses": "Aún no tienes toots preferidos. Cuando marques uno como favorito, aparecerá aquí.", "empty_column.favourites": "Nadie ha marcado este toot como preferido. Cuando alguien lo haga, aparecerá aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", - "empty_column.hashtag": "No hay nada en esta etiqueta aún.", + "empty_column.hashtag": "No hay nada en este hashtag aún.", "empty_column.home": "No estás siguiendo a nadie aún. Visita {public} o haz búsquedas para empezar y conocer gente nueva.", - "empty_column.home.public_timeline": "la cronología pública", + "empty_column.home.public_timeline": "la línea de tiempo pública", "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.", - "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodonte a través de otro navegador o aplicación nativa.", + "error.unexpected_crash.next_steps": "Intenta actualizar la página. Si eso no ayuda, es posible que puedas usar Mastodon a través de otro navegador o aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.report_issue": "Informar de un problema/error", "follow_request.authorize": "Autorizar", @@ -169,18 +169,18 @@ "getting_started.documentation": "Documentación", "getting_started.heading": "Primeros pasos", "getting_started.invite": "Invitar usuarios", - "getting_started.open_source_notice": "Mastodonte es un Programa Libre y de Código Abierto - Plica/Foss -. Puedes contribuir o reportar errores en {github}.", + "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.", "getting_started.security": "Seguridad", "getting_started.terms": "Términos de servicio", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", "hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias", - "hashtag.column_settings.select.placeholder": "Introduzca etiquetas…", - "hashtag.column_settings.tag_mode.all": "Todos estos", + "hashtag.column_settings.select.placeholder": "Introduzca hashtags…", + "hashtag.column_settings.tag_mode.all": "Cualquiera de estos", "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", - "hashtag.column_settings.tag_toggle": "Incluya etiquetas adicionales para esta columna", + "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", @@ -193,7 +193,7 @@ "introduction.federation.home.headline": "Inicio", "introduction.federation.home.text": "Los posts de personas que sigues aparecerán en tu cronología. ¡Puedes seguir a cualquiera en cualquier servidor!", "introduction.federation.local.headline": "Local", - "introduction.federation.local.text": "Los mensajes públicos de personas en el mismo servidor que aparecerán en la cronología local.", + "introduction.federation.local.text": "Los posts públicos de personas en el mismo servidor que aparecerán en la cronología local.", "introduction.interactions.action": "¡Terminar tutorial!", "introduction.interactions.favourite.headline": "Favorito", "introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.", @@ -215,12 +215,12 @@ "keyboard_shortcuts.enter": "abrir estado", "keyboard_shortcuts.favourite": "añadir a favoritos", "keyboard_shortcuts.favourites": "abrir la lista de favoritos", - "keyboard_shortcuts.federated": "abrir la cronología federada", + "keyboard_shortcuts.federated": "abrir el timeline federado", "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "abrir la cronología propia", + "keyboard_shortcuts.home": "abrir el timeline propio", "keyboard_shortcuts.hotkey": "Tecla caliente", "keyboard_shortcuts.legend": "para mostrar esta leyenda", - "keyboard_shortcuts.local": "abrir la cronología local", + "keyboard_shortcuts.local": "abrir el timeline local", "keyboard_shortcuts.mention": "para mencionar al autor", "keyboard_shortcuts.muted": "abrir la lista de usuarios silenciados", "keyboard_shortcuts.my_profile": "abrir tu perfil", @@ -259,7 +259,7 @@ "navigation_bar.apps": "Aplicaciones móviles", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", - "navigation_bar.community_timeline": "Cronología local", + "navigation_bar.community_timeline": "Historia local", "navigation_bar.compose": "Escribir un nuevo toot", "navigation_bar.direct": "Mensajes directos", "navigation_bar.discover": "Descubrir", @@ -277,7 +277,7 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Toots fijados", "navigation_bar.preferences": "Preferencias", - "navigation_bar.public_timeline": "Cronología federada", + "navigation_bar.public_timeline": "Historia federada", "navigation_bar.security": "Seguridad", "notification.favourite": "{name} marcó tu estado como favorito", "notification.follow": "{name} te empezó a seguir", @@ -321,9 +321,9 @@ "privacy.direct.short": "Directo", "privacy.private.long": "Sólo mostrar a seguidores", "privacy.private.short": "Privado", - "privacy.public.long": "Mostrar en la cronología federada", + "privacy.public.long": "Mostrar en la historia federada", "privacy.public.short": "Público", - "privacy.unlisted.long": "No mostrar en la cronología federada", + "privacy.unlisted.long": "No mostrar en la historia federada", "privacy.unlisted.short": "No listado", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", @@ -345,12 +345,12 @@ "search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.", "search_popout.tips.hashtag": "etiqueta", "search_popout.tips.status": "estado", - "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, persona usuaria y etiqueta", + "search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag", "search_popout.tips.user": "usuario", "search_results.accounts": "Gente", "search_results.hashtags": "Etiquetas", "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Buscar bramidos por su contenido no está disponible en este servidor de Mastodonte.", + "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_status": "Abrir este estado en la interfaz de moderación", @@ -396,7 +396,7 @@ "status.unpin": "Dejar de fijar", "suggestions.dismiss": "Descartar sugerencia", "suggestions.header": "Es posible que te interese…", - "tabs_bar.federated_timeline": "Federada", + "tabs_bar.federated_timeline": "Federado", "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificaciones", @@ -408,7 +408,7 @@ "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando", "trends.trending_now": "Tendencia ahora", - "ui.beforeunload": "Tu borrador se perderá si sales de Mastodonte.", + "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.", "upload_area.title": "Arrastra y suelta para subir", "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Límite de subida de archivos excedido.", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index e9fbcedac..c89cb151f 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Abiadura mugatua", "alert.unexpected.message": "Ustekabeko errore bat gertatu da.", "alert.unexpected.title": "Ene!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Iragarpena", "autosuggest_hashtag.per_week": "{count} asteko", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index c2a8eb0de..3bb2f0ee8 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -1,48 +1,48 @@ { - "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست", + "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست‌ها", "account.badges.bot": "ربات", "account.badges.group": "گروه", "account.block": "مسدودسازی @{name}", - "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}", + "account.block_domain": "نهفتن همه چیز از {domain}", "account.blocked": "مسدود", "account.cancel_follow_request": "لغو درخواست پیگیری", "account.direct": "پیام خصوصی به @{name}", - "account.domain_blocked": "دامنه نهفته", + "account.domain_blocked": "دامنهٔ نهفته", "account.edit_profile": "ویرایش نمایه", "account.endorse": "معرّفی در نمایه", - "account.follow": "پیگیری", + "account.follow": "پی بگیرید", "account.followers": "پی‌گیران", "account.followers.empty": "هنوز کسی پیگیر این کاربر نیست.", "account.follows": "پی می‌گیرد", "account.follows.empty": "این کاربر هنوز پیگیر کسی نیست.", - "account.follows_you": "پیگیرتان", - "account.hide_reblogs": "نهفتن تقویت‌های @{name}", + "account.follows_you": "پیگیر شماست", + "account.hide_reblogs": "نهفتن بازبوق‌های @{name}", "account.last_status": "آخرین فعالیت", "account.link_verified_on": "مالکیت این پیوند در {date} بررسی شد", "account.locked_info": "این حساب خصوصی است. صاحبش تصمیم می‌گیرد که چه کسی بتواند پیگیرش باشد.", "account.media": "رسانه", - "account.mention": "اشاره به @{name}", + "account.mention": "نام‌بردن از @{name}", "account.moved_to": "{name} منتقل شده به:", "account.mute": "خموشی @{name}", - "account.mute_notifications": "خموشی آگاهی‌ها از @{name}", + "account.mute_notifications": "خموشی اعلان‌ها از @{name}", "account.muted": "خموش", "account.never_active": "هرگز", - "account.posts": "بوق‌ها", - "account.posts_with_replies": "بوق‌ها و پاسخ‌ها", + "account.posts": "نوشته‌ها", + "account.posts_with_replies": "نوشته‌ها و پاسخ‌ها", "account.report": "گزارش @{name}", - "account.requested": "منتظر پذیرش. کلیک برای لغو درخواست پی‌گیری", + "account.requested": "منتظر پذیرش. برای لغو درخواست پی‌گیری کلیک کنید", "account.share": "هم‌رسانی نمایهٔ @{name}", - "account.show_reblogs": "نمایش تقویت‌های @{name}", + "account.show_reblogs": "نمایش بازبوق‌های @{name}", "account.unblock": "رفع انسداد @{name}", "account.unblock_domain": "رفع نهفتن {domain}", "account.unendorse": "معرّفی نکردن در نمایه", - "account.unfollow": "ناپی‌گیری", + "account.unfollow": "پایان پیگیری", "account.unmute": "رفع خموشی @{name}", - "account.unmute_notifications": "رفع خموشی آگاهی‌ها از @{name}", + "account.unmute_notifications": "رفع خموشی اعلان‌ها از @{name}", "alert.rate_limited.message": "لطفاً پس از {retry_time, time, medium} دوباره بیازمایید.", - "alert.rate_limited.title": "محدود شده", + "alert.rate_limited.title": "محدودیت تعداد", "alert.unexpected.message": "خطایی غیرمنتظره رخ داد.", - "alert.unexpected.title": "وای!", + "alert.unexpected.title": "ای وای!", "announcement.announcement": "Announcement", "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", @@ -50,37 +50,37 @@ "bundle_column_error.retry": "تلاش دوباره", "bundle_column_error.title": "خطای شبکه", "bundle_modal_error.close": "بستن", - "bundle_modal_error.message": "هنگام بار کردن این بخش خطایی رخ داد.", + "bundle_modal_error.message": "هنگام بازکردن این بخش خطایی رخ داد.", "bundle_modal_error.retry": "تلاش دوباره", "column.blocks": "کاربران مسدود", "column.bookmarks": "نشانک‌ها", - "column.community": "خط زمانی محلّی", + "column.community": "نوشته‌های محلی", "column.direct": "پیام‌های خصوصی", "column.directory": "مرور نمایه‌ها", "column.domain_blocks": "دامنه‌های نهفته", - "column.favourites": "برگزیده‌ها", + "column.favourites": "پسندیده‌ها", "column.follow_requests": "درخواست‌های پیگیری", "column.home": "خانه", "column.lists": "فهرست‌ها", "column.mutes": "کاربران خموش", - "column.notifications": "آگاهی‌ها", - "column.pins": "بوق‌های سنجاق‌شده", - "column.public": "خط‌زمانی عمومی", + "column.notifications": "اعلان‌ها", + "column.pins": "بوق‌های ثابت", + "column.public": "نوشته‌های همه‌جا", "column_back_button.label": "بازگشت", "column_header.hide_settings": "نهفتن تنظیمات", "column_header.moveLeft_settings": "انتقال ستون به راست", "column_header.moveRight_settings": "انتقال ستون به چپ", - "column_header.pin": "سنجاق", + "column_header.pin": "ثابت‌کردن", "column_header.show_settings": "نمایش تنظیمات", - "column_header.unpin": "برداشتن سنجاق", + "column_header.unpin": "رهاکردن", "column_subheading.settings": "تنظیمات", "community.column_settings.media_only": "فقط رسانه", - "compose_form.direct_message_warning": "این بوق تنها به کاربران اشاره‌شده فرستاده خواهد شد.", - "compose_form.direct_message_warning_learn_more": "بیش‌تر بدانید", + "compose_form.direct_message_warning": "این بوق تنها به کاربرانی که از آن‌ها نام برده شده فرستاده خواهد شد.", + "compose_form.direct_message_warning_learn_more": "بیشتر بدانید", "compose_form.hashtag_warning": "از آن‌جا که این بوق فهرست‌نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها بوق‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.", "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پیگیرتان شده و فرسته‌های ویژهٔ پیگیرانتان را ببیند.", "compose_form.lock_disclaimer.lock": "قفل", - "compose_form.placeholder": "چی تو سرته؟", + "compose_form.placeholder": "تازه چه خبر؟", "compose_form.poll.add_option": "افزودن گزینه", "compose_form.poll.duration": "مدت نظرسنجی", "compose_form.poll.option_placeholder": "گزینهٔ {number}", @@ -89,81 +89,81 @@ "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای", "compose_form.publish": "بوق", "compose_form.publish_loud": "{publish}!", - "compose_form.sensitive.hide": "علامت‌گذاری رسانه به عنوان حساس", + "compose_form.sensitive.hide": "علامت‌گذاری به عنوان حساس", "compose_form.sensitive.marked": "رسانه به عنوان حساس علامت‌گذاری شده", "compose_form.sensitive.unmarked": "رسانه به عنوان حساس علامت‌گذاری نشده", "compose_form.spoiler.marked": "نوشته پشت هشدار پنهان است", "compose_form.spoiler.unmarked": "نوشته پنهان نیست", "compose_form.spoiler_placeholder": "هشدارتان را این‌جا بنویسید", - "confirmation_modal.cancel": "لغو", - "confirmations.block.block_and_report": "انسداد و گزارش", - "confirmations.block.confirm": "انسداد", + "confirmation_modal.cancel": "بی‌خیال", + "confirmations.block.block_and_report": "مسدودسازی و گزارش", + "confirmations.block.confirm": "مسدود کن", "confirmations.block.message": "مطمئنید که می‌خواهید {name} را مسدود کنید؟", - "confirmations.delete.confirm": "حذف", - "confirmations.delete.message": "مطمئنید می‌خواهید این وضعیت را حذف کنید؟", - "confirmations.delete_list.confirm": "حذف", + "confirmations.delete.confirm": "پاک کن", + "confirmations.delete.message": "آیا مطمئنید که می‌خواهید این بوق را پاک کنید؟", + "confirmations.delete_list.confirm": "پاک کن", "confirmations.delete_list.message": "مطمئنید می‌خواهید این فهرست را برای همیشه پاک کنید؟", "confirmations.domain_block.confirm": "نهفتن تمام دامنه", - "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیش‌تر موارد انسداد یا خموش کردن چند حساب خاص کافی بوده و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در خط‌زمانی‌های عمومی یا آگاهی‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.", + "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدودسازی یا خموشیدن چند حساب خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامنه در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیرانتان از این دامنه هم حذف خواهند شد.", "confirmations.logout.confirm": "خروج", "confirmations.logout.message": "مطمئنید می‌خواهید خارج شوید؟", "confirmations.mute.confirm": "خموشی", - "confirmations.mute.explanation": "این کار فرسته‌هایشان و فرسته‌هایی که به آنان اشاره می‌کند را پنهان می‌کند، ولی همچنان اجازه دارند فرسته‌هایتان را دیده و دنبالتان کنند.", - "confirmations.mute.message": "مطمئنید می‌خواهید {name} را خموش کنید؟", - "confirmations.redraft.confirm": "حذف و بازنویسی", - "confirmations.redraft.message": "مطمئنید می‌خواهید این وضعیت را حذف کرده و از نو بنویسید؟ با این کار تقویت‌ها و برگزیدن‌هایش از دست رفته و پاسخ‌ها به فرستهٔ اصلی یتیم می‌شوند.", + "confirmations.mute.explanation": "این کار فرسته‌های آن‌ها و فرسته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند فرسته‌های شما را ببینند و شما را پی بگیرند.", + "confirmations.mute.message": "مطمئنید می‌خواهید {name} را بخموشید؟", + "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی", + "confirmations.redraft.message": "مطمئنید که می‌خواهید این بوق را پاک کنید و از نو بنویسید؟ با این کار بازبوق‌ها و پسندهای آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.", "confirmations.reply.confirm": "پاسخ", - "confirmations.reply.message": "اگر الان پاسخ دهید، پیامی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟", - "confirmations.unfollow.confirm": "ناپی‌گیری", - "confirmations.unfollow.message": "مطمئنید می‌خواهید پیگیری {name} را پایان دهید؟", - "conversation.delete": "حذف گفت‌وگو", + "confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. می‌خواهید ادامه دهید؟", + "confirmations.unfollow.confirm": "پایان پیگیری", + "confirmations.unfollow.message": "مطمئنید که می‌خواهید به پیگیری از {name} پایان دهید؟", + "conversation.delete": "حذف گفتگو", "conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده", - "conversation.open": "دیدن گفت‌وگو", + "conversation.open": "دیدن گفتگو", "conversation.with": "با {names}", "directory.federated": "از کارسازهای شناخته‌شده", - "directory.local": "فقط از {domain}", + "directory.local": "تنها از {domain}", "directory.new_arrivals": "تازه‌واردان", "directory.recently_active": "کاربران فعال اخیر", - "embed.instructions": "با رونوشت از کد زیر، این وضعیت را روی پایگاهتان جاگذاری کنید.", + "embed.instructions": "برای جاگذاری این بوق در سایت خودتان، کد زیر را کپی کنید.", "embed.preview": "این گونه دیده خواهد شد:", "emoji_button.activity": "فعالیت", "emoji_button.custom": "سفارشی", "emoji_button.flags": "پرچم‌ها", "emoji_button.food": "غذا و نوشیدنی", - "emoji_button.label": "درج اموجی", + "emoji_button.label": "افزودن شکلک", "emoji_button.nature": "طبیعت", - "emoji_button.not_found": "اموجی‌ای وجود ندارد!! ‪ (╯°□°)╯︵ ┻━┻‬", + "emoji_button.not_found": "این‌جا شکلکی نیست!! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "اشیا", "emoji_button.people": "مردم", "emoji_button.recent": "پراستفاده", - "emoji_button.search": "جست‌وجو…", - "emoji_button.search_results": "نتایج جست‌وجو", + "emoji_button.search": "جستجو...", + "emoji_button.search_results": "نتایج جستجو", "emoji_button.symbols": "نمادها", "emoji_button.travel": "سفر و مکان", "empty_column.account_timeline": "هیچ بوقی این‌جا نیست!", "empty_column.account_unavailable": "نمایهٔ ناموجود", "empty_column.blocks": "هنوز کسی را مسدود نکرده‌اید.", "empty_column.bookmarked_statuses": "هنوز هیچ بوق نشان‌شده‌ای ندارید. وقتی بوقی را نشان‌کنید، این‌جا دیده خواهد شد.", - "empty_column.community": "خط‌زمانی محلّی خالی است. چیزی به صورت عمومی نوشته تا چرخش بچرخد!", - "empty_column.direct": "هنوز هیچ پیغام مستقیمی ندارید. هروقت چنین پیغامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.", + "empty_column.community": "فهرست نوشته‌های محلی خالی است. چیزی بنویسید تا چرخش بچرخد!", + "empty_column.direct": "هنوز هیچ پیام مستقیمی ندارید. هروقت چنین پیامی بگیرید یا بفرستید این‌جا نمایش خواهد یافت.", "empty_column.domain_blocks": "هنوز هیچ دامنه‌ای پنهان نشده است.", - "empty_column.favourited_statuses": "هنوز هیچ بوق برگزیده‌ای ندارید. وقتی بوقی را برگزینید، این‌جا دیده خواهد شد.", - "empty_column.favourites": "هنوز کسی این بوق را برنگزیده. وقتی کسی این کار را بکند، این‌جا دیده خواهد شد.", - "empty_column.follow_requests": "هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا دیده خواهد شد.", + "empty_column.favourited_statuses": "شما هنوز هیچ بوقی را نپسندیده‌اید. وقتی بوقی را بپسندید، این‌جا نمایش خواهد یافت.", + "empty_column.favourites": "هنوز هیچ کسی این بوق را نپسندیده است. وقتی کسی آن را بپسندد، نامش این‌جا نمایش خواهد یافت.", + "empty_column.follow_requests": "شما هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا نمایش خواهد یافت.", "empty_column.hashtag": "هنوز هیچ چیزی در این برچسب نیست.", - "empty_column.home": "خط‌زمانی خانگیتان خالیست! برای شروع و دیدن دیگر کاربران، از جست‌وجو استفاده کرده یا {public} را ببینید.", - "empty_column.home.public_timeline": "خط‌زمانی عمومی", - "empty_column.list": "هنوز چیزی در این فهرست وجود ندارد. هنگامی که اعضای این فهرست وضعیت جدیدی بفرستند، این‌جا ظاهر خواهد شد.", + "empty_column.home": "فهرست خانگی شما خالی است! {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.", + "empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا", + "empty_column.list": "در این فهرست هنوز چیزی نیست. وقتی اعضای این فهرست چیزی بفرستند، این‌جا ظاهر خواهد شد.", "empty_column.lists": "هنوز هیچ فهرستی ندارید. هنگامی که فهرستی بسازید، این‌جا دیده خواهد شد.", "empty_column.mutes": "هنوز هیچ کاربری را خموش نکرده‌اید.", - "empty_column.notifications": "هنوز هیچ آگاهی‌ای ندارید. به دیگران واکنش نشان داده تا گفت‌وگو آغاز شود.", - "empty_column.public": "هیچ‌چیز این‌جا نیست! پرای پر کردنش چیزی به صورت عمومی نوشته یا کاربران دیگر کارسازها را پی بگیرید", - "error.unexpected_crash.explanation": "به خاطر مشکلی در کدمان یا یک ناسازگاری مرورگر، این صفحه نتوانست به درستی نمایش یابد.", - "error.unexpected_crash.next_steps": "تازه‌سازی صفحه را بیازمایید. اگر کمکی نکرد، شاید بتوانید از طریق مرورگری دیگر یا کارهٔ بومی از ماستودون استفاده کنید.", + "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به دیگران واکنش نشان دهید تا گفتگو آغاز شود.", + "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران کارسازهای دیگر را پی بگیرید تا این‌جا پر شود", + "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.", + "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر کمکی نکرد، شاید همچنان بتوانید با ماستدون از راه یک مرورگر دیگر یا با یکی از اپ‌های آن کار کنید.", "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال", "errors.unexpected_crash.report_issue": "گزارش مشکل", - "follow_request.authorize": "اجازه دادن", - "follow_request.reject": "رد کردن", + "follow_request.authorize": "اجازه دهید", + "follow_request.reject": "رد کنید", "getting_started.developers": "توسعه‌دهندگان", "getting_started.directory": "فهرست گزیدهٔ کاربران", "getting_started.documentation": "مستندات", @@ -182,65 +182,65 @@ "hashtag.column_settings.tag_mode.none": "هیچ‌کدام از این‌ها", "hashtag.column_settings.tag_toggle": "افزودن برچسب‌هایی بیشتر به این ستون", "home.column_settings.basic": "پایه‌ای", - "home.column_settings.show_reblogs": "نمایش تقویت‌ها", + "home.column_settings.show_reblogs": "نمایش بازبوق‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", "introduction.federation.action": "بعدی", "introduction.federation.federated.headline": "همگانی", - "introduction.federation.federated.text": "نوشته‌های عمومی دیگر کارسازها در خط‌زمانی همگانی طاهر خواهند شد.", + "introduction.federation.federated.text": "نوشته‌های عمومی کارسازهای دیگر در این فهرست نمایش می‌یابند.", "introduction.federation.home.headline": "خانه", - "introduction.federation.home.text": "فرسته‌ها از افرادی که دنبالشان می‌کنید در خوراک خانه‌تان ظاهر خواهند شد. می‌توانید هر کسی را روی هر کارسازی پی‌بگیرید!", + "introduction.federation.home.text": "فرسته‌های کسانی که شما آن‌ها را پی می‌گیرید این‌جا نمایش می‌یابند. شما می‌توانید هر کسی را روی هر کارسازی پی بگیرید!", "introduction.federation.local.headline": "محلّی", - "introduction.federation.local.text": "نوشته‌های عمومی افرادی که روی همان کارساز خودتان هستند در خط زمانی محلّی ظاهر خواهند شد.", + "introduction.federation.local.text": "فرسته‌های عمومی کسانی که روی کارساز شما هستند در فهرست نوشته‌های محلی نمایش می‌یابند.", "introduction.interactions.action": "پایان خودآموز!", - "introduction.interactions.favourite.headline": "برگزیدن", - "introduction.interactions.favourite.text": "می‌توانید بوقی را برای بعد ذخیره کنید و با برگزیدنش، بگذارید نویسنده بداند که پسندیدیش.", - "introduction.interactions.reblog.headline": "تقویت", - "introduction.interactions.reblog.text": "با تقویت بوق‌های دیگران، می‌توانید آن‌ها را با پی‌گیرانتان هم‌رسانی کنید.", + "introduction.interactions.favourite.headline": "پسندیدن", + "introduction.interactions.favourite.text": "با پسندیدن یک بوق، شما آن را برای آینده ذخیره می‌کنید و به نویسنده می‌گویید که از بوقش خوشتان آمده.", + "introduction.interactions.reblog.headline": "بازبوقیدن", + "introduction.interactions.reblog.text": "اگر بخواهید نوشته‌ای را با پیگیران خودتان به اشتراک بگذارید، آن را بازمی‌بوقید.", "introduction.interactions.reply.headline": "پاسخ", - "introduction.interactions.reply.text": "می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا در یک گفت‌وگو به هم زنجیر شوند.", + "introduction.interactions.reply.text": "می‌توانید به بوق‌های خودتان و دیگران پاسخ دهید، تا در یک گفتگو به هم زنجیر شوند.", "introduction.welcome.action": "بزن بریم!", "introduction.welcome.headline": "نخستین گام‌ها", "introduction.welcome.text": "به دنیای شبکه‌های اجتماعی غیرمتمرکز خوش آمدید! به زودی می‌توانید نوشته‌هایتان را منتشر کرده و با دوستانتان روی دامنهٔ وسیعی از کارسازها حرف بزنید. ولی این کارساز، {domain}، با بقیه فرق دارد، چرا که میزبان نمایهٔ شماست، پس نامش را به خاطر بسپارید.", "keyboard_shortcuts.back": "برای بازگشت", "keyboard_shortcuts.blocked": "برای گشودن فهرست کاربران خموش", - "keyboard_shortcuts.boost": "برای تقویت", - "keyboard_shortcuts.column": "برای تمرکز روی وضعیتی در یکی از ستون‌ها", + "keyboard_shortcuts.boost": "برای بازبوقیدن", + "keyboard_shortcuts.column": "برای تمرکز روی یک بوق در یکی از ستون‌ها", "keyboard_shortcuts.compose": "برای تمرکز روی محیط نوشتن", "keyboard_shortcuts.description": "توضیح", - "keyboard_shortcuts.direct": "برای گشودن ستون پیام‌های خصوصی", + "keyboard_shortcuts.direct": "برای گشودن ستون پیغام‌های مستقیم", "keyboard_shortcuts.down": "برای پایین رفتن در فهرست", - "keyboard_shortcuts.enter": "برای گشودن وضعیت", - "keyboard_shortcuts.favourite": "برای برگزیدن", - "keyboard_shortcuts.favourites": "برای گشودن فهرست برگزیده‌ها", - "keyboard_shortcuts.federated": "برای گشودن خط‌زمانی همگانی", + "keyboard_shortcuts.enter": "برای گشودن نوشته", + "keyboard_shortcuts.favourite": "برای پسندیدن", + "keyboard_shortcuts.favourites": "برای گشودن فهرست پسندیده‌ها", + "keyboard_shortcuts.federated": "برای گشودن فهرست نوشته‌های همه‌جا", "keyboard_shortcuts.heading": "میان‌برهای صفحه‌کلید", - "keyboard_shortcuts.home": "برای گشودن خط‌زمانی خانه", + "keyboard_shortcuts.home": "برای گشودن ستون اصلی پیگیری‌ها", "keyboard_shortcuts.hotkey": "میان‌بر", "keyboard_shortcuts.legend": "برای نمایش این راهنما", - "keyboard_shortcuts.local": "برای گشودن خط‌زمانی محلّی", - "keyboard_shortcuts.mention": "برای اشاره به نویسنده", + "keyboard_shortcuts.local": "برای گشودن فهرست نوشته‌های محلی", + "keyboard_shortcuts.mention": "برای نام‌بردن از نویسنده", "keyboard_shortcuts.muted": "برای گشودن فهرست کاربران خموش", "keyboard_shortcuts.my_profile": "برای گشودن نمایه‌تان", - "keyboard_shortcuts.notifications": "برای گشودن ستون آگاهی‌ها", + "keyboard_shortcuts.notifications": "برای گشودن ستون اعلان‌ها", "keyboard_shortcuts.open_media": "برای باز کردن رسانه", - "keyboard_shortcuts.pinned": "برای گشودن فهرست بوق‌های سنجاق‌شده", + "keyboard_shortcuts.pinned": "برای گشودن فهرست بوق‌های ثابت", "keyboard_shortcuts.profile": "برای گشودن نمایهٔ نویسنده", "keyboard_shortcuts.reply": "برای پاسخ", "keyboard_shortcuts.requests": "برای گشودن فهرست درخواست‌های پیگیری", - "keyboard_shortcuts.search": "برای تمرکز روی جست‌وجو", + "keyboard_shortcuts.search": "برای تمرکز روی جستجو", "keyboard_shortcuts.start": "برای گشودن ستون «آغاز کنید»", "keyboard_shortcuts.toggle_hidden": "برای نمایش/نهفتن نوشتهٔ پشت هشدار محتوا", "keyboard_shortcuts.toggle_sensitivity": "برای نمایش/نهفتن رسانه", "keyboard_shortcuts.toot": "برای آغاز یک بوق تازه", - "keyboard_shortcuts.unfocus": "برای برداشتن تمرکز از نوشتن/جست‌وجو", + "keyboard_shortcuts.unfocus": "برای برداشتن تمرکز از نوشتن/جستجو", "keyboard_shortcuts.up": "برای بالا رفتن در فهرست", "lightbox.close": "بستن", "lightbox.next": "بعدی", - "lightbox.previous": "پیشین", - "lightbox.view_context": "نمایش متن", + "lightbox.previous": "قبلی", + "lightbox.view_context": "نمایش گفتگو", "lists.account.add": "افزودن به فهرست", "lists.account.remove": "برداشتن از فهرست", "lists.delete": "حذف فهرست", @@ -248,100 +248,100 @@ "lists.edit.submit": "تغییر عنوان", "lists.new.create": "افزودن فهرست", "lists.new.title_placeholder": "عنوان فهرست تازه", - "lists.search": "جست‌وجو بین افرادی که پی می‌گیرید", - "lists.subheading": "فهرست‌هایتان", + "lists.search": "بین کسانی که پی می‌گیرید بگردید", + "lists.subheading": "فهرست‌های شما", "load_pending": "{count, plural, one {# مورد تازه} other {# مورد تازه}}", - "loading_indicator.label": "در حال بار کردن…", - "media_gallery.toggle_visible": "تغییر وضعیت نمایانی", + "loading_indicator.label": "بارگیری...", + "media_gallery.toggle_visible": "تغییر پیدایی", "missing_indicator.label": "پیدا نشد", "missing_indicator.sublabel": "این منبع پیدا نشد", - "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", - "navigation_bar.apps": "کاره‌های همراه", - "navigation_bar.blocks": "کاربران مسدود", + "mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟", + "navigation_bar.apps": "اپ‌های موبایل", + "navigation_bar.blocks": "کاربران مسدودشده", "navigation_bar.bookmarks": "نشانک‌ها", - "navigation_bar.community_timeline": "خط‌زمانی محلّی", + "navigation_bar.community_timeline": "نوشته‌های محلی", "navigation_bar.compose": "نوشتن بوق تازه", - "navigation_bar.direct": "پیام‌های خصوصی", - "navigation_bar.discover": "کشف", + "navigation_bar.direct": "پیام‌های مستقیم", + "navigation_bar.discover": "گشت و گذار", "navigation_bar.domain_blocks": "دامنه‌های نهفته", "navigation_bar.edit_profile": "ویرایش نمایه", - "navigation_bar.favourites": "برگزیده‌ها", + "navigation_bar.favourites": "پسندیده‌ها", "navigation_bar.filters": "واژگان خموش", "navigation_bar.follow_requests": "درخواست‌های پیگیری", - "navigation_bar.follows_and_followers": "پی‌گیری‌ها و پی‌گیران", + "navigation_bar.follows_and_followers": "پیگیری‌ها و پیگیران", "navigation_bar.info": "دربارهٔ این کارساز", "navigation_bar.keyboard_shortcuts": "میان‌برها", "navigation_bar.lists": "فهرست‌ها", "navigation_bar.logout": "خروج", - "navigation_bar.mutes": "کاربران خموش", + "navigation_bar.mutes": "کاربران خموشیده", "navigation_bar.personal": "شخصی", - "navigation_bar.pins": "بوق‌های سنجاق‌شده", + "navigation_bar.pins": "بوق‌های ثابت", "navigation_bar.preferences": "ترجیحات", - "navigation_bar.public_timeline": "خط‌زمانی همگانی", + "navigation_bar.public_timeline": "نوشته‌های همه‌جا", "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": "پاک‌سازی آگاهی‌ها", - "notifications.clear_confirmation": "مطمئنید می‌خواهید تمام آگاهی‌هایتان را برای همیشه پاک کنید؟", - "notifications.column_settings.alert": "آگاهی‌های میزکار", - "notifications.column_settings.favourite": "برگزیده‌ها:", - "notifications.column_settings.filter_bar.advanced": "نمایش تمام دسته‌ها", + "notification.favourite": "‫{name}‬ نوشتهٔ شما را پسندید", + "notification.follow": "‫{name}‬ پیگیرتان شد", + "notification.follow_request": "{name} می‌خواهد پیگیر شما باشد", + "notification.mention": "‫{name}‬ از شما نام برد", + "notification.own_poll": "نظرسنجی شما به پایان رسید", + "notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسیده است", + "notification.reblog": "‫{name}‬ نوشتهٔ شما را بازبوقید", + "notifications.clear": "پاک‌کردن اعلان‌ها", + "notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟", + "notifications.column_settings.alert": "اعلان‌های میزکار", + "notifications.column_settings.favourite": "پسندیده‌ها:", + "notifications.column_settings.filter_bar.advanced": "نمایش همهٔ دسته‌ها", "notifications.column_settings.filter_bar.category": "نوار پالایش سریع", "notifications.column_settings.filter_bar.show": "نمایش", - "notifications.column_settings.follow": "پی‌گیران تازه:", + "notifications.column_settings.follow": "پیگیران تازه:", "notifications.column_settings.follow_request": "درخواست‌های جدید پی‌گیری:", - "notifications.column_settings.mention": "اشاره‌ها:", + "notifications.column_settings.mention": "نام‌بردن‌ها:", "notifications.column_settings.poll": "نتایج نظرسنجی:", - "notifications.column_settings.push": "ارسال آگاهی‌ها", - "notifications.column_settings.reblog": "تقویت‌ها:", + "notifications.column_settings.push": "اعلان‌ها از سمت سرور", + "notifications.column_settings.reblog": "بازبوق‌ها:", "notifications.column_settings.show": "نمایش در ستون", "notifications.column_settings.sound": "پخش صدا", "notifications.filter.all": "همه", - "notifications.filter.boosts": "تقویت‌ها", - "notifications.filter.favourites": "برگزیده‌ها", - "notifications.filter.follows": "پی‌گیری‌ها", - "notifications.filter.mentions": "اشاره‌ها", + "notifications.filter.boosts": "بازبوق‌ها", + "notifications.filter.favourites": "پسندها", + "notifications.filter.follows": "پیگیری‌ها", + "notifications.filter.mentions": "نام‌بردن‌ها", "notifications.filter.polls": "نتایج نظرسنجی", - "notifications.group": "{count} آگاهی", - "poll.closed": "بسته‌شده", - "poll.refresh": "نوسازی", + "notifications.group": "{count} اعلان", + "poll.closed": "پایان‌یافته", + "poll.refresh": "به‌روزرسانی", "poll.total_people": "{count, plural, one {# نفر} other {# نفر}}", "poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}", "poll.vote": "رأی", - "poll.voted": "به این پاسخ رأی دادید", + "poll.voted": "شما به این گزینه رأی دادید", "poll_button.add_poll": "افزودن نظرسنجی", - "poll_button.remove_poll": "برداشتن نظرسنجی", - "privacy.change": "تنظیم محرمانگی وضعیت‌ها", - "privacy.direct.long": "ارسال فقط به کاربران اشاره‌شده", + "poll_button.remove_poll": "حذف نظرسنجی", + "privacy.change": "تنظیم محرمانگی نوشته", + "privacy.direct.long": "تنها به کاربران نام‌برده‌شده نشان بده", "privacy.direct.short": "خصوصی", - "privacy.private.long": "ارسال فقط به پی‌گیران", - "privacy.private.short": "فقط پی‌گیران", - "privacy.public.long": "ارسال به خط‌زمانی عمومی", + "privacy.private.long": "تنها به پیگیران نشان بده", + "privacy.private.short": "خصوصی", + "privacy.public.long": "نمایش در فهرست عمومی", "privacy.public.short": "عمومی", - "privacy.unlisted.long": "ارسال نکردن به خط‌زمانی عمومی", + "privacy.unlisted.long": "عمومی، ولی فهرست نکن", "privacy.unlisted.short": "فهرست‌نشده", - "refresh": "نوسازی", - "regeneration_indicator.label": "در حال بار کردن…", - "regeneration_indicator.sublabel": "خوراک خانه‌تان در حال آماده شدن است!", + "refresh": "به‌روزرسانی", + "regeneration_indicator.label": "در حال باز شدن…", + "regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!", "relative_time.days": "{number} روز", "relative_time.hours": "{number} ساعت", - "relative_time.just_now": "اکنون", + "relative_time.just_now": "الان", "relative_time.minutes": "{number} دقیقه", "relative_time.seconds": "{number} ثانیه", "reply_indicator.cancel": "لغو", - "report.forward": "هدایت به {target}", - "report.forward_hint": "این حساب از کارسازی دیگر است. رونوشتی ناشناس از گزارش به آن‌جا نیز فرستاده شود؟", - "report.hint": "این گزارش به مدیران کارسازتان فرستاده خواهد شد. می‌توانید دلیلی بر چرایی گزارش این حساب را در ادامه بنویسید:", + "report.forward": "فرستادن به {target}", + "report.forward_hint": "این حساب در کارساز دیگری ثبت شده. آیا می‌خواهید رونوشتی ناشناس از این گزارش به آن‌جا هم فرستاده شود؟", + "report.hint": "این گزارش به مدیران کارسازتان فرستاده خواهد شد. می‌توانید دلیل گزارش این حساب را در ادامه بنویسید:", "report.placeholder": "توضیح اضافه", - "report.submit": "ثبت", + "report.submit": "بفرست", "report.target": "در حال گزارش {target}", - "search.placeholder": "جست‌وجو", - "search_popout.search_format": "قالب جست‌وجوی پیشرفته", + "search.placeholder": "جستجو", + "search_popout.search_format": "راهنمای جستجوی پیشرفته", "search_popout.tips.full_text": "جست‌وجوی متنی ساده وضعیت‌هایی که که نوشته، برگزیده، تقویت‌کرده یا در آن‌ها اشاره‌شده‌اید را به اضافهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌های مطابق برمی‌گرداند.", "search_popout.tips.hashtag": "برچسب", "search_popout.tips.status": "وضعیت", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index b2715cc4b..81ba22987 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -77,17 +77,17 @@ "community.column_settings.media_only": "Só multimedia", "compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.", "compose_form.direct_message_warning_learn_more": "Coñecer máis", - "compose_form.hashtag_warning": "Este toot non se amosará baixo cancelos (hashtags) porque non é público. Só os toots públicos poden ser procurados por cancelos.", - "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todos poden seguirche para ollar os teus toots só para seguidores.", - "compose_form.lock_disclaimer.lock": "bloqueado", - "compose_form.placeholder": "En que estás a pensar?", + "compose_form.hashtag_warning": "Este toot non aparecerá baixo ningún cancelo (hashtag) porque non está listado. Só se poden procurar toots públicos por cancelos.", + "compose_form.lock_disclaimer": "A túa conta non está {locked}. Todas poden seguirte para ollar os teus toots só para seguidoras.", + "compose_form.lock_disclaimer.lock": "bloqueada", + "compose_form.placeholder": "Qué contas?", "compose_form.poll.add_option": "Engadir unha opción", "compose_form.poll.duration": "Duración da enquisa", "compose_form.poll.option_placeholder": "Opción {number}", "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas", "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla", - "compose_form.publish": "Tootear", + "compose_form.publish": "Toot", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Marcar coma contido multimedia sensíbel", "compose_form.sensitive.marked": "Contido multimedia marcado coma sensíbel", @@ -104,16 +104,16 @@ "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?", "confirmations.domain_block.confirm": "Agochar dominio enteiro", - "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. Os teus seguidores deste dominio serán eliminados.", + "confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.", "confirmations.logout.confirm": "Pechar sesión", "confirmations.logout.message": "Desexas pechar a sesión?", - "confirmations.mute.confirm": "Silenciar", - "confirmations.mute.explanation": "Isto agochará as publicacións deles ou nas que os mencionen, mais permitirá que vexan as túas publicacións e sexan os teus seguidores.", - "confirmations.mute.message": "Tes a certeza de querer silenciar a {name}?", + "confirmations.mute.confirm": "Acalar", + "confirmations.mute.explanation": "Isto agochará as publicacións delas ou nas que as mencionen, mais permitirá que vexan as túas publicacións e sexan seguidoras túas.", + "confirmations.mute.message": "Tes a certeza de querer acalar a {name}?", "confirmations.redraft.confirm": "Eliminar e reescribir", "confirmations.redraft.message": "Tes a certeza de querer eliminar este estado e reescribilo? Perderás os compartidos e favoritos, e as respostas á publicación orixinal ficarán orfas.", "confirmations.reply.confirm": "Responder", - "confirmations.reply.message": "Respostar agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?", + "confirmations.reply.message": "Responder agora sobrescribirá a mensaxe que estás a compor. Tes a certeza de que queres continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Desexas deixar de seguir a {name}?", "conversation.delete": "Eliminar conversa", @@ -122,10 +122,10 @@ "conversation.with": "Con {names}", "directory.federated": "Do fediverso coñecido", "directory.local": "Só de {domain}", - "directory.new_arrivals": "Recén chegados", - "directory.recently_active": "Activos recentemente", + "directory.new_arrivals": "Recén chegadas", + "directory.recently_active": "Activas recentemente", "embed.instructions": "Engade este estado ó teu sitio web copiando o seguinte código.", - "embed.preview": "Así será amosado:", + "embed.preview": "Así será mostrado:", "emoji_button.activity": "Actividade", "emoji_button.custom": "Personalizado", "emoji_button.flags": "Bandeiras", @@ -199,8 +199,8 @@ "introduction.interactions.favourite.text": "Podes gardar un toot para depois e facer saber ó autor que che gostou marcandoo coma favorito.", "introduction.interactions.reblog.headline": "Promover", "introduction.interactions.reblog.text": "Podes compartir os toots doutras persoas coas túas seguidoras.", - "introduction.interactions.reply.headline": "Respostar", - "introduction.interactions.reply.text": "Podes respostar ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.", + "introduction.interactions.reply.headline": "Responder", + "introduction.interactions.reply.text": "Podes responder ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.", "introduction.welcome.action": "Imos!", "introduction.welcome.headline": "Primeiros pasos", "introduction.welcome.text": "Benvido ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbrate do seu nome.", @@ -228,7 +228,7 @@ "keyboard_shortcuts.open_media": "para abrir o contido multimedia", "keyboard_shortcuts.pinned": "para abrir a listaxe dos toots fixados", "keyboard_shortcuts.profile": "para abrir o perfil do autor", - "keyboard_shortcuts.reply": "para respostar", + "keyboard_shortcuts.reply": "para responder", "keyboard_shortcuts.requests": "para abrir a listaxe das peticións de seguimento", "keyboard_shortcuts.search": "para destacar a procura", "keyboard_shortcuts.start": "para abrir a columna dos \"primeiros pasos\"", @@ -381,8 +381,8 @@ "status.reblogs.empty": "Aínda ninguén promoveu este toot. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", - "status.reply": "Respostar", - "status.replyAll": "Respostar ó fío", + "status.reply": "Responder", + "status.replyAll": "Responder ó fío", "status.report": "Denunciar @{name}", "status.sensitive_warning": "Contido sensíbel", "status.share": "Compartir", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index f4280e740..e8dc573fa 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Forgalomkorlátozás", "alert.unexpected.message": "Váratlan hiba történt.", "alert.unexpected.title": "Hoppá!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Közlemény", "autosuggest_hashtag.per_week": "{count}/hét", "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}", "bundle_column_error.body": "Hiba történt a komponens betöltése közben.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 42cc38820..76e17612b 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "制限に達しました", "alert.unexpected.message": "不明なエラーが発生しました。", "alert.unexpected.title": "エラー!", - "announcement.announcement": "告知", + "announcement.announcement": "お知らせ", "autosuggest_hashtag.per_week": "{count} 回 / 週", "boost_modal.combo": "次からは{combo}を押せばスキップできます", "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", @@ -85,8 +85,8 @@ "compose_form.poll.duration": "アンケート期間", "compose_form.poll.option_placeholder": "項目 {number}", "compose_form.poll.remove_option": "この項目を削除", - "compose_form.poll.switch_to_multiple": "複数選択用に変更", - "compose_form.poll.switch_to_single": "単一選択用に変更", + "compose_form.poll.switch_to_multiple": "複数選択に変更", + "compose_form.poll.switch_to_single": "単一選択に変更", "compose_form.publish": "トゥート", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "メディアを閲覧注意にする", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index f7be26c09..5a3b409c0 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "빈도 제한", "alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.", "alert.unexpected.title": "앗!", - "announcement.announcement": "Announcement", + "announcement.announcement": "공지사항", "autosuggest_hashtag.per_week": "주간 {count}회", "boost_modal.combo": "{combo}를 누르면 다음부터 이 과정을 건너뛸 수 있습니다", "bundle_column_error.body": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index d69717292..c04b30e04 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Legg til eller tak vekk frå listene", "account.badges.bot": "Robot", - "account.badges.group": "Group", + "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Skjul alt frå {domain}", "account.blocked": "Blokkert", @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Begrensa rate", "alert.unexpected.message": "Eit uventa problem oppstod.", "alert.unexpected.title": "Oi sann!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Kunngjøring", "autosuggest_hashtag.per_week": "{count} per veke", "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.", @@ -85,8 +85,8 @@ "compose_form.poll.duration": "Varigskap for røysting", "compose_form.poll.option_placeholder": "Val {number}", "compose_form.poll.remove_option": "Ta vekk dette valet", - "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.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg", + "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Merk medium som sensitivt", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index c6dc4ca0e..215cdb150 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Legg til eller fjern fra lister", "account.badges.bot": "Bot", - "account.badges.group": "Group", + "account.badges.group": "Gruppe", "account.block": "Blokkér @{name}", "account.block_domain": "Skjul alt fra {domain}", "account.blocked": "Blokkert", @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", "alert.unexpected.title": "Oops!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Kunngjøring", "autosuggest_hashtag.per_week": "{count} per uke", "boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang", "bundle_column_error.body": "Noe gikk galt mens denne komponenten lastet.", @@ -85,8 +85,8 @@ "compose_form.poll.duration": "Avstemningens varighet", "compose_form.poll.option_placeholder": "Valg {number}", "compose_form.poll.remove_option": "Fjern dette valget", - "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.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg", + "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg", "compose_form.publish": "Tut", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Merk media som sensitivt", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 1681da968..6e63a418c 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Вы выполняете действие слишком часто", "alert.unexpected.message": "Что-то пошло не так.", "alert.unexpected.title": "Ой!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Объявление", "autosuggest_hashtag.per_week": "{count} / неделю", "boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз", "bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 2410daf06..976dc572e 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Tempo obmedzené", "alert.unexpected.message": "Vyskytla sa nečakaná chyba.", "alert.unexpected.title": "Ups!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Oboznámenie", "autosuggest_hashtag.per_week": "{count} týždenne", "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie", "bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 8a72783a2..2d009b851 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "มีการจำกัดอัตรา", "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด", "alert.unexpected.title": "อุปส์!", - "announcement.announcement": "Announcement", + "announcement.announcement": "ประกาศ", "autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 3ade92977..11f9ff2ef 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Oran sınırlıdır", "alert.unexpected.message": "Beklenmedik bir hata oluştu.", "alert.unexpected.title": "Hay aksi!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Duyuru", "autosuggest_hashtag.per_week": "Haftada {count}", "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsiniz", "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 3dc69d6d6..061fc50cb 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -1,7 +1,7 @@ { "account.add_or_remove_from_list": "Додати або видалити зі списків", "account.badges.bot": "Бот", - "account.badges.group": "Group", + "account.badges.group": "Група", "account.block": "Заблокувати @{name}", "account.block_domain": "Заглушити {domain}", "account.blocked": "Заблоковані", @@ -43,7 +43,7 @@ "alert.rate_limited.title": "Швидкість обмежена", "alert.unexpected.message": "Трапилась неочікувана помилка.", "alert.unexpected.title": "Ой!", - "announcement.announcement": "Announcement", + "announcement.announcement": "Оголошення", "autosuggest_hashtag.per_week": "{count} в тиждень", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", "bundle_column_error.body": "Щось пішло не так під час завантаження компоненту.", @@ -85,8 +85,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.poll.switch_to_multiple": "Перемкнути у режим вибору декількох відповідей", + "compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді", "compose_form.publish": "Дмухнути", "compose_form.publish_loud": "{publish}!", "compose_form.sensitive.hide": "Позначити медіа як дражливе", @@ -225,7 +225,7 @@ "keyboard_shortcuts.muted": "відкрити список заглушених користувачів", "keyboard_shortcuts.my_profile": "відкрити ваш профіль", "keyboard_shortcuts.notifications": "відкрити колонку сповіщень", - "keyboard_shortcuts.open_media": "to open media", + "keyboard_shortcuts.open_media": "відкрити медіа", "keyboard_shortcuts.pinned": "відкрити список закріплених дмухів", "keyboard_shortcuts.profile": "відкрити профіль автора", "keyboard_shortcuts.reply": "відповісти", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index ccbd16e2a..6cc50d6c6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -198,11 +198,13 @@ ca: change_email_user: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}" confirm_user: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}" create_account_warning: "%{name} ha enviat un avís a %{target}" + create_announcement: "%{name} ha creat un nou anunci %{target}" create_custom_emoji: "%{name} ha pujat un nou emoji %{target}" create_domain_allow: "%{name} ha afegit a la llista blanca el domini %{target}" create_domain_block: "%{name} ha blocat el domini %{target}" create_email_domain_block: "%{name} ha afegit a la llista negra el domini del correu electrònic %{target}" demote_user: "%{name} ha degradat l'usuari %{target}" + destroy_announcement: "%{name} ha eliminat l'anunci %{target}" destroy_custom_emoji: "%{name} ha destruït l'emoji %{target}" destroy_domain_allow: "%{name} ha eliminat el domini %{target} de la llista blanca" destroy_domain_block: "%{name} ha desblocat el domini %{target}" @@ -224,10 +226,22 @@ ca: unassigned_report: "%{name} ha des-assignat l'informe %{target}" unsilence_account: "%{name} ha silenciat el compte de %{target}" unsuspend_account: "%{name} ha llevat la suspensió del compte de %{target}" + update_announcement: "%{name} ha actualitzat l'anunci %{target}" update_custom_emoji: "%{name} ha actualitzat l'emoji %{target}" update_status: "%{name} estat actualitzat per %{target}" deleted_status: "(tut esborrat)" title: Registre d'auditoria + announcements: + edit: + title: Edita l'anunci + empty: No s'ha trobat cap anunci. + live: En viu + new: + create: Crea un anunci + title: Nou anunci + published: Publicat + time_range: Interval de temps + title: Anuncis custom_emojis: assign_category: Assigna una categoria by_domain: Domini @@ -657,6 +671,9 @@ ca: hint_html: "Pista: No et preguntarem un altre cop la teva contrasenya en la pròxima hora." invalid_password: Contrasenya no vàlida prompt: Confirmi la contrasenya per a continuar + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count} h" @@ -758,6 +775,8 @@ ca: all: Tot changes_saved_msg: Els canvis s'han desat correctament! copy: Copia + delete: Esborra + edit: Edita no_batch_actions_available: Cap accions de lot disponibles en aquesta pàgina order_by: Ordena per save_changes: Desa els canvis @@ -929,6 +948,9 @@ ca: other: Altre posting_defaults: Valors predeterminats de publicació public_timelines: Línies de temps públiques + reactions: + errors: + unrecognized_emoji: no és un emoji reconegut relationships: activity: Activitat del compte dormant: Inactiu diff --git a/config/locales/co.yml b/config/locales/co.yml index b21fc8d15..c75fa3f21 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -198,11 +198,13 @@ co: change_email_user: "%{name} hà cambiatu l’indirizzu e-mail di %{target}" confirm_user: "%{name} hà cunfirmatu l’indirizzu e-mail di %{target}" create_account_warning: "%{name} hà mandatu un'avertimentu à %{target}" + create_announcement: "%{name} hà creatu u novu annunziu %{target}" create_custom_emoji: "%{name} hà caricatu una nov’emoji %{target}" create_domain_allow: "%{name} hà messu u duminiu %{target} nant’a lista bianca" create_domain_block: "%{name} hà bluccatu u duminiu %{target}" create_email_domain_block: "%{name} hà messu u duminiu e-mail %{target} nant’a lista nera" demote_user: "%{name} hà ritrugradatu l’utilizatore %{target}" + destroy_announcement: "%{name} hà sguassatu u novu annunziu %{target}" destroy_custom_emoji: "%{name} hà sguassatu l'emoji %{target}" destroy_domain_allow: "%{name} hà sguassatu u duminiu %{target} da a lista bianca" destroy_domain_block: "%{name} hà sbluccatu u duminiu %{target}" @@ -224,10 +226,22 @@ co: unassigned_report: "%{name} hà disassignatu u signalamentu %{target}" unsilence_account: "%{name} hà fattu che u contu di %{target} ùn hè più silenzatu" unsuspend_account: "%{name} hà fattu che u contu di %{target} ùn hè più suspesu" + update_announcement: "%{name} hà cambiatu u novu annunziu %{target}" update_custom_emoji: "%{name} hà messu à ghjornu l’emoji %{target}" update_status: "%{name} hà cambiatu u statutu di %{target}" deleted_status: "(statutu sguassatu)" title: Ghjurnale d’audit + announcements: + edit: + title: Mudificà annunzii + empty: Manc'un annunziu trovu. + live: Attivu + new: + create: Creà un'annunziu + title: Novu annunziu + published: Pubblicatu + time_range: Intervallu di tempu + title: Annunzii custom_emojis: assign_category: Aghjunghje categuria by_domain: Duminiu @@ -372,6 +386,8 @@ co: title: Invitazione pending_accounts: title: Conti in attesa (%{count}) + relationships: + title: Rilazione di %{acct} relays: add_new: Aghjunghje un ripetitore delete: Sguassà @@ -655,6 +671,9 @@ co: hint_html: "Astuzia: Ùn avemu micca da dumandavvi stu codice per l'ore chì vene." invalid_password: Chjave d'accessu micca curretta prompt: Cunfirmà a chjave d'accessu per cuntinuvà + date: + formats: + default: "%d %b %Y" datetime: distance_in_words: about_x_hours: "%{count}o" @@ -731,6 +750,7 @@ co: hint_html: "Quale sò i hashtag in mostra? Sò messi in vista nant'à u vostru prufile pubblicu è permettenu à a ghjente di vede i vostri statuti ch'annu stu hashtag. Sò una bona manere di mustrà e vostre opere creative o i prughjetti à longu termine." filters: contexts: + account: Prufili home: Accolta notifications: Nutificazione public: Linee pubbliche @@ -755,6 +775,8 @@ co: all: Tuttu changes_saved_msg: Cambiamenti salvati! copy: Cupià + delete: Sguassà + edit: Mudificà no_batch_actions_available: Alcun'azzione di gruppu nant'à sta pagina order_by: Urdinà da save_changes: Salvà e mudificazione @@ -926,11 +948,15 @@ co: other: Altre posting_defaults: Paramettri predefiniti public_timelines: Linee pubbliche + reactions: + errors: + unrecognized_emoji: ùn hè micca un'emoji ricunisciuta relationships: activity: Attività di u contu dormant: Inattivu followers: Abbunati following: Abbunamenti + invited: Invitatu last_active: Ultima attività most_recent: Più ricente moved: Spiazzatu @@ -959,8 +985,8 @@ co: proceed: Cuntinuà per risponde prompt: 'Vulete risponde à stu statutu:' scheduled_statuses: - over_daily_limit: Avete trapassatu a limita di %{limit} statuti planificati per stu ghjornu - over_total_limit: Avete trapassatu a limita di %{limit} statuti planificati + over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu + over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati too_soon: A data deve esse indè u futuru sessions: activity: Ultima attività diff --git a/config/locales/de.yml b/config/locales/de.yml index 218267cd3..0fef69dff 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -950,6 +950,7 @@ de: public_timelines: Öffentliche Zeitleisten reactions: errors: + limit_reached: Limit für verschiedene Reaktionen erreicht unrecognized_emoji: ist kein anerkanntes Emoji relationships: activity: Kontoaktivität diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml index 573d055de..cca8764ea 100644 --- a/config/locales/devise.ca.yml +++ b/config/locales/devise.ca.yml @@ -2,7 +2,7 @@ ca: devise: confirmations: - confirmed: L'adreça de correu s'ha confirmat correctament. + confirmed: La teva adreça de correu electrònic s'ha confirmat correctament. send_instructions: "En pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. \nSi us plau verifica la teva carpeta de correu brossa si no has rebut aquest correu." send_paranoid_instructions: |- Si l'adreça de correu electrònic existeix en la nostra base de dades, en pocs minuts rebràs un correu electrònic amb instruccions sobre com confirmar l'adreça de correu. @@ -25,7 +25,7 @@ ca: explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic de l'activació. Si no fos així, ignora aquest correu electrònic. explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Un cop confirmis la teva adreça de correu electrònic revisarem la teva sol·licitud. No es pot iniciar la sessió fins llavors. Si la teva sol·licitud és rebutjada les teves dades s’eliminaran, de manera que no s’exigirà cap altra acció. Si no has estat tu qui ha fet aquest sol·licitud si us plau ignora aquest correu electrònic. extra_html: Si us plau consulta també les regles del servidor i les nostres condicions de servei. - subject: 'Mastodont: Instruccions de confirmació %{instance}' + subject: 'Mastodon: Instruccions de confirmació %{instance}' title: Verifica l'adreça de correu email_changed: explanation: 'L''adreça de correu del teu compte s''està canviant a:' diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 7cd806b05..80d438092 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -23,43 +23,43 @@ es: explanation: Has creado una cuenta en %{host} con esta dirección de correo electrónico. Estas a un clic de activarla. Si no fue usted, por favor ignore este correo electrónico. explanation_when_pending: Usted ha solicitado una invitación a %{host} con esta dirección de correo electrónico. Una vez que confirme su dirección de correo electrónico, revisaremos su aplicación. No puede iniciar sesión hasta que su aplicación sea revisada. Si su solicitud está rechazada, sus datos serán eliminados, así que no será necesaria ninguna acción adicional por ti. Si no fuera usted, por favor ignore este correo electrónico. extra_html: Por favor revise las reglas de la instancia y nuestros términos de servicio. - subject: 'Mastodonte: Instrucciones de confirmación para %{instance}' + subject: 'Mastodon: Instrucciones de confirmación para %{instance}' title: Verificar dirección de correo electrónico email_changed: explanation: 'El correo electrónico para su cuenta esta siendo cambiada a:' extra: Si usted no ha cambiado su correo electrónico, es probable que alguien haya conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte al administrador de la instancia si usted no puede iniciar sesión. - subject: 'Mastodonte: Correo electrónico cambiado' + subject: 'Mastodon: Correo electrónico cambiado' title: Nueva dirección de correo electrónico password_change: explanation: La contraseña de su cuenta a sido cambiada. extra: Si usted no a cambiado su contraseña. es probable que alguien a conseguido acceso a su cuenta. Por favor cambie su contraseña inmediatamente o contacte a el administrador de la instancia si usted esta bloqueado de su cuenta. - subject: 'Mastodonte: Contraseña cambiada' + subject: 'Mastodon: Contraseña cambiada' title: Contraseña cambiada reconfirmation_instructions: explanation: Confirme la nueva dirección para cambiar su coreo electrónico. - extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodonte no cambiará hasta que accedas al vinculo arriba. - subject: 'Mastodonte: Confirme correo electrónico para %{instance}' + extra: Si no iniciaste este cambio, por favor ignora este correo. Esta dirección de correo para la cuenta de Mastodon no cambiará hasta que accedas al vinculo arriba. + subject: 'Mastodon: Confirme correo electrónico para %{instance}' title: Verifique dirección de correo electrónico reset_password_instructions: action: Cambiar contraseña explanation: Solicitaste una nueva contraseña para tu cuenta. extra: Si no solicitaste esto, por favor ignora este correo. Tu contraseña no cambiará hasta que tu accedas al vinculo arriba y crees una nueva. - subject: 'Mastodonte: Instrucciones para reiniciar contraseña' + subject: 'Mastodon: Instrucciones para reiniciar contraseña' title: Reiniciar contraseña two_factor_disabled: explanation: La autenticación de dos factores para tu cuenta ha sido deshabilitada. Ahora puedes conectarte solamente usando la dirección de correo electrónico y la contraseña. - subject: 'Mastodonte: La autenticación de dos factores está deshabilitada' + subject: 'Mastodon: La autenticación de dos factores está deshabilitada' title: 2FA desactivada two_factor_enabled: explanation: La autenticación de dos factores para tu cuenta ha sido habilitada. Se requiere un token generado por la aplicación TOTP emparejada para ingresar. - subject: 'Mastodonte: La autenticación de dos factores está habilitada' + subject: 'Mastodon: La autenticación de dos factores está habilitada' title: 2FA activada two_factor_recovery_codes_changed: explanation: Los códigos de recuperación previos han sido invalidados y se generaron códigos nuevos. - subject: 'Mastodonte: Los códigos de recuperación de dos factores fueron regenerados' + subject: 'Mastodon: Los códigos de recuperación de dos factores fueron regenerados' title: Códigos de recuperación 2FA cambiados unlock_instructions: - subject: 'Mastodonte: Instrucciones para desbloquear' + subject: 'Mastodon: Instrucciones para desbloquear' omniauth_callbacks: failure: No podemos autentificarle desde %{kind} debido a "%{reason}". success: Autentificado con éxito desde la cuenta %{kind} . diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index 274784b58..c5f0c64b6 100644 --- a/config/locales/doorkeeper.uk.yml +++ b/config/locales/doorkeeper.uk.yml @@ -38,6 +38,7 @@ uk: application: Додаток callback_url: URL зворотнього виклику delete: Видалити + empty: У вас немає створених додатків. name: Назва new: Новий додаток scopes: Області видимості @@ -125,6 +126,7 @@ uk: read: читати усі дані вашого облікового запису read:accounts: бачити інформацію про облікові записи read:blocks: бачити Ваші блокування + read:bookmarks: бачити ваші закладки read:favourites: бачити Ваші вподобані пости read:filters: бачити Ваші фільтри read:follows: бачити Ваші підписки @@ -137,6 +139,7 @@ uk: write: змінювати усі дані вашого облікового запису write:accounts: змінювати ваш профіль write:blocks: блокувати облікові записи і домени + write:bookmarks: додавати пости в закладки write:favourites: вподобані статуси write:filters: створювати фільтри write:follows: підписуйтесь на людей diff --git a/config/locales/el.yml b/config/locales/el.yml index 53d475523..c5b622ef6 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -198,11 +198,13 @@ el: change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target} confirm_user: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target} create_account_warning: Ο/Η %{name} έστειλε προειδοποίηση προς %{target} + create_announcement: Νέα ανακοίνωση %{target} από %{name} create_custom_emoji: Ο/Η %{name} ανέβασε νέο emoji %{target} create_domain_allow: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα create_domain_block: Ο/Η %{name} μπλόκαρε τον τομέα %{target} create_email_domain_block: Ο/Η %{name} έβαλε τον τομέα email %{target} σε μαύρη λίστα demote_user: Ο/Η %{name} υποβίβασε το χρήστη %{target} + destroy_announcement: Διαγραφή ανακοίνωσης %{target} από %{name} destroy_custom_emoji: Ο/Η %{name} κατέστρεψε το emoji %{target} destroy_domain_allow: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από λίστα εγκρίσεων destroy_domain_block: Ο/Η %{name} ξεμπλόκαρε τον τομέα %{target} @@ -224,10 +226,22 @@ el: unassigned_report: Ο/Η %{name} αποδέσμευσε την καταγγελία %{target} unsilence_account: Ο/Η %{name} ήρε την αποσιώπηση του λογαριασμού του/της %{target} unsuspend_account: Ο/Η %{name} ήρε την παύση του λογαριασμού του χρήστη %{target} + update_announcement: Ενημέρωση ανακοίνωσης %{target} από %{name} update_custom_emoji: Ο/Η %{name} ενημέρωσε το emoji %{target} update_status: Ο/Η %{name} ενημέρωσε την κατάσταση του/της %{target} deleted_status: "(διαγραμμένη δημοσίευση)" title: Αρχείο ελέγχου + announcements: + edit: + title: Ενημέρωση ανακοίνωσης + empty: Δεν βρέθηκε ανακοίνωση. + live: Ενεργές + new: + create: Δημιουργία ανακοίνωσης + title: Νέα ανακοίνωση + published: Δημοσιευμένη + time_range: Χρονική διάρκεια + title: Ανακοινώσεις custom_emojis: assign_category: Κατηγορία by_domain: Τομέας @@ -372,6 +386,8 @@ el: title: Προσκλήσεις pending_accounts: title: Λογαριασμοί σε αναμονή (%{count}) + relationships: + title: Σχέσεις %{acct} relays: add_new: Πρόσθεσε νέο ανταποκριτή (relay) delete: Διαγραφή @@ -655,6 +671,9 @@ el: hint_html: "Συμβουλή: Δεν θα σου ζητήσουμε τον κωδικό ασφαλείας σου ξανά για την επόμενη ώρα." invalid_password: Μη έγκυρο συνθηματικό prompt: Επιβεβαίωση συνθηματικού για συνέχεια + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}ω" @@ -731,6 +750,7 @@ el: hint_html: "Τι είναι οι προβεβλημένες ταμπέλες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ωραίος τρόπος να παρακολουθείς κάποια δημιουργία ή ένα μακροπρόθεσμο έργο." filters: contexts: + account: Προφίλ home: Αρχική ροή notifications: Ειδοποιήσεις public: Δημόσιες ροές @@ -755,6 +775,8 @@ el: all: Όλα changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν! copy: Αντιγραφή + delete: Διαγραφή + edit: Ενημέρωση no_batch_actions_available: Δεν υπάρχουν ομαδικές ενέργειες σε αυτή τη σελίδα order_by: Ταξινόμηση κατά save_changes: Αποθήκευση αλλαγών @@ -926,11 +948,15 @@ el: other: Άλλες posting_defaults: Προεπιλογές δημοσίευσης public_timelines: Δημόσιες ροές + reactions: + errors: + unrecognized_emoji: δεν αναγνωρίζεται ως emoji relationships: activity: Δραστηριότητα λογαριασμού dormant: Αδρανείς followers: Σε ακολουθούν following: Ακολουθείς + invited: Προσκεκλημένοι last_active: Τελευταία δραστηριότητα most_recent: Πιο πρόσφατα moved: Μετακόμισε diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index f298cfbf5..30cbdbee5 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -198,11 +198,13 @@ es-AR: change_email_user: "%{name} cambió la dirección de correo electrónico del usuario %{target}" confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}" create_account_warning: "%{name} envió una advertencia a %{target}" + create_announcement: "%{name} creó el nuevo anuncio %{target}" create_custom_emoji: "%{name} subió nuevo emoji %{target}" create_domain_allow: "%{name} aprobó el dominio %{target}" create_domain_block: "%{name} bloqueó el dominio %{target}" create_email_domain_block: "%{name} desaprobó el dominio de correo electrónico %{target}" demote_user: "%{name} bajó de nivel al usuario %{target}" + destroy_announcement: "%{name} eliminó el anuncio %{target}" destroy_custom_emoji: "%{name} destruyó el emoji %{target}" destroy_domain_allow: "%{name} quitó el dominio %{target} de los permitidos" destroy_domain_block: "%{name} desbloqueó el dominio %{target}" @@ -224,10 +226,22 @@ es-AR: unassigned_report: "%{name} desasignó la denuncia %{target}" unsilence_account: "%{name} quitó el silenciado de la cuenta de %{target}" unsuspend_account: "%{name} quitó la suspensión de la cuenta de %{target}" + update_announcement: "%{name} actualizó el anuncio %{target}" update_custom_emoji: "%{name} actualizó el emoji %{target}" update_status: "%{name} actualizó el estado de %{target}" deleted_status: "(estado borrado)" title: Registro de auditoría + announcements: + edit: + title: Editar anuncio + empty: No se encontraron anuncios. + live: En vivo + new: + create: Crear anuncio + title: Nuevo anuncio + published: Publicados + time_range: Rango de tiempo + title: Anuncios custom_emojis: assign_category: Asignar categoría by_domain: Dominio @@ -657,6 +671,9 @@ es-AR: hint_html: "Dato: No volveremos a preguntarte por la contraseña durante la siguiente hora." invalid_password: Contraseña no válida prompt: Confirmar contraseña para seguir + date: + formats: + default: "%Y.%b.%d" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -758,6 +775,8 @@ es-AR: all: Todas changes_saved_msg: "¡Cambios guardados exitosamente!" copy: Copiar + delete: Eliminar + edit: Editar no_batch_actions_available: No hay acciones por lotes disponibles en esta página order_by: Ordenar por save_changes: Guardar cambios @@ -929,6 +948,9 @@ es-AR: other: Otros posting_defaults: Configuración predeterminada de publicaciones public_timelines: Líneas temporales públicas + reactions: + errors: + unrecognized_emoji: no es un emoji conocido relationships: activity: Actividad de la cuenta dormant: Inactivas diff --git a/config/locales/es.yml b/config/locales/es.yml index cc8857bfd..2d582cd7c 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,32 +1,32 @@ --- es: about: - about_hashtag_html: Estos son barritadas públicas etiquetadas con #%{hashtag}. Puedes interactuar con ellas si tienes una cuenta en el fediverso. - about_mastodon_html: Mastodonte es una red social basada en protocolos web abiertos y Programas Libres y de Código Abierto - Plica/Foss -. Está descentralizado como el correo electrónico! + about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag}. Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso. + about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' about_this: Información active_count_after: activo active_footnote: Usuarios Activos Mensuales (UAM) administered_by: 'Administrado por:' - api: Interfaz de Programación de la Aplicación + api: API apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodonte desde iOS, Android y otras plataformas + apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas browse_directory: Navega por el directorio de perfiles y filtra por intereses browse_local_posts: Explora en vivo los posts públicos de este servidor browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon contact: Contacto contact_missing: No especificado - contact_unavailable: No disponible + contact_unavailable: N/A discover_users: Descubrir usuarios documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodonte y más allá. + federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. get_apps: Probar una aplicación móvil - hosted_on: Mastodonte huesped en %{domain} + hosted_on: Mastodon hosteado en %{domain} instance_actor_flash: | Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprenda más + learn_more: Aprende más privacy_policy: Política de privacidad - see_whats_happening: Vea lo que está pasando + see_whats_happening: Ver lo que está pasando server_stats: 'Datos del servidor:' source_code: Código fuente status_count_after: @@ -42,16 +42,16 @@ es: rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - unavailable_content_html: Mastodonte generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. + unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. user_count_after: one: usuario other: usuarios - user_count_before: Inicio de - what_is_mastodon: "¿Qué es Mastodonte?" + user_count_before: Tenemos + what_is_mastodon: "¿Qué es Mastodon?" accounts: choices_html: 'Elecciones de %{name}:' endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar etiquetas específicas que se mostrarán aquí. + featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. follow: Seguir followers: one: Seguidor @@ -198,11 +198,13 @@ es: change_email_user: "%{name} ha cambiado la dirección de correo del usuario %{target}" confirm_user: "%{name} confirmó la dirección de correo del usuario %{target}" create_account_warning: "%{name} envió una advertencia a %{target}" + create_announcement: "%{name} creó el nuevo anuncio %{target}" create_custom_emoji: "%{name} subió un nuevo emoji %{target}" create_domain_allow: "%{name} ha añadido a la lista blanca el dominio %{target}" create_domain_block: "%{name} bloqueó el dominio %{target}" create_email_domain_block: "%{name} puso en lista negra el dominio de correos %{target}" demote_user: "%{name} degradó al usuario %{target}" + destroy_announcement: "%{name} eliminó el anuncio %{target}" destroy_custom_emoji: "%{name} destruyó el emoji %{target}" destroy_domain_allow: "%{name} ha eliminado el dominio %{target} de la lista blanca" destroy_domain_block: "%{name} desbloqueó el dominio %{target}" @@ -224,10 +226,22 @@ es: unassigned_report: "%{name} ha desasignado la denuncia %{target}" unsilence_account: "%{name} desactivó el silenciado de la cuenta de %{target}" unsuspend_account: "%{name} desactivó la suspensión de la cuenta de %{target}" + update_announcement: "%{name} actualizó el anuncio %{target}" update_custom_emoji: "%{name} actualizó el emoji %{target}" update_status: "%{name} actualizó el estado de %{target}" deleted_status: "(estado borrado)" title: Log de auditoría + announcements: + edit: + title: Editar anuncio + empty: No se encontraron anuncios. + live: En vivo + new: + create: Crear anuncio + title: Nuevo anuncio + published: Publicados + time_range: Intervalo de tiempo + title: Anuncios custom_emojis: assign_category: Asignar categoría by_domain: Dominio @@ -270,11 +284,11 @@ es: feature_registrations: Registros feature_relay: Relés de federación feature_spam_check: Contra-spam - feature_timeline_preview: Vista previa de la cronología + feature_timeline_preview: Vista previa de la línea de tiempo features: Características hidden_service: Federación con servicios ocultos open_reports: informes abiertos - pending_tags: etiquetas esperando revisión + pending_tags: hashtags esperando revisión pending_users: usuarios esperando por revisión recent_users: Usuarios recientes search: Búsqueda por texto completo @@ -433,8 +447,8 @@ es: desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales title: Publicar estadísticas locales acerca de actividad de usuario bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuaria. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacia, se tomará como valor por defecto a todas las administradoras locales. - title: Seguimientos predeterminados para usuarias nuevas + desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. + title: Seguimientos predeterminados para usuarios nuevos contact_information: email: Correo de trabajo username: Nombre de usuario @@ -452,7 +466,7 @@ es: domain_blocks_rationale: title: Mostrar la razón de ser enable_bootstrap_timeline_accounts: - title: Habilitar seguimientos predeterminados para nuevas usuarias + title: Habilitar seguimientos predeterminados para usuarios nuevos hero: desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia title: Imagen de portada @@ -486,7 +500,7 @@ es: title: Modo de registros show_known_fediverse_at_about_page: desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales. - title: Mostrar fediverso conocido en la vista previa de la cronología + title: Mostrar fediverso conocido en la vista previa de la historia show_staff_badge: desc_html: Mostrar un parche de staff en la página de un usuario title: Mostrar parche de staff @@ -497,28 +511,28 @@ es: desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML title: Información extendida personalizada site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodonte y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. + desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. title: Descripción corta de la instancia site_terms: desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML title: Términos de servicio personalizados site_title: Nombre de instancia spam_check_enabled: - desc_html: Mastodonte puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos. + desc_html: Mastodon puede silenciar y reportar cuentas automáticamente usando medidas como detectar cuentas que envían mensajes no solicitados repetidos. Puede que haya falsos positivos. title: Contra-spam thumbnail: desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px title: Portada de instancia timeline_preview: - desc_html: Mostrar cronología pública en la portada - title: Permita acceso no autentificado a la cronología pública + desc_html: Mostrar línea de tiempo pública en la portada + title: Previsualización title: Ajustes del sitio trendable_by_default: desc_html: Afecta a etiquetas que no han sido previamente rechazadas title: Permitir que las etiquetas sean tendencia sin revisión previa trends: - desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia - title: Etiquetas que son tendencia + desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia + title: Hashtags de tendencia statuses: back_to_account: Volver a la cuenta batch: @@ -543,14 +557,14 @@ es: last_active: Última actividad most_popular: Más popular most_recent: Más reciente - name: Etiqueta + name: Hashtag review: Estado de revisión reviewed: Revisado title: Etiquetas trending_right_now: En tendencia ahora mismo unique_uses_today: "%{count} publicando hoy" unreviewed: No revisado - updated_msg: Etiquetas actualizadas con éxito + updated_msg: Hashtags actualizados exitosamente title: Administración warning_presets: add_new: Añadir nuevo @@ -567,7 +581,7 @@ es: body_remote: Alguien de %{domain} a reportado a %{target} subject: Nuevo reporte para la %{instance} (#%{id}) new_trending_tag: - body: 'La etiqueta #%{name} es tendencia hoy, pero no ha sido revisada previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario evitando volver a ver este mensaje.' + body: 'El hashtag #%{name} está en tendencia hoy, pero no ha sido revisado previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario como para no volver a ver esto.' subject: Nuevo hashtag para revisión en %{instance} (#%{name}) aliases: add_new: Crear alias @@ -577,7 +591,7 @@ es: remove: Desvincular alias appearance: advanced_web_interface: Interfaz web avanzada - advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, cronología federada, cualquier número de listas y etiquetas.' + advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.' animations_and_accessibility: Animaciones y accesibilidad confirmation_dialogs: Diálogos de confirmación discovery: Descubrir @@ -610,9 +624,9 @@ es: delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: - prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodonte!" - prefix_sign_up: "¡Únete a Mastodonte hoy!" - suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodonte y más!" + prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!" + prefix_sign_up: "¡Únete a Mastodon hoy!" + suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodon y más!" didnt_get_confirmation: "¿No recibió el correo de confirmación?" forgot_password: "¿Olvidaste tu contraseña?" invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo. @@ -657,6 +671,9 @@ es: hint_html: "Tip: No volveremos a preguntarte por la contraseña durante la siguiente hora." invalid_password: Contraseña incorrecta prompt: Confirmar contraseña para seguir + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -708,7 +725,7 @@ es: content: Lo sentimos, algo ha funcionado mal por nuestra parte. title: Esta página no es correcta '503': La página no se ha podido cargar debido a un fallo temporal del servidor. - noscript_html: Para usar la aplicación web de Mastodonte, por favor activa Javascript. Alternativamente, prueba alguna de las aplicaciones nativas para Mastodonte para tu plataforma. + noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las aplicaciones nativas para Mastodon para tu plataforma. existing_username_validator: not_found: no pudo encontrar un usuario local con ese nombre de usuario not_found_multiple: no pudo encontrar %{usernames} @@ -729,14 +746,14 @@ es: featured_tags: add_new: Añadir nuevo errors: - limit: Alcanzaste el máximo de etiquetados - hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a las personas usuarias navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de obras creativas o proyectos a largo plazo." + limit: Ya has alcanzado la cantidad máxima de hashtags + hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo." filters: contexts: account: Perfiles - home: Cronología propia + home: Timeline propio notifications: Notificaciones - public: Cronología pública + public: Timeline público thread: Conversaciones edit: title: Editar filtro @@ -755,9 +772,11 @@ es: resources: Recursos trending_now: Tendencia ahora generic: - all: Todas + all: Todos changes_saved_msg: "¡Cambios guardados con éxito!" copy: Copiar + delete: Eliminar + edit: Editar no_batch_actions_available: No hay acciones por lotes disponibles en esta página order_by: Ordenar por save_changes: Guardar cambios @@ -928,7 +947,11 @@ es: preferences: other: Otros posting_defaults: Configuración por defecto de publicaciones - public_timelines: Cronologías públicas + public_timelines: Líneas de tiempo públicas + reactions: + errors: + limit_reached: Límite de reacciones diferentes alcanzado + unrecognized_emoji: no es un emoji conocido relationships: activity: Actividad de la cuenta dormant: Inactivo @@ -989,7 +1012,7 @@ es: weibo: Weibo current_session: Sesión actual description: "%{browser} en %{platform}" - explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodonte. + explanation: Estos son los navegadores web conectados actualmente en tu cuenta de Mastodon. ip: IP platforms: adobe_air: Adobe Air @@ -1018,7 +1041,7 @@ es: development: Desarrollo edit_profile: Editar perfil export: Exportar información - featured_tags: Etiquetas destacadas + featured_tags: Hashtags destacados identity_proofs: Pruebas de identidad import: Importar import_and_export: Importar y exportar @@ -1042,8 +1065,8 @@ es: boosted_from_html: Impulsado desde %{acct_link} content_warning: 'Alerta de contenido: %{warning}' disallowed_hashtags: - one: 'contenía una etiqueta no permitida: %{tags}' - other: 'contenía las etiquetas no permitidas: %{tags}' + one: 'contenía un hashtag no permitido: %{tags}' + other: 'contenía los hashtags no permitidos: %{tags}' language_detection: Detección automática de idioma open_in_web: Abrir en web over_character_limit: Límite de caracteres de %{max} superado @@ -1069,7 +1092,7 @@ es: public: Público public_long: Todos pueden ver unlisted: Público, pero no mostrar en la historia federada - unlisted_long: Todos pueden ver, pero no está listado en las cronologías públicas + unlisted_long: Todos pueden ver, pero no está listado en las líneas de tiempo públicas stream_entries: pinned: Toot fijado reblogged: retooteado @@ -1082,9 +1105,9 @@ es:

¿Qué información recogemos?

    -
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de persona usuaria, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuaria, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • -
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de reenviar o marcar como favorito otra publicación es siempre pública.
  • -
  • Publicaciones directas y sólo para seguidoras: Todos los mensajes se almacenan y procesan en el servidor. Las publicaciones sólo para seguidoras se entregan a las seguidoras y usuarias que se mencionan en ellas, y los mensajes directos se entregan sólo a las usuarias que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidoras. Puede cambiar una opción para aprobar y rechazar nuevas seguidoras manualmente en la configuración Por favor, tenga en cuenta que las operadoras del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que las destinatarias pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodonte.
  • +
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • +
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
  • +
  • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información peligrosa en Mastodon.
  • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
@@ -1095,7 +1118,7 @@ es:

Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

    -
  • Para proporcionar la funcionalidad principal de Mastodonte. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • +
  • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
  • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
@@ -1135,9 +1158,9 @@ es:

No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

-

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidoras se envían a los servidores donde residen tus seguidoras, y los mensajes directos se envían a los servidores de las destinatarias, en la medida en que dichas seguidoras o destinatarias residan en un servidor diferente.

+

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

-

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidoras, sus listas, todos sus mensajes y sus favoritas. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

+

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.


@@ -1160,9 +1183,9 @@ es:

Adaptado originalmente desde la política de privacidad de Discourse.

title: Términos del Servicio y Políticas de Privacidad de %{instance} themes: - contrast: Mastodonte (Alto contraste) - default: Mastodonte (Oscuro) - mastodon-light: Mastodonte (claro) + contrast: Alto contraste + default: Mastodon + mastodon-light: Mastodon (claro) time: formats: default: "%d de %b del %Y, %H:%M" @@ -1185,7 +1208,7 @@ es: wrong_code: "¡El código ingresado es inválido! ¿El dispositivo y tiempo del servidor están correctos?" user_mailer: backup_ready: - explanation: Has solicitado una copia completa de tu cuenta de Mastodonte. ¡Ya está preparada para descargar! + explanation: Has solicitado una copia completa de tu cuenta de Mastodon. ¡Ya está preparada para descargar! subject: Tu archivo está preparado para descargar title: Descargar archivo warning: @@ -1211,15 +1234,15 @@ es: edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la ristra teporal local y con "etiquetas". Podrías querer presentarte con la "etiqueta" #presentaciones o #nuevascuentas.' + final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. review_preferences_action: Cambiar preferencias review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". - subject: Bienvenido a Mastodonte - tip_federated_timeline: La cronología federada es una vista de la red de Mastodonte. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las cronologías local y federada. - tip_local_timeline: La cronología local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! + subject: Bienvenido a Mastodon + tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. + tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. + tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! tips: Consejos title: Te damos la bienvenida a bordo, %{name}! @@ -1231,5 +1254,5 @@ es: seamless_external_login: Has iniciado sesión desde un servicio externo, así que los ajustes de contraseña y correo no están disponibles. signed_in_as: 'Sesión iniciada como:' verification: - explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodonte. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' + explanation_html: 'Puedes verificarte a ti mismo como el dueño de los links en los metadatos de tu perfil . Para eso, el sitio vinculado debe contener un vínculo a tu perfil de Mastodon. El vínculo en tu sitio debe tener un atributo rel="me". El texto del vínculo no importa. Aquí un ejemplo:' verification: Verificación diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 999772cfe..e3cedee53 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -198,11 +198,13 @@ eu: change_email_user: "%{name}(e)k %{target}(r)en e-mail helbidea aldatu du" confirm_user: "%{name}(e)k %{target}(r)en e-mail helbidea berretsi du" create_account_warning: "%{name}-k abisua bidali dio %{target}-ri" + create_announcement: "%{name}(e)k %{target}(e)rako iragarpen berria sortu du" create_custom_emoji: "%{name}(e)k emoji berria kargatu du %{target}" create_domain_allow: "%{name}(e)k %{target} domeinua zerrenda zurian zartu du" create_domain_block: "%{name}(e)k %{target} domeinua blokeatu du" create_email_domain_block: "%{name}(e)k %{target} e-mail helbideen domeinua zerrenda beltzean sartu du" demote_user: "%{name}(e)k %{target} mailaz jaitsi du" + destroy_announcement: "%{name}(e)k %{target}(e)rako iragarpena kendu du" destroy_custom_emoji: "%{name} erabiltzaileak %{target} emojia suntsitu du" destroy_domain_allow: "%{name}(e)k %{target} domeinua zerrenda zuritik kendu du" destroy_domain_block: "%{name}(e)k %{target} domeinua desblokeatu du" @@ -224,10 +226,22 @@ eu: unassigned_report: "%{name}(e)k %{target} txotenaren esleipena atzera bota du" unsilence_account: "%{name}(e)k %{target} isilarazteko agindua kendu du" unsuspend_account: "%{name}(e)k %{target} kontuaren kanporaketa atzera bota du" + update_announcement: "%{name}(e)k %{target}(e)rako iragarpena eguneratu du du" update_custom_emoji: "%{name}(e)k %{target} emoji-a eguneratu du" update_status: "%{name} (e)k %{target}(r)en mezua aldatu du" deleted_status: "(ezabatutako mezua)" title: Auditoria-egunkaria + announcements: + edit: + title: Editatu iragarpena + empty: Ez da iragarpenik aurkitu. + live: Zuzenean + new: + create: Sortu iragarpena + title: Iragarpen berria + published: Argitaratua + time_range: Denbora-tartea + title: Iragarpenak custom_emojis: assign_category: Esleitu kategoria by_domain: Domeinua @@ -372,6 +386,8 @@ eu: title: Gonbidapenak pending_accounts: title: Zain dauden kontuak (%{count}) + relationships: + title: "%{acct}(e)ren erlazioak" relays: add_new: Gehitu hari errelea delete: Ezabatu @@ -655,6 +671,9 @@ eu: hint_html: "Oharra: Ez dizugu pasahitza berriro eskatuko ordu batez." invalid_password: Pasahitz baliogabea prompt: Berretsi pasahitza jarraitzeko + date: + formats: + default: "%Y(e)ko %b %d" datetime: distance_in_words: about_x_hours: "%{count}h" @@ -731,6 +750,7 @@ eu: hint_html: "Zer dira nabarmendutako traolak? Zure profilean toki nabarmendu batean agertzen dira eta jendeari traola hau daukaten mezu publikoak arakatzea ahalbidetzen diote. Sormen lana edo epe luzerako proiektuak jarraitzeko primerakoak dira." filters: contexts: + account: Profilak home: Hasierako denbora-lerroa notifications: Jakinarazpenak public: Denbora-lerro publikoak @@ -755,6 +775,8 @@ eu: all: Denak changes_saved_msg: Aldaketak ongi gorde dira! copy: Kopiatu + delete: Ezabatu + edit: Editatu no_batch_actions_available: Ez dago ekintza masiborik orri honetan eskuragarri order_by: Ordenatze-irizpidea save_changes: Gorde aldaketak @@ -926,11 +948,15 @@ eu: other: Denetarik posting_defaults: Bidalketarako lehenetsitakoak public_timelines: Denbora-lerro publikoak + reactions: + errors: + unrecognized_emoji: ez da emoji ezaguna relationships: activity: Kontuaren aktibitatea dormant: Ez aktiboa followers: Jarraitzaileak following: Jarraitzen + invited: Gonbidatuta last_active: Azkenekoz aktiboa most_recent: Azkenak moved: Lekuz aldatua diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 9f0e2f948..d83192ad5 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -200,11 +200,13 @@ hu: change_email_user: "%{name} megváltoztatta %{target} felhasználó e-mail címét" confirm_user: "%{name} megerősítette e-mail címét: %{target}" create_account_warning: "%{name} figyelmeztetést küldött %{target} felhasználónak" + create_announcement: "%{name} új közleményt hozott létre %{target}" create_custom_emoji: "%{name} új emojit töltött fel: %{target}" create_domain_allow: "%{name} engedélyező listára vette %{target} domaint" create_domain_block: "%{name} letiltotta az alábbi domaint: %{target}" create_email_domain_block: "%{name} feketelistára tette az alábbi e-mail domaint: %{target}" demote_user: "%{name} lefokozta az alábbi felhasználót: %{target}" + destroy_announcement: "%{name} törölte a közleményt %{target}" destroy_custom_emoji: "%{name} törölte az emojit: %{target}" destroy_domain_allow: "%{name} leszedte %{target} domaint az engedélyező listáról" destroy_domain_block: "%{name} engedélyezte az alábbi domaint: %{target}" @@ -226,10 +228,22 @@ hu: unassigned_report: "%{name} törölte a %{target} bejelentés hozzárendelését" unsilence_account: "%{name} feloldotta a némítást %{target} felhasználói fiókján" unsuspend_account: "%{name} feloldotta %{target} felhasználói fiókjának felfüggesztését" + update_announcement: "%{name} frissítette a közleményt %{target}" update_custom_emoji: "%{name} frissítette az alábbi emojit: %{target}" update_status: "%{name} frissítette %{target} felhasználó tülkjét" deleted_status: "(törölt tülk)" title: Audit napló + announcements: + edit: + title: Közlemény szerkesztése + empty: Nincs közlemény. + live: Élő + new: + create: Közlemény létrehozása + title: Új közlemény + published: Közzétéve + time_range: Időintervallum + title: Közlemények custom_emojis: assign_category: Kategóriák by_domain: Domain @@ -374,6 +388,8 @@ hu: title: Meghívások pending_accounts: title: Függőben lévő fiókok (%{count}) + relationships: + title: "%{acct} kapcsolatai" relays: add_new: Új relé hozzáadása delete: Törlés @@ -657,6 +673,9 @@ hu: hint_html: "Hasznos: Nem fogjuk megint a jelszavadat kérdezni a következő órában." invalid_password: Érvénytelen jelszó prompt: Add meg a jelszót a folytatáshoz + date: + formats: + default: "%Y.%b.%d." datetime: distance_in_words: about_x_hours: "%{count}ó" @@ -733,6 +752,7 @@ hu: hint_html: "Mik a kiemelt hashtagek? Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó tülkjeidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére." filters: contexts: + account: Profil home: Saját idővonal notifications: Értesítések public: Nyilvános idővonalak @@ -757,6 +777,8 @@ hu: all: Mind changes_saved_msg: A változásokat elmentettük! copy: Másolás + delete: Törlés + edit: Szerkesztés no_batch_actions_available: Ezen az oldalon nem elérhetőek kötegelt műveletek order_by: Rendezés save_changes: Változások mentése @@ -928,11 +950,15 @@ hu: other: Egyéb posting_defaults: Tülkölés alapértelmezései public_timelines: Nyilvános idővonalak + reactions: + errors: + unrecognized_emoji: nem ismert emoji relationships: activity: Fiók aktivitás dormant: Elhagyott followers: Követők following: Követve + invited: Meghívva last_active: Utoljára aktív most_recent: Legutóbbi moved: Átköltöztetve diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 846363ae0..7ea6f1f38 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -194,11 +194,13 @@ ja: change_email_user: "%{name} さんが %{target} さんのメールアドレスを変更しました" confirm_user: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました" create_account_warning: "%{name} さんが %{target} さんに警告メールを送信しました" + create_announcement: "%{name} さんが新しいお知らせ %{target} を作成しました" create_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を追加しました" create_domain_allow: "%{name} さんがドメイン %{target} をドメイン用ホワイトリストに追加しました" create_domain_block: "%{name} さんがドメイン %{target} をブロックしました" create_email_domain_block: "%{name} さんがドメイン %{target} をメールアドレス用ブラックリストに追加しました" demote_user: "%{name} さんが %{target} さんを降格しました" + destroy_announcement: "%{name} さんがお知らせ %{target} を削除しました" destroy_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を削除しました" destroy_domain_allow: "%{name} さんがドメイン %{target} をドメイン用ホワイトリストから外しました" destroy_domain_block: "%{name} さんがドメイン %{target} のブロックを外しました" @@ -220,12 +222,22 @@ ja: unassigned_report: "%{name} さんが通報 %{target} の担当を外しました" unsilence_account: "%{name} さんが %{target} さんのサイレンスを解除しました" unsuspend_account: "%{name} さんが %{target} さんの停止を解除しました" + update_announcement: "%{name} さんがお知らせ %{target} を更新しました" update_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を更新しました" update_status: "%{name} さんが %{target} さんの投稿を更新しました" deleted_status: "(削除済)" title: 操作履歴 announcements: - title: 告知 + edit: + title: お知らせを編集 + empty: お知らせはありません + live: 公開中 + new: + create: お知らせを作成 + title: お知らせを追加 + published: 公開日時 + time_range: 期間 + title: お知らせ custom_emojis: assign_category: カテゴリーを割り当て by_domain: ドメイン @@ -368,6 +380,8 @@ ja: title: 招待 pending_accounts: title: 承認待ちアカウント (%{count}) + relationships: + title: "%{acct} さんのフォロー・フォロワー" relays: add_new: リレーを追加 delete: 削除 @@ -649,6 +663,9 @@ ja: hint_html: 以後 1 時間はパスワードの再入力を求めません invalid_password: パスワードが間違っています prompt: 続行するにはパスワードを入力してください + date: + formats: + default: "%Y年%m月%d日" datetime: distance_in_words: about_x_hours: "%{count}時間" @@ -725,6 +742,7 @@ ja: hint_html: "注目のハッシュタグとは?プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。" filters: contexts: + account: プロフィール home: ホームタイムライン notifications: 通知 public: 公開タイムライン @@ -918,11 +936,16 @@ ja: other: その他 posting_defaults: デフォルトの投稿設定 public_timelines: 公開タイムライン + reactions: + errors: + limit_reached: リアクションの種類が上限に達しました + unrecognized_emoji: 認識できない絵文字 relationships: activity: 活動 dormant: 非アクティブ followers: フォロワー following: フォロー中 + invited: 招待済み last_active: 最後の活動 most_recent: 新着 moved: 引っ越し済み @@ -987,7 +1010,7 @@ ja: firefox_os: Firefox OS ios: iOS linux: Linux - mac: Mac + mac: macOS other: 不明なプラットフォーム windows: Windows windows_mobile: Windows Mobile diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 74c486ef6..16ddab9c3 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -372,6 +372,8 @@ kk: title: Шақырулар pending_accounts: title: Күтілген аккаунттар (%{count}) + relationships: + title: "%{acct} байланыстары" relays: add_new: Жаңа арна қосу delete: Өшіру @@ -915,11 +917,15 @@ kk: other: Басқа posting_defaults: Пост жазу негіздері public_timelines: Ашық таймлайндар + reactions: + errors: + limit_reached: Түрлі реакциялар лимиті толды relationships: activity: Аккаунт белсенділігі dormant: Ұйқысыз followers: Оқырмандар following: Жазылғандары + invited: Шақырылды last_active: Соңғы белсенділік most_recent: Ең соңғы moved: Көшірілді diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 21ea5b554..76f4ad4da 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -194,11 +194,13 @@ ko: change_email_user: "%{name}이 %{target}의 이메일 주소를 변경했습니다" confirm_user: "%{name}이 %{target}의 이메일 주소를 컨펌했습니다" create_account_warning: "%{name}가 %{target}에게 경고 보냄" + create_announcement: "%{name} 님이 새 공지 %{target}을 만들었습니다" create_custom_emoji: "%{name}이 새로운 에모지 %{target}를 추가했습니다" create_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에 넣었습니다" create_domain_block: "%{name}이 도메인 %{target}를 차단했습니다" create_email_domain_block: "%{name}이 이메일 도메인 %{target}를 차단했습니다" demote_user: "%{name}이 %{target}을 강등했습니다" + destroy_announcement: "%{name} 님이 공지 %{target}을 삭제했습니다" destroy_custom_emoji: "%{name}이 %{target} 에모지를 삭제함" destroy_domain_allow: "%{name} 님이 %{target} 도메인을 화이트리스트에서 제거하였습니다" destroy_domain_block: "%{name}이 도메인 %{target}의 차단을 해제했습니다" @@ -220,10 +222,22 @@ ko: unassigned_report: "%{name}이 리포트 %{target}을 할당 해제했습니다" unsilence_account: "%{name}이 %{target}에 대한 침묵을 해제했습니다" unsuspend_account: "%{name}이 %{target}에 대한 정지를 해제했습니다" + update_announcement: "%{name} 님이 공지 %{target}을 갱신했습니다" update_custom_emoji: "%{name}이 에모지 %{target}를 업데이트 했습니다" update_status: "%{name}이 %{target}의 상태를 업데이트 했습니다" deleted_status: "(삭제됨)" title: 감사 기록 + announcements: + edit: + title: 공지사항 수정 + empty: 공지를 찾을 수 없습니다. + live: 진행 중 + new: + create: 공지사항 생성 + title: 새 공지사항 + published: 발행됨 + time_range: 시간 범위 + title: 공지사항 custom_emojis: assign_category: 분류 지정 by_domain: 도메인 @@ -368,6 +382,8 @@ ko: title: 초대 pending_accounts: title: 대기중인 계정 (%{count}) + relationships: + title: "%{acct}의 관계" relays: add_new: 릴레이 추가 delete: 삭제 @@ -649,6 +665,9 @@ ko: hint_html: "팁: 한 시간 동안 다시 암호를 묻지 않을 것입니다." invalid_password: 잘못된 암호 prompt: 계속하려면 암호 확인 + date: + formats: + default: "%Y-%b-%d" datetime: distance_in_words: about_x_hours: "%{count}시간" @@ -725,6 +744,7 @@ ko: hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다." filters: contexts: + account: 프로필 home: 홈 타임라인 notifications: 알림 public: 퍼블릭 타임라인 @@ -749,6 +769,8 @@ ko: all: 모두 changes_saved_msg: 정상적으로 변경되었습니다! copy: 복사 + delete: 삭제 + edit: 수정 no_batch_actions_available: 이 페이지에서 수행할 수 있는 일괄작업이 없습니다 order_by: 순서 save_changes: 변경 사항을 저장 @@ -916,6 +938,10 @@ ko: other: 기타 posting_defaults: 게시물 기본설정 public_timelines: 공개 타임라인 + reactions: + errors: + limit_reached: 다른 리액션 제한에 도달했습니다 + unrecognized_emoji: 인식 되지 않은 에모지입니다 relationships: activity: 계정 활동 dormant: 휴면 diff --git a/config/locales/nn.yml b/config/locales/nn.yml index c61523efe..875545c76 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -21,6 +21,9 @@ nn: federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir. get_apps: Prøv ein mobilapp hosted_on: "%{domain} er vert for Mastodon" + instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. + +' learn_more: Lær meir privacy_policy: Personvernsreglar see_whats_happening: Sjå kva som skjer @@ -191,14 +194,17 @@ nn: whitelisted: Kvitlista action_logs: actions: + assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv" change_email_user: "%{name} endra e-postadressa til brukaren %{target}" confirm_user: "%{name} stadfesta e-postadressa til brukaren %{target}" create_account_warning: "%{name} sende ei åtvaring til %{target}" + create_announcement: "%{name} laget en ny kunngjøring %{target}" create_custom_emoji: "%{name} lasta opp eit nytt kjensleteikn %{target}" create_domain_allow: "%{name} kvitlista domenet %{target}" create_domain_block: "%{name} blokkerte domenet %{target}" create_email_domain_block: "%{name} svartelista e-postdomenet %{target}" demote_user: "%{name} degraderte brukaren %{target}" + destroy_announcement: "%{name} slettet kunngjøring %{target}" destroy_custom_emoji: "%{name} utsletta kjensleteiknet %{target}" destroy_domain_allow: "%{name} fjerna domenet %{target} frå kvitliste" destroy_domain_block: "%{name} slutta å blokkera domenet %{target}" @@ -217,12 +223,25 @@ nn: resolve_report: "%{name} løyste ein rapport %{target}" silence_account: "%{name} målbatt %{target} sin konto" suspend_account: "%{name} utviste %{target} sin konto" + unassigned_report: "%{name} avtilegnet rapport %{target}" unsilence_account: "%{name} fjernet forstummingen av %{target}s konto" unsuspend_account: "%{name} utviste %{target} sin konto" + update_announcement: "%{name} oppdaterte kunngjøring %{target}" update_custom_emoji: "%{name} oppdaterte kjensleteiknet %{target}" update_status: "%{name} oppdaterte status for %{target}" deleted_status: "(sletta status)" title: Revisionslogg + announcements: + edit: + title: Rediger kunngjøring + empty: Ingen kunngjøringer funnet. + live: Direkte + new: + create: Lag kunngjøring + title: Ny kunngjøring + published: Publisert + time_range: Tidsramme + title: Kunngjøringer custom_emojis: assign_category: Vel kategori by_domain: Domene @@ -257,14 +276,17 @@ nn: upload: Last opp dashboard: authorized_fetch_mode: Trygg modus + backlog: opphopsloggede jobber config: Oppsett feature_deletions: Kontoslettingar feature_invites: Innbydingar feature_profile_directory: Profilmappe feature_registrations: Registreringar + feature_relay: Føderasjonsoverganger feature_spam_check: Søppelvern feature_timeline_preview: Førehandsvisning av tidsline features: Eigenskapar + hidden_service: Føderering med skjulte tjenester open_reports: opne rapportar pending_tags: emneknaggar som ventar på gjennomgang pending_users: brukarar som ventar på gjennomgang @@ -290,6 +312,7 @@ nn: created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene + edit: Rediger domeneblokkering existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. new: create: Lag blokkering @@ -301,7 +324,9 @@ nn: suspend: Utvis title: Ny domeneblokkering private_comment: Privat kommentar + private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene. public_comment: Offentleg kommentar + public_comment_hint: Kommenter angående denne domenebegrensningen for offentligheten, hvis publisering av domenebegrensningslisten er slått på. reject_media: Avvis mediefiler reject_media_hint: Fjernar mediefiler som er lagra lokalt og nektar å lasta ned andre i framtida. Har ikkje noko å seia for utvisingar reject_reports: Avvis rapportar @@ -321,12 +346,14 @@ nn: title: Angre domeneblokkering for %{domain} undo: Angr undo: Angre + view: Vis domeneblokkering email_domain_blocks: add_new: Lag ny created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer delete: Slett destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer domain: Domene + empty: Ingen e-mail-domener er sortelistet på dette tidspunkt. new: create: Legg til domene title: Ny blokkeringsoppføring av e-postdomene @@ -359,15 +386,19 @@ nn: title: Innbydingar pending_accounts: title: Kontoar som ventar (%{count}) + relationships: + title: "%{acct} sitt forhold" relays: add_new: Legg til ny overgang delete: Slett + description_html: En federert overgang er en mellomleddsserver som utveksler store mengder av offentlige tuter mellom servere som abonnerer og publiserer til den. Det kan hjelpe små og mellomstore servere til å oppdage innhold fra strømiverset, noe som ellers ville ha krevd at lokale brukere manuelt fulgte andre personer på fjerne servere. disable: Slå av disabled: Slege av enable: Slå på enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den. enabled: Skrudd på inbox_url: Overførings-URL + pending: Avventer overgangens godkjenning save_and_enable: Lagr og slå på setup: Sett opp en overgangsforbindelse signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på @@ -388,6 +419,7 @@ nn: are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilsett moderator + by_target_domain: Domenet av rapportert bruker comment: none: Ingen created_at: Rapportert @@ -398,6 +430,7 @@ nn: create_and_resolve: Løys med merknad create_and_unresolve: Opn på nytt med merknad delete: Slett + placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer... reopen: Opn rapport igjen report: 'Rapporter #%{id}' reported_account: Rapportert konto @@ -420,6 +453,7 @@ nn: email: Offentleg e-postadresse username: Brukarnamn for kontakt custom_css: + desc_html: Modifiser utseendet med CSS lastet på hver side title: Eigen CSS default_noindex: desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve diff --git a/config/locales/no.yml b/config/locales/no.yml index 12772f335..fed806d56 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -21,6 +21,9 @@ federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til. get_apps: Prøv en mobilapp hosted_on: Mastodon driftet på %{domain} + instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. + +' learn_more: Lær mer privacy_policy: Privatlivsretningslinjer see_whats_happening: Se hva som skjer @@ -47,6 +50,8 @@ what_is_mastodon: Hva er Mastodon? accounts: choices_html: "%{name} sine anbefalte:" + endorsements_hint: Du kan fremheve personer du følger fra nettgrensesnittet som deretter vil bli vist her. + featured_tags_hint: Du kan fremheve spesifikke emneknagger som vil bli vist her. follow: Følg followers: one: Følger @@ -54,6 +59,7 @@ following: Følger joined: Ble med den %{date} last_active: senest aktiv + link_verified_on: Eierskap av denne lenken ble sjekket %{date} media: Media moved_html: "%{name} har flyttet til %{new_profile_link}:" network_hidden: Denne informasjonen er ikke tilgjengelig @@ -61,6 +67,8 @@ nothing_here: Det er ingenting her! people_followed_by: Folk som %{name} følger people_who_follow: Folk som følger %{name} + pin_errors: + following: Du må allerede følge personen du vil fremheve posts: one: Tut other: Tuter @@ -136,6 +144,7 @@ moderation_notes: Moderasjonsnotater most_recent_activity: Nyligste aktivitet most_recent_ip: Nyligste IP + no_account_selected: Ingen brukere ble forandret da ingen var valgt no_limits_imposed: Ingen grenser er tatt i bruk not_subscribed: Ikke abonnért pending: Avventer gjennomgang @@ -173,6 +182,7 @@ statuses: Statuser subscribe: Abonnere suspended: Suspendert + time_in_queue: Venter i kø %{time} title: Kontoer unconfirmed_email: Ubekreftet E-postadresse undo_silenced: Angre målbinding @@ -184,13 +194,17 @@ whitelisted: Hvitelistet action_logs: actions: + assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv" + change_email_user: "%{name} forandret e-postadressen for bruker %{target}" confirm_user: "%{name} bekreftet e-postadresse for bruker %{target}" create_account_warning: "%{name} sendte en advarsel til %{target}" + create_announcement: "%{name} laget en ny kunngjøring %{target}" create_custom_emoji: "%{name} lastet opp ny emoji %{target}" create_domain_allow: "%{name} hvitelistet domenet %{target}" create_domain_block: "%{name} blokkerte domenet %{target}" create_email_domain_block: "%{name} svartelistet e-postdomenet %{target}" demote_user: "%{name} degraderte bruker %{target}" + destroy_announcement: "%{name} slettet kunngjøring %{target}" destroy_custom_emoji: "%{name} ødela emojien %{target}" destroy_domain_allow: "%{name} fjernet domenet %{target} fra hvitelisten" destroy_domain_block: "%{name} fjernet blokkeringen av domenet %{target}" @@ -209,12 +223,25 @@ resolve_report: "%{name} avviste rapporten %{target}" silence_account: "%{name} forstummet %{target}s konto" suspend_account: "%{name} suspendert %{target}s konto" + unassigned_report: "%{name} avtilegnet rapport %{target}" unsilence_account: "%{name} fjernet forstummingen av %{target}s konto" unsuspend_account: "%{name} opphevde suspenderingen av %{target}s konto" + update_announcement: "%{name} oppdaterte kunngjøring %{target}" update_custom_emoji: "%{name} oppdaterte emoji %{target}" update_status: "%{name} oppdaterte status for %{target}" deleted_status: "(statusen er slettet)" title: Revisionslogg + announcements: + edit: + title: Rediger kunngjøring + empty: Ingen kunngjøringer funnet. + live: Direkte + new: + create: Lag kunngjøring + title: Ny kunngjøring + published: Publisert + time_range: Tidsramme + title: Kunngjøringer custom_emojis: assign_category: Tilegn kategori by_domain: Domene @@ -249,17 +276,23 @@ upload: Last opp dashboard: authorized_fetch_mode: Sikkermodus + backlog: opphopsloggede jobber config: Oppsett feature_deletions: Kontoslettinger feature_invites: Invitasjonslenker feature_profile_directory: Profilmappe feature_registrations: Registreringer + feature_relay: Føderasjonsoverganger feature_spam_check: Anti-spam feature_timeline_preview: Tidslinje-forhåndsvisning features: Egenskaper + hidden_service: Føderering med skjulte tjenester open_reports: åpne rapporter + pending_tags: emneknagger som venter gjennomgang + pending_users: brukere som venter gjennomgang recent_users: Nylige brukere search: Fulltekstsøk + single_user_mode: Enpersons-modus software: Programvare space: Plassbruk title: Kontrollpanel @@ -271,12 +304,15 @@ whitelist_mode: Hvitelistemodus domain_allows: add_new: Hvitelist domene + created_msg: Domenet har blitt hvitelistet + destroyed_msg: Domenet har blitt fjernet fra hvitelisten undo: Fjern fra hvitelisten domain_blocks: add_new: Lag ny created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene + edit: Rediger domeneblokkering existing_domain_block_html: Du har allerede pålagt strengere begrensninger på %{name}, du kan være nødt til oppheve blokkeringen av den først. new: create: Lag blokkering @@ -288,10 +324,13 @@ suspend: Utvis title: Ny domeneblokkering private_comment: Privat kommentar + private_comment_hint: Kommenter angående denne domenebegrensningen for internt bruk av moderatorene. public_comment: Offentlig kommentar + public_comment_hint: Kommenter angående denne domenebegrensningen for offentligheten, hvis publisering av domenebegrensningslisten er slått på. reject_media: Avvis mediefiler reject_media_hint: Fjerner lokalt lagrede mediefiler og nekter å laste dem ned i fremtiden. Irrelevant for utvisninger reject_reports: Avslå rapporter + reject_reports_hint: Ignorer alle rapporter som kommer fra dette domenet. Irrelevant for utvisninger rejecting_media: avviser mediafiler rejecting_reports: avslår rapporter severity: @@ -307,12 +346,14 @@ title: Angre domeneblokkering for %{domain} undo: Angre undo: Angre + view: Vis domeneblokkering email_domain_blocks: add_new: Lag ny created_msg: E-postdomenet ble lagt til i blokkeringslisten uten problemer delete: Fjern destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer domain: Domene + empty: Ingen e-mail-domener er sortelistet på dette tidspunkt. new: create: Legg til domene title: Ny blokkeringsoppføring av e-postdomene @@ -343,20 +384,29 @@ expired: Utløpt title: Filtrer title: Invitasjoner + pending_accounts: + title: Avventende brukere (%{count}) + relationships: + title: "%{acct} sitt forhold" relays: add_new: Legg til ny overgang delete: Slett + description_html: En federert overgang er en mellomleddsserver som utveksler store mengder av offentlige tuter mellom servere som abonnerer og publiserer til den. Det kan hjelpe små og mellomstore servere til å oppdage innhold fra strømiverset, noe som ellers ville ha krevd at lokale brukere manuelt fulgte andre personer på fjerne servere. disable: Skru av disabled: Skrudd av enable: Skru på enable_hint: Når dette har blitt skrudd på, vil tjeneren din abonnere på alle offentlige tuter fra denne overgangen, og vil begynne å sende denne tjenerens offentlige tuter til den. enabled: Skrudd på inbox_url: Overførings-URL + pending: Avventer overgangens godkjenning save_and_enable: Lagre og skru på setup: Sett opp en overgangsforbindelse signatures_not_enabled: Overganger vil ikke fungere riktig mens sikkermodus eller hvitelistingsmodus er skrudd på status: Status title: Overganger + report_notes: + created_msg: Rapportnotat opprettet! + destroyed_msg: Rapportnotat slettet! reports: account: notes: @@ -369,6 +419,7 @@ are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilegnet moderator + by_target_domain: Domenet av rapportert bruker comment: none: Ingen created_at: Rapportert @@ -376,12 +427,16 @@ mark_as_unresolved: Merk som uoppklart notes: create: Legg til notat + create_and_resolve: Løst med notat + create_and_unresolve: Gjenåpne med notat delete: Slett + placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer... reopen: Gjenåpne rapporten report: 'Rapporter #%{id}' reported_account: Rapportert konto reported_by: Rapportert av resolved: Løst + resolved_msg: Rapport løst! status: Status title: Rapporter unassign: Fjern tilegning @@ -398,6 +453,7 @@ email: Skriv en offentlig e-postadresse username: Skriv brukernavn custom_css: + desc_html: Modifiser utseendet med CSS lastet på hver side title: Egendefinert CSS domain_blocks: all: Til alle diff --git a/config/locales/ru.yml b/config/locales/ru.yml index bd019ee17..47bd8e92e 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -206,11 +206,13 @@ ru: change_email_user: "%{name} сменил(а) e-mail пользователя %{target}" confirm_user: "%{name} подтвердил(а) e-mail адрес пользователя %{target}" create_account_warning: "%{name} выдал(а) предупреждение %{target}" + create_announcement: "%{name} содал новое объявление %{target}" create_custom_emoji: "%{name} загрузил(а) новый эмодзи %{target}" create_domain_allow: "%{name} внес(ла) домен %{target} в белый список" create_domain_block: "%{name} заблокировал(а) домен %{target}" create_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в чёрный список" demote_user: "%{name} разжаловал(а) пользователя %{target}" + destroy_announcement: "%{name} удалил объявление %{target}" destroy_custom_emoji: "%{name} измельчил(а) эмодзи %{target} в пыль" destroy_domain_allow: "%{name} убрал домен %{target} из белого списка" destroy_domain_block: "%{name} разблокировал(а) домен %{target}" @@ -232,10 +234,22 @@ ru: unassigned_report: "%{name} сняла назначение жалобы %{target}" unsilence_account: "%{name} снял ограничения видимости постов пользователя %{target}" unsuspend_account: "%{name} снял(а) блокировку с пользователя %{target}" + update_announcement: "%{name} обновил объявление %{target}" update_custom_emoji: "%{name} обновил(а) эмодзи %{target}" update_status: "%{name} изменил(а) пост пользователя %{target}" deleted_status: "(удалённый пост)" title: Журнал событий + announcements: + edit: + title: Редактировать объявление + empty: Объявления не найдены. + live: В эфире + new: + create: Создать объявление + title: Новое объявление + published: Опубликованные + time_range: Временной диапазон + title: Объявления custom_emojis: assign_category: Задать категорию by_domain: Домен @@ -678,6 +692,9 @@ ru: hint_html: "Подсказка: мы не будем спрашивать пароль повторно в течение часа." invalid_password: Неверный пароль prompt: Введите пароль для продолжения + date: + formats: + default: "%d %b %Y" datetime: distance_in_words: about_x_hours: "%{count}ч" @@ -779,6 +796,8 @@ ru: all: Любой changes_saved_msg: Изменения успешно сохранены! copy: Копировать + delete: Удалить + edit: Изменить no_batch_actions_available: На этой странице нет запланированных действий order_by: Сортировка save_changes: Сохранить изменения @@ -958,6 +977,10 @@ ru: other: Всё остальное posting_defaults: Настройки отправки по умолчанию public_timelines: Публичные ленты + reactions: + errors: + limit_reached: Достигнут лимит разных реакций + unrecognized_emoji: не является распознанным эмодзи relationships: activity: Активность учётной записи dormant: Заброшенная diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index d43ab04fe..e91b74f85 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -14,6 +14,12 @@ ca: text_html: Opcional. Pots utilitzar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps type_html: Tria què fer amb %{acct} warning_preset_id: Opcional. Encara pots afegir text personalitzat al final de la configuració predefinida + announcement: + all_day: Si es marca, només es mostraran les dates de l'interval de temps + ends_at: Opcional. En aquest moment, l’anunci deixarà automàticament d'estar publicat + scheduled_at: Deixa-ho en blanc per a publicar l’anunci immediatament + starts_at: Opcional. En el cas que el teu anunci estigui vinculat a un interval de temps específic + text: Pots utilitzar sintaxi d'un tut. Tingues en compte l’espai que l’anunci ocuparà a la pantalla de l’usuari defaults: autofollow: Les persones que es registrin a través de la invitació et seguiran automàticament avatar: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px @@ -83,6 +89,12 @@ ca: silence: Silenci suspend: Suspèn i elimina irreversiblement les dades del compte warning_preset_id: Utilitza una configuració predefinida d'avís + announcement: + all_day: Esdeveniment de tot el dia + ends_at: Fi del esdeveniment + scheduled_at: Programa la publicació + starts_at: Inici del esdeveniment + text: Anunci defaults: autofollow: Convida a seguir el teu compte avatar: Avatar diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml index 7ffc8fe3d..f4737069b 100644 --- a/config/locales/simple_form.co.yml +++ b/config/locales/simple_form.co.yml @@ -14,6 +14,12 @@ co: text_html: In uzzione. Pudete utilizà a sintassa di i statuti. Pudete ancu aghjustà preselezzione d'avertimentu per piglià tempu type_html: Sceglie chì fà cù %{acct} warning_preset_id: In uzzione. Pudete sempre aghjustà un testu persunalizatu à a fine di a preselezzione + announcement: + all_day: Sole e date da st'intervallu di tempu saranu mustrate + ends_at: In uzzione. L'annunziu sarà autumaticamente piattatu dop'à sta data + scheduled_at: Lasciate viotu per pubblicà l'annunziu avà + starts_at: In uzzione. S'e l'annunziu hè ligatu à un'intervallu di tempu specificu + text: Pudete utilizà a sintassa di i statuti. Pensate à a piazza chì l'annunziu hà da piglià nant'à u screnu di l'utilizatore defaults: autofollow: Quelli·e chì s'arregistranu cù l'invitazione saranu autumaticamente abbunati·e à voi avatar: Furmatu PNG, GIF o JPG. %{size} o menu. Sarà ridottu à %{dimensions}px @@ -83,6 +89,12 @@ co: silence: Silenzà suspend: Suspende è sguassà i dati di u contu di manera irreversibile warning_preset_id: Utilizà un'avertimentu preselezziunatu + announcement: + all_day: Tutta a ghjurnata + ends_at: Fine di l'avvenimentu + scheduled_at: Pianificà publicazione + starts_at: Principiu di l'avvenimentu + text: Annunziu defaults: autofollow: Invità à siguità u vostru contu avatar: Ritrattu di prufile diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 06482ebd0..532950a31 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -83,6 +83,10 @@ cs: silence: Ztišit suspend: Pozastavit účet a nenávratně smazat jeho data warning_preset_id: Použít předlohu pro varování + announcement: + all_day: Celodenní událost + scheduled_at: Naplánovat zveřejnění + starts_at: Začátek události defaults: autofollow: Pozvat ke sledování vašeho účtu avatar: Avatar diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index de6083e18..231c32959 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -14,6 +14,12 @@ el: text_html: Προαιρετικό. Μπορείς να χρησιμοποιήσεις συντακτικό ενός τουτ. Μπορείς να ορίσεις προκαθορισμένες προειδοποιήσεις για να γλυτώσεις χρόνο type_html: Διάλεξε τι θα κανείς με τον %{acct} warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο + announcement: + all_day: Όταν είναι επιλεγμένο, θα εμφανίζονται μόνο οι ημερομηνίες εντός της χρονικής διάρκειας + ends_at: Προαιρετικό. Η ανακοίνωση θα αποσυρθεί αυτόματα τη δηλωμένη ώρα + scheduled_at: Αν μείνει κενό, η ενημέρωση θα δημοσιευτεί αμέσως + starts_at: Προαιρετικό, για την περίπτωση που η ανακοίνωση αφορά συγκεκριμένη χρονική διάρκεια + text: Δεκτό το συντακτικό των τουτ. Παρακαλούμε έχε υπόψιν σου το χώρο που θα καταλάβει η ανακοίνωση στην οθόνη του χρήστη defaults: autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px @@ -83,6 +89,12 @@ el: silence: Αποσιώπηση suspend: Αναστολή και αμετάκλητη διαγραφή στοιχείων λογαριασμού warning_preset_id: Χρήση προκαθορισμένης προειδοποίησης + announcement: + all_day: Ολοήμερο γεγονός + ends_at: Λήξη γεγονότος + scheduled_at: Προγραμματισμένη δημοσίευση + starts_at: Έναρξη γεγονότος + text: Ανακοίνωση defaults: autofollow: Προσκάλεσε για να ακολουθήσουν το λογαριασμό σου avatar: Αβατάρ diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index c62ded28b..78bb3e275 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -14,6 +14,12 @@ es-AR: text_html: Opcional. Podés usar sintaxis de toots. Podés agregar preajustes de advertencia para ahorrar tiempo. type_html: Elegí qué hacer con %{acct} warning_preset_id: Opcional. Todavía podés agregar texto personalizado al final del preajuste + announcement: + all_day: Cuando esté seleccionado, sólo se mostrarán las fechas del rango de tiempo + ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento + scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente + starts_at: Opcional. En caso de que tu anuncio esté vinculado a un rango de tiempo específico + text: Podés usar la sintaxis de toot. Por favor, tené en cuenta el espacio que ocupará el anuncio en la pantalla del usuario defaults: autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente avatar: 'PNG, GIF o JPG. Máximo: %{size}. Será subescalado a %{dimensions} píxeles.' @@ -83,6 +89,12 @@ es-AR: silence: Silenciar suspend: Suspender y eliminar de forma irreversible los datos de la cuenta warning_preset_id: Usar un texto predeterminado + announcement: + all_day: Evento de todo el día + ends_at: Fin del evento + scheduled_at: Programar publicación + starts_at: Comienzo del evento + text: Anuncio defaults: autofollow: Invitar para seguir tu cuenta avatar: Avatar diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 20467dba4..745de3332 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -14,6 +14,12 @@ es: text_html: Opcional. Puede usar sintaxis de toots. Puede añadir configuraciones predefinidas de advertencia para ahorrar tiempo type_html: Elige qué hacer con %{acct} warning_preset_id: Opcional. Aún puede añadir texto personalizado al final de la configuración predefinida + announcement: + all_day: Cuando está seleccionado solo se mostrarán las fechas del rango de tiempo + ends_at: Opcional. El anuncio desaparecerá automáticamente en este momento + scheduled_at: Dejar en blanco para publicar el anuncio inmediatamente + starts_at: Opcional. En caso de que su anuncio esté vinculado a un intervalo de tiempo específico + text: Puedes usar la sintaxis toot. Por favor ten en cuenta el espacio que ocupará el anuncio en la pantalla del usuario defaults: autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente avatar: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px @@ -42,7 +48,7 @@ es: setting_noindex: Afecta a tu perfil público y páginas de estado setting_show_application: La aplicación que utiliza usted para publicar toots se mostrará en la vista detallada de sus toots setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles - setting_use_pending_items: Ocultar actualizaciones cronológicas tras un clic en lugar de desplazar automáticamente la ristra + setting_use_pending_items: Ocultar nuevos estados detrás de un clic en lugar de desplazar automáticamente el feed username: Tu nombre de usuario será único en %{domain} whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra domain_allow: @@ -52,7 +58,7 @@ es: form_challenge: current_password: Estás entrando en un área segura imports: - data: Archivo CSV exportado desde otra instancia de Mastodonte + data: Archivo CSV exportado desde otra instancia de Mastodon invite_request: text: Esto nos ayudará a revisar su aplicación sessions: @@ -83,6 +89,12 @@ es: silence: Silenciar suspend: Suspender y eliminar de forma irreversible la información de la cuenta warning_preset_id: Usar un aviso predeterminado + announcement: + all_day: Evento de todo el día + ends_at: Fin del evento + scheduled_at: Programar publicación + starts_at: Comienzo del evento + text: Anuncio defaults: autofollow: Invitar a seguir tu cuenta avatar: Avatar @@ -110,7 +122,7 @@ es: password: Contraseña phrase: Palabra clave o frase setting_advanced_layout: Habilitar interfaz web avanzada - setting_aggregate_reblogs: Agrupar rebarritadas en las cronologías + setting_aggregate_reblogs: Agrupar retoots en las líneas de tiempo setting_auto_play_gif: Reproducir automáticamente los GIFs animados setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot setting_crop_images: Recortar a 16x9 las imágenes de los toots no expandidos @@ -157,7 +169,7 @@ es: pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión reblog: Enviar correo electrónico cuando alguien comparta su publicación report: Enviar un correo cuando se envía un nuevo informe - trending_tag: Enviar correo electrónico cuando una etiqueta no revisada es tendencia + trending_tag: Enviar correo electrónico cuando una etiqueta no revisada está de tendencia tag: listable: Permitir que esta etiqueta aparezca en las búsquedas y en el directorio del perfil name: Etiqueta diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 1f34adb05..b6253a197 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -14,6 +14,12 @@ eu: text_html: Aukerakoa. Toot sintaxia erabili dezakezu. Abisu aurre-ezarpenak gehitu ditzakezu denbora aurrezteko type_html: Erabaki zer egin %{acct} kontuarekin warning_preset_id: Aukerakoa. Zure testua gehitu dezakezu aurre-ezarpenaren ostean + announcement: + all_day: Markatutakoan soilik denbora barrutiko datak erakutsiko dira + ends_at: Aukerakoa. Iragapena une honetan automatikoki desargitaratuko da + scheduled_at: Laga hutsik iragarpena berehala argitaratzeko + starts_at: Aukerakoa. Zure iragarpena denbora-tarte batera lotuta dagoenerako + text: Toot-etako sintaxia erabili dezakezu. Kontuan izan iragarpenak erabiltzailearen pantailan hartuko duen neurria defaults: autofollow: Gonbidapena erabiliz izena ematen dutenek automatikoki jarraituko dizute avatar: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px neurrira eskalatuko da @@ -83,6 +89,12 @@ eu: silence: Isiltarazi suspend: Kanporatu eta behin betiko ezabatu kontuko datuak warning_preset_id: Erabili aurre-ezarritako abisu bat + announcement: + all_day: Egun osoko gertaera + ends_at: Gertaeraren amaiera + scheduled_at: Programatu argitaratzea + starts_at: Gertaeraren hasiera + text: Iragarpena defaults: autofollow: Gonbidatu zure kontua jarraitzera avatar: Abatarra diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 0af6bd690..d6768a17d 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -13,7 +13,7 @@ gl: send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo type_html: Escolla que facer con %{acct} - warning_preset_id: Optativo. Poderá engadir texto persoalizado ao final do preestablecido + warning_preset_id: Optativo. Poderás engadir texto personalizado ao final do preestablecido announcement: all_day: Cando se marca, só serán amosadas as datas do intre de tempo ends_at: Opcional. O anuncio non se publicará de xeito automático neste intre @@ -21,7 +21,7 @@ gl: starts_at: Opcional. No caso de que o teu anuncio estea vinculado a un intre de tempo específico text: Podes empregar a sintaxe do toot. Ten en conta o espazo que ocupará o anuncio na pantalla do usuario defaults: - autofollow: As persoas que se conectaron a través de un convite seguirana automáticamente a vostede + autofollow: As persoas que se conectaron a través dun convite seguirante automáticamente avatar: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px bot: Esta conta realiza principalmente accións automatizadas e podería non estar monitorizada context: Un ou varios contextos onde se debería aplicar o filtro @@ -90,7 +90,7 @@ gl: suspend: Suspender e eliminar irreversiblemente datos da conta warning_preset_id: Utilizar un aviso preestablecido announcement: - all_day: Acontecemento diario + all_day: Evento para todo o día ends_at: Final do acontecemento scheduled_at: Publicación programada starts_at: Comezo do acontecemento diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 91ecd8746..cee6bdb45 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -14,6 +14,12 @@ hu: text_html: Opcionális. A tülk szintaxis használható. Egyszerűsítés végett létre is hozhatsz figyelmeztetéseket type_html: Megmondhatod, mi legyen vele %{acct} warning_preset_id: Opcionális. A figyelmeztetés végére saját szöveget is írhatsz + announcement: + all_day: Bejelölve csak a dátumok számítanak majd a megadott intervallumból + ends_at: Opcionális. A közleményt ekkor automatikusan levesszük + scheduled_at: Hagyd üresen, hogy a közleményt azonnal közzétegyük + starts_at: Opcionális. Akkor használd, ha a közleményed adott időintervallumra vonatkozik + text: Használhatod a tülkök szintaxisát. Ügyelj arra, mennyi helyet foglal el majd a közlemény a felhasználó képernyőjén defaults: autofollow: Akik meghívón keresztül regisztrálnak, automatikusan követni fognak téged avatar: PNG, GIF vagy JPG. Maximum %{size}. Átméretezzük %{dimensions} pixelre @@ -83,6 +89,12 @@ hu: silence: Elnémítás suspend: Fiók felfüggesztése, adatok törlése visszaállíthatatlanul warning_preset_id: Figyelmeztetés használata + announcement: + all_day: Egész napos esemény + ends_at: Esemény vége + scheduled_at: Közlemény időzítése + starts_at: Esemény kezdete + text: Közlemény defaults: autofollow: Meghívás a fiókod követésére avatar: Profilkép diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml index d8b39a4d8..263b749eb 100644 --- a/config/locales/simple_form.id.yml +++ b/config/locales/simple_form.id.yml @@ -14,6 +14,12 @@ id: text_html: Opsional. Anda dapat memakai sintaks toot. Anda dapat menambahkan preset peringatan untuk hemat waktu type_html: Pilih apa yang perlu dilakukan dengan %{acct} warning_preset_id: Opsional. Anda tetap dapat menambahkan teks kustom pada akhir preset + announcement: + all_day: Saat dicentang, hanya tanggal dalam rentang waktu tertentu yang akan ditampilkan + ends_at: Opsional. Pengumuman akan diterbitkan secara otomatis saat ini + scheduled_at: Biarkan kosong jika ingin menerbitkan pengumuman secara langsung + starts_at: Opsional. Persiapan jika pengumuman Anda terikat pada rentang waktu tertentu + text: Anda dapat menggunakan sintaks toot. Mohon perhatikan ruang pengumuman yang mungkin akan memenuhi layar pengguna defaults: autofollow: Orang yang ingin mendaftar lewat undangan, otomatis mengikuti Anda avatar: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 6c675a9f2..1e193f730 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -14,6 +14,12 @@ ja: text_html: オプションです。投稿に用いる構文を使うことができます。簡略化のためプリセット警告文を追加することができます type_html: "%{acct}さんに対し、何を行うか選択してください" warning_preset_id: オプションです。プリセット警告文の末尾に任意の文字列を追加することができます + announcement: + all_day: 選択すると、おしらせ対象の開始および終了日時は日付のみ表示されます + ends_at: オプションです。指定すると、お知らせの掲載はその日時で自動的に終了します + scheduled_at: お知らせを今すぐ掲載する場合は空欄にしてください + starts_at: オプションです。お知らせしたい事柄の期間が決まっている場合に使用します + text: トゥートと同じ構文を使用できます。アナウンスが占める画面のスペースに注意してください defaults: autofollow: 招待から登録した人が自動的にあなたをフォローするようになります avatar: "%{size}までのPNG、GIF、JPGが利用可能です。%{dimensions}pxまで縮小されます" @@ -84,7 +90,11 @@ ja: suspend: 停止しアカウントのデータを恒久的に削除する warning_preset_id: プリセット警告文を使用 announcement: - text: 告知 + all_day: 終日 + ends_at: お知らせ対象の終了日時 + scheduled_at: 掲載する日時 + starts_at: おしらせ対象の開始日時 + text: お知らせ defaults: autofollow: 招待から参加後、あなたをフォロー avatar: アイコン diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index aadec0cac..5f2cccf4a 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -14,6 +14,12 @@ ko: text_html: 선택사항. 툿 문법을 사용할 수 있습니다. 경고 틀을 추가하여 시간을 절약할 수 있습니다 type_html: "%{acct}에 대해 취할 행동 선택" warning_preset_id: 선택사항. 틀의 마지막에 임의의 텍스트를 추가 할 수 있습니다 + announcement: + all_day: 체크 되었을 경우, 그 시간에 속한 날짜들에만 표시됩니다 + ends_at: 옵션입니다. 공지사항이 이 시간에 자동으로 발행 중지 됩니다 + scheduled_at: 공백으로 두면 공지사항이 곧바로 발행 됩니다 + starts_at: 공지사항이 특정한 시간에 종속 될 때를 위한 옵션입니다 + text: 툿 문법을 사용할 수 있습니다. 공지사항은 사용자의 화면 상단 공간을 차지한다는 것을 명심하세요 defaults: autofollow: 이 초대를 통해 가입하는 사람은 당신을 자동으로 팔로우 하게 됩니다 avatar: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨 @@ -83,6 +89,12 @@ ko: silence: 침묵 suspend: 정지하고 되돌릴 수 없는 데이터 삭제 warning_preset_id: 경고 틀 사용하기 + announcement: + all_day: 종일 일정 + ends_at: 이벤트 종료 + scheduled_at: 발행 일정 + starts_at: 이벤트 시작 + text: 공지사항 defaults: autofollow: 초대를 통한 팔로우 avatar: 아바타 diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index 3016db14d..5fb0e8fce 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -2,21 +2,39 @@ nn: simple_form: hints: + account_alias: + acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra + account_migration: + acct: Spesifiser brukernavn@domene til brukeren du vil flytte til + account_warning_preset: + text: Du kan bruke tut syntaks, f.eks. URLer, emneknagger og nevnelser admin_account_action: include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen + send_email_notification: Brukeren vil motta en forklaring på hva som har skjedd med deres bruker + text_html: Valgfritt. Du kan bruke tut syntaks. Du kan legge til advarsels-forhåndsinnstillinger for å spare tid type_html: Velg hva du vil gjøre med %{acct} warning_preset_id: Valfritt. Du kan leggja inn eigen tekst på enden av føreoppsettet + announcement: + all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist + ends_at: Valgfritt. Kunngjøring vil bli automatisk avpublisert på dette tidspunktet + scheduled_at: La stå tomt for å publisere kunngjøringen umiddelbart + starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme + text: Du kan bruke tut syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm defaults: autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med + context: En eller flere sammenhenger der filteret skal gjelde + current_password: For sikkerhetsgrunner, vennligst oppgi passordet til den nåværende bruker current_username: Skriv inn brukarnamnet til den noverande kontoen for å stadfesta digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på email: Du får snart ein stadfestings-e-post fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + inbox_url: Kopier URLen fra forsiden til overgangen du vil bruke irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet + locale: Språket til brukergrensesnittet, e-mailer og push-varsler locked: Krever at du manuelt godkjenner følgere password: Nytt minst 8 teikn phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut @@ -33,6 +51,8 @@ nn: setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle username: Brukarnamnet ditt vert unikt på %{domain} whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet + domain_allow: + domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret featured_tag: name: 'Kanskje du vil nytta ein av desse:' form_challenge: @@ -43,6 +63,8 @@ nn: text: Dette kjem til å hjelpa oss med å gå gjennom søknaden din sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + tag: + name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart user: chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene labels: @@ -50,9 +72,14 @@ nn: fields: name: Merkelapp value: Innhald + account_alias: + acct: Brukernavnet til den gamle brukeren + account_migration: + acct: Brukernavnet til den nye brukeren account_warning_preset: text: Føreåtstekst admin_account_action: + include_statuses: Inkluder rapporterte tuter i e-mailen send_email_notification: Varsl brukaren med e-post text: Eigen åtvaring type: Handling @@ -62,6 +89,12 @@ nn: silence: Togn suspend: Utvis og slett kontodata for godt warning_preset_id: Bruk åtvaringsoppsett + announcement: + all_day: Heldagshendelse + ends_at: Slutten av hendelsen + scheduled_at: Planlegg publisering + starts_at: Begynnelse av hendelsen + text: Kunngjøring defaults: autofollow: Bed om å fylgja kontoen din avatar: Bilete @@ -78,6 +111,8 @@ nn: expires_in: Vert ugyldig etter fields: Profilmetadata header: Overskrift + inbox_url: URL til overgangsinnboksen + irreversible: Forkast i stedet for å skjule locale: Språk locked: Lås konto max_uses: Grense på brukartal @@ -134,8 +169,11 @@ nn: pending_account: Send e-post når ein ny konto treng gjennomgang reblog: Send e-post når nokon framhevar statusen din report: Send e-post når nokon rapporterer noko + trending_tag: En ugjennomgått emneknagg trender tag: + listable: Tillat denne emneknaggen å vises i søk og på profilmappen name: Emneknagg + trendable: Tillat denne emneknaggen til å vises under trender usable: Gje tut lov til å nytta denne emneknaggen 'no': Nei recommended: Tilrådt diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index fb158e9e3..426247676 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -2,20 +2,39 @@ 'no': simple_form: hints: + account_alias: + acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra + account_migration: + acct: Spesifiser brukernavn@domene til brukeren du vil flytte til + account_warning_preset: + text: Du kan bruke tut syntaks, f.eks. URLer, emneknagger og nevnelser admin_account_action: include_statuses: Brukeren vil se hvilke tuter som forårsaket moderator-handlingen eller -advarselen + send_email_notification: Brukeren vil motta en forklaring på hva som har skjedd med deres bruker + text_html: Valgfritt. Du kan bruke tut syntaks. Du kan legge til advarsels-forhåndsinnstillinger for å spare tid type_html: Velg hva du vil gjøre med %{acct} + warning_preset_id: Valgfritt. Du kan fortsatt legge til tilpasset tekst til slutten av forhåndsinnstillingen + announcement: + all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist + ends_at: Valgfritt. Kunngjøring vil bli automatisk avpublisert på dette tidspunktet + scheduled_at: La stå tomt for å publisere kunngjøringen umiddelbart + starts_at: Valgfritt. I tilfellet din kunngjøring er bundet til en spesifikk tidsramme + text: Du kan bruke tut syntaks. Vennligst vær oppmerksom på plassen som kunngjøringen vil ta opp på brukeren sin skjerm defaults: autofollow: Folk som lager en konto gjennom invitasjonen, vil automatisk følge deg avatar: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px bot: Denne kontoen utfører i hovedsak automatiserte handlinger og blir kanskje ikke holdt øye med + context: En eller flere sammenhenger der filteret skal gjelde + current_password: For sikkerhetsgrunner, vennligst oppgi passordet til den nåværende bruker current_username: For å bekrefte, vennligst skriv inn brukernavnet til den nåværende kontoen digest: Kun sendt etter en lang periode med inaktivitet og bare dersom du har mottatt noen personlige meldinger mens du var borte discoverable: Profilmappen er en annen måte for kontoen din å nå et bredere publikum på email: Du vil bli tilsendt en bekreftelses-E-post fields: Du kan ha opptil 4 gjenstander vist som en tabell på profilsiden din header: PNG, GIF eller JPG. Maksimalt %{size}. Vil bli nedskalert til %{dimensions}px + inbox_url: Kopier URLen fra forsiden til overgangen du vil bruke irreversible: Filtrerte tuter vil ugjenkallelig forsvinne, selv om filteret senere blir fjernet + locale: Språket til brukergrensesnittet, e-mailer og push-varsler locked: Krever at du manuelt godkjenner følgere password: Bruk minst 8 tegn phrase: Vil bli samsvart med, uansett bruk av store/små bokstaver eller innholdsadvarselen til en tut @@ -32,14 +51,20 @@ setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle username: Brukernavnet ditt vil være unikt på %{domain} whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet + domain_allow: + domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret featured_tag: name: 'Du vil kanskje ønske å bruke en av disse:' form_challenge: current_password: Du går inn i et sikkert område imports: data: CSV-fil eksportert fra en annen Mastodon-instans + invite_request: + text: Dette vil hjelpe oss med å gjennomgå din søknad sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + tag: + name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart user: chosen_languages: Hvis noen av dem er valgt, vil kun tuter i de valgte språkene bli vist i de offentlige tidslinjene labels: @@ -47,9 +72,14 @@ fields: name: Etikett value: Innhold + account_alias: + acct: Brukernavnet til den gamle brukeren + account_migration: + acct: Brukernavnet til den nye brukeren account_warning_preset: text: Forhåndsvalgt tekst admin_account_action: + include_statuses: Inkluder rapporterte tuter i e-mailen send_email_notification: Si ifra til brukeren over E-post text: Tilpasset advarsel type: Handling @@ -57,6 +87,14 @@ disable: Deaktiver pålogging none: Ikke gjør noe silence: Stilne + suspend: Suspender og ugjenkallelig slett brukerdata + warning_preset_id: Bruk en advarsels-forhåndsinnstilling + announcement: + all_day: Heldagshendelse + ends_at: Slutten av hendelsen + scheduled_at: Planlegg publisering + starts_at: Begynnelse av hendelsen + text: Kunngjøring defaults: autofollow: Inviter til å følge kontoen din avatar: Profilbilde @@ -73,6 +111,8 @@ expires_in: Utløper etter fields: Profilmetadata header: Overskrift + inbox_url: URL til overgangsinnboksen + irreversible: Forkast i stedet for å skjule locale: Språk locked: Lås konto max_uses: Maksimalt antall bruk @@ -126,9 +166,14 @@ follow: Send e-post når noen følger deg follow_request: Send e-post når noen ber om å få følge deg mention: Send e-post når noen nevner deg + pending_account: Ny bruker avventer gjennomgang reblog: Send e-post når noen fremhever din status + report: Ny rapport er sendt inn + trending_tag: En ugjennomgått emneknagg trender tag: + listable: Tillat denne emneknaggen å vises i søk og på profilmappen name: Emneknagg + trendable: Tillat denne emneknaggen til å vises under trender usable: Tillat tuter å bruke denne emneknaggen 'no': Nei recommended: Anbefalt diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index 918997695..0ec9d0d6b 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -14,6 +14,12 @@ ru: text_html: Необязательно. Вы можете использовать синтаксис постов. Для экономии времени, добавьте шаблоны предупреждений type_html: Выберите применяемое к %{acct} действие warning_preset_id: Необязательно. Вы можете добавить собственный текст в конце шаблона + announcement: + all_day: Если выбрано, часы начала и завершения будут скрыты + ends_at: Необязательно. Объявление будет автоматически отменено в это время + scheduled_at: Оставьте поля незаполненными, чтобы опубликовать объявление сразу + starts_at: Необязательно. На случай, если ваше объявление привязано к какому-то временному интервалу + text: Вы можете использовать тот же синтаксис, что и в постах. Будьте предусмотрительны насчёт места, которое займёт объявление на экране пользователей defaults: autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px @@ -83,6 +89,12 @@ ru: silence: Скрыть suspend: Заблокировать и безвозвратно удалить все данные учётной записи warning_preset_id: Использовать шаблон + announcement: + all_day: Весь день + ends_at: Время завершения + scheduled_at: Отложенная публикация + starts_at: Время начала + text: Объявление defaults: autofollow: С подпиской на вашу учётную запись avatar: Аватар diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index dc118a47f..074a3ad41 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -83,6 +83,8 @@ th: silence: เงียบ suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร warning_preset_id: ใช้คำเตือนที่ตั้งไว้ล่วงหน้า + announcement: + text: ประกาศ defaults: autofollow: เชิญให้ติดตามบัญชีของคุณ avatar: ภาพประจำตัว diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 4d022368a..69ee19f1b 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -14,6 +14,12 @@ tr: text_html: İsteğe bağlı. Toot sözdizimleri kullanabilirsiniz. Zamandan kazanmak için uyarı ön-ayarları ekleyebilirsiniz type_html: "%{acct} ile ne yapılacağını seçin" warning_preset_id: İsteğe bağlı. Hazır ayarın sonuna hala özel metin ekleyebilirsiniz + announcement: + all_day: İşaretlendiğinde, yalnızca zaman aralığındaki tarihler görüntülenir + ends_at: İsteğe bağlı. Duyuru, bu tarihte otomatik olarak yayından kaldırılacak + scheduled_at: Duyuruyu hemen yayınlamak için boş bırakın + starts_at: İsteğe bağlı. Duyurunuzun belirli bir zaman aralığına bağlı olması durumunda + text: Toot söz dizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun defaults: autofollow: Davetiyeyle kaydolan kişiler sizi otomatik olarak takip eder avatar: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir @@ -83,6 +89,12 @@ tr: silence: Sessiz suspend: Hesap verilerini askıya alın ve geri alınamaz şekilde silin warning_preset_id: Bir uyarı ön-ayarı kullan + announcement: + all_day: Tüm gün etkinliği + ends_at: Etkinlik sonu + scheduled_at: Yayınlamayı zamanla + starts_at: Etkinlik başlangıcı + text: Duyuru defaults: autofollow: Hesabınızı takip etmeye davet edin avatar: Profil resmi diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 272d2fe43..2fe0461cf 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -14,6 +14,12 @@ uk: text_html: Необов'язково. Ви можете використовувати синтакс дмухів. Ви можете додати шаблони попереджень, щоб заощадити час type_html: Оберіть, що робити з %{acct} warning_preset_id: Необов'язково. Ви можете ще додати будь-який текст до кінця шаблону + announcement: + all_day: Якщо вибрано, відображаються лише дати діапазону часу + ends_at: Необов'язково. Оголошення буде автоматично знято з публікації + scheduled_at: Залиште поля незаповненими, щоб опублікувати оголошення відразу + starts_at: Необов'язково. У разі якщо оголошення прив'язується до певного періоду часу + text: Ви можете використовувати той же синтаксис, що і в постах. Будьте завбачливі щодо місця, яке займе оголошення на екрані користувачів defaults: autofollow: Люди, що зареєструвалися за вашим запрошенням, автоматично підпишуться на вас avatar: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px @@ -83,6 +89,12 @@ uk: silence: Глушення suspend: Призупинити та незворотньо видалити дані облікового запису warning_preset_id: Використати шаблон попередження + announcement: + all_day: Увесь день + ends_at: Завершення події + scheduled_at: Відкладена публікація + starts_at: Час початку + text: Оголошення defaults: autofollow: Запросити слідкувати за вашим обліковим записом avatar: Аватар diff --git a/config/locales/sk.yml b/config/locales/sk.yml index b02ee8eca..cd3ef0390 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -234,6 +234,14 @@ sk: update_status: "%{name} aktualizoval/a status pre %{target}" deleted_status: "(zmazaný príspevok)" title: Kontrólny záznam + announcements: + live: Naživo + new: + create: Vytvor oznam + title: Nové oznámenie + published: Zverejnený + time_range: Časový rozsah + title: Oboznámenia custom_emojis: assign_category: Priraď kategóriu by_domain: Doména diff --git a/config/locales/th.yml b/config/locales/th.yml index 02b8fc97e..39664aec9 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -154,6 +154,7 @@ th: staff: พนักงาน user: ผู้ใช้ search: ค้นหา + search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน show: created_reports: รายงานที่สร้าง @@ -178,10 +179,13 @@ th: change_email_user: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}" confirm_user: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}" create_account_warning: "%{name} ได้ส่งคำเตือนไปยัง %{target}" + create_announcement: "%{name} ได้สร้างประกาศใหม่ %{target}" + create_custom_emoji: "%{name} ได้อัปโหลดอีโมจิใหม่ %{target}" create_domain_allow: "%{name} ได้ขึ้นบัญชีขาวโดเมน %{target}" create_domain_block: "%{name} ได้ปิดกั้นโดเมน %{target}" create_email_domain_block: "%{name} ได้ขึ้นบัญชีดำโดเมนอีเมล %{target}" demote_user: "%{name} ได้ลดขั้นผู้ใช้ %{target}" + destroy_announcement: "%{name} ได้ลบประกาศ %{target}" destroy_custom_emoji: "%{name} ได้ทำลายอีโมจิ %{target}" destroy_domain_allow: "%{name} ได้เอาโดเมน %{target} ออกจากบัญชีขาว" destroy_domain_block: "%{name} ได้เลิกปิดกั้นโดเมน %{target}" @@ -199,10 +203,22 @@ th: suspend_account: "%{name} ได้ระงับบัญชีของ %{target}" unassigned_report: "%{name} ได้เลิกมอบหมายรายงาน %{target}" unsuspend_account: "%{name} ได้เลิกระงับบัญชีของ %{target}" + update_announcement: "%{name} ได้อัปเดตประกาศ %{target}" update_custom_emoji: "%{name} ได้อัปเดตอีโมจิ %{target}" update_status: "%{name} ได้อัปเดตสถานะโดย %{target}" deleted_status: "(สถานะที่ลบแล้ว)" title: รายการบันทึกการตรวจสอบ + announcements: + edit: + title: แก้ไขประกาศ + empty: ไม่พบประกาศ + live: สด + new: + create: สร้างประกาศ + title: ประกาศใหม่ + published: เผยแพร่เมื่อ + time_range: ช่วงเวลา + title: ประกาศ custom_emojis: assign_category: กำหนดหมวดหมู่ by_domain: โดเมน @@ -328,6 +344,8 @@ th: title: คำเชิญ pending_accounts: title: บัญชีที่รอดำเนินการ (%{count}) + relationships: + title: ความสัมพันธ์ของ %{acct} relays: add_new: เพิ่มรีเลย์ใหม่ delete: ลบ @@ -539,6 +557,9 @@ th: confirm: ดำเนินการต่อ invalid_password: รหัสผ่านไม่ถูกต้อง prompt: ยืนยันรหัสผ่านเพื่อดำเนินการต่อ + date: + formats: + default: "%d %b %Y" datetime: distance_in_words: about_x_hours: "%{count} ชั่วโมง" @@ -600,6 +621,7 @@ th: add_new: เพิ่มใหม่ filters: contexts: + account: โปรไฟล์ home: เส้นเวลาหน้าแรก notifications: การแจ้งเตือน public: เส้นเวลาสาธารณะ @@ -621,6 +643,8 @@ th: all: ทั้งหมด changes_saved_msg: บันทึกการเปลี่ยนแปลงสำเร็จ! copy: คัดลอก + delete: ลบ + edit: แก้ไข order_by: เรียงลำดับตาม save_changes: บันทึกการเปลี่ยนแปลง html_validator: @@ -722,10 +746,14 @@ th: other: อื่น ๆ posting_defaults: ค่าเริ่มต้นการโพสต์ public_timelines: เส้นเวลาสาธารณะ + reactions: + errors: + unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก relationships: activity: กิจกรรมบัญชี followers: ผู้ติดตาม following: กำลังติดตาม + invited: เชิญแล้ว last_active: ใช้งานล่าสุด most_recent: ล่าสุด moved: ย้ายแล้ว diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 0fa4750bc..773117369 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -198,11 +198,13 @@ tr: change_email_user: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi" confirm_user: "%{name} %{target} kullanıcısının e-posta adresini onayladı" create_account_warning: "%{name} %{target} 'a bir uyarı gönderdi" + create_announcement: "%{name}, yeni %{target} duyurusunu oluşturdu" create_custom_emoji: "%{name} yeni ifade yükledi %{target}" create_domain_allow: "%{target} alan adı, %{name} tarafından beyaz listeye alındı" create_domain_block: "%{target} alanı, %{name} tarafından engellendi" create_email_domain_block: "%{target} e-posta alanı, %{name} tarafından kara listeye alınmış" demote_user: "%{name} %{target} kullanıcısını düşürdü" + destroy_announcement: "%{name}, %{target} duyurusunu sildi" destroy_custom_emoji: "%{target} emoji, %{name} tarafından kaldırıldı" destroy_domain_allow: "%{target} alan adı, %{name} tarafından beyaz listeden çıkartıldı" destroy_domain_block: "%{target} alan adının engeli %{name} tarafından kaldırıldı" @@ -224,10 +226,22 @@ tr: unassigned_report: "%{name} %{target} şikayetinin atamasını geri aldı" unsilence_account: "%{name} %{target}'in hesabının susturmasını kaldırdı" unsuspend_account: "%{name} %{target}'in hesabının uzaklaştırmasını kaldırdı" + update_announcement: "%{name}, %{target} duyurusunu güncelledi" update_custom_emoji: "%{name} %{target} emojiyi güncelledi" update_status: "%{name}, %{target} kullanıcısının durumunu güncelledi" deleted_status: "(silinmiş durum)" title: Denetim günlüğü + announcements: + edit: + title: Duyuruyu düzenle + empty: Duyuru bulunamadı. + live: Canlı + new: + create: Duyuru oluştur + title: Yeni duyuru + published: Yayınlanan + time_range: Zaman aralığı + title: Duyurular custom_emojis: assign_category: Kategori ata by_domain: Alan adı @@ -657,6 +671,9 @@ tr: hint_html: "İpucu: Önümüzdeki saat boyunca sana parolanı sormayacağız." invalid_password: Geçersiz parola prompt: Devam etmek parolayı doğrulayın + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}sa" @@ -758,6 +775,8 @@ tr: all: Tümü changes_saved_msg: Değişiklikler başarıyla kaydedildi! copy: Kopyala + delete: Sil + edit: Düzenle no_batch_actions_available: Bu sayfada toplu işlem yok order_by: Sıralama ölçütü save_changes: Değişiklikleri kaydet @@ -929,6 +948,10 @@ tr: other: Diğer posting_defaults: Gönderi varsayılanları public_timelines: Genel zaman çizelgeleri + reactions: + errors: + limit_reached: Farklı reaksiyonların sınırına ulaşıldı + unrecognized_emoji: tanınan bir emoji değil relationships: activity: Hesap etkinliği dormant: Atıl diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 7df8abcce..34bf41a15 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -206,11 +206,13 @@ uk: change_email_user: "%{name} змінив(-ла) поштову адресу користувача %{target}" confirm_user: "%{name} підтвердив(-ла) статус поштової адреси користувача %{target}" create_account_warning: "%{name} надіслав попередження до %{target}" + create_announcement: "%{name} створив нове оголошення %{target}" create_custom_emoji: "%{name} вивантажив(-ла) нове емодзі %{target}" create_domain_allow: "%{name} додав(-ла) домен %{target} до білого списку" create_domain_block: "%{name} заблокував(-ла) домен %{target}" create_email_domain_block: "%{name} додав(-ла) поштовий домен %{target} до чорного списку" demote_user: "%{name} понизив(-ла) %{target}" + destroy_announcement: "%{name} видалив оголошення %{target}" destroy_custom_emoji: "%{name} знищив(-ла) емодзі %{target}" destroy_domain_allow: "%{name} видалив(-ла) домен %{target} з білого списку" destroy_domain_block: "%{name} розблокував(-ла) домен %{target}" @@ -232,10 +234,22 @@ uk: unassigned_report: "%{name} зняв(-ла) призначення скарги %{target}" unsilence_account: "%{name} розглушив(-ла) обліковий запис %{target}" unsuspend_account: "%{name} розморозив обліковий запис користувача %{target}" + update_announcement: "%{name} оновив оголошення %{target}" update_custom_emoji: "%{name} оновив(-ла) емодзі %{target}" update_status: "%{name} змінив(-ла) статус користуача %{target}" deleted_status: "(видалений статус)" title: Журнал подій + announcements: + edit: + title: Редагувати оголошення + empty: Оголошення не знайдені. + live: Наживо + new: + create: Створити оголошення + title: Нове оголошення + published: Опубліковане + time_range: Діапазон часу + title: Оголошення custom_emojis: assign_category: Призначити категорію by_domain: Домен @@ -263,6 +277,7 @@ uk: shortcode_hint: Мінімум два символи, тільки цифрові й латинські символи або підкреслення title: Особливі емодзі uncategorized: Без категорії + unlist: Прибрати unlisted: Не у списку update_failed_msg: Не вийшло оновити емозді updated_msg: Емодзі успішно оновлене! @@ -348,6 +363,7 @@ uk: delete: Видалити destroyed_msg: Успішно видалено поштовий домен з чорного списку domain: Домен + empty: Ніякі e-mail домени не блокуються. new: create: Додати домен title: Нове блокування поштового домену @@ -382,6 +398,8 @@ uk: title: Запрошення pending_accounts: title: Облікові записи у черзі (%{count}) + relationships: + title: "%{acct} відносини" relays: add_new: Додати новий ретранслятор delete: Видалити @@ -455,6 +473,7 @@ uk: title: Користувацький CSS default_noindex: desc_html: Впливає на усіх користувачів, які не змінили це настроювання самостійно + title: Виключити користувачів з індексації пошуковими системами за замовчуванням domain_blocks: all: Всi disabled: Нікого @@ -462,6 +481,8 @@ uk: users: Для авторизованих локальних користувачів domain_blocks_rationale: title: Обґрунтування + enable_bootstrap_timeline_accounts: + title: Увімкнути підписки за замовчуванням для нових користувачів hero: desc_html: Відображається на головній сторінці. Рекомендовано як мінімум 600x100 пікселів. Якщо не вказано, буде використано передпоказ інстанції title: Банер інстанції @@ -492,6 +513,7 @@ uk: approved: Для входу потрібне схвалення none: Ніхто не може увійти open: Будь-хто може увійти + title: Режим реєстрації show_known_fediverse_at_about_page: desc_html: Коли увімкнено, будуть показані пости з усього відомого федисвіту у передпоказі. Інакше будуть показані лише локальні дмухи. title: Показувати доступний федисвіт у передпоказі стрічки @@ -577,11 +599,13 @@ uk: body_remote: Хтось з домену %{domain} поскаржився(-лася) на %{target} subject: Нова скарга до %{instance} (#%{id}) new_trending_tag: + body: 'Хештег #%{name} сьогодні є в тренді, але раніше не переглядався. Він не відображатиметься публічно, якщо ви не дозволите це чи просто збережете форму, щоб ніколи більше про нього не чути.' subject: Новий хештеґ надіслано на розгляд до %{instance} (#%{name}) aliases: add_new: Створити псевдонім created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису. deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе. + hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, що потрібно для перенесення передплатників зі старою облікового запису. Ця дія саме по собі нешкідливо і оборотно. Міграція облікового запису починається з старого облікового запису. remove: Від'єднати псевдонім appearance: advanced_web_interface: Розширений web-інтерфейс @@ -665,6 +689,9 @@ uk: hint_html: "Підказка: ми не будемо запитувати ваш пароль впродовж наступної години." invalid_password: Невірний пароль prompt: Підтвердіть пароль для продовження + date: + formats: + default: "%b %d, %Y" datetime: distance_in_words: about_x_hours: "%{count}г" @@ -741,6 +768,7 @@ uk: hint_html: "Що таке виділені хештеґи? Це ті, що відображаються ни видному місці у вашому публічному профілі. Вони дають змогу людям фільтрувати ваші публічні пости за цими хештеґами. Це дуже корисно для відстеження мистецьких творів та довготривалих проектів." filters: contexts: + account: Профілі home: Ваша стрічка notifications: Сповіщення public: Глобальні стрічки @@ -765,6 +793,9 @@ uk: all: Усі changes_saved_msg: Зміни успішно збережені! copy: Копіювати + delete: Видалити + edit: Змінити + no_batch_actions_available: На цій сторінці немає запланованих дій order_by: Сортувати за save_changes: Зберегти зміни validation_errors: @@ -780,6 +811,11 @@ uk: authorize_connection_prompt: Авторизувати це зашифроване з'єднання? errors: failed: Не вдалося встановити це зашифроване з'єднання. Спробуйте ще раз за допомогою %{provider}. + keybase: + invalid_token: Токени Keybase - це хеші від підписів і повинні бути по довжині в 66 hex-символів + verification_failed: Keybase не розпізнає цей токен як підпис користувача Keybase %{kb_username}. Будь-ласка, спробуйте з Keybase. + wrong_user: Неможливо підтвердити користувача%{proving}, під час входу в систему як %{current}. Виконайте вхід як %{proving} і спробуйте ще раз. + explanation_html: На цій сторінці відображаються криптографічні підтверджені ідентифікатори - наприклад, прив'язаний профіль Keybase. Це дозволяє людям відправляти вам зашифровані повідомлення, а також довіряти вашим постам. i_am_html: Я %{username} з %{service}. identity: Ідентичність inactive: Неактивний @@ -836,9 +872,11 @@ uk: migrations: acct: username@domain нового облікового запису cancel: Скасувати перенаправлення + cancel_explanation: Скасування перенаправлення реактивує ваш поточний обліковий запис, але не поверне підписників, які були переміщені в інший обліковий запис. cancelled_msg: Перенаправлення успішно скасовано. errors: already_moved: той самий обліковий запис, до якого ви вже переміщені + missing_also_known_as: не є зворотнім посиланням на цей обліковий запис move_to_self: неможливо перемістити обліковий запис до самого себе not_found: не знайдено on_cooldown: Ви у витверезнику @@ -858,7 +896,9 @@ uk: cooldown: Після переїзду ви деякий час не можете переїжджати знову disabled_account: Поточний обліковий запис не буде повністю придатний до використання. Проте ви матимете доступ до експорту даних та повторної активації. followers: Ця дія призведе до переміщення всіх підписників з поточного облікового запису до нового облікового запису + only_redirect_html: Або ж ви можете просто налаштувати перенаправлення у ваш профіль. other_data: Ніякі інші дані не будуть переміщені автоматично + redirect: Профіль цього облікового запису буде оновлено з заміткою про перенаправлення, а також виключений з пошуку moderation: title: Модерація notification_mailer: @@ -926,6 +966,7 @@ uk: duration_too_long: надто далеко у майбутньому duration_too_short: надто мала тривалість expired: Це опитування вже завершено + invalid_choice: Обраного варіанту голосування не існує over_character_limit: не може бути довше ніж %{max} символів кожен too_few_options: має містити більше ніж один варіант too_many_options: не може мати більше ніж %{max} варіантів @@ -933,11 +974,15 @@ uk: other: Інше posting_defaults: Промовчання для постів public_timelines: Глобальні стрічки + reactions: + errors: + unrecognized_emoji: не є розпізнаним емоджі relationships: activity: Діяльність облікового запису dormant: Неактивні followers: Підписники following: Підписник(-ця) + invited: Запрошені last_active: Крайня активність most_recent: За часом створення moved: Переміщено @@ -1128,6 +1173,7 @@ uk: suspend: Ваш обліковий запис було призупинено, а всі ваші дмухи і вивантажені медіафайли - безповоротно видалено з цього сервера та серверів, де ви мали послідовників. get_in_touch: Ви можете відповісти на цей електронний лист, щоб зконтактувати з працівниками %{instance}. review_server_policies: Переглянути політики сервера + statuses: 'Зокрема, для:' subject: disable: Ваш обліковий запис %{acct} було заморожено none: Попередження для %{acct} @@ -1163,4 +1209,5 @@ uk: seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні. signed_in_as: 'Ви увійшли як:' verification: + explanation_html: 'Володіння посиланнями у профілі можна підтвердити. Для цього на зазначеному сайті повинна міститися посилання на ваш профіль Mastodon, а у самому посиланні повинен бути атрибут rel="me". Що всередині посилання - значення не має. Ось вам приклад посилання:' verification: Підтвердження From ae2198bd955530c61dd1f4cd99f23c7a0c069b6e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Jan 2020 16:00:29 +0100 Subject: [PATCH 179/207] Fix validations of reactions limit (#12955) --- app/validators/reaction_validator.rb | 10 ++++-- spec/validators/reaction_validator_spec.rb | 42 ++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 spec/validators/reaction_validator_spec.rb diff --git a/app/validators/reaction_validator.rb b/app/validators/reaction_validator.rb index be899c89d..494b6041b 100644 --- a/app/validators/reaction_validator.rb +++ b/app/validators/reaction_validator.rb @@ -6,10 +6,10 @@ class ReactionValidator < ActiveModel::Validator LIMIT = 8 def validate(reaction) - return if reaction.name.blank? || reaction.custom_emoji_id.present? + return if reaction.name.blank? - reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) unless unicode_emoji?(reaction.name) - reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if limit_reached?(reaction) + reaction.errors.add(:name, I18n.t('reactions.errors.unrecognized_emoji')) if reaction.custom_emoji_id.blank? && !unicode_emoji?(reaction.name) + reaction.errors.add(:base, I18n.t('reactions.errors.limit_reached')) if new_reaction?(reaction) && limit_reached?(reaction) end private @@ -18,6 +18,10 @@ class ReactionValidator < ActiveModel::Validator SUPPORTED_EMOJIS.include?(name) end + def new_reaction?(reaction) + !reaction.announcement.announcement_reactions.where(name: reaction.name).exists? + end + def limit_reached?(reaction) reaction.announcement.announcement_reactions.where.not(name: reaction.name).count('distinct name') >= LIMIT end diff --git a/spec/validators/reaction_validator_spec.rb b/spec/validators/reaction_validator_spec.rb new file mode 100644 index 000000000..d73104cb6 --- /dev/null +++ b/spec/validators/reaction_validator_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ReactionValidator do + let(:announcement) { Fabricate(:announcement) } + + describe '#validate' do + it 'adds error when not a valid unicode emoji' do + reaction = announcement.announcement_reactions.build(name: 'F') + subject.validate(reaction) + expect(reaction.errors).to_not be_empty + end + + it 'does not add error when non-unicode emoji is a custom emoji' do + custom_emoji = Fabricate(:custom_emoji) + reaction = announcement.announcement_reactions.build(name: custom_emoji.shortcode, custom_emoji_id: custom_emoji.id) + subject.validate(reaction) + expect(reaction.errors).to be_empty + end + + it 'adds error when 8 reactions already exist' do + %w(🐘 ❤️ 🙉 😍 😋 😂 😞 👍).each do |name| + announcement.announcement_reactions.create!(name: name, account: Fabricate(:account)) + end + + reaction = announcement.announcement_reactions.build(name: '😘') + subject.validate(reaction) + expect(reaction.errors).to_not be_empty + end + + it 'does not add error when new reaction is part of the existing ones' do + %w(🐘 ❤️ 🙉 😍 😋 😂 😞 👍).each do |name| + announcement.announcement_reactions.create!(name: name, account: Fabricate(:account)) + end + + reaction = announcement.announcement_reactions.build(name: '😋') + subject.validate(reaction) + expect(reaction.errors).to be_empty + end + end +end From 48c55b6392661cde8e28cf076c3d132c22d17a0f Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 25 Jan 2020 16:35:33 +0100 Subject: [PATCH 180/207] Improve announcements design (#12954) * Move announcements above scroll container; add button to temporarily hide them * Remove interface for dismissing announcements * Display number of unread announcements * Count unread announcements accurately * Fix size of announcement box not fitting the currently displayed announcement * Fix announcement box background color to match button color --- .../mastodon/actions/announcements.js | 18 ++++----- .../components/announcements.js | 20 +--------- .../containers/announcements_container.js | 4 +- .../mastodon/features/home_timeline/index.js | 40 +++++++++++++++++-- .../mastodon/reducers/announcements.js | 28 ++++++++++--- .../styles/mastodon/components.scss | 8 +--- 6 files changed, 71 insertions(+), 47 deletions(-) diff --git a/app/javascript/mastodon/actions/announcements.js b/app/javascript/mastodon/actions/announcements.js index c65bc052e..64bf5ef91 100644 --- a/app/javascript/mastodon/actions/announcements.js +++ b/app/javascript/mastodon/actions/announcements.js @@ -5,7 +5,6 @@ export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST'; export const ANNOUNCEMENTS_FETCH_SUCCESS = 'ANNOUNCEMENTS_FETCH_SUCCESS'; export const ANNOUNCEMENTS_FETCH_FAIL = 'ANNOUNCEMENTS_FETCH_FAIL'; export const ANNOUNCEMENTS_UPDATE = 'ANNOUNCEMENTS_UPDATE'; -export const ANNOUNCEMENTS_DISMISS = 'ANNOUNCEMENTS_DISMISS'; export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST'; export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS'; @@ -17,6 +16,8 @@ export const ANNOUNCEMENTS_REACTION_REMOVE_FAIL = 'ANNOUNCEMENTS_REACTION_REM export const ANNOUNCEMENTS_REACTION_UPDATE = 'ANNOUNCEMENTS_REACTION_UPDATE'; +export const ANNOUNCEMENTS_TOGGLE_SHOW = 'ANNOUNCEMENTS_TOGGLE_SHOW'; + const noOp = () => {}; export const fetchAnnouncements = (done = noOp) => (dispatch, getState) => { @@ -54,15 +55,6 @@ export const updateAnnouncements = announcement => ({ announcement: normalizeAnnouncement(announcement), }); -export const dismissAnnouncement = announcementId => (dispatch, getState) => { - dispatch({ - type: ANNOUNCEMENTS_DISMISS, - id: announcementId, - }); - - api(getState).post(`/api/v1/announcements/${announcementId}/dismiss`); -}; - export const addReaction = (announcementId, name) => (dispatch, getState) => { dispatch(addReactionRequest(announcementId, name)); @@ -131,3 +123,9 @@ export const updateReaction = reaction => ({ type: ANNOUNCEMENTS_REACTION_UPDATE, reaction, }); + +export function toggleShowAnnouncements() { + return dispatch => { + dispatch({ type: ANNOUNCEMENTS_TOGGLE_SHOW }); + }; +} diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index 975db0265..8ff1b0b4e 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -277,19 +277,13 @@ class Announcement extends ImmutablePureComponent { static propTypes = { announcement: ImmutablePropTypes.map.isRequired, emojiMap: ImmutablePropTypes.map.isRequired, - dismissAnnouncement: PropTypes.func.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; - handleDismissClick = () => { - const { dismissAnnouncement, announcement } = this.props; - dismissAnnouncement(announcement.get('id')); - } - render () { - const { announcement, intl } = this.props; + const { announcement } = this.props; const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at')); const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at')); const now = new Date(); @@ -314,8 +308,6 @@ class Announcement extends ImmutablePureComponent { removeReaction={this.props.removeReaction} emojiMap={this.props.emojiMap} /> - -
); } @@ -328,8 +320,6 @@ class Announcements extends ImmutablePureComponent { static propTypes = { announcements: ImmutablePropTypes.list, emojiMap: ImmutablePropTypes.map.isRequired, - fetchAnnouncements: PropTypes.func.isRequired, - dismissAnnouncement: PropTypes.func.isRequired, addReaction: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, @@ -339,11 +329,6 @@ class Announcements extends ImmutablePureComponent { index: 0, }; - componentDidMount () { - const { fetchAnnouncements } = this.props; - fetchAnnouncements(); - } - handleChangeIndex = index => { this.setState({ index: index % this.props.announcements.size }); } @@ -369,13 +354,12 @@ class Announcements extends ImmutablePureComponent {
- + {announcements.map(announcement => ( ({ }); const mapDispatchToProps = dispatch => ({ - fetchAnnouncements: () => dispatch(fetchAnnouncements()), - dismissAnnouncement: id => dispatch(dismissAnnouncement(id)), addReaction: (id, name) => dispatch(addReaction(id, name)), removeReaction: (id, name) => dispatch(removeReaction(id, name)), }); diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index b7f9d5095..c7de8c9cb 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -9,15 +9,23 @@ import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ColumnSettingsContainer from './containers/column_settings_container'; import { Link } from 'react-router-dom'; +import { fetchAnnouncements, toggleShowAnnouncements } from 'mastodon/actions/announcements'; import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container'; +import classNames from 'classnames'; +import IconWithBadge from 'mastodon/components/icon_with_badge'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, + show_announcements: { id: 'home.show_announcements', defaultMessage: 'Show announcements' }, + hide_announcements: { id: 'home.hide_announcements', defaultMessage: 'Hide announcements' }, }); const mapStateToProps = state => ({ hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0, isPartial: state.getIn(['timelines', 'home', 'isPartial']), + hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(), + unreadAnnouncements: state.getIn(['announcements', 'unread']).size, + showAnnouncements: state.getIn(['announcements', 'show']), }); export default @connect(mapStateToProps) @@ -32,6 +40,9 @@ class HomeTimeline extends React.PureComponent { isPartial: PropTypes.bool, columnId: PropTypes.string, multiColumn: PropTypes.bool, + hasAnnouncements: PropTypes.bool, + unreadAnnouncements: PropTypes.number, + showAnnouncements: PropTypes.bool, }; handlePin = () => { @@ -62,6 +73,7 @@ class HomeTimeline extends React.PureComponent { } componentDidMount () { + this.props.dispatch(fetchAnnouncements()); this._checkIfReloadNeeded(false, this.props.isPartial); } @@ -94,10 +106,31 @@ class HomeTimeline extends React.PureComponent { } } + handleToggleAnnouncementsClick = (e) => { + e.stopPropagation(); + this.props.dispatch(toggleShowAnnouncements()); + } + render () { - const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props; + const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; const pinned = !!columnId; + let announcementsButton = null; + + if (hasAnnouncements) { + announcementsButton = ( + + ); + } + return ( + {hasAnnouncements && showAnnouncements && } + } - alwaysPrepend trackScroll={!pinned} scrollKey={`home_timeline-${columnId}`} onLoadMore={this.handleLoadMore} diff --git a/app/javascript/mastodon/reducers/announcements.js b/app/javascript/mastodon/reducers/announcements.js index aa674e516..1cfb598fb 100644 --- a/app/javascript/mastodon/reducers/announcements.js +++ b/app/javascript/mastodon/reducers/announcements.js @@ -3,18 +3,20 @@ import { ANNOUNCEMENTS_FETCH_SUCCESS, ANNOUNCEMENTS_FETCH_FAIL, ANNOUNCEMENTS_UPDATE, - ANNOUNCEMENTS_DISMISS, ANNOUNCEMENTS_REACTION_UPDATE, ANNOUNCEMENTS_REACTION_ADD_REQUEST, ANNOUNCEMENTS_REACTION_ADD_FAIL, ANNOUNCEMENTS_REACTION_REMOVE_REQUEST, ANNOUNCEMENTS_REACTION_REMOVE_FAIL, + ANNOUNCEMENTS_TOGGLE_SHOW, } from '../actions/announcements'; -import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; +import { Map as ImmutableMap, List as ImmutableList, Set as ImmutableSet, fromJS } from 'immutable'; const initialState = ImmutableMap({ items: ImmutableList(), isLoading: false, + show: true, + unread: ImmutableSet(), }); const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => { @@ -43,21 +45,35 @@ const addReaction = (state, id, name) => updateReaction(state, id, name, x => x. const removeReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', false).update('count', y => y - 1)); +const addUnread = (state, items) => { + if (state.get('show')) return state; + + const newIds = ImmutableSet(items.map(x => x.get('id'))); + const oldIds = ImmutableSet(state.get('items').map(x => x.get('id'))); + return state.update('unread', unread => unread.union(newIds.subtract(oldIds))); +}; + export default function announcementsReducer(state = initialState, action) { switch(action.type) { + case ANNOUNCEMENTS_TOGGLE_SHOW: + return state.withMutations(map => { + if (!map.get('show')) map.set('unread', ImmutableSet()); + map.set('show', !map.get('show')); + }); case ANNOUNCEMENTS_FETCH_REQUEST: return state.set('isLoading', true); case ANNOUNCEMENTS_FETCH_SUCCESS: return state.withMutations(map => { - map.set('items', fromJS(action.announcements)); + const items = fromJS(action.announcements); + map.set('unread', ImmutableSet()); + addUnread(map, items); + map.set('items', items); map.set('isLoading', false); }); case ANNOUNCEMENTS_FETCH_FAIL: return state.set('isLoading', false); case ANNOUNCEMENTS_UPDATE: - return state.update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at'))); - case ANNOUNCEMENTS_DISMISS: - return state.update('items', list => list.filterNot(announcement => announcement.get('id') === action.id)); + return addUnread(state, [fromJS(action.announcement)]).update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at'))); case ANNOUNCEMENTS_REACTION_UPDATE: return updateReactionCount(state, action.reaction); case ANNOUNCEMENTS_REACTION_ADD_REQUEST: diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 1e1000ff3..e4fafc091 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6631,7 +6631,7 @@ noscript { } .announcements { - background: lighten($ui-base-color, 4%); + background: lighten($ui-base-color, 8%); border-top: 1px solid $ui-base-color; font-size: 13px; display: flex; @@ -6672,12 +6672,6 @@ noscript { font-weight: 500; margin-bottom: 10px; } - - &__dismiss-icon { - position: absolute; - top: 12px; - right: 12px; - } } &__pagination { From c06d2ff43718af5940987e219379094f1a2de180 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 25 Jan 2020 18:19:24 +0100 Subject: [PATCH 181/207] Fix spurious error and incorrect state change when adding a reaction twice (#12957) * Fix spurious error and incorrect state change when adding a reaction twice * Remove superfluous top border for announcements box --- .../mastodon/actions/announcements.js | 21 ++++++++++++++++--- .../styles/mastodon/components.scss | 1 - 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/actions/announcements.js b/app/javascript/mastodon/actions/announcements.js index 64bf5ef91..53b19a6fd 100644 --- a/app/javascript/mastodon/actions/announcements.js +++ b/app/javascript/mastodon/actions/announcements.js @@ -56,12 +56,27 @@ export const updateAnnouncements = announcement => ({ }); export const addReaction = (announcementId, name) => (dispatch, getState) => { - dispatch(addReactionRequest(announcementId, name)); + const announcement = getState().getIn(['announcements', 'items']).find(x => x.get('id') === announcementId); + + let alreadyAdded = false; + + if (announcement) { + const reaction = announcement.get('reactions').find(x => x.get('name') === name); + if (reaction && reaction.get('me')) { + alreadyAdded = true; + } + } + + if (!alreadyAdded) { + dispatch(addReactionRequest(announcementId, name, alreadyAdded)); + } api(getState).put(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => { - dispatch(addReactionSuccess(announcementId, name)); + dispatch(addReactionSuccess(announcementId, name, alreadyAdded)); }).catch(err => { - dispatch(addReactionFail(announcementId, name, err)); + if (!alreadyAdded) { + dispatch(addReactionFail(announcementId, name, err)); + } }); }; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index e4fafc091..6946971cd 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6632,7 +6632,6 @@ noscript { .announcements { background: lighten($ui-base-color, 8%); - border-top: 1px solid $ui-base-color; font-size: 13px; display: flex; align-items: flex-end; From 90b13ffd009a431dbe98c37bc92ee59a6f0535f2 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sat, 25 Jan 2020 19:40:36 +0100 Subject: [PATCH 182/207] =?UTF-8?q?Fix=20=E2=80=9Cnew=20items=20glow?= =?UTF-8?q?=E2=80=9D=20being=20displayed=20above=20settings=20and=20announ?= =?UTF-8?q?cements=20(#12958)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mastodon/components/column_header.js | 5 ++++- .../mastodon/features/home_timeline/index.js | 3 +-- app/javascript/styles/mastodon/components.scss | 14 +++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.js index 0038995c8..ea82f9ef9 100644 --- a/app/javascript/mastodon/components/column_header.js +++ b/app/javascript/mastodon/components/column_header.js @@ -33,6 +33,7 @@ class ColumnHeader extends React.PureComponent { onPin: PropTypes.func, onMove: PropTypes.func, onClick: PropTypes.func, + appendContent: PropTypes.node, }; state = { @@ -81,7 +82,7 @@ class ColumnHeader extends React.PureComponent { } render () { - const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder } = this.props; + const { title, icon, active, children, pinned, multiColumn, extraButton, showBackButton, intl: { formatMessage }, placeholder, appendContent } = this.props; const { collapsed, animating } = this.state; const wrapperClassName = classNames('column-header__wrapper', { @@ -172,6 +173,8 @@ class ColumnHeader extends React.PureComponent { {(!collapsed || animating) && collapsedContent}
+ + {appendContent} ); diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index c7de8c9cb..2bad22bc1 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -143,12 +143,11 @@ class HomeTimeline extends React.PureComponent { pinned={pinned} multiColumn={multiColumn} extraButton={announcementsButton} + appendContent={hasAnnouncements && showAnnouncements && } > - {hasAnnouncements && showAnnouncements && } - Date: Sat, 25 Jan 2020 22:59:00 +0100 Subject: [PATCH 183/207] Fix status overflowing in report dialog (#12959) Fixes #12942 --- app/javascript/styles/mastodon/components.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 7edd0ba14..fe111db96 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1086,6 +1086,7 @@ .status-check-box__status { margin: 10px 0 10px 10px; flex: 1; + overflow: hidden; .media-gallery { max-width: 250px; From 408b3e2b9328f54d471deba346a182f7c8856676 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire <42316180+BoFFire@users.noreply.github.com> Date: Sun, 26 Jan 2020 14:42:35 +0100 Subject: [PATCH 184/207] Add kabyle language to Mastodon (#12962) * Add kabyle language to settings_helper * Adding kabyle language to application.rb --- app/helpers/settings_helper.rb | 1 + config/application.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 10aaf3aca..825aa974d 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -36,6 +36,7 @@ module SettingsHelper it: 'Italiano', ja: '日本語', ka: 'ქართული', + kab: 'Taqbaylit', kk: 'Қазақша', kn: 'ಕನ್ನಡ', ko: '한국어', diff --git a/config/application.rb b/config/application.rb index bf25fa0d9..1baa166ce 100644 --- a/config/application.rb +++ b/config/application.rb @@ -73,6 +73,7 @@ module Mastodon :it, :ja, :ka, + :kab, :kk, :kn, :ko, From b9d74d407673a6dbdc87c3310618b22c85358c85 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 26 Jan 2020 20:07:26 +0100 Subject: [PATCH 185/207] Add streaming API updates for announcements being modified or deleted (#12963) Change `all_day` to be a visual client-side cue only Publish immediately if `scheduled_at` is in the past Add `published_at` and `updated_at` to announcements JSON --- .../admin/announcements_controller.rb | 3 ++ .../mastodon/actions/announcements.js | 14 ++++-- app/javascript/mastodon/actions/streaming.js | 10 +++- .../mastodon/components/animated_number.js | 7 +-- .../components/announcements.js | 12 +++-- .../mastodon/reducers/announcements.js | 49 +++++++++++++++---- app/lib/feed_manager.rb | 4 ++ app/models/announcement.rb | 21 +++----- .../rest/announcement_serializer.rb | 3 +- .../publish_announcement_reaction_worker.rb | 2 +- .../publish_scheduled_announcement_worker.rb | 2 +- app/workers/unpublish_announcement_worker.rb | 14 ++++++ 12 files changed, 100 insertions(+), 41 deletions(-) create mode 100644 app/workers/unpublish_announcement_worker.rb diff --git a/app/controllers/admin/announcements_controller.rb b/app/controllers/admin/announcements_controller.rb index 02198f0b5..212a9f693 100644 --- a/app/controllers/admin/announcements_controller.rb +++ b/app/controllers/admin/announcements_controller.rb @@ -20,6 +20,7 @@ class Admin::AnnouncementsController < Admin::BaseController @announcement = Announcement.new(resource_params) if @announcement.save + PublishScheduledAnnouncementWorker.perform_async(@announcement.id) if @announcement.published? log_action :create, @announcement redirect_to admin_announcements_path else @@ -35,6 +36,7 @@ class Admin::AnnouncementsController < Admin::BaseController authorize :announcement, :update? if @announcement.update(resource_params) + PublishScheduledAnnouncementWorker.perform_async(@announcement.id) if @announcement.published? log_action :update, @announcement redirect_to admin_announcements_path else @@ -45,6 +47,7 @@ class Admin::AnnouncementsController < Admin::BaseController def destroy authorize :announcement, :destroy? @announcement.destroy! + UnpublishAnnouncementWorker.perform_async(@announcement.id) if @announcement.published? log_action :destroy, @announcement redirect_to admin_announcements_path end diff --git a/app/javascript/mastodon/actions/announcements.js b/app/javascript/mastodon/actions/announcements.js index 53b19a6fd..f072a407f 100644 --- a/app/javascript/mastodon/actions/announcements.js +++ b/app/javascript/mastodon/actions/announcements.js @@ -5,6 +5,7 @@ export const ANNOUNCEMENTS_FETCH_REQUEST = 'ANNOUNCEMENTS_FETCH_REQUEST'; export const ANNOUNCEMENTS_FETCH_SUCCESS = 'ANNOUNCEMENTS_FETCH_SUCCESS'; export const ANNOUNCEMENTS_FETCH_FAIL = 'ANNOUNCEMENTS_FETCH_FAIL'; export const ANNOUNCEMENTS_UPDATE = 'ANNOUNCEMENTS_UPDATE'; +export const ANNOUNCEMENTS_DELETE = 'ANNOUNCEMENTS_DELETE'; export const ANNOUNCEMENTS_REACTION_ADD_REQUEST = 'ANNOUNCEMENTS_REACTION_ADD_REQUEST'; export const ANNOUNCEMENTS_REACTION_ADD_SUCCESS = 'ANNOUNCEMENTS_REACTION_ADD_SUCCESS'; @@ -139,8 +140,11 @@ export const updateReaction = reaction => ({ reaction, }); -export function toggleShowAnnouncements() { - return dispatch => { - dispatch({ type: ANNOUNCEMENTS_TOGGLE_SHOW }); - }; -} +export const toggleShowAnnouncements = () => ({ + type: ANNOUNCEMENTS_TOGGLE_SHOW, +}); + +export const deleteAnnouncement = id => ({ + type: ANNOUNCEMENTS_DELETE, + id, +}); diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index ac325f74c..79b08bdda 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -8,7 +8,12 @@ import { } from './timelines'; import { updateNotifications, expandNotifications } from './notifications'; import { updateConversations } from './conversations'; -import { fetchAnnouncements, updateAnnouncements, updateReaction as updateAnnouncementsReaction } from './announcements'; +import { + fetchAnnouncements, + updateAnnouncements, + updateReaction as updateAnnouncementsReaction, + deleteAnnouncement, +} from './announcements'; import { fetchFilters } from './filters'; import { getLocale } from '../locales'; @@ -51,6 +56,9 @@ export function connectTimelineStream (timelineId, path, pollingRefresh = null, case 'announcement.reaction': dispatch(updateAnnouncementsReaction(JSON.parse(data.payload))); break; + case 'announcement.delete': + dispatch(deleteAnnouncement(data.payload)); + break; } }, }; diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.js index 2d359fbc6..3bfe86aa6 100644 --- a/app/javascript/mastodon/components/animated_number.js +++ b/app/javascript/mastodon/components/animated_number.js @@ -27,7 +27,8 @@ export default class AnimatedNumber extends React.PureComponent { } const styles = [{ - key: value, + key: `${value}`, + data: value, style: { y: spring(0, { damping: 35, stiffness: 400 }) }, }]; @@ -35,8 +36,8 @@ export default class AnimatedNumber extends React.PureComponent { {items => ( - {items.map(({ key, style }) => ( - 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}> + {items.map(({ key, data, style }) => ( + 0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}> ))} )} diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.js index 8ff1b0b4e..acaa552aa 100644 --- a/app/javascript/mastodon/features/getting_started/components/announcements.js +++ b/app/javascript/mastodon/features/getting_started/components/announcements.js @@ -367,11 +367,13 @@ class Announcements extends ImmutablePureComponent { ))} -
- - {index + 1} / {announcements.size} - -
+ {announcements.size > 1 && ( +
+ + {index + 1} / {announcements.size} + +
+ )} ); diff --git a/app/javascript/mastodon/reducers/announcements.js b/app/javascript/mastodon/reducers/announcements.js index 1cfb598fb..3215c1c2d 100644 --- a/app/javascript/mastodon/reducers/announcements.js +++ b/app/javascript/mastodon/reducers/announcements.js @@ -9,6 +9,7 @@ import { ANNOUNCEMENTS_REACTION_REMOVE_REQUEST, ANNOUNCEMENTS_REACTION_REMOVE_FAIL, ANNOUNCEMENTS_TOGGLE_SHOW, + ANNOUNCEMENTS_DELETE, } from '../actions/announcements'; import { Map as ImmutableMap, List as ImmutableList, Set as ImmutableSet, fromJS } from 'immutable'; @@ -22,14 +23,10 @@ const initialState = ImmutableMap({ const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => { if (announcement.get('id') === id) { return announcement.update('reactions', reactions => { - if (reactions.find(reaction => reaction.get('name') === name)) { - return reactions.map(reaction => { - if (reaction.get('name') === name) { - return updater(reaction); - } + const idx = reactions.findIndex(reaction => reaction.get('name') === name); - return reaction; - }); + if (idx > -1) { + return reactions.update(idx, reaction => updater(reaction)); } return reactions.push(updater(fromJS({ name, count: 0 }))); @@ -46,13 +43,33 @@ const addReaction = (state, id, name) => updateReaction(state, id, name, x => x. const removeReaction = (state, id, name) => updateReaction(state, id, name, x => x.set('me', false).update('count', y => y - 1)); const addUnread = (state, items) => { - if (state.get('show')) return state; + if (state.get('show')) { + return state; + } const newIds = ImmutableSet(items.map(x => x.get('id'))); const oldIds = ImmutableSet(state.get('items').map(x => x.get('id'))); + return state.update('unread', unread => unread.union(newIds.subtract(oldIds))); }; +const sortAnnouncements = list => list.sortBy(x => x.get('starts_at') || x.get('published_at')); + +const updateAnnouncement = (state, announcement) => { + const idx = state.get('items').findIndex(x => x.get('id') === announcement.get('id')); + + state = addUnread(state, [announcement]); + + if (idx > -1) { + // Deep merge is used because announcements from the streaming API do not contain + // personalized data about which reactions have been selected by the given user, + // and that is information we want to preserve + return state.update('items', list => sortAnnouncements(list.update(idx, x => x.mergeDeep(announcement)))); + } + + return state.update('items', list => sortAnnouncements(list.unshift(announcement))); +}; + export default function announcementsReducer(state = initialState, action) { switch(action.type) { case ANNOUNCEMENTS_TOGGLE_SHOW: @@ -65,15 +82,17 @@ export default function announcementsReducer(state = initialState, action) { case ANNOUNCEMENTS_FETCH_SUCCESS: return state.withMutations(map => { const items = fromJS(action.announcements); + map.set('unread', ImmutableSet()); - addUnread(map, items); map.set('items', items); map.set('isLoading', false); + + addUnread(map, items); }); case ANNOUNCEMENTS_FETCH_FAIL: return state.set('isLoading', false); case ANNOUNCEMENTS_UPDATE: - return addUnread(state, [fromJS(action.announcement)]).update('items', list => list.unshift(fromJS(action.announcement)).sortBy(announcement => announcement.get('starts_at'))); + return updateAnnouncement(state, fromJS(action.announcement)); case ANNOUNCEMENTS_REACTION_UPDATE: return updateReactionCount(state, action.reaction); case ANNOUNCEMENTS_REACTION_ADD_REQUEST: @@ -82,6 +101,16 @@ export default function announcementsReducer(state = initialState, action) { case ANNOUNCEMENTS_REACTION_REMOVE_REQUEST: case ANNOUNCEMENTS_REACTION_ADD_FAIL: return removeReaction(state, action.id, action.name); + case ANNOUNCEMENTS_DELETE: + return state.update('unread', set => set.delete(action.id)).update('items', list => { + const idx = list.findIndex(x => x.get('id') === action.id); + + if (idx > -1) { + return list.delete(idx); + } + + return list; + }); default: return state; } diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 3f167f0d8..13b7aafdf 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -11,6 +11,10 @@ class FeedManager # Must be <= MAX_ITEMS or the tracking sets will grow forever REBLOG_FALLOFF = 40 + def with_active_accounts(&block) + Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each(&block) + end + def key(type, id, subtype = nil) return "feed:#{type}:#{id}" unless subtype diff --git a/app/models/announcement.rb b/app/models/announcement.rb index 4da9f94d6..c5cf08f7c 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -16,8 +16,6 @@ # class Announcement < ApplicationRecord - after_commit :queue_publish, on: :create - scope :unpublished, -> { where(published: false) } scope :published, -> { where(published: true) } scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') } @@ -31,8 +29,11 @@ class Announcement < ApplicationRecord validates :ends_at, presence: true, if: -> { starts_at.present? } before_validation :set_all_day - before_validation :set_starts_at, on: :create - before_validation :set_ends_at, on: :create + before_validation :set_published, on: :create + + def published_at + scheduled_at || created_at + end def time_range? starts_at.present? && ends_at.present? @@ -71,15 +72,7 @@ class Announcement < ApplicationRecord self.all_day = false if starts_at.blank? || ends_at.blank? end - def set_starts_at - self.starts_at = starts_at.change(hour: 0, min: 0, sec: 0) if all_day? && starts_at.present? - end - - def set_ends_at - self.ends_at = ends_at.change(hour: 23, min: 59, sec: 59) if all_day? && ends_at.present? - end - - def queue_publish - PublishScheduledAnnouncementWorker.perform_async(id) if scheduled_at.blank? + def set_published + self.published = true if scheduled_at.blank? || scheduled_at.past? end end diff --git a/app/serializers/rest/announcement_serializer.rb b/app/serializers/rest/announcement_serializer.rb index 924d87b34..ae962aa1d 100644 --- a/app/serializers/rest/announcement_serializer.rb +++ b/app/serializers/rest/announcement_serializer.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true class REST::AnnouncementSerializer < ActiveModel::Serializer - attributes :id, :content, :starts_at, :ends_at, :all_day + attributes :id, :content, :starts_at, :ends_at, :all_day, + :published_at, :updated_at has_many :mentions has_many :tags, serializer: REST::StatusSerializer::TagSerializer diff --git a/app/workers/publish_announcement_reaction_worker.rb b/app/workers/publish_announcement_reaction_worker.rb index e01deb64d..418dc7127 100644 --- a/app/workers/publish_announcement_reaction_worker.rb +++ b/app/workers/publish_announcement_reaction_worker.rb @@ -13,7 +13,7 @@ class PublishAnnouncementReactionWorker payload = InlineRenderer.render(reaction, nil, :reaction).tap { |h| h[:announcement_id] = announcement_id.to_s } payload = Oj.dump(event: :'announcement.reaction', payload: payload) - Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each do |account| + FeedManager.instance.with_active_accounts do |account| redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}") end rescue ActiveRecord::RecordNotFound diff --git a/app/workers/publish_scheduled_announcement_worker.rb b/app/workers/publish_scheduled_announcement_worker.rb index 4b2014e34..6b5898bf5 100644 --- a/app/workers/publish_scheduled_announcement_worker.rb +++ b/app/workers/publish_scheduled_announcement_worker.rb @@ -11,7 +11,7 @@ class PublishScheduledAnnouncementWorker payload = InlineRenderer.render(announcement, nil, :announcement) payload = Oj.dump(event: :announcement, payload: payload) - Account.joins(:user).where('users.current_sign_in_at > ?', User::ACTIVE_DURATION.ago).find_each do |account| + FeedManager.instance.with_active_accounts do |account| redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}") end end diff --git a/app/workers/unpublish_announcement_worker.rb b/app/workers/unpublish_announcement_worker.rb new file mode 100644 index 000000000..e99d70cf8 --- /dev/null +++ b/app/workers/unpublish_announcement_worker.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class UnpublishAnnouncementWorker + include Sidekiq::Worker + include Redisable + + def perform(announcement_id) + payload = Oj.dump(event: :'announcement.delete', payload: announcement_id.to_s) + + FeedManager.instance.with_active_accounts do |account| + redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}") + end + end +end From 2f8c3c17ee26dc21ce94959b0ea18984e7bc5560 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 26 Jan 2020 22:26:50 +0100 Subject: [PATCH 186/207] Fix link colors in announcements (#12965) --- app/javascript/styles/mastodon/components.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index fe111db96..563ac7e5e 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -886,7 +886,7 @@ } a { - color: $highlight-text-color; + color: $secondary-text-color; text-decoration: none; &:hover { @@ -902,6 +902,10 @@ } } } + + &.unhandled-link { + color: lighten($ui-highlight-color, 8%); + } } } From 401f32f9eedf9f41c097ee01c1f6203eae568663 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 26 Jan 2020 22:43:18 +0100 Subject: [PATCH 187/207] Fix expired announcements being re-published (#12964) --- app/models/announcement.rb | 12 ++++++------ app/workers/publish_scheduled_announcement_worker.rb | 3 ++- .../scheduler/scheduled_statuses_scheduler.rb | 2 +- ...200126203551_add_published_at_to_announcements.rb | 5 +++++ db/schema.rb | 3 ++- 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 db/migrate/20200126203551_add_published_at_to_announcements.rb diff --git a/app/models/announcement.rb b/app/models/announcement.rb index c5cf08f7c..670b24f01 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -13,13 +13,14 @@ # ends_at :datetime # created_at :datetime not null # updated_at :datetime not null +# published_at :datetime # class Announcement < ApplicationRecord scope :unpublished, -> { where(published: false) } scope :published, -> { where(published: true) } scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') } - scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.created_at) ASC')) } + scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) } has_many :announcement_mutes, dependent: :destroy has_many :announcement_reactions, dependent: :destroy @@ -31,10 +32,6 @@ class Announcement < ApplicationRecord before_validation :set_all_day before_validation :set_published, on: :create - def published_at - scheduled_at || created_at - end - def time_range? starts_at.present? && ends_at.present? end @@ -73,6 +70,9 @@ class Announcement < ApplicationRecord end def set_published - self.published = true if scheduled_at.blank? || scheduled_at.past? + return unless scheduled_at.blank? || scheduled_at.past? + + self.published = true + self.published_at = Time.now.utc end end diff --git a/app/workers/publish_scheduled_announcement_worker.rb b/app/workers/publish_scheduled_announcement_worker.rb index 6b5898bf5..4fc6bef2f 100644 --- a/app/workers/publish_scheduled_announcement_worker.rb +++ b/app/workers/publish_scheduled_announcement_worker.rb @@ -6,7 +6,8 @@ class PublishScheduledAnnouncementWorker def perform(announcement_id) announcement = Announcement.find(announcement_id) - announcement.update(published: true) + + announcement.update(published: true, published_at: Time.now.utc, scheduled_at: nil) unless announcement.published? payload = InlineRenderer.render(announcement, nil, :announcement) payload = Oj.dump(event: :announcement, payload: payload) diff --git a/app/workers/scheduler/scheduled_statuses_scheduler.rb b/app/workers/scheduler/scheduled_statuses_scheduler.rb index 4262f1d01..9cfe949de 100644 --- a/app/workers/scheduler/scheduled_statuses_scheduler.rb +++ b/app/workers/scheduler/scheduled_statuses_scheduler.rb @@ -34,7 +34,7 @@ class Scheduler::ScheduledStatusesScheduler end def unpublish_expired_announcements! - expired_announcements.in_batches.update_all(published: false) + expired_announcements.in_batches.update_all(published: false, scheduled_at: nil) end def expired_announcements diff --git a/db/migrate/20200126203551_add_published_at_to_announcements.rb b/db/migrate/20200126203551_add_published_at_to_announcements.rb new file mode 100644 index 000000000..d99f95694 --- /dev/null +++ b/db/migrate/20200126203551_add_published_at_to_announcements.rb @@ -0,0 +1,5 @@ +class AddPublishedAtToAnnouncements < ActiveRecord::Migration[5.2] + def change + add_column :announcements, :published_at, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index d3a2c05b3..b09ee0e76 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_01_19_112504) do +ActiveRecord::Schema.define(version: 2020_01_26_203551) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -228,6 +228,7 @@ ActiveRecord::Schema.define(version: 2020_01_19_112504) do t.datetime "ends_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.datetime "published_at" end create_table "backups", force: :cascade do |t| From 42d2a915e4aa31533032e37aaa46354cee2386da Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 26 Jan 2020 23:13:48 +0100 Subject: [PATCH 188/207] Change last_status_at to be a date, not datetime (#12966) * Return last_status_at as date, not datetime * Fix relative timestamp for dates when delay is inferior to 1 day * Also fix public directory * Fix error when last_status_at isn't set --- .../mastodon/components/relative_timestamp.js | 16 +++++++++++----- app/serializers/rest/account_serializer.rb | 4 ++++ app/views/directories/index.html.haml | 2 +- app/views/relationships/_account.html.haml | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/components/relative_timestamp.js b/app/javascript/mastodon/components/relative_timestamp.js index aa4b73cfe..711181dcd 100644 --- a/app/javascript/mastodon/components/relative_timestamp.js +++ b/app/javascript/mastodon/components/relative_timestamp.js @@ -3,6 +3,7 @@ import { injectIntl, defineMessages } from 'react-intl'; import PropTypes from 'prop-types'; const messages = defineMessages({ + today: { id: 'relative_time.today', defaultMessage: 'today' }, just_now: { id: 'relative_time.just_now', defaultMessage: 'now' }, seconds: { id: 'relative_time.seconds', defaultMessage: '{number}s' }, minutes: { id: 'relative_time.minutes', defaultMessage: '{number}m' }, @@ -65,12 +66,14 @@ const getUnitDelay = units => { } }; -export const timeAgoString = (intl, date, now, year) => { +export const timeAgoString = (intl, date, now, year, timeGiven = true) => { const delta = now - date.getTime(); let relativeTime; - if (delta < 10 * SECOND) { + if (delta < DAY && !timeGiven) { + relativeTime = intl.formatMessage(messages.today); + } else if (delta < 10 * SECOND) { relativeTime = intl.formatMessage(messages.just_now); } else if (delta < 7 * DAY) { if (delta < MINUTE) { @@ -91,12 +94,14 @@ export const timeAgoString = (intl, date, now, year) => { return relativeTime; }; -const timeRemainingString = (intl, date, now) => { +const timeRemainingString = (intl, date, now, timeGiven = true) => { const delta = date.getTime() - now; let relativeTime; - if (delta < 10 * SECOND) { + if (delta < DAY && !timeGiven) { + relativeTime = intl.formatMessage(messages.today); + } else if (delta < 10 * SECOND) { relativeTime = intl.formatMessage(messages.moments_remaining); } else if (delta < MINUTE) { relativeTime = intl.formatMessage(messages.seconds_remaining, { number: Math.floor(delta / SECOND) }); @@ -173,8 +178,9 @@ class RelativeTimestamp extends React.Component { render () { const { timestamp, intl, year, futureDate } = this.props; + const timeGiven = timestamp.includes('T'); const date = new Date(timestamp); - const relativeTime = futureDate ? timeRemainingString(intl, date, this.state.now) : timeAgoString(intl, date, this.state.now, year); + const relativeTime = futureDate ? timeRemainingString(intl, date, this.state.now, timeGiven) : timeAgoString(intl, date, this.state.now, year, timeGiven); return (