From 620e875b558002186d45ddb2663721c20d6aaf4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:35:54 +0900 Subject: [PATCH 001/176] Bump faker from 3.0.0 to 3.1.0 (#22762) Bumps [faker](https://github.com/faker-ruby/faker) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: faker dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index bfbb14f08b..9bf654fd5f 100644 --- a/Gemfile +++ b/Gemfile @@ -120,7 +120,7 @@ end group :test do gem 'capybara', '~> 3.38' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 3.0' + gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' gem 'microformats', '~> 4.4' gem 'rack-test', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 00e8dcfd92..8dcbd9d9c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -228,7 +228,7 @@ GEM tzinfo excon (0.95.0) fabrication (2.30.0) - faker (3.0.0) + faker (3.1.0) i18n (>= 1.8.11, < 2) faraday (1.9.3) faraday-em_http (~> 1.0) @@ -782,7 +782,7 @@ DEPENDENCIES dotenv-rails (~> 2.8) ed25519 (~> 1.3) fabrication (~> 2.30) - faker (~> 3.0) + faker (~> 3.1) fast_blank (~> 1.0) fastimage fog-core (<= 2.4.0) From eb28b41922ae682b4aa84e3dae6239119880a87c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:37:19 +0900 Subject: [PATCH 002/176] Bump simplecov from 0.21.2 to 0.22.0 (#22773) Bumps [simplecov](https://github.com/simplecov-ruby/simplecov) from 0.21.2 to 0.22.0. - [Release notes](https://github.com/simplecov-ruby/simplecov/releases) - [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md) - [Commits](https://github.com/simplecov-ruby/simplecov/compare/v0.21.2...v0.22.0) --- updated-dependencies: - dependency-name: simplecov dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 9bf654fd5f..13dd234375 100644 --- a/Gemfile +++ b/Gemfile @@ -127,7 +127,7 @@ group :test do gem 'rails-controller-testing', '~> 1.0' gem 'rspec_junit_formatter', '~> 0.6' gem 'rspec-sidekiq', '~> 3.1' - gem 'simplecov', '~> 0.21', require: false + gem 'simplecov', '~> 0.22', require: false gem 'webmock', '~> 3.18' end diff --git a/Gemfile.lock b/Gemfile.lock index 8dcbd9d9c1..6ee587272e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,7 +203,7 @@ GEM diff-lcs (1.5.0) discard (1.2.1) activerecord (>= 4.2, < 8) - docile (1.3.4) + docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) doorkeeper (5.6.2) @@ -646,12 +646,12 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - simplecov (0.21.2) + simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) - simplecov_json_formatter (0.1.2) + simplecov_json_formatter (0.1.4) smart_properties (1.17.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) @@ -862,7 +862,7 @@ DEPENDENCIES sidekiq-unique-jobs (~> 7.1) simple-navigation (~> 4.4) simple_form (~> 5.1) - simplecov (~> 0.21) + simplecov (~> 0.22) sprockets (~> 3.7.2) sprockets-rails (~> 3.4) stackprof From 8ce011cdcbac174592584b6841605743568f68d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:37:36 +0900 Subject: [PATCH 003/176] Bump sass from 1.57.0 to 1.57.1 (#22770) Bumps [sass](https://github.com/sass/dart-sass) from 1.57.0 to 1.57.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.57.0...1.57.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ba39204611..6068bd7263 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", "rimraf": "^3.0.2", - "sass": "^1.57.0", + "sass": "^1.57.1", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", "stringz": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index 5143a29c52..6ab10a7eb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9593,10 +9593,10 @@ sass-loader@^10.2.0: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.57.0: - version "1.57.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.0.tgz#64c4144ed4e1c0ccb96dc18aef2c424cdbc0c12b" - integrity sha512-IZNEJDTK1cF5B1cGA593TPAV/1S0ysUDxq9XHjX/+SMy0QfUny+nfUsq5ZP7wWSl4eEf7wDJcEZ8ABYFmh3m/w== +sass@^1.57.1: + version "1.57.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From fae29d1eaa972c813bf0b5b6a6e7476e90ace709 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:38:26 +0900 Subject: [PATCH 004/176] Bump immutable from 4.1.0 to 4.2.1 (#22774) Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.1.0 to 4.2.1. - [Release notes](https://github.com/immutable-js/immutable-js/releases) - [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/immutable-js/immutable-js/compare/v4.1.0...v4.2.1) --- updated-dependencies: - dependency-name: immutable dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6068bd7263..4b63c8e985 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "glob": "^8.0.3", "history": "^4.10.1", "http-link-header": "^1.1.0", - "immutable": "^4.1.0", + "immutable": "^4.2.1", "imports-loader": "^1.2.0", "intersection-observer": "^0.12.2", "intl": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 6ab10a7eb4..2dc5d08bbf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5687,10 +5687,10 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immutable@^4.0.0, immutable@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" - integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== +immutable@^4.0.0, immutable@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" + integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== import-cwd@^2.0.0: version "2.1.0" From f1726a8a519cd7bdedccca3596eb15c4b5e58b1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:38:59 +0900 Subject: [PATCH 005/176] Bump @babel/core from 7.20.5 to 7.20.7 (#22768) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 122 +++++++++++++++++++++++++++------------------------ 2 files changed, 65 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index 4b63c8e985..fac8b05df8 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.20.5", + "@babel/core": "^7.20.7", "@babel/plugin-proposal-decorators": "^7.20.5", "@babel/plugin-transform-react-inline-elements": "^7.18.6", "@babel/plugin-transform-runtime": "^7.19.6", diff --git a/yarn.lock b/yarn.lock index 2dc5d08bbf..5231463a25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,26 +37,31 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.5", "@babel/core@^7.7.2": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" - integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== +"@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.7", "@babel/core@^7.7.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" + integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.5" - "@babel/parser" "^7.20.5" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.7" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -72,12 +77,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.20.5", "@babel/generator@^7.7.2": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" - integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== +"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@babel/types" "^7.20.5" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -104,14 +109,15 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.20.0" + "@babel/compat-data" "^7.20.5" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" + lru-cache "^5.1.1" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5": @@ -188,19 +194,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -281,14 +287,14 @@ "@babel/traverse" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/helpers@^7.20.5": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" - integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" @@ -299,10 +305,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" - integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -1029,35 +1035,35 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.3.3": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" - integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" + integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.5" + "@babel/generator" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.5" - "@babel/types" "^7.20.5" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" - integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" From bd730cee2d5e5aa794511b1d24415473fa9c2d53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:39:08 +0900 Subject: [PATCH 006/176] Bump @babel/core from 7.20.5 to 7.20.7 (#22768) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 178af9b9c73288f97f3d4a21a80f7d4564773983 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:39:27 +0900 Subject: [PATCH 007/176] Bump @babel/runtime from 7.20.6 to 7.20.7 (#22767) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.6 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fac8b05df8..08a668fa39 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/runtime": "^7.20.6", + "@babel/runtime": "^7.20.7", "@gamestdio/websocket": "^0.3.2", "@github/webauthn-json": "^0.5.7", "@rails/ujs": "^6.1.7", diff --git a/yarn.lock b/yarn.lock index 5231463a25..9d4075485d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1028,10 +1028,10 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== dependencies: regenerator-runtime "^0.13.11" From 29155dc9fdbd6c99e682da8931cbc3535ff080a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:51:23 +0900 Subject: [PATCH 008/176] Bump @babel/plugin-proposal-decorators from 7.20.5 to 7.20.7 (#22764) Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-plugin-proposal-decorators) --- updated-dependencies: - dependency-name: "@babel/plugin-proposal-decorators" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 51 ++++++++++++++++++++++++++------------------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 08a668fa39..b60c0b26b9 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "private": true, "dependencies": { "@babel/core": "^7.20.7", - "@babel/plugin-proposal-decorators": "^7.20.5", + "@babel/plugin-proposal-decorators": "^7.20.7", "@babel/plugin-transform-react-inline-elements": "^7.18.6", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.20.2", diff --git a/yarn.lock b/yarn.lock index 9d4075485d..997d36db54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -120,17 +120,17 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" - integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz#d0e1f8d7e4ed5dac0389364d9c0c191d948ade6f" + integrity sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": @@ -180,12 +180,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.7" "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": version "7.18.6" @@ -230,16 +230,17 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" "@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": version "7.20.2" @@ -353,14 +354,14 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz#28ba1a0e5044664a512967a19407d7fc26925394" - integrity sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q== +"@babel/plugin-proposal-decorators@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz#05d37453c2ce818f3e47bbeda9468c8de947eecc" + integrity sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-create-class-features-plugin" "^7.20.7" "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/plugin-syntax-decorators" "^7.19.0" @@ -1044,7 +1045,7 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": version "7.20.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== From 6deab78c5c8e5d0f3a59227c2f4d1cb3e52c2ed0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:51:39 +0900 Subject: [PATCH 009/176] Bump rack from 2.2.4 to 2.2.5 (#22777) Bumps [rack](https://github.com/rack/rack) from 2.2.4 to 2.2.5. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/2.2.4...v2.2.5) --- updated-dependencies: - dependency-name: rack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 13dd234375..80426aac10 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ gem 'puma', '~> 5.6' gem 'rails', '~> 6.1.7' gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 1.2' -gem 'rack', '~> 2.2.4' +gem 'rack', '~> 2.2.5' gem 'hamlit-rails', '~> 0.2' gem 'pg', '~> 1.4' diff --git a/Gemfile.lock b/Gemfile.lock index 6ee587272e..b80fb455db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -490,7 +490,7 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.1) - rack (2.2.4) + rack (2.2.5) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-cors (1.1.1) @@ -832,7 +832,7 @@ DEPENDENCIES public_suffix (~> 5.0) puma (~> 5.6) pundit (~> 2.3) - rack (~> 2.2.4) + rack (~> 2.2.5) rack-attack (~> 6.6) rack-cors (~> 1.1) rack-test (~> 2.0) From 536d55c6ad7f496cc54c66ca9a7f91fcea020f84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 09:52:15 +0900 Subject: [PATCH 010/176] Bump redis-namespace from 1.9.0 to 1.10.0 (#22765) Bumps [redis-namespace](https://github.com/resque/redis-namespace) from 1.9.0 to 1.10.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.9...v1.10.0) --- updated-dependencies: - dependency-name: redis-namespace dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 80426aac10..9608a67c02 100644 --- a/Gemfile +++ b/Gemfile @@ -51,7 +51,7 @@ gem 'ed25519', '~> 1.3' gem 'fast_blank', '~> 1.0' gem 'fastimage' gem 'hiredis', '~> 0.6' -gem 'redis-namespace', '~> 1.9' +gem 'redis-namespace', '~> 1.10' gem 'htmlentities', '~> 4.3' gem 'http', '~> 5.1' gem 'http_accept_language', '~> 2.1' diff --git a/Gemfile.lock b/Gemfile.lock index b80fb455db..3a3dd25773 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -548,7 +548,7 @@ GEM rdf (~> 3.2) redcarpet (3.5.1) redis (4.5.1) - redis-namespace (1.9.0) + redis-namespace (1.10.0) redis (>= 4) redlock (1.3.2) redis (>= 3.0.0, < 6.0) @@ -843,7 +843,7 @@ DEPENDENCIES rdf-normalize (~> 0.5) redcarpet (~> 3.5) redis (~> 4.5) - redis-namespace (~> 1.9) + redis-namespace (~> 1.10) rexml (~> 3.2) rqrcode (~> 2.1) rspec-rails (~> 5.1) From ef4d29c8791086b11f6e36aa121ff5c9b5fa0103 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Wed, 28 Dec 2022 01:21:10 -0800 Subject: [PATCH 011/176] Replace flex styling with sensible layout rules (#22803) The old styling would cause multiple admin header buttons in a flex container to overflow the page on mobile. This new styling uses `flex-flow: wrap` along with a gap, which gets rid of the awkward `:not(:first-child)` pseudoselector and makes multiple buttons in a row flow nicely. --- app/javascript/styles/mastodon/admin.scss | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index ba64fde09b..4a73a7d23b 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -254,10 +254,8 @@ $content-width: 840px; &__actions { display: inline-flex; - - & > :not(:first-child) { - margin-left: 5px; - } + flex-flow: wrap; + gap: 5px; } h2 small { From 498cde7dc6bc45c8ffbfa65efe86a8c9993a07c4 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 30 Dec 2022 18:31:26 +0100 Subject: [PATCH 012/176] New Crowdin updates (#2048) * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Esperanto) [ci skip] --- .../flavours/glitch/locales/eo.json | 48 ++++- .../flavours/glitch/locales/pt-BR.json | 196 +++++++++++++++++- config/locales-glitch/pt-BR.yml | 41 ++++ config/locales-glitch/simple_form.pt-BR.yml | 26 +++ 4 files changed, 309 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/locales/eo.json b/app/javascript/flavours/glitch/locales/eo.json index 4d243f94c2..87fe6c657f 100644 --- a/app/javascript/flavours/glitch/locales/eo.json +++ b/app/javascript/flavours/glitch/locales/eo.json @@ -1,6 +1,52 @@ { + "account.add_account_note": "Aldoni noton por @{name}", + "account_note.cancel": "Nuligi", + "account_note.edit": "Redakti", + "account_note.save": "Konservi", + "column.reblogged_by": "Diskonigita de", + "column.subheading": "Diversaj agordoj", + "column_header.profile": "Profilo", + "column_subheading.lists": "Listoj", + "compose.attach": "Aldoni…", + "compose.attach.doodle": "Desegni ion", + "compose.attach.upload": "Alŝuti dosieron", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "confirmations.unfilter.author": "Aŭtoro", + "confirmations.unfilter.confirm": "Montri", + "confirmations.unfilter.edit_filter": "Redakti filtrilon", + "navigation_bar.keyboard_shortcuts": "Fulmoklavoj", + "notification_purge.btn_all": "Selekti ĉiujn", + "notification_purge.btn_apply": "Forigi selektajn", + "notification_purge.btn_invert": "Inverti selekton", + "notification_purge.btn_none": "Elekti neniun", + "notifications.marked_clear": "Forigi selektajn sciigojn", + "onboarding.next": "Sekva", "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", + "onboarding.page_six.almost_done": "Preskaŭ finita…", + "onboarding.page_six.apps_available": "Estas {apps} disponeblaj por iOS, Android kaj aliaj sistemoj.", "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.various_app": "poŝtelefonaj aplikaĵoj", + "settings.auto_collapse_all": "Ĉiuj", + "settings.auto_collapse_lengthy": "Longaj afiŝoj", + "settings.auto_collapse_media": "Afiŝoj kun aŭdovidaĵoj", + "settings.auto_collapse_notifications": "Sciigoj", + "settings.auto_collapse_reblogs": "Diskonigoj", + "settings.auto_collapse_replies": "Respondoj", + "settings.close": "Fermi", "settings.content_warnings": "Content warnings", - "settings.preferences": "Preferences" + "settings.content_warnings.regexp": "Regula esprimo", + "settings.preferences": "Preferences", + "settings.shared_settings_link": "preferoj de uzanto", + "settings.side_arm": "Duaranga butono por afiŝi:", + "settings.side_arm.none": "Neniu", + "settings.status_icons": "Ikonoj sur la afiŝoj", + "settings.status_icons_language": "Indikilo de lingvo", + "settings.status_icons_media": "Indikilo de aŭdovidaĵojn kaj balotenketo", + "settings.status_icons_reply": "Indikilo de respondoj", + "settings.status_icons_visibility": "Indikilo de privateco de afiŝo", + "web_app_crash.change_your_settings": "Ŝanĝi viajn {settings}", + "web_app_crash.reload": "Reŝarĝi", + "web_app_crash.reload_page": "{reload} la nunan paĝon", + "web_app_crash.settings": "agordojn" } diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json index 4d243f94c2..0bc0d2beae 100644 --- a/app/javascript/flavours/glitch/locales/pt-BR.json +++ b/app/javascript/flavours/glitch/locales/pt-BR.json @@ -1,6 +1,200 @@ { + "about.fork_disclaimer": "O Glitch-soc é um software gratuito de código aberto bifurcado a partir do Mastodon.", + "account.add_account_note": "Adicionar nota para @{name}", + "account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de forma incompleta.", + "account.follows": "Seguidores", + "account.joined": "Entrou em {date}", + "account.suspended_disclaimer_full": "Este usuário foi suspenso por um moderador.", + "account.view_full_profile": "Ver o perfil completo", + "account_note.cancel": "Cancelar", + "account_note.edit": "Editar", + "account_note.glitch_placeholder": "Nenhum comentário fornecido", + "account_note.save": "Salvar", + "advanced_options.icon_title": "Opções avançadas", + "advanced_options.local-only.long": "Não publicar em outras instâncias", + "advanced_options.local-only.short": "Apenas localmente", + "advanced_options.local-only.tooltip": "Este post é somente local", + "advanced_options.threaded_mode.long": "Abrir automaticamente uma resposta ao postar", + "advanced_options.threaded_mode.short": "Modo de discussão", + "advanced_options.threaded_mode.tooltip": "Modo de discussão ativado", + "boost_modal.missing_description": "Este toot contém algumas mídias sem descrição", + "column.favourited_by": "Favoritado por", + "column.heading": "Diversos", + "column.reblogged_by": "Inpulsionado por", + "column.subheading": "Opções diversas", + "column_header.profile": "Perfil", + "column_subheading.lists": "Listas", + "column_subheading.navigation": "Navegação", + "community.column_settings.allow_local_only": "Mostrar os toots apenas locais", + "compose.attach": "Anexar...", + "compose.attach.doodle": "Desenhe algo", + "compose.attach.upload": "Enviar um arquivo", + "compose.content-type.html": "HTML", + "compose.content-type.markdown": "Markdown", + "compose.content-type.plain": "Texto sem formatação", + "compose_form.poll.multiple_choices": "Permitir múltipla escolha", + "compose_form.poll.single_choice": "Permitir uma escolha", + "compose_form.spoiler": "Ocultar texto atrás do aviso", + "confirmation_modal.do_not_ask_again": "Não pedir confirmação novamente", + "confirmations.deprecated_settings.confirm": "Usar preferências do Mastodon", + "confirmations.deprecated_settings.message": "Alguns dos {app_settings} específicos do dispositivo que você está usando foram substituídos por Mastodon {preferences} e serão substituídos:", + "confirmations.missing_media_description.confirm": "Enviar mesmo assim", + "confirmations.missing_media_description.edit": "Editar mídia", + "confirmations.missing_media_description.message": "Pelo menos um anexo de mídia não tem uma descrição. Considere descrever todos os anexos de mídia para deficientes visuais antes de enviar seu toot.", + "confirmations.unfilter.author": "Autor", + "confirmations.unfilter.confirm": "Exibir", + "confirmations.unfilter.edit_filter": "Editar filtro", + "confirmations.unfilter.filters": "Correspondência de {count, plural, one {filtro} other {filtros}}", + "content-type.change": "Tipo de conteúdo", + "direct.group_by_conversations": "Agrupar por conversa", + "endorsed_accounts_editor.endorsed_accounts": "Contas em destaque", + "favourite_modal.combo": "Você pode pressionar {combo} para pular isso da próxima vez", + "getting_started.onboarding": "Mostre-me ao redor", + "home.column_settings.advanced": "Avançado", + "home.column_settings.filter_regex": "Filtrar com uma expressão regular", + "home.column_settings.show_direct": "Mostrar DMs", + "home.settings": "Configurações da coluna", + "keyboard_shortcuts.bookmark": "para marcar", + "keyboard_shortcuts.secondary_toot": "para enviar toot usando a configuração de privacidade secundária", + "keyboard_shortcuts.toggle_collapse": "para recolher/mostrar toots", + "layout.auto": "Automático", + "layout.desktop": "Área de trabalho", + "layout.hint.auto": "Escolher automaticamente o layout baseado na configuração \"Habilitar interface web avançada\" e o tamanho da tela.", + "layout.hint.desktop": "Use o layout de várias colunas independentemente da configuração \"Habilitar interface web avançada\" ou do tamanho da tela.", + "layout.hint.single": "Use o layout de uma coluna independentemente da configuração \"Habilitar interface web avançada\" ou do tamanho da tela.", + "layout.single": "Celular", + "media_gallery.sensitive": "Sensível", + "moved_to_warning": "Esta conta foi como movida para {moved_to_link} e, portanto, pode não aceitar novos seguidores.", + "navigation_bar.app_settings": "Configurações do aplicativo", + "navigation_bar.featured_users": "Usuários em destaque", + "navigation_bar.info": "Informação estendida", + "navigation_bar.keyboard_shortcuts": "Atalhos de teclado", + "navigation_bar.misc": "Diversos", + "notification.markForDeletion": "Marcar para exclusão", + "notification_purge.btn_all": "Selecionar\ntudo", + "notification_purge.btn_apply": "Limpar\nselecionados", + "notification_purge.btn_invert": "Inverter\nseleção", + "notification_purge.btn_none": "Selecionar\nnenhum", + "notification_purge.start": "Entrar no modo de limpeza de notificação", + "notifications.marked_clear": "Limpar as notificações selecionadas", + "notifications.marked_clear_confirmation": "Tem certeza que deseja limpar todas as notificações selecionadas permanentemente?", + "onboarding.done": "Feito", + "onboarding.next": "Próximo", + "onboarding.page_five.public_timelines": "A linha do tempo local mostra publicações públicas de todos em {domain}. A linha do tempo federada mostra publicações públicas de todos que as pessoas seguem em {domain}. Estas são as linhas do tempo públicas, uma ótima maneira de descobrir novas pessoas.", + "onboarding.page_four.home": "A linha do tempo da casa mostra publicações de pessoas que você segue.", + "onboarding.page_four.notifications": "A coluna de notificações mostra quando alguém interage com você.", "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", + "onboarding.page_one.handle": "Você está em {domain}, então o seu identificador completo é {handle}", + "onboarding.page_one.welcome": "Bem-vindo ao {domain}!", + "onboarding.page_six.admin": "O administrador da sua instância é {admin}.", + "onboarding.page_six.almost_done": "Quase pronto...", + "onboarding.page_six.appetoot": "Bom Appetoot!", + "onboarding.page_six.apps_available": "Há {apps} disponíveis para iOS, Android e outras plataformas.", "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "diretrizes da comunidade", + "onboarding.page_six.read_guidelines": "Por favor, leia {domain} {guidelines}!", + "onboarding.page_six.various_app": "aplicativos móveis", + "onboarding.page_three.profile": "Edite seu perfil para alterar seu avatar, bio e nome de exibição. Lá você também encontrará outras preferências.", + "onboarding.page_three.search": "Use a barra de busca para encontrar pessoas e procure hashtags, tais como {illustration} e {introductions}. Para procurar uma pessoa que não esteja neste caso, use o identificador completo.", + "onboarding.page_two.compose": "Escreva as postagens a partir da coluna de composição. Você pode enviar imagens, alterar as configurações de privacidade e adicionar avisos de conteúdo com os ícones abaixo.", + "onboarding.skip": "Pular", + "settings.always_show_spoilers_field": "Sempre ativar o campo Aviso de Conteúdo", + "settings.auto_collapse": "Colapso automático", + "settings.auto_collapse_all": "Tudo", + "settings.auto_collapse_lengthy": "Toots longos", + "settings.auto_collapse_media": "Toots com mídia", + "settings.auto_collapse_notifications": "Notificações", + "settings.auto_collapse_reblogs": "Impulsos", + "settings.auto_collapse_replies": "Respostas", + "settings.close": "Fechar", + "settings.collapsed_statuses": "Toots recolhidos", + "settings.compose_box_opts": "Caixa de composição", + "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmação antes de sobrescrever a mensagem que está sendo composta", + "settings.confirm_boost_missing_media_description": "Mostrar diálogo antes de inpulsionar os toots sem descrições de mídia", + "settings.confirm_missing_media_description": "Mostrar diálogo antes de enviar toots sem descrições de mídia", "settings.content_warnings": "Content warnings", - "settings.preferences": "Preferences" + "settings.content_warnings.regexp": "Expressão regular", + "settings.content_warnings_filter": "Avisos de conteúdo para não revelar automaticamente:", + "settings.content_warnings_media_outside": "Exibir anexos de mídia fora avisos de conteúdo", + "settings.content_warnings_media_outside_hint": "Reproduzir o comportamento do Mastodonte, fazendo com que a alternância do Aviso de Conteúdo não afete os anexos de mídia", + "settings.content_warnings_shared_state": "Mostrar/ocultar o conteúdo de todas as cópias de uma só vez", + "settings.content_warnings_shared_state_hint": "Reproduzir o comportamento do Mastodonte fazendo com que o botão de Aviso de Conteúdo afete todas as cópias de um post de uma só vez. Isto evitará o colapso automático de qualquer cópia de um toon com Aviso de Conteúdo revelado", + "settings.content_warnings_unfold_opts": "Opções de auto-revelar", + "settings.deprecated_setting": "Essa configuração agora é controlada pelo {settings_page_link} do Mastodon", + "settings.enable_collapsed": "Habilitar toots recolhidos", + "settings.enable_collapsed_hint": "Posts recolhidos têm partes dos seus conteúdos ocultos para ocupar menos espaço na tela. Isto é diferente do recurso 'Aviso de Conteúdo'", + "settings.enable_content_warnings_auto_unfold": "Revelar automaticamente os avisos de conteúdo", + "settings.general": "Geral", + "settings.hicolor_privacy_icons": "Ícones de privacidade com cores de alto contraste", + "settings.hicolor_privacy_icons.hint": "Exibir ícones de privacidade em cores brilhantes e facilmente distinguíveis", + "settings.image_backgrounds": "Fundos de imagem", + "settings.image_backgrounds_media": "Pré-visualização da mídia de toots colapsados", + "settings.image_backgrounds_media_hint": "Se o post tiver algum anexo de mídia, use o primeiro em um plano de fundo", + "settings.image_backgrounds_users": "Dar a toots recolhidos uma imagem de fundo", + "settings.inline_preview_cards": "Cartões de pré-visualização em linha para links externos", + "settings.layout": "Layout:", + "settings.layout_opts": "Opções de layout", + "settings.media": "Mídia", + "settings.media_fullwidth": "Pré-visualização da mídia em largura total", + "settings.media_letterbox": "Caixa de mensagens", + "settings.media_letterbox_hint": "Escala para baixo para encher os recipientes de imagem em vez de esticá-los e cortá-los", + "settings.media_reveal_behind_cw": "Revelar mídia sensível por trás de um Aviso de Conteúdo por padrão", + "settings.notifications.favicon_badge": "Notificações não lidas como emblema do favicon", + "settings.notifications.favicon_badge.hint": "Adicionar um emblema para notificações não lidas ao favicon", + "settings.notifications.tab_badge": "Emblema de notificações não lidas", + "settings.notifications.tab_badge.hint": "Exibir um emblema para notificações não lidas nos ícones de coluna quando a coluna de notificações não estiver aberta", + "settings.notifications_opts": "Opções de notificações", + "settings.pop_in_left": "Esquerda", + "settings.pop_in_player": "Ativar player pop-in", + "settings.pop_in_position": "Posição do player:", + "settings.pop_in_right": "Direita", + "settings.preferences": "Preferences", + "settings.prepend_cw_re": "Preparar \"re: \" para avisos de conteúdo quando responder", + "settings.preselect_on_reply": "Nome de usuário pré-selecionado na resposta", + "settings.preselect_on_reply_hint": "Ao responder a uma conversa com vários participantes, pré-selecionar nomes de usuários após o primeiro", + "settings.rewrite_mentions": "Reescrever as menções nos status exibidos", + "settings.rewrite_mentions_acct": "Reescrever com nome de usuário e domínio (quando a conta for remota)", + "settings.rewrite_mentions_no": "Não reescrever menções", + "settings.rewrite_mentions_username": "Reescreva com nome de usuário", + "settings.shared_settings_link": "preferências do usuário", + "settings.show_action_bar": "Mostrar botões de ação em toots recolhidos", + "settings.show_content_type_choice": "Exibir opção do tipo de conteúdo ao autorar toots", + "settings.show_reply_counter": "Exibir uma estimativa da contagem de respostas", + "settings.side_arm": "Botão de toot secundário:", + "settings.side_arm.none": "Nenhum", + "settings.side_arm_reply_mode": "Ao responder a um toot, o botão secundário de toot deve:", + "settings.side_arm_reply_mode.copy": "Copiar configuração de privacidade do toot sendo respondido a", + "settings.side_arm_reply_mode.keep": "Mantenha sua privacidade definida", + "settings.side_arm_reply_mode.restrict": "Restringir configuração de privacidade ao toot sendo respondido a", + "settings.status_icons": "Ícones de toot", + "settings.status_icons_language": "Indicador de idioma", + "settings.status_icons_local_only": "Indicador somente local", + "settings.status_icons_media": "Indicadores de mídia e enquete", + "settings.status_icons_reply": "Indicador de resposta", + "settings.status_icons_visibility": "Indicador de privacidade", + "settings.swipe_to_change_columns": "Permitir deslizar para alterar colunas (apenas celular)", + "settings.tag_misleading_links": "Marcar links enganosos", + "settings.tag_misleading_links.hint": "Acrescentar uma indicação visual com o link hospedeiro alvo a cada link que não o mencione explicitamente", + "settings.wide_view": "Visualização ampla (apenas no Modo desktop)", + "settings.wide_view_hint": "Estica as colunas para preencher melhor o espaço disponível.", + "status.collapse": "Recolher", + "status.has_audio": "Possui um arquivo de áudio anexado", + "status.has_pictures": "Possui uma imagem anexada", + "status.has_preview_card": "Possui uma pré-visualização anexada", + "status.has_video": "Possui um vídeo anexado", + "status.in_reply_to": "Este toot é uma resposta", + "status.is_poll": "Este toot é uma enquete", + "status.local_only": "Visível apenas em sua instância", + "status.sensitive_toggle": "Clique para ver", + "status.uncollapse": "Revelar", + "web_app_crash.change_your_settings": "Altere suas {settings}", + "web_app_crash.content": "Você poderia tentar qualquer uma das seguintes opções:", + "web_app_crash.debug_info": "Informações de depuração", + "web_app_crash.disable_addons": "Desativar complementos do navegador ou ferramentas de tradução integradas", + "web_app_crash.issue_tracker": "rastreador de problemas", + "web_app_crash.reload": "Recarregar", + "web_app_crash.reload_page": "{reload} a página atual", + "web_app_crash.report_issue": "Relatar um erro no {issuetracker}", + "web_app_crash.settings": "configurações", + "web_app_crash.title": "Desculpe, mas algo deu errado com o aplicativo Mastodon." } diff --git a/config/locales-glitch/pt-BR.yml b/config/locales-glitch/pt-BR.yml index 9cbe1f0387..3419e59482 100644 --- a/config/locales-glitch/pt-BR.yml +++ b/config/locales-glitch/pt-BR.yml @@ -1 +1,42 @@ +--- pt: + admin: + custom_emojis: + batch_copy_error: 'Ocorreu um erro ao copiar alguns dos emojis selecionados: %{message}' + batch_error: 'Ocorreu um erro: %{message}' + settings: + captcha_enabled: + desc_html: Isto se baseia em scripts externos de hCaptcha, o que pode ser uma preocupação de segurança e privacidade. Além disso, isto pode tornar o processo de registro significativamente menos acessível para algumas pessoas (especialmente deficientes). Por estas razões, favor considerar medidas alternativas como o registro baseado em aprovação ou em convite.
Os usuários que tiverem sido convidados através de um convite de uso limitado não precisarão resolver um CAPTCHA + title: Exigir que novos usuários resolvam um CAPTCHA para confirmar sua conta + flavour_and_skin: + title: Sabor e tema + hide_followers_count: + desc_html: Não mostrar contagem de seguidores em perfis de usuário + title: Ocultar número de seguidores + other: + preamble: Várias configurações de glitch-soc que não se ajustam em outras categorias. + title: Outros + outgoing_spoilers: + desc_html: Ao federar toots, adicione este aviso de conteúdo aos toots que não possuem um. É útil se seu servidor for especializado em conteúdo que outros servidores podem querer ter sob um Aviso de Conteúdo. Os meios de comunicação também serão marcados como sensíveis. + title: Aviso de conteúdo para toots enviados + show_reblogs_in_public_timelines: + desc_html: Mostrar impulsos públicos de toots públicos nas linhas de tempo locais e públicas. + title: Mostrar impulsos em timelines públicas + show_replies_in_public_timelines: + desc_html: Além das auto-respostas públicas (tópicos), mostrar respostas públicas em linhas do tempo locais e públicas. + title: Mostrar respostas em linhas do tempo públicas + trending_status_cw: + desc_html: Quando as mensagens de tendência estiverem habilitadas, permitir que as mensagens com Avisos de Conteúdo sejam elegíveis. As alterações a esta configuração não são retroativas. + title: Permitir que mensagens com Avisos de Conteúdo tornem-se tendência + appearance: + localization: + glitch_guide_link: https://crowdin.com/project/glitch-soc + glitch_guide_link_text: E também para glitch-soc! + auth: + captcha_confirmation: + hint_html: Só mais um passo! Para confirmar a sua conta, este servidor requer que você resolva um CAPTCHA. Você pode entrar em contato com o administrador do servidor se você tiver dúvidas ou precisa de ajuda para confirmar sua conta. + title: Verificação de usuário + generic: + use_this: Use isto + settings: + flavours: Sabores diff --git a/config/locales-glitch/simple_form.pt-BR.yml b/config/locales-glitch/simple_form.pt-BR.yml index 9cbe1f0387..00a7607d62 100644 --- a/config/locales-glitch/simple_form.pt-BR.yml +++ b/config/locales-glitch/simple_form.pt-BR.yml @@ -1 +1,27 @@ +--- pt: + simple_form: + glitch_only: glitch-soc + hints: + defaults: + fields: Você pode ter até %{count} itens exibidos como uma tabela no seu perfil + setting_default_content_type_html: Ao escrever toots, assume que estão escritos em HTML bruto, a menos que especificado de outra forma + setting_default_content_type_markdown: Ao escrever toots, assume que ele está usando Markdown para formatação de texto, a menos que especificado seja diferente + setting_default_content_type_plain: Ao escrever toots, assume que eles são textos simples sem formatação especial, a menos que esteja especificado de outra forma (comportamento padrão do Mastodon) + setting_default_language: O idioma dos seus toots pode ser detectado automaticamente, mas nem sempre é preciso + setting_hide_followers_count: Ocultar a contagem de seguidores de todos, incluindo você. Algumas aplicações podem exibir uma contagem de seguidores negativa. + setting_skin: Reaplica o sabor Mastodon selecionado + labels: + defaults: + setting_default_content_type: Formato padrão para toots + setting_default_content_type_html: HTML + setting_default_content_type_markdown: Markdown + setting_default_content_type_plain: Texto sem formatação + setting_favourite_modal: Mostrar diálogo antes de favoritar (aplica-se somente ao sabor Glitch) + setting_hide_followers_count: Ocultar sua contagem de seguidores + setting_skin: Tema + setting_system_emoji_font: Usar fonte padrão do sistema para emojis (aplica-se somente ao sabor Glitch) + notification_emails: + trending_link: Novo link em tendência requer revisão + trending_status: Nova postagem em tendência requer revisão + trending_tag: Nova tag em tendência requer revisão From 41fe7576bfe8b864d8e1fe018ab3b02b05e02a05 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 1 Jan 2023 13:31:53 +0100 Subject: [PATCH 013/176] New Crowdin updates (#22560) * New translations devise.en.yml (Slovak) * New translations devise.en.yml (Slovenian) * New translations devise.en.yml (Albanian) * New translations devise.en.yml (Serbian (Cyrillic)) * New translations devise.en.yml (Swedish) * New translations devise.en.yml (Turkish) * New translations devise.en.yml (Ukrainian) * New translations devise.en.yml (Chinese Simplified) * New translations devise.en.yml (Chinese Traditional) * New translations devise.en.yml (Urdu (Pakistan)) * New translations devise.en.yml (Vietnamese) * New translations devise.en.yml (Galician) * New translations devise.en.yml (Icelandic) * New translations devise.en.yml (Portuguese, Brazilian) * New translations devise.en.yml (Indonesian) * New translations devise.en.yml (Persian) * New translations devise.en.yml (Tamil) * New translations devise.en.yml (Spanish, Argentina) * New translations devise.en.yml (Spanish, Mexico) * New translations devise.en.yml (Bengali) * New translations devise.en.yml (Thai) * New translations devise.en.yml (Croatian) * New translations devise.en.yml (Norwegian Nynorsk) * New translations devise.en.yml (Kazakh) * New translations devise.en.yml (Estonian) * New translations devise.en.yml (Latvian) * New translations devise.en.yml (Hindi) * New translations devise.en.yml (Malay) * New translations devise.en.yml (English, United Kingdom) * New translations devise.en.yml (Welsh) * New translations devise.en.yml (Faroese) * New translations devise.en.yml (Chinese Traditional, Hong Kong) * New translations devise.en.yml (Tatar) * New translations devise.en.yml (Malayalam) * New translations devise.en.yml (Breton) * New translations devise.en.yml (French, Quebec) * New translations devise.en.yml (Sinhala) * New translations devise.en.yml (Kannada) * New translations devise.en.yml (Scottish Gaelic) * New translations devise.en.yml (Asturian) * New translations devise.en.yml (Aragonese) * New translations devise.en.yml (Occitan) * New translations devise.en.yml (Serbian (Latin)) * New translations devise.en.yml (Kurmanji (Kurdish)) * New translations devise.en.yml (Sorani (Kurdish)) * New translations devise.en.yml (Scots) * New translations devise.en.yml (Corsican) * New translations devise.en.yml (Sardinian) * New translations devise.en.yml (Kabyle) * New translations devise.en.yml (Ido) * New translations devise.en.yml (Standard Moroccan Tamazight) * New translations doorkeeper.en.yml (Romanian) * New translations doorkeeper.en.yml (French) * New translations doorkeeper.en.yml (Spanish) * New translations doorkeeper.en.yml (Afrikaans) * New translations doorkeeper.en.yml (Arabic) * New translations doorkeeper.en.yml (Belarusian) * New translations doorkeeper.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Catalan) * New translations doorkeeper.en.yml (Czech) * New translations doorkeeper.en.yml (Danish) * New translations doorkeeper.en.yml (German) * New translations doorkeeper.en.yml (Greek) * New translations doorkeeper.en.yml (Basque) * New translations doorkeeper.en.yml (Finnish) * New translations doorkeeper.en.yml (Irish) * New translations doorkeeper.en.yml (Hebrew) * New translations doorkeeper.en.yml (Hungarian) * New translations doorkeeper.en.yml (Armenian) * New translations doorkeeper.en.yml (Italian) * New translations doorkeeper.en.yml (Japanese) * New translations doorkeeper.en.yml (Georgian) * New translations doorkeeper.en.yml (Korean) * New translations doorkeeper.en.yml (Dutch) * New translations doorkeeper.en.yml (Norwegian) * New translations doorkeeper.en.yml (Portuguese) * New translations doorkeeper.en.yml (Russian) * New translations doorkeeper.en.yml (Slovak) * New translations doorkeeper.en.yml (Slovenian) * New translations doorkeeper.en.yml (Albanian) * New translations doorkeeper.en.yml (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Swedish) * New translations doorkeeper.en.yml (Turkish) * New translations doorkeeper.en.yml (Ukrainian) * New translations doorkeeper.en.yml (Chinese Simplified) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations doorkeeper.en.yml (Vietnamese) * New translations doorkeeper.en.yml (Galician) * New translations doorkeeper.en.yml (Icelandic) * New translations doorkeeper.en.yml (Portuguese, Brazilian) * New translations doorkeeper.en.yml (Indonesian) * New translations doorkeeper.en.yml (Persian) * New translations doorkeeper.en.yml (Tamil) * New translations doorkeeper.en.yml (Spanish, Argentina) * New translations doorkeeper.en.yml (Marathi) * New translations doorkeeper.en.yml (Thai) * New translations doorkeeper.en.yml (Croatian) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (Kazakh) * New translations doorkeeper.en.yml (Estonian) * New translations doorkeeper.en.yml (Latvian) * New translations doorkeeper.en.yml (Hindi) * New translations doorkeeper.en.yml (Malay) * New translations doorkeeper.en.yml (Welsh) * New translations doorkeeper.en.yml (Faroese) * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) * New translations doorkeeper.en.yml (Tatar) * New translations doorkeeper.en.yml (Malayalam) * New translations doorkeeper.en.yml (Breton) * New translations doorkeeper.en.yml (French, Quebec) * New translations doorkeeper.en.yml (Sinhala) * New translations doorkeeper.en.yml (Scottish Gaelic) * New translations doorkeeper.en.yml (Asturian) * New translations doorkeeper.en.yml (Aragonese) * New translations doorkeeper.en.yml (Occitan) * New translations doorkeeper.en.yml (Serbian (Latin)) * New translations doorkeeper.en.yml (Kurmanji (Kurdish)) * New translations doorkeeper.en.yml (Sorani (Kurdish)) * New translations doorkeeper.en.yml (Scots) * New translations doorkeeper.en.yml (Corsican) * New translations doorkeeper.en.yml (Sardinian) * New translations doorkeeper.en.yml (Kabyle) * New translations doorkeeper.en.yml (Ido) * New translations doorkeeper.en.yml (Standard Moroccan Tamazight) * New translations en.json (Kannada) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.json (Italian) * New translations en.yml (Bulgarian) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Arabic) * New translations en.yml (Frisian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations simple_form.en.yml (Arabic) * New translations doorkeeper.en.yml (Arabic) * New translations en.yml (Arabic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations doorkeeper.en.yml (Indonesian) * New translations en.yml (Estonian) * New translations en.yml (Norwegian Nynorsk) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.yml (Asturian) * New translations en.yml (Vietnamese) * New translations en.json (Bulgarian) * New translations en.json (Estonian) * New translations en.json (Bulgarian) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Catalan) * New translations simple_form.en.yml (Bulgarian) * New translations activerecord.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Catalan) * New translations en.yml (Asturian) * New translations en.json (Catalan) * New translations en.json (Estonian) * New translations en.json (Estonian) * New translations en.json (Ukrainian) * New translations doorkeeper.en.yml (Ukrainian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Latvian) * New translations en.yml (Latvian) * New translations simple_form.en.yml (Latvian) * New translations doorkeeper.en.yml (Latvian) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Estonian) * New translations en.yml (Indonesian) * New translations doorkeeper.en.yml (Indonesian) * New translations en.json (Latvian) * New translations en.yml (Galician) * New translations doorkeeper.en.yml (Belarusian) * New translations doorkeeper.en.yml (Belarusian) * New translations en.json (Esperanto) * New translations doorkeeper.en.yml (Belarusian) * New translations en.json (Estonian) * New translations en.json (Hebrew) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (German) * New translations en.yml (German) * New translations activerecord.en.yml (German) * New translations doorkeeper.en.yml (German) * New translations en.yml (Esperanto) * New translations en.yml (Esperanto) * New translations en.json (Asturian) * New translations en.yml (Asturian) * New translations en.yml (Asturian) * New translations en.json (German) * New translations en.yml (Polish) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.yml (German) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.json (German) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.json (Taigi) * New translations en.yml (Frisian) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations en.yml (Frisian) * New translations simple_form.en.yml (Catalan) * New translations en.yml (Frisian) * New translations en.json (Vietnamese) * New translations en.json (English, United Kingdom) * New translations en.yml (Frisian) * New translations en.yml (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations doorkeeper.en.yml (English, United Kingdom) * New translations en.yml (Ido) * New translations activerecord.en.yml (Ido) * New translations simple_form.en.yml (French, Quebec) * New translations en.yml (Catalan) * New translations simple_form.en.yml (Catalan) * New translations doorkeeper.en.yml (Catalan) * New translations en.json (Vietnamese) * New translations en.yml (Vietnamese) * New translations en.yml (Vietnamese) * New translations simple_form.en.yml (Vietnamese) * New translations devise.en.yml (Vietnamese) * Normalize Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/ar.json | 10 +- app/javascript/mastodon/locales/ast.json | 2 +- app/javascript/mastodon/locales/bg.json | 40 +- app/javascript/mastodon/locales/ca.json | 22 +- app/javascript/mastodon/locales/de.json | 8 +- app/javascript/mastodon/locales/eo.json | 32 +- app/javascript/mastodon/locales/es-MX.json | 10 +- app/javascript/mastodon/locales/et.json | 38 +- app/javascript/mastodon/locales/fr-QC.json | 2 +- app/javascript/mastodon/locales/ga.json | 10 +- app/javascript/mastodon/locales/he.json | 2 +- app/javascript/mastodon/locales/it.json | 6 +- app/javascript/mastodon/locales/ja.json | 2 +- app/javascript/mastodon/locales/kn.json | 10 +- app/javascript/mastodon/locales/ko.json | 2 +- app/javascript/mastodon/locales/ku.json | 6 +- app/javascript/mastodon/locales/lv.json | 16 +- app/javascript/mastodon/locales/nn.json | 10 +- app/javascript/mastodon/locales/tai.json | 8 +- app/javascript/mastodon/locales/uk.json | 2 +- app/javascript/mastodon/locales/vi.json | 16 +- app/javascript/mastodon/locales/zh-CN.json | 2 +- config/locales/activerecord.bg.yml | 2 +- config/locales/activerecord.ca.yml | 2 +- config/locales/activerecord.de.yml | 2 +- config/locales/activerecord.io.yml | 4 + config/locales/ar.yml | 78 ++ config/locales/ast.yml | 5 + config/locales/bg.yml | 431 ++++-- config/locales/ca.yml | 4 +- config/locales/de.yml | 16 +- config/locales/devise.bg.yml | 34 +- config/locales/devise.et.yml | 16 +- config/locales/devise.ku.yml | 32 +- config/locales/devise.vi.yml | 2 +- config/locales/doorkeeper.ar.yml | 10 + config/locales/doorkeeper.be.yml | 78 +- config/locales/doorkeeper.ca.yml | 2 +- config/locales/doorkeeper.de.yml | 8 +- config/locales/doorkeeper.en-GB.yml | 10 + config/locales/doorkeeper.es-MX.yml | 22 +- config/locales/doorkeeper.et.yml | 12 +- config/locales/doorkeeper.fr-QC.yml | 10 + config/locales/doorkeeper.fy.yml | 10 + config/locales/doorkeeper.id.yml | 7 + config/locales/doorkeeper.lv.yml | 4 +- config/locales/doorkeeper.pl.yml | 10 + config/locales/doorkeeper.uk.yml | 16 +- config/locales/en-GB.yml | 12 + config/locales/eo.yml | 4 +- config/locales/es-MX.yml | 9 +- config/locales/et.yml | 30 +- config/locales/fr-QC.yml | 3 + config/locales/fy.yml | 1458 +++++++++++++++++++- config/locales/gl.yml | 12 +- config/locales/id.yml | 2 + config/locales/io.yml | 13 + config/locales/ko.yml | 2 +- config/locales/lv.yml | 54 +- config/locales/nn.yml | 85 +- config/locales/pl.yml | 1 + config/locales/pt-BR.yml | 13 +- config/locales/simple_form.ar.yml | 8 + config/locales/simple_form.bg.yml | 12 +- config/locales/simple_form.ca.yml | 10 +- config/locales/simple_form.en-GB.yml | 11 + config/locales/simple_form.et.yml | 10 +- config/locales/simple_form.fr-QC.yml | 2 +- config/locales/simple_form.fy.yml | 152 ++ config/locales/simple_form.lv.yml | 22 +- config/locales/simple_form.vi.yml | 4 +- config/locales/vi.yml | 30 +- 72 files changed, 2595 insertions(+), 447 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 941af112f1..0b6532ceec 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "المنشورات والرُدود", "account.report": "الإبلاغ عن @{name}", "account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "لقد طلب {name} متابعتك", "account.share": "شارِك الملف التعريفي لـ @{name}", "account.show_reblogs": "عرض مشاركات @{name}", "account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة", "errors.unexpected_crash.report_issue": "الإبلاغ عن خلل", "explore.search_results": "نتائج البحث", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "لك", "explore.title": "استكشف", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "الأخبار", + "explore.trending_statuses": "المنشورات", + "explore.trending_tags": "هاشتاجات", "filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.", "filter_modal.added.context_mismatch_title": "عدم تطابق السياق!", "filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index ed135545c3..dc8a9d72a6 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -392,7 +392,7 @@ "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} informó de: {target}", "notification.admin.sign_up": "{name} rexistróse", - "notification.favourite": "{name} favourited your status", + "notification.favourite": "{name} marcó'l to artículu como favoritu", "notification.follow": "{name} siguióte", "notification.follow_request": "{name} solicitó siguite", "notification.mention": "{name} mentóte", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index da61d6200d..d104a2bd16 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -36,11 +36,11 @@ "account.following": "Последвани", "account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}", "account.follows.empty": "Потребителят още никого не следва.", - "account.follows_you": "Ваш последовател", + "account.follows_you": "Следва ви", "account.go_to_profile": "Към профила", "account.hide_reblogs": "Скриване на споделяния от @{name}", "account.joined_short": "Дата на присъединяване", - "account.languages": "Смяна на езиците на абонамент", + "account.languages": "Промяна на езиците, за които сте абонирани", "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}", "account.locked_info": "Състоянието за поверителността на акаунта е зададено заключено. Собственикът преглежда ръчно от кого може да се следва.", "account.media": "Мултимедия", @@ -51,7 +51,7 @@ "account.muted": "Заглушено", "account.open_original_page": "Отваряне на оригиналната страница", "account.posts": "Публикации", - "account.posts_with_replies": "Публикации и отговори", + "account.posts_with_replies": "Публ. и отговори", "account.report": "Докладване на @{name}", "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване", "account.requested_follow": "{name} поиска да ви последва", @@ -60,11 +60,11 @@ "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", "account.unblock": "Отблокиране на @{name}", "account.unblock_domain": "Отблокиране на домейн {domain}", - "account.unblock_short": "Отблокирване", + "account.unblock_short": "Отблокиране", "account.unendorse": "Не включвайте в профила", - "account.unfollow": "Без следване", + "account.unfollow": "Стоп на следването", "account.unmute": "Без заглушаване на @{name}", - "account.unmute_notifications": "Без заглушаване на известия от @{name}", + "account.unmute_notifications": "Изпращане на известия от @{name}", "account.unmute_short": "Без заглушаване", "account_note.placeholder": "Щракнете, за да добавите бележка", "admin.dashboard.daily_retention": "Ниво на задържани на потребители след регистрация, в дни", @@ -168,7 +168,7 @@ "confirmations.mute.explanation": "Това ще скрие публикациите от тях и публикации, които ги споменават, но все още ще им позволява да виждат публикациите ви и да ви следват.", "confirmations.mute.message": "Наистина ли искате да заглушите {name}?", "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.redraft.message": "Сигурни ли сте, че искате да изтриете тази публикация и да я върнете в чернова? Ще загубите споделянията и маркиранията като любима, и отговорите към оригинала ще останат висящи.", "confirmations.reply.confirm": "Отговор", "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", "confirmations.unfollow.confirm": "Без следване", @@ -210,7 +210,7 @@ "emoji_button.travel": "Пътуване и места", "empty_column.account_suspended": "Спрян акаунт", "empty_column.account_timeline": "Тук няма публикации!", - "empty_column.account_unavailable": "Недостъпен профил", + "empty_column.account_unavailable": "Профилът не е наличен", "empty_column.blocks": "Още не сте блокирали никакви потребители.", "empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.", "empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!", @@ -285,11 +285,11 @@ "hashtag.unfollow": "Спиране на следване на хаштаг", "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на споделяния", - "home.column_settings.show_replies": "Показване на отговори", - "home.hide_announcements": "Скриване на оповестявания", - "home.show_announcements": "Показване на оповестявания", + "home.column_settings.show_replies": "Показване на отговорите", + "home.hide_announcements": "Скриване на оповестяванията", + "home.show_announcements": "Показване на оповестяванията", "interaction_modal.description.favourite": "Ако имате профил в Mastodon, можете да маркирате публикация като любима, за да уведомите автора, че я оценявате, и да я запазите за по-късно.", - "interaction_modal.description.follow": "Ако имате регистрация в Mastodon, то може да последвате {name}, за да виждате публикациите от този профил в началния си инфоканал.", + "interaction_modal.description.follow": "Ако имате регистрация в Mastodon, то може да последвате {name}, за да виждате публикациите от този профил в началния си инфопоток.", "interaction_modal.description.reblog": "Ако имате профил в Mastodon, можете да споделите тази публикация със своите последователи.", "interaction_modal.description.reply": "Ако имате профил в Mastodon, можете да добавите отговор към тази публикация.", "interaction_modal.on_another_server": "На различен сървър", @@ -342,17 +342,17 @@ "lightbox.expand": "Разгъване на полето за преглед на образи", "lightbox.next": "Напред", "lightbox.previous": "Назад", - "limited_account_hint.action": "Покажи профила въпреки това", - "limited_account_hint.title": "Този профил е бил скрит от модераторита на {domain}.", - "lists.account.add": "Добавяне в списък", - "lists.account.remove": "Премахване от списък", - "lists.delete": "Изтриване на списък", + "limited_account_hint.action": "Показване на профила въпреки това", + "limited_account_hint.title": "Този профил е бил скрит от модераторите на {domain}.", + "lists.account.add": "Добавяне към списък", + "lists.account.remove": "Премахване от списъка", + "lists.delete": "Изтриване на списъка", "lists.edit": "Промяна на списъка", "lists.edit.submit": "Промяна на заглавие", "lists.new.create": "Добавяне на списък", "lists.new.title_placeholder": "Име на нов списък", "lists.replies_policy.followed": "Някой последван потребител", - "lists.replies_policy.list": "Членове на списъка", + "lists.replies_policy.list": "Членуващите в списъка", "lists.replies_policy.none": "Никого", "lists.replies_policy.title": "Показване на отговори на:", "lists.search": "Търсене измежду последваните", @@ -510,7 +510,7 @@ "report.thanks.title": "Не искате ли да виждате това?", "report.thanks.title_actionable": "Благодарности за докладването, ще го прегледаме.", "report.unfollow": "Стоп на следването на @{name}", - "report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфопоток, то спрете да го следвате.", + "report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфопоток, спрете да го следвате.", "report_notification.attached_statuses": "прикачено {count, plural, one {{count} публикация} other {{count} публикации}}", "report_notification.categories.other": "Друго", "report_notification.categories.spam": "Спам", @@ -519,7 +519,7 @@ "search.placeholder": "Търсене", "search.search_or_paste": "Търсене или поставяне на URL адрес", "search_popout.search_format": "Формат за разширено търсене", - "search_popout.tips.full_text": "Търсене с обикновен текст връща публикации, които сте написали, харесали, споделили, или в които сте били споменати, както и съвпадащи потребителски имена, показвани имена и хаштагове.", + "search_popout.tips.full_text": "Търсене с обикновен текст връща публикации, които сте написали, поставили в любими, споделили, или в които сте били споменати, както и съвпадащи потребителски имена, показвани имена и хаштагове.", "search_popout.tips.hashtag": "хаштаг", "search_popout.tips.status": "публикация", "search_popout.tips.text": "Обикновеният текст връща съответстващи показвани имена, потребителски имена и хаштагове", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 46ae984c6e..57e1658122 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -32,7 +32,7 @@ "account.follow": "Segueix", "account.followers": "Seguidors", "account.followers.empty": "A aquest usuari encara no el segueix ningú.", - "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}", + "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidors}}", "account.following": "Seguint", "account.following_counter": "{count, plural, other {Seguint-ne {counter}}}", "account.follows.empty": "Aquest usuari encara no segueix ningú.", @@ -182,9 +182,9 @@ "directory.federated": "Del fedivers conegut", "directory.local": "Només de {domain}", "directory.new_arrivals": "Arribades noves", - "directory.recently_active": "Recentment actius", + "directory.recently_active": "Actius recentment", "disabled_account_banner.account_settings": "Paràmetres del compte", - "disabled_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat.", + "disabled_account_banner.text": "El teu compte {disabledAccount} està desactivat.", "dismissable_banner.community_timeline": "Aquestes són les publicacions més recents d'usuaris amb el compte a {domain}.", "dismissable_banner.dismiss": "Ometre", "dismissable_banner.explore_links": "Gent d'aquest i d'altres servidors de la xarxa descentralitzada estan comentant ara mateix aquestes notícies.", @@ -212,14 +212,14 @@ "empty_column.account_timeline": "No hi ha tuts aquí!", "empty_column.account_unavailable": "Perfil no disponible", "empty_column.blocks": "Encara no has blocat cap usuari.", - "empty_column.bookmarked_statuses": "Encara no has marcat cap publicació com a preferida. Quan en marquis una, apareixerà aquí.", + "empty_column.bookmarked_statuses": "Encara no tens marcada cap publicació. Quan en marquis una apareixerà aquí.", "empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!", "empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis un, sortirà aquí.", "empty_column.domain_blocks": "Encara no hi ha dominis blocats.", "empty_column.explore_statuses": "No hi ha res en tendència ara mateix. Revisa-ho més tard!", "empty_column.favourited_statuses": "Encara no has afavorit cap tut. Quan ho facis, apareixerà aquí.", "empty_column.favourites": "Encara no ha marcat ningú aquesta publicació com a preferida. Quan ho faci algú apareixerà aquí.", - "empty_column.follow_recommendations": "Sembla que no s'han pogut generar suggeriments per a tu. Pots provar d'usar la cerca per trobar persones que vulguis conèixer o explorar les etiquetes en tendència.", + "empty_column.follow_recommendations": "Sembla que no s'han pogut generar suggeriments per a tu. Pots provar d'usar la cerca per a trobar persones que vulguis conèixer o explorar les etiquetes en tendència.", "empty_column.follow_requests": "Encara no tens cap petició de seguiment. Quan en rebis una, apareixerà aquí.", "empty_column.hashtag": "Encara no hi ha res en aquesta etiqueta.", "empty_column.home": "La teva línia de temps és buida! Segueix més gent per a emplenar-la. {suggestions}", @@ -292,9 +292,9 @@ "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre les seves publicacions en la teva línia de temps d'Inici.", "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.", "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.", - "interaction_modal.on_another_server": "En un servidor diferent", + "interaction_modal.on_another_server": "A un altre servidor", "interaction_modal.on_this_server": "En aquest servidor", - "interaction_modal.other_server_instructions": "Copia i enganxa aquesta URL en el camp de cerca de la teva aplicació Mastodon preferida o en l'interfície web del teu servidor Mastodon.", + "interaction_modal.other_server_instructions": "Copia i enganxa aquest URL en el camp de cerca de la teva aplicació Mastodon preferida o a la interfície web del teu servidor Mastodon.", "interaction_modal.preamble": "Com que Mastodon és descentralitzat, pots fer servir el teu compte existent en un altre servidor Mastodon o plataforma compatible si no tens compte en aquest.", "interaction_modal.title.favourite": "Marca el tut de {name}", "interaction_modal.title.follow": "Segueix {name}", @@ -309,11 +309,11 @@ "keyboard_shortcuts.column": "Centra la columna", "keyboard_shortcuts.compose": "Centra l'àrea de composició de text", "keyboard_shortcuts.description": "Descripció", - "keyboard_shortcuts.direct": "per a obrir la columna de missatges directes", + "keyboard_shortcuts.direct": "Obre la columna de missatges directes", "keyboard_shortcuts.down": "Abaixa a la llista", "keyboard_shortcuts.enter": "Obre la publicació", "keyboard_shortcuts.favourite": "Afavoreix la publicació", - "keyboard_shortcuts.favourites": "Obre la llista de favorits", + "keyboard_shortcuts.favourites": "Obre la llista de preferits", "keyboard_shortcuts.federated": "Obre la línia de temps federada", "keyboard_shortcuts.heading": "Dreceres de teclat", "keyboard_shortcuts.home": "Obre la línia de temps de l'Inici", @@ -370,7 +370,7 @@ "navigation_bar.blocks": "Usuaris blocats", "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Línia de temps local", - "navigation_bar.compose": "Redacta una nova publicació", + "navigation_bar.compose": "Redacta un tut", "navigation_bar.direct": "Missatges directes", "navigation_bar.discover": "Descobreix", "navigation_bar.domain_blocks": "Dominis blocats", @@ -538,7 +538,7 @@ "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.", "server_banner.learn_more": "Més informació", "server_banner.server_stats": "Estadístiques del servidor:", - "sign_in_banner.create_account": "Crea un compte", + "sign_in_banner.create_account": "Registra'm", "sign_in_banner.sign_in": "Inicia sessió", "sign_in_banner.text": "Inicia la sessió per seguir perfils o etiquetes, afavorir, compartir i respondre a publicacions o interactuar des del teu compte en un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 73fff4f255..3c3f0a6254 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -253,10 +253,10 @@ "filter_modal.select_filter.context_mismatch": "gilt nicht für diesen Kontext", "filter_modal.select_filter.expired": "abgelaufen", "filter_modal.select_filter.prompt_new": "Neue Kategorie: {name}", - "filter_modal.select_filter.search": "Suchen oder Erstellen", + "filter_modal.select_filter.search": "Filter suchen oder erstellen", "filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen", "filter_modal.select_filter.title": "Diesen Beitrag filtern", - "filter_modal.title.status": "Beitrag filtern", + "filter_modal.title.status": "Beitrag per Filter ausblenden", "follow_recommendations.done": "Fertig", "follow_recommendations.heading": "Folge Leuten, deren Beiträge du sehen möchtest! Hier sind einige Vorschläge.", "follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!", @@ -343,7 +343,7 @@ "lightbox.next": "Vor", "lightbox.previous": "Zurück", "limited_account_hint.action": "Profil trotzdem anzeigen", - "limited_account_hint.title": "Dieses Profil wurde von den Moderatoren*innen von {domain} ausgeblendet.", + "limited_account_hint.title": "Dieses Profil wurde von den Moderator*innen von {domain} ausgeblendet.", "lists.account.add": "Zur Liste hinzufügen", "lists.account.remove": "Von der Liste entfernen", "lists.delete": "Liste löschen", @@ -522,7 +522,7 @@ "search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast, zurück; außerdem auch Beiträge, in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.", "search_popout.tips.hashtag": "Hashtag", "search_popout.tips.status": "Beitrag", - "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück", + "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Profilnamen und Hashtags zurück", "search_popout.tips.user": "Profil", "search_results.accounts": "Profile", "search_results.all": "Alles", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index defe52988f..01a5b17cbb 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -111,7 +111,7 @@ "column.lists": "Listoj", "column.mutes": "Silentigitaj uzantoj", "column.notifications": "Sciigoj", - "column.pins": "Alpinglitaj mesaĝoj", + "column.pins": "Alpinglitaj afiŝoj", "column.public": "Fratara templinio", "column_back_button.label": "Reveni", "column_header.hide_settings": "Kaŝi la agordojn", @@ -127,9 +127,9 @@ "compose.language.change": "Ŝanĝi lingvon", "compose.language.search": "Serĉi lingvojn...", "compose_form.direct_message_warning_learn_more": "Lerni pli", - "compose_form.encryption_warning": "La mesaĵoj en Mastodon ne estas tutvoje ĉifritaj. Ne kundividu tiklajn informojn ĉe Mastodon.", - "compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.", - "compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn nur al la sekvantoj.", + "compose_form.encryption_warning": "La afiŝoj en Mastodon ne estas tutvoje ĉifritaj. Ne kunhavigu tiklajn informojn ĉe Mastodon.", + "compose_form.hashtag_warning": "Ĉi tiu afiŝo ne estos listigita per ajna kradvorto. Nur publikaj afiŝoj estas serĉeblaj per kradvortoj.", + "compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn afiŝojn nur al la sekvantoj.", "compose_form.lock_disclaimer.lock": "ŝlosita", "compose_form.placeholder": "Kion vi pensas?", "compose_form.poll.add_option": "Aldoni elekteblon", @@ -155,7 +155,7 @@ "confirmations.cancel_follow_request.confirm": "Eksigi peton", "confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?", "confirmations.delete.confirm": "Forigi", - "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?", + "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun afiŝon?", "confirmations.delete_list.confirm": "Forigi", "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.discard_edit_media.confirm": "Forĵeti", @@ -168,7 +168,7 @@ "confirmations.mute.explanation": "Tio kaŝos la mesaĝojn de la uzanto kaj la mesaĝojn kiuj mencias rin, sed ri ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.", "confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?", "confirmations.redraft.confirm": "Forigi kaj reskribi", - "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.", + "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.", "confirmations.reply.confirm": "Respondi", "confirmations.reply.message": "Respondi nun anstataŭigos la mesaĝon, kiun vi nun skribas. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.unfollow.confirm": "Ne plu sekvi", @@ -187,7 +187,7 @@ "disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.", "dismissable_banner.community_timeline": "Jen la plej novaj publikaj afiŝoj de uzantoj, kies kontojn gastigas {domain}.", "dismissable_banner.dismiss": "Eksigi", - "dismissable_banner.explore_links": "Tiuj novaĵoj estas aktuale priparolataj de uzantoj el ĉi tiu servilo, kaj el aliaj, sur la malcentralizita reto.", + "dismissable_banner.explore_links": "Tiuj novaĵoj estas aktuale priparolataj de uzantoj en tiu ĉi kaj aliaj serviloj, sur la malcentrigita reto.", "dismissable_banner.explore_statuses": "Ĉi tiuj mesaĝoj de ĉi tiu kaj aliaj serviloj en la malcentra reto pli populariĝas en ĉi tiu servilo nun.", "dismissable_banner.explore_tags": "Ĉi tiuj kradvostoj populariĝas en ĉi tiu kaj aliaj serviloj en la malcentraliza reto nun.", "dismissable_banner.public_timeline": "Ĉi tiuj estas plej lastaj publika mesaĝoj de personoj ĉe ĉi tiu kaj aliaj serviloj de la malcentra reto kiun ĉi tiu servilo scias.", @@ -217,7 +217,7 @@ "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.", "empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!", - "empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, ĝi aperos ĉi tie.", + "empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis afiŝon. Kiam vi stelumos iun, ĝi aperos ĉi tie.", "empty_column.favourites": "Ankoraŭ neniu stelumis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.", "empty_column.follow_recommendations": "Ŝajnas, ke neniuj sugestoj povis esti generitaj por vi. Vi povas provi uzi serĉon por serĉi homojn, kiujn vi eble konas, aŭ esplori tendencajn kradvortojn.", "empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.", @@ -239,7 +239,7 @@ "explore.suggested_follows": "For you", "explore.title": "Esplori", "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_statuses": "Afiŝoj", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas la kuntekston de ĉi tiu mesaĝo. Vi devas redakti la filtrilon.", "filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!", @@ -392,7 +392,7 @@ "not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.", "notification.admin.report": "{name} raportis {target}", "notification.admin.sign_up": "{name} kreis konton", - "notification.favourite": "{name} stelumis vian mesaĝon", + "notification.favourite": "{name} stelumis vian afiŝon", "notification.follow": "{name} eksekvis vin", "notification.follow_request": "{name} petis sekvi vin", "notification.mention": "{name} menciis vin", @@ -510,7 +510,7 @@ "report.thanks.title": "Ĉu vi ne volas vidi ĉi tion?", "report.thanks.title_actionable": "Dankon pro raporti, ni esploros ĉi tion.", "report.unfollow": "Malsekvi @{name}", - "report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn abonfluojn en via hejma templinio, ĉesu sekvi ĝin.", + "report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn afiŝojn en via hejma templinio, ĉesu sekvi ĝin.", "report_notification.attached_statuses": "{count, plural, one {{count} afiŝo almetita} other {{count} afiŝoj almetitaj}}", "report_notification.categories.other": "Alia", "report_notification.categories.spam": "Trudmesaĝo", @@ -521,15 +521,15 @@ "search_popout.search_format": "Detala serĉo", "search_popout.tips.full_text": "Simplaj tekstoj montras la mesaĝojn, kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.", "search_popout.tips.hashtag": "kradvorto", - "search_popout.tips.status": "mesaĝoj", + "search_popout.tips.status": "afiŝoj", "search_popout.tips.text": "Simpla teksto montras la kongruajn afiŝitajn nomojn, uzantnomojn kaj kradvortojn", "search_popout.tips.user": "uzanto", "search_results.accounts": "Homoj", "search_results.all": "Ĉiuj", "search_results.hashtags": "Kradvortoj", "search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj", - "search_results.statuses": "Mesaĝoj", - "search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.", + "search_results.statuses": "Afiŝoj", + "search_results.statuses_fts_disabled": "Serĉi afiŝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.", "search_results.title": "Serĉ-rezultoj por {q}", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}", "server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)", @@ -540,7 +540,7 @@ "server_banner.server_stats": "Statistikoj de la servilo:", "sign_in_banner.create_account": "Krei konton", "sign_in_banner.sign_in": "Saluti", - "sign_in_banner.text": "Ensalutu por sekvi profilojn aŭ kradvortojn, stelumi, kunhavigi kaj respondi afiŝojn aŭ interagi per via konto de alia servilo.", + "sign_in_banner.text": "Ensalutu por sekvi profilojn aŭ kradvortojn, stelumi, diskonigi afiŝojn kaj respondi al ili, aŭ interagi per via konto de alia servilo.", "status.admin_account": "Malfermi fasadon de moderigado por @{name}", "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco", "status.block": "Bloki @{name}", @@ -623,7 +623,7 @@ "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.description": "Priskribi por personoj, kiuj estas blindaj aŭ havas vidmalsufiĉon", "upload_form.description_missing": "Neniu priskribo aldonita", "upload_form.edit": "Redakti", "upload_form.thumbnail": "Ŝanĝi etigita bildo", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index c26abf3e30..6aa58b245c 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Publicaciones y respuestas", "account.report": "Denunciar a @{name}", "account.requested": "Esperando aprobación. Haga clic para cancelar la solicitud de seguimiento", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} ha solicitado seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar retoots de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.report_issue": "Informar problema", "explore.search_results": "Resultados de búsqueda", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Para ti", "explore.title": "Descubrir", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Noticias", + "explore.trending_statuses": "Publicaciones", + "explore.trending_tags": "Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que has accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.", "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitaras cambiar la fecha de caducidad para que se aplique.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index f3adeacf67..2679759b15 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -7,7 +7,7 @@ "about.domain_blocks.silenced.explanation": "Sa ei näe üldiselt profiile ja sisu sellelt serverilt, kui sa just tahtlikult seda ei otsi või jälgimise moel nõusolekut ei anna.", "about.domain_blocks.silenced.title": "Piiratud", "about.domain_blocks.suspended.explanation": "Mitte mingeid andmeid sellelt serveritl ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse kasutajatega sellelt serverilt võimatuks.", - "about.domain_blocks.suspended.title": "Kustutatud", + "about.domain_blocks.suspended.title": "Peatatud", "about.not_available": "See info ei ole sellel serveril saadavaks tehtud.", "about.powered_by": "Hajutatud sotsiaalmeedia, mille taga on {mastodon}", "about.rules": "Serveri reeglid", @@ -19,12 +19,12 @@ "account.block_domain": "Peida kõik domeenist {domain}", "account.blocked": "Blokeeritud", "account.browse_more_on_origin_server": "Vaata rohkem algsel profiilil", - "account.cancel_follow_request": "Võta tagasi jälgimistaotlus", - "account.direct": "Saada otsesõnum @{name}'ile", - "account.disable_notifications": "Ära teavita, kui @{name} postitab", + "account.cancel_follow_request": "Võta jälgimistaotlus tagasi", + "account.direct": "Otsesõnum kasutajale @{name}", + "account.disable_notifications": "Peata teavitused @{name} postitustest", "account.domain_blocked": "Domeen peidetud", "account.edit_profile": "Muuda profiili", - "account.enable_notifications": "Teavita mind, kui @{name} postitab", + "account.enable_notifications": "Teavita mind @{name} postitustest", "account.endorse": "Too profiilil esile", "account.featured_tags.last_status_at": "Viimane postitus {date}", "account.featured_tags.last_status_never": "Postitusi pole", @@ -36,13 +36,13 @@ "account.following": "Jälgib", "account.following_counter": "{count, plural, one {{counter} jälgitav} other {{counter} jälgitavat}}", "account.follows.empty": "See kasutaja ei jälgi veel kedagi.", - "account.follows_you": "Jälgib", + "account.follows_you": "Jälgib sind", "account.go_to_profile": "Mine profiilile", "account.hide_reblogs": "Peida @{name} jagamised", "account.joined_short": "Liitus", "account.languages": "Muuda tellitud keeli", "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", - "account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab manuaalselt üle, kes teda jägida saab.", + "account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab käsitsi üle, kes teda jälgida saab.", "account.media": "Meedia", "account.mention": "Maini @{name}", "account.moved_to": "{name} on teada andnud, et ta uus konto on nüüd:", @@ -65,7 +65,7 @@ "account.unfollow": "Jälgid", "account.unmute": "Ära vaigista @{name}", "account.unmute_notifications": "Ära vaigista teateid kasutajalt @{name}", - "account.unmute_short": "Lõpeta vaigistus", + "account.unmute_short": "Lõpeta vaigistamine", "account_note.placeholder": "Klõpsa märkme lisamiseks", "admin.dashboard.daily_retention": "Kasutajate päevane allesjäämine peale registreerumist", "admin.dashboard.monthly_retention": "Kasutajate kuine allesjäämine peale registreerumist", @@ -231,8 +231,8 @@ "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.explanation_addons": "Seda lehte ei suudetud õigesti kuvada. See viga arvatavasti põhjustas mingi brauseri lisand või automaattõlke tööriist.", - "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.", - "error.unexpected_crash.next_steps_addons": "Proovige need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib olla võimalik Mastodoni kasutada mingi teise brauseri või rakendusega.", + "error.unexpected_crash.next_steps": "Proovi lehekülge uuesti avada. Kui see ei aita, võib proovida kasutada Mastodoni mõne muu veebilehitseja või äpi kaudu.", + "error.unexpected_crash.next_steps_addons": "Proovi need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib olla võimalik Mastodoni kasutada mõne teise brauseri või rakendusega.", "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale", "errors.unexpected_crash.report_issue": "Teavita veast", "explore.search_results": "Otsitulemused", @@ -267,7 +267,7 @@ "footer.directory": "Profiilikataloog", "footer.get_app": "Tõmba äpp", "footer.invite": "Kutsu liituma", - "footer.keyboard_shortcuts": "Klaviatuuri otseteed", + "footer.keyboard_shortcuts": "Kiirklahvid", "footer.privacy_policy": "Isikuandmete kaitse", "footer.source_code": "Lähtekood", "generic.saved": "Salvestatud", @@ -315,7 +315,7 @@ "keyboard_shortcuts.favourite": "Märgi lemmikuks", "keyboard_shortcuts.favourites": "Ava lemmikute loetelu", "keyboard_shortcuts.federated": "Ava föderatsiooni ajajoon", - "keyboard_shortcuts.heading": "Klaviatuuri otseteed", + "keyboard_shortcuts.heading": "Kiirklahvid", "keyboard_shortcuts.home": "Ava kodu ajajoon", "keyboard_shortcuts.hotkey": "Kiirklahv", "keyboard_shortcuts.legend": "Kuva see legend", @@ -480,9 +480,9 @@ "report.categories.spam": "Rämpspost", "report.categories.violation": "Sisu, mis rikub ühte või enamat serveri reeglit", "report.category.subtitle": "Valige parim vaste", - "report.category.title": "Öelge, mis on sellel {type} valesti", - "report.category.title_account": "profiilil", - "report.category.title_status": "postitusel", + "report.category.title": "Selgita, mis on selle {type} valesti", + "report.category.title_account": "kontoga", + "report.category.title_status": "postitusega", "report.close": "Valmis", "report.comment.title": "Kas on midagi veel, mis te arvate, et me peaks teadma?", "report.forward": "Edasta kasutajale {target}", @@ -584,10 +584,10 @@ "status.sensitive_warning": "Tundlik sisu", "status.share": "Jaga", "status.show_filter_reason": "Näita ikka", - "status.show_less": "Näita vähem", - "status.show_less_all": "Näita vähem kõigile", - "status.show_more": "Näita veel", - "status.show_more_all": "Näita enam kõigile", + "status.show_less": "Peida sisu", + "status.show_less_all": "Peida kogu tundlik sisu", + "status.show_more": "Näita sisu", + "status.show_more_all": "Näita kogu tundlikku sisu", "status.show_original": "Näita algset", "status.translate": "Tõlgi", "status.translated_from_with": "Tõlgitud {lang} keelest kasutades teenust {provider}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 965aa49630..1eef641ff4 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Publications et réponses", "account.report": "Signaler @{name}", "account.requested": "En attente d’approbation. Cliquez pour annuler la demande", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} a demandé à vous suivre", "account.share": "Partager le profil de @{name}", "account.show_reblogs": "Afficher les boosts de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Publication} other {{counter} Publications}}", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index ae8813dcd6..d4601195e7 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Postálacha agus freagraí", "account.report": "Tuairiscigh @{name}", "account.requested": "Ag fanacht le ceadú. Cliceáil chun an iarratas leanúnaí a chealú", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "D'iarr {name} ort do chuntas a leanúint", "account.share": "Roinn próifíl @{name}", "account.show_reblogs": "Taispeáin moltaí ó @{name}", "account.statuses_counter": "{count, plural, one {Postáil amháin} other {{counter} Postáil}}", @@ -230,16 +230,16 @@ "empty_column.notifications": "Níl aon fógraí agat fós. Nuair a dhéanann daoine eile idirghníomhú leat, feicfear anseo é.", "empty_column.public": "Faic anseo! Scríobh rud éigin go poiblí, nó lean úsáideoirí ar fhreastalaithe eile chun é a líonadh", "error.unexpected_crash.explanation": "De bharr fabht inár gcód, nó fadhb le chomhoiriúnacht brabhsálaí, níorbh fhéadfadh an leathanach seo a léiriú i gceart.", - "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.", + "error.unexpected_crash.explanation_addons": "Ní taispeántar an leathanach seo mar is ceart. Is dócha go gcruthaíonn breiseán brabhsálaí nó uirlisí uathaistriúcháin an fhadhb seo.", "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_addons": "Try disabling them and 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": "Tuairiscigh deacracht", "explore.search_results": "Torthaí cuardaigh", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Duitse", "explore.title": "Féach thart", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", + "explore.trending_links": "Nuacht", + "explore.trending_statuses": "Postálacha", "explore.trending_tags": "Hashtags", "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", "filter_modal.added.context_mismatch_title": "Context mismatch!", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 422549f4d0..8dd43b5bba 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -577,7 +577,7 @@ "status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.", "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", - "status.replied_to": "הגב לחשבון {name}", + "status.replied_to": "בתגובה לחשבון {name}", "status.reply": "תגובה", "status.replyAll": "תגובה לשרשור", "status.report": "דיווח על @{name}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 82560c0405..77ee0c3303 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -12,7 +12,7 @@ "about.powered_by": "Social media decentralizzato alimentato da {mastodon}", "about.rules": "Regole del server", "account.account_note_header": "Nota", - "account.add_or_remove_from_list": "Aggiungi o togli dalle liste", + "account.add_or_remove_from_list": "Aggiungi o Rimuovi dalle liste", "account.badges.bot": "Bot", "account.badges.group": "Gruppo", "account.block": "Blocca @{name}", @@ -32,7 +32,7 @@ "account.follow": "Segui", "account.followers": "Follower", "account.followers.empty": "Ancora nessuno segue questo utente.", - "account.followers_counter": "{count, plural, one {{counter} Seguace} other {{counter} Seguaci}}", + "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}", "account.following": "Seguiti", "account.following_counter": "{count, plural, one {{counter} Seguiti} other {{counter} Seguiti}}", "account.follows.empty": "Questo utente non segue ancora nessuno.", @@ -559,7 +559,7 @@ "status.filter": "Filtra questo post", "status.filtered": "Filtrato", "status.hide": "Nascondi toot", - "status.history.created": "{name} ha creato {date}", + "status.history.created": "Creato da {name} il {date}", "status.history.edited": "Modificato da {name} il {date}", "status.load_more": "Carica altro", "status.media_hidden": "Media nascosto", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index eb83b3f3bd..dd4d7a0f97 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -623,7 +623,7 @@ "upload_error.limit": "アップロードできる上限を超えています。", "upload_error.poll": "アンケートではファイルをアップロードできません。", "upload_form.audio_description": "聴き取りが難しいユーザーへの説明", - "upload_form.description": "閲覧が難しいユーザーへの説明", + "upload_form.description": "視覚障害者向けの説明", "upload_form.description_missing": "説明を追加していません", "upload_form.edit": "編集", "upload_form.thumbnail": "サムネイルを変更", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index be85666a90..9aaa24f0f5 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -1,9 +1,9 @@ { - "about.blocks": "Moderated servers", - "about.contact": "Contact:", - "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", - "about.domain_blocks.no_reason_available": "Reason not available", - "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", + "about.blocks": "ನಿಯಂತ್ರಿತ ಸರ್ವರ್‌ಗಳು", + "about.contact": "ಸಂಪರ್ಕ:", + "about.disclaimer": "ಮಾಸ್ಟೋಡಾನ್ ಇದು ಉಚಿತ, ಮುಕ್ತ ತಂತ್ರಾಂಶ ಮತ್ತು Mastodon gGmbH ಇದರ ನೊಂದಾಯಿತ ಗುರುತು.", + "about.domain_blocks.no_reason_available": "ಕಾರಣ ಲಭ್ಯವಿಲ್ಲ", + "about.domain_blocks.preamble": "ಸಾಮಾನ್ಯವಾಗಿ ಮಾಸ್ಟೊಡಾನ್ ನಿಮಗೆ ಇತರೆ ಬಳಕೆದಾರರಿಂದ ಹಂಚಲ್ಪಟ್ಟ ವಿಷಯಗಳನ್ನು ನೋಡಲು ಮತ್ತು ಅವರೊಂದಿಗೆ ಸಂಭಾಷಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.\nಆದರೆ ಈ ಸರ್ವ್ರರ್‌ನಲ್ಲಿ ಅಳವಡಿಸಲಾದ ಕೆಲವು ವಿನಾಯಿತಿಗಳು ಇಂತಿವೆ.", "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", "about.domain_blocks.silenced.title": "Limited", "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index eb92e1bec9..5de66b148f 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -9,7 +9,7 @@ "about.domain_blocks.suspended.explanation": "이 서버의 어떤 데이터도 처리되거나, 저장 되거나 공유되지 않고, 이 서버의 어떤 유저와도 상호작용 하거나 대화할 수 없습니다.", "about.domain_blocks.suspended.title": "정지됨", "about.not_available": "이 정보는 이 서버에서 사용할 수 없습니다.", - "about.powered_by": "{mastodon}에 의해 구동되는 분산화된 소셜 미디어", + "about.powered_by": "{mastodon}으로 구동되는 분산 소셜 미디어", "about.rules": "서버 규칙", "account.account_note_header": "노트", "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 92e7e92670..0397cfeab8 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -191,8 +191,8 @@ "dismissable_banner.explore_statuses": "Ev şandiyên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", "dismissable_banner.explore_tags": "Ev hashtagên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", "dismissable_banner.public_timeline": "Ev şandiyên gelemperî herî dawî yên mirovên li ser vê û rajekarên din ên tora nenavendî ne ku ev rajekar pê tê nasîn.", - "embed.instructions": "Bi jêgirtina koda jêrîn vê şandiyê li ser malpera xwe bicîh bikin.", - "embed.preview": "Wa ye wê wusa xuya bike:", + "embed.instructions": "Bi jêgirtina koda jêrîn vê şandiyê li ser malpera xwe bi cih bike.", + "embed.preview": "Ew ê çawa xuya bibe li vir tê nîşandan:", "emoji_button.activity": "Çalakî", "emoji_button.clear": "Pak bike", "emoji_button.custom": "Kesanekirî", @@ -554,7 +554,7 @@ "status.edit": "Serrast bike", "status.edited": "Di {date} de hate serrastkirin", "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin", - "status.embed": "Hedimandî", + "status.embed": "Bi cih bike", "status.favourite": "Bijarte bike", "status.filter": "Vê şandiyê parzûn bike", "status.filtered": "Parzûnkirî", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 3322be0ca8..1566647b23 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -38,7 +38,7 @@ "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.", "account.follows_you": "Seko tev", "account.go_to_profile": "Doties uz profilu", - "account.hide_reblogs": "Paslēpt pastiprinātos ierakstus no lietotāja @{name}", + "account.hide_reblogs": "Slēpt @{name} izceltas ziņas", "account.joined_short": "Pievienojās", "account.languages": "Mainīt abonētās valodas", "account.link_verified_on": "Šīs saites piederība tika pārbaudīta {date}", @@ -290,7 +290,7 @@ "home.show_announcements": "Rādīt anonsus", "interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.", "interaction_modal.description.follow": "Ar Mastodon kontu tu vari sekot {name}, lai saņemtu viņu ziņas savā mājas plūsmā.", - "interaction_modal.description.reblog": "Ar Mastodon kontu tu vari pastiprināt šo ierakstu, lai kopīgotu to ar saviem sekotājiem.", + "interaction_modal.description.reblog": "Izmantojot kontu Mastodon, tu vari izcelt šo ziņu, lai kopīgotu to ar saviem sekotājiem.", "interaction_modal.description.reply": "Ar Mastodon kontu tu vari atbildēt uz šo ziņu.", "interaction_modal.on_another_server": "Citā serverī", "interaction_modal.on_this_server": "Šajā serverī", @@ -453,9 +453,9 @@ "privacy.direct.short": "Tikai minētie cilvēki", "privacy.private.long": "Redzama tikai sekotājiem", "privacy.private.short": "Tikai sekotājiem", - "privacy.public.long": "Redzama visiem", + "privacy.public.long": "Redzams visiem", "privacy.public.short": "Publiska", - "privacy.unlisted.long": "Redzama visiem, bet izslēgta no satura atklāšanas funkcijām", + "privacy.unlisted.long": "Redzams visiem, bet izslēgts no satura atklāšanas funkcijām", "privacy.unlisted.short": "Nerindota", "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}", "privacy_policy.title": "Privātuma politika", @@ -545,8 +545,8 @@ "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē", "status.block": "Bloķēt @{name}", "status.bookmark": "Grāmatzīme", - "status.cancel_reblog_private": "Noņemt pastiprinājumu", - "status.cannot_reblog": "Nevar pastiprināt šo ierakstu", + "status.cancel_reblog_private": "Neizcelt", + "status.cannot_reblog": "Šo ziņu nevar izcelt", "status.copy": "Kopēt saiti uz ziņu", "status.delete": "Dzēst", "status.detailed_status": "Detalizēts sarunas skats", @@ -562,7 +562,7 @@ "status.history.created": "{name} izveidoja {date}", "status.history.edited": "{name} rediģēja {date}", "status.load_more": "Ielādēt vairāk", - "status.media_hidden": "Medijs ir paslēpts", + "status.media_hidden": "Multivides ir paslēpts", "status.mention": "Pieminēt @{name}", "status.more": "Vairāk", "status.mute": "Apklusināt @{name}", @@ -635,7 +635,7 @@ "upload_modal.choose_image": "Izvēlēties attēlu", "upload_modal.description_placeholder": "Raibais runcis Rīgā ratu rumbā rūc", "upload_modal.detect_text": "Noteikt tekstu no attēla", - "upload_modal.edit_media": "Rediģēt mediju", + "upload_modal.edit_media": "Rediģēt multividi", "upload_modal.hint": "Noklikšķini vai velc apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.", "upload_modal.preparing_ocr": "Sagatavo OCR…", "upload_modal.preview_label": "Priekšskatīt ({ratio})", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 1693636020..b2b9adbc40 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -139,9 +139,9 @@ "compose_form.poll.switch_to_multiple": "Endre rundspørjinga til å tillate fleire val", "compose_form.poll.switch_to_single": "Endre rundspørjinga til å tillate berre eitt val", "compose_form.publish": "Legg ut", - "compose_form.publish_form": "Publisér", + "compose_form.publish_form": "Legg ut", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Lagre endringar", + "compose_form.save_changes": "Gøym", "compose_form.sensitive.hide": "{count, plural, one {Marker mediet som ømtolig} other {Marker media som ømtolige}}", "compose_form.sensitive.marked": "{count, plural, one {Mediet er markert som ømtolig} other {Media er markerte som ømtolige}}", "compose_form.sensitive.unmarked": "{count, plural, one {Mediet er ikkje markert som ømtolig} other {Media er ikkje markerte som ømtolige}}", @@ -270,7 +270,7 @@ "footer.keyboard_shortcuts": "Snøggtastar", "footer.privacy_policy": "Personvernsreglar", "footer.source_code": "Vis kjeldekode", - "generic.saved": "Lagra", + "generic.saved": "Gøymt", "getting_started.heading": "Kom i gang", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", @@ -595,7 +595,7 @@ "status.unmute_conversation": "Opphev målbinding av samtalen", "status.unpin": "Løys frå profil", "subscribed_languages.lead": "Kun innlegg på valde språk vil bli dukke opp i heimestraumen din og i listene dine etter denne endringa. For å motta innlegg på alle språk, la vere å velje nokon.", - "subscribed_languages.save": "Lagre endringar", + "subscribed_languages.save": "Gøym", "subscribed_languages.target": "Endre abonnerte språk for {target}", "suggestions.dismiss": "Avslå forslag", "suggestions.header": "Du er kanskje interessert i…", @@ -623,7 +623,7 @@ "upload_error.limit": "Du har gått over opplastingsgrensa.", "upload_error.poll": "Filopplasting er ikkje lov for rundspørjingar.", "upload_form.audio_description": "Skildre for dei med nedsett høyrsel", - "upload_form.description": "Skildre for dei om har redusert syn", + "upload_form.description": "Skildre for blinde og svaksynte", "upload_form.description_missing": "Inga skildring er lagt til", "upload_form.edit": "Rediger", "upload_form.thumbnail": "Bytt miniatyrbilete", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index cff5cb4de1..b5f4af83cb 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -1,7 +1,7 @@ { - "about.blocks": "Moderated servers", - "about.contact": "Contact:", - "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", + "about.blocks": "Siū kuán-tsè ê su-hāu-khì", + "about.contact": "Liân-lo̍k:", + "about.disclaimer": "Ling-khí-tshiūnn sī tsi̍t-ê khai-guân nńg-thé,i ê siong-phiau sī Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Reason not available", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", @@ -44,7 +44,7 @@ "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": "Mûi-thé", - "account.mention": "Mention @{name}", + "account.mention": "Thê-khí @{name}", "account.moved_to": "{name} has indicated that their new account is now:", "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index bae66ac698..8b06c69435 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -473,7 +473,7 @@ "relative_time.minutes": "{number}х", "relative_time.seconds": "{number}с", "relative_time.today": "сьогодні", - "reply_indicator.cancel": "Відмінити", + "reply_indicator.cancel": "Скасувати", "report.block": "Заблокувати", "report.block_explanation": "Ви не будете бачити дописи цього користувача, а вони не зможуть бачити ваші дописи або підписуватися на вас. Вони будуть бачити, що ви їх заблокували.", "report.categories.other": "Інше", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 05608928f5..1421e4bfb8 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -10,7 +10,7 @@ "about.domain_blocks.suspended.title": "Vô hiệu hóa", "about.not_available": "Máy chủ này chưa cung cấp thông tin.", "about.powered_by": "Mạng xã hội liên hợp {mastodon}", - "about.rules": "Quy tắc máy chủ", + "about.rules": "Nội quy máy chủ", "account.account_note_header": "Ghi chú", "account.add_or_remove_from_list": "Thêm hoặc xóa khỏi danh sách", "account.badges.bot": "Bot", @@ -21,7 +21,7 @@ "account.browse_more_on_origin_server": "Truy cập trang của người này", "account.cancel_follow_request": "Thu hồi yêu cầu theo dõi", "account.direct": "Nhắn riêng @{name}", - "account.disable_notifications": "Tắt thông báo khi @{name} đăng bài viết", + "account.disable_notifications": "Tắt thông báo khi @{name} đăng tút", "account.domain_blocked": "Tên miền đã chặn", "account.edit_profile": "Sửa hồ sơ", "account.enable_notifications": "Nhận thông báo khi @{name} đăng tút", @@ -399,7 +399,7 @@ "notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc", "notification.poll": "Cuộc bình chọn đã kết thúc", "notification.reblog": "{name} đăng lại tút của bạn", - "notification.status": "{name} vừa đăng", + "notification.status": "{name} đăng tút mới", "notification.update": "{name} đã viết lại một tút", "notifications.clear": "Xóa hết thông báo", "notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?", @@ -478,7 +478,7 @@ "report.block_explanation": "Bạn sẽ không thấy tút của họ nữa. Họ cũng không thể theo dõi hoặc thấy tút của bạn. Họ sẽ biết là họ đã bị chặn.", "report.categories.other": "Khác", "report.categories.spam": "Spam", - "report.categories.violation": "Vi phạm quy tắc máy chủ", + "report.categories.violation": "Vi phạm nội quy máy chủ", "report.category.subtitle": "Chọn mục gần khớp nhất", "report.category.title": "Có vấn đề gì với {type}", "report.category.title_account": "người này", @@ -497,10 +497,10 @@ "report.reasons.other_description": "Vấn đề không nằm trong những mục trên", "report.reasons.spam": "Đây là spam", "report.reasons.spam_description": "Liên kết độc hại, tạo tương tác giả hoặc trả lời lặp đi lặp lại", - "report.reasons.violation": "Vi phạm quy tắc máy chủ", - "report.reasons.violation_description": "Bạn nhận thấy nó vi phạm quy tắc máy chủ", + "report.reasons.violation": "Vi phạm nội quy máy chủ", + "report.reasons.violation_description": "Bạn nhận thấy nó vi phạm nội quy máy chủ", "report.rules.subtitle": "Chọn tất cả những gì phù hợp", - "report.rules.title": "Vi phạm quy tắc nào?", + "report.rules.title": "Vi phạm nội quy nào?", "report.statuses.subtitle": "Chọn tất cả những gì phù hợp", "report.statuses.title": "Bạn muốn gửi tút nào kèm báo cáo này?", "report.submit": "Gửi đi", @@ -514,7 +514,7 @@ "report_notification.attached_statuses": "{count, plural, other {{count} tút}} đính kèm", "report_notification.categories.other": "Khác", "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Vi phạm quy tắc", + "report_notification.categories.violation": "Vi phạm nội quy", "report_notification.open": "Mở báo cáo", "search.placeholder": "Tìm kiếm", "search.search_or_paste": "Tìm kiếm hoặc nhập URL", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index e03c891ef1..9ddff5ac74 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -208,7 +208,7 @@ "emoji_button.search_results": "搜索结果", "emoji_button.symbols": "符号", "emoji_button.travel": "旅行和地点", - "empty_column.account_suspended": "账户已停用", + "empty_column.account_suspended": "账户已被停用", "empty_column.account_timeline": "这里没有嘟文!", "empty_column.account_unavailable": "个人资料不可用", "empty_column.blocks": "你还未屏蔽任何用户。", diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml index 07c0d8bb47..ac58c22686 100644 --- a/config/locales/activerecord.bg.yml +++ b/config/locales/activerecord.bg.yml @@ -47,7 +47,7 @@ bg: user_role: attributes: permissions_as_keys: - dangerous: включва разрешения, които не са безопасни за базова роля + dangerous: включва разрешения, които не са безопасни за базовата роля elevated: не може да включва разрешения, които настоящата ви роля не притежава own_role: не може да се промени с текущата ви роля position: diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml index 79db38a29f..607dcd1ea5 100644 --- a/config/locales/activerecord.ca.yml +++ b/config/locales/activerecord.ca.yml @@ -7,7 +7,7 @@ ca: options: Opcions user: agreement: Acord de servei - email: Adreça de correu-e + email: Adreça de correu electrònic locale: Idioma password: Contrasenya user/account: diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml index 53a04e7000..45de751feb 100644 --- a/config/locales/activerecord.de.yml +++ b/config/locales/activerecord.de.yml @@ -11,7 +11,7 @@ de: locale: Sprache password: Passwort user/account: - username: Benutzername + username: Profilname user/invite_request: text: Grund errors: diff --git a/config/locales/activerecord.io.yml b/config/locales/activerecord.io.yml index 5c809ce2e1..1adc664cd7 100644 --- a/config/locales/activerecord.io.yml +++ b/config/locales/activerecord.io.yml @@ -29,6 +29,10 @@ io: attributes: website: invalid: ne esas valida URL + import: + attributes: + data: + malformed: esas misformaca status: attributes: reblog: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 044e20e5f6..2bf9bcf26f 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -121,6 +121,8 @@ ar: redownloaded_msg: تم تحديث ملف %{username} التعريفي من الأصل reject: ارفض rejected_msg: تم رفض تطبيق تسجيل %{username} بنجاح + remote_suspension_irreversible: تم حذف بيانات هذا الحساب بشكل لا رجعة فيه. + remote_suspension_reversible_hint_html: تم تعليق الحساب على الخادم الخاص بهم، وسيتم إزالة البيانات بالكامل على %{date}. حتى ذلك الحين، يمكن للخادم آخر استعادة هذا الحساب دون أي تأثيرات سيئة. إذا كنت ترغب في إزالة جميع بيانات الحساب على الفور، يمكنك فعل ذلك أدناه. remove_avatar: حذف الصورة الرمزية remove_header: حذف الرأسية removed_avatar_msg: تمت إزالة صورة %{username} الرمزية بنجاح @@ -672,7 +674,13 @@ ar: manage_user_access_description: يسمح للمستخدمين بتعطيل المصادقة الثنائية المستخدمين الآخرين، تغيير عنوان البريد الإلكتروني الخاص بهم، وإعادة تعيين كلمة المرور الخاصة بهم manage_users: إدارة المستخدمين manage_users_description: يسمح للمستخدمين بعرض تفاصيل المستخدمين الآخرين وتنفيذ إجراءات الإشراف ضدهم + manage_webhooks: إدارة الـWebhooks + manage_webhooks_description: يسمح للمستخدمين بإعداد Webhooks للأحداث الإدارية + view_audit_log: عرض سجل العمليات + view_audit_log_description: يسمح للمستخدمين برؤية سجل الإجراءات الإدارية على الخادم view_dashboard: عرض لوحة التحكم + view_dashboard_description: يسمح للمستخدمين بالوصول إلى لوحة التحكم وعدة مقاييس + view_devops: DevOps view_devops_description: السماح للمستخدمين بالوصول إلى لوحة Sidekiq و pgHero title: الأدوار rules: @@ -685,19 +693,24 @@ ar: settings: about: manage_rules: إدارة قواعد الخادم + preamble: قدم معلومات متعمقة عن كيفية إدارة عمل الخادم، والإشراف، والتمويل. + rules_hint: هناك منطقة مخصصة للقواعد التي يتوقع من المستخدمين التقيد بها. title: عن appearance: preamble: تخصيص واجهة الويب لماستدون. title: المظهر branding: + preamble: العلامة التجارية للخادم الخاص بك تميزه عن الخوادم الأخرى في الشبكة. يمكن عرض هذه المعلومات عبر مجموعة متنوعة من البيئات، مثل واجهة الويب لماستدون, التطبيقات الأصلية، في معاينات الرابط على مواقع الويب الأخرى وداخل تطبيقات الرسائل، وما إلى ذلك. ولهذا السبب، من الأفضل إبقاء هذه المعلومات واضحة وقصيرة وموجزة. title: العلامة content_retention: + preamble: التحكم في كيفية تخزين المحتوى الذي ينشئه المستخدم في ماستدون. title: الاحتفاظ بالمحتوى default_noindex: desc_html: يؤثر على جميع المستخدمين الذين لم يغيروا هذا الإعداد بأنفسهم title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين discovery: follow_recommendations: اتبع التوصيات + preamble: تصفح المحتوى المثير للاهتمام أمر مهم في إستقبال المستخدمين الجدد الذين قد لا يعرفون أي شخص ماستدون. التحكم في كيفية عمل ميزات الاكتشاف المختلفة على الخادم الخاص بك. profile_directory: دليل الصفحات التعريفية public_timelines: الخيوط الزمنية العامة title: الاستكشاف @@ -747,12 +760,21 @@ ar: actions: delete_statuses: حَذَفَ %{name} رسائل %{target} disable: جَمّدَ %{name} حساب %{target} + mark_statuses_as_sensitive: وَضَعَ %{name} علامة على منشورات %{target} على أنها حساسة + none: قام %{name} بإرسال تحذير إلى %{target} + sensitive: قام %{name} بوضع علامة حساس على حساب %{target} + silence: قام %{name} بكتم حساب %{target} suspend: قام %{name} بتعليق حساب %{target} appeal_approved: طُعِن فيه appeal_pending: طعن قيد المراجعة system_checks: database_schema_check: message_html: هناك عمليات هجرة معلقة لقواعد البيانات. يرجى تشغيلها لضمان تصرف التطبيق كما هو متوقع + elasticsearch_running_check: + message_html: تعذر الاتصال بـElasticsearch. الرجاء التحقق من أنه قيد التشغيل، أو تعطيل البحث عن النص الكامل + elasticsearch_version_check: + message_html: 'إصدار Elasticsearch غير المتوافق: %{value}' + version_comparison: يعمل Elasticsearch بإصدار %{running_version} بينما %{required_version} مطلوب rules_check: action: إدارة قواعد الخادم message_html: لم تقم بتحديد أي قواعد خادم. @@ -769,20 +791,30 @@ ar: links: allow: السماح بالرابط allow_provider: السماح للناشر + description_html: هذه هي الروابط التي يتم حاليا مشاركتها بشكل كبير عن طريق الحسابات التي يرى الخادم الخاص بك المشاركات منها. يمكن أن يساعد مستخدميك في معرفة ما يحدث في العالم. لا تعرض روابط علنا حتى توافق على الناشر. يمكنك أيضًا السماح أو رفض بالروابط فردياً. disallow: رفض الرابط disallow_provider: عدم السماح للناشر + no_link_selected: لم يطرأ أي تغيير على أي رابط بما أنه لم يتم اختيار أي واحد + publishers: + no_publisher_selected: لم يطرأ أي تغيير على أي ناشر بما أنه لم يتم اختيار أي واحد title: الروابط المتداولة usage_comparison: تمت مشاركته %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس only_allowed: من سُمِحَ لهم فقط pending_review: في انتظار المراجعة preview_card_providers: + allowed: الروابط من هذا الناشر يمكن أن تتداول + description_html: هذه هي النطاقات التي غالبا ما يتم مشاركة الروابط منها على الخادم الخاص بك. لن تتجه الروابط علنا ما لم تتم الموافقة على نطاق الرابط. الموافقة (أو الرفض) الخاص بك يمتد إلى النطاقات الفرعية. + rejected: الروابط من هذا الناشر لن تتداول title: الناشرون rejected: مرفوض statuses: allow: السماح بالمنشور allow_account: السماح للناشر + description_html: هذه هي المنشورات التي يعرفها خادمك التي يتم حاليا مشاركتها وتفضيلها كثيرا في الوقت الراهن. يمكن أن تساعد المستخدمين الجدد والعائدين للعثور على المزيد من الأشخاص للمتابعة. ولا تُعرض أي منشورات علناً حتى توافق على كاتبها، ويسمح الكاتب باقتراح حسابه للآخرين. يمكنك أيضًا السماح أو الرفض بالمنشورات فردياً. disallow: رفض المنشور disallow_account: رفض الناشر + no_status_selected: لم يتم تغيير أي منشورات متداوله حيث لم يتم اختيار أي منهم + not_discoverable: الكاتب لم يختار أن يكون قابلا للاكتشاف title: المنشورات المتداولة tags: current_score: التقييم الحالي %{score} @@ -792,7 +824,9 @@ ar: tag_servers_dimension: الخوادم الأكثر نشاطا tag_servers_measure: خوادم أخرى tag_uses_measure: إجمالي الاستخدامات + description_html: هذه الوسوم التي تظهر حاليا في الكثير من المنشورات التي يراها الخادم الخاص بك. يمكن أن تساعد مستخدميك في معرفة ما يتحدث عنه الناس بكثرة حالياً. لا يتم عرض أي وسوم حتى توافق عليها. listable: يمكن اقتراحه + no_tag_selected: لم يطرأ أي تغيير على أي وسم بما أنه لم يتم اختيار أي واحد not_listable: لن يتم اقتراحه not_trendable: لن يظهر في المتداولة not_usable: لا يمكن استخدامه @@ -813,15 +847,19 @@ ar: webhooks: add_new: إضافة نقطة نهاية delete: حذف + description_html: "webhook يمكّن ماستدون من إرسال إشعارات في الوقت الحقيقي حول الأحداث المختارة إلى التطبيق الخاص بك، حتى يمكن لتطبيقك تشغيل ردود الفعل تلقائياً." disable: تعطيل disabled: معطَّل edit: تعديل نقطة النهاية + empty: ليس لديك أي نقاط نهاية ويب هوك تم تكوينها بعد. enable: تشغيل enabled: نشِط + events: الأحداث new: رابط ويب جديد rotate_secret: تغيير الرمز secret: رمز تسجيل الدخول status: الحالة + title: الويب هوك webhook: رابط ويب admin_mailer: new_appeal: @@ -851,7 +889,9 @@ ar: title: المنشورات الشائعة new_trending_tags: no_approved_tags: لا توجد حاليًا هاشات شائعة موافق عليها. + requirements: 'يمكن لأي من هؤلاء المرشحين أن يتجاوز علامة #%{rank} من الوسوم الموافق عليها، وهي حاليا #%{lowest_tag_name} مع نتيجة %{lowest_tag_score}.' title: الوسوم المتداولة + subject: تداولات جديدة في انتظار المراجعة على %{instance} aliases: add_new: أنشئ كُنية created_msg: تم إنشاء الكُنية الجديدة بنجاح. يمكنكم الآن الشروع في الإنتقال مِن حسابكم القديم. @@ -915,6 +955,7 @@ ar: resend_confirmation: إعادة إرسال تعليمات التأكيد reset_password: إعادة تعيين كلمة المرور rules: + preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}. title: بعض القواعد الأساسية. security: الأمان set_new_password: إدخال كلمة مرور جديدة @@ -922,7 +963,11 @@ ar: email_below_hint_html: إذا كان عنوان البريد الإلكتروني التالي غير صحيح، فيمكنك تغييره هنا واستلام بريد إلكتروني جديد للتأكيد. email_settings_hint_html: لقد تم إرسال رسالة بريد إلكترونية للتأكيد إلى %{email}. إن كان عنوان البريد الإلكتروني غير صحيح ، يمكنك تغييره في إعدادات حسابك. title: الضبط + sign_in: + preamble_html: قم بتسجيل الدخول باستخدام بيانات الاعتماد الخاصة بك علي %{domain} إذا تم استضافة حسابك على خادم مختلف، فلن تتمكن من تسجيل الدخول هنا. + title: تسجيل الدخول إلى %{domain} sign_up: + preamble: مع حساب على خادم ماستدون هذا، ستتمكن من متابعة أي شخص آخر على الشبكة، بغض النظر عن المكان الذي يستضيف فيه حسابهم. title: دعنا نجهّز %{domain}. status: account_status: حالة الحساب @@ -930,6 +975,7 @@ ar: functional: حسابك يعمل بشكل كامل. pending: إن طلبك قيد المراجعة من قبل فريقنا. قد يستغرق هذا بعض الوقت. سوف تتلقى بريدا إلكترونيا إذا تمت الموافقة على طلبك. redirecting_to: حسابك غير نشط لأنه تم تحويله حاليا إلى %{acct}. + view_strikes: عرض السجلات السابقة ضد حسابك too_fast: تم إرسال النموذج بسرعة كبيرة، حاول مرة أخرى. use_security_key: استخدام مفتاح الأمان authorize_follow: @@ -992,6 +1038,7 @@ ar: strikes: action_taken: الإجراء المتخذ appeal: طعن + appeal_approved: تم استئناف هذا السجل بنجاح ولم يعد صالحًا appeal_rejected: رُفِض الطعن appeal_submitted_at: طعن أرسِل في appealed_msg: تم تقديم طعنك. إذا تمت الموافقة عليه، سيتم إبلاغك. @@ -1000,14 +1047,18 @@ ar: approve_appeal: الموافقة على الطعن associated_report: التقرير المتربط created_at: بتاريخ + description_html: هذه هي الإجراءات المتخذة ضد حسابك والتحذيرات التي تم إرسالها إليك من قبل موظفي %{instance}. recipient: موجّه إلى reject_appeal: رفض الطعن status: 'المنشور #%{id}' + status_removed: تمت إزالة المنشور بالفعل من النظام title: "%{action} في %{date}" title_actions: delete_statuses: إزالة منشور disable: تجميد للحساب + mark_statuses_as_sensitive: تصنيف المنشورات كحساسة none: تحذير + sensitive: تصنيف الحساب كحساس silence: الحد من الحساب suspend: تعليق للحساب your_appeal_approved: تمت الموافقة على طعنك @@ -1064,10 +1115,13 @@ ar: add_keyword: إضافة كلمة مفتاحية keywords: الكلمات المفتاحية statuses: المنشورات الفردية + statuses_hint_html: ينطبق هذا الفلتر على اختيار المنشورات فردياً بغض النظر عما إذا كانت تتطابق مع الكلمات الرئيسية أدناه. مراجعة أو إزالة المنشورات من الفلتر. title: تعديل عامل التصفية errors: + deprecated_api_multiple_keywords: لا يمكن تغيير هذه المعلمات من هذا التطبيق لأنها تنطبق على أكثر من كلمة فلتر واحدة. استخدم تطبيقاً أحدث أو واجهة ويب. invalid_context: لم تقم بتحديد أي مجال أو أنّ المجال غير صالح index: + contexts: فلترات في %{contexts} delete: إزالة empty: ليست لديك أية عوامل تصفية. expires_in: تنتهي مدة صلاحيتها في غضون %{distance} @@ -1078,7 +1132,10 @@ ar: title: إضافة عامل تصفية جديد statuses: back_to_filter: العودة إلى عامل التصفية + batch: + remove: إزالة من الفلتر index: + hint: ينطبق الفلتر هذا على اختيار المنشورات الفردية بغض النظر عن المعايير الأخرى. يمكنك إضافة المزيد من المنشورات إلى هذا الفلتر من واجهة الويب. title: الرسائل المصفّاة footer: trending_now: المتداولة الآن @@ -1087,6 +1144,7 @@ ar: changes_saved_msg: تم حفظ التعديلات بنجاح! copy: نسخ delete: احذف + deselect: إلغاء تحديد الكل none: لا شيء order_by: ترتيب بحسب save_changes: حفظ التغييرات @@ -1102,6 +1160,7 @@ ar: invalid_markup: 'يحتوي على علامة HTML غير صالحة: %{error}' imports: errors: + invalid_csv_file: 'ملف CSV غير صالح. خطأ: %{error}' over_rows_processing_limit: يحتوي على أكثر من %{count} صف modes: merge: دمج @@ -1199,8 +1258,12 @@ ar: carry_blocks_over_text: انتقل هذا المستخدم من %{acct}، الذي حَظرته أنت. carry_mutes_over_text: انتقل هذا المستخدم من %{acct}، الذي كتَمتَه أنت. copy_account_note_text: 'انتقل هذا المستخدم من %{acct}، إليك ملاحظاتك السابقة عنه:' + navigation: + toggle_menu: أظهار/أخفاء القائمة notification_mailer: admin: + report: + subject: "%{name} قام بإرسال تقرير" sign_up: subject: أنشأ %{name} حسابًا favourite: @@ -1299,10 +1362,14 @@ ar: status: حالة الحساب remote_follow: missing_resource: تعذر العثور على رابط التحويل المطلوب الخاص بحسابك + reports: + errors: + invalid_rules: لا يشير إلى قواعد حقيقية rss: content_warning: 'تحذير عن المحتوى:' descriptions: account: منشورات للعلن مِن @%{acct} + tag: 'المنشورات العامة الموسومة #%{hashtag}' scheduled_statuses: over_daily_limit: لقد تجاوزتَ حد الـ %{limit} منشورات مُبَرمَجة مسموح بها اليوم over_total_limit: لقد بلغت حد الـ %{limit} مِن المنشورات المبرمَجة @@ -1335,6 +1402,7 @@ ar: platforms: adobe_air: أدوبي إيير android: أندرويد + blackberry: بلاك بيري chrome_os: نظام كروم أواس firefox_os: نظام فايرفكس أواس ios: نظام آي أواس @@ -1516,9 +1584,11 @@ ar: user_mailer: appeal_approved: action: انتقل إلى حسابك + explanation: تمت الموافقة على استئناف السجل ضد حسابك في %{strike_date} الذي قدمته في %{appeal_date}. حسابك مرة أخرى في حالة جيدة. subject: تم قبول طعنك الذي قدمته بتاريخ %{date} title: تم قبول طعنك appeal_rejected: + explanation: تم رفض استئناف السجل ضد حسابك في %{strike_date} الذي قدمته في %{appeal_date}. subject: تم رفض طعنك الذي قدمته بتاريخ %{date} title: رُفض الاستئناف backup_ready: @@ -1529,6 +1599,7 @@ ar: change_password: غيّر كلمتك السرية details: 'فيما يلي تفاصيل تسجيل الدخول:' explanation: لقد اكتشفنا تسجيل دخول إلى حسابك من عنوان IP جديد. + further_actions_html: إذا لم يكن هذا أنت، نوصي لك %{action} على الفور وتمكين المصادقة ذات العاملين للحفاظ على أمان حسابك. subject: تم النفاذ عبر حسابك من خلال عنوان إيبي جديد title: تسجيل دخول جديد warning: @@ -1540,6 +1611,7 @@ ar: explanation: delete_statuses: لوحظ أنّ بعض منشوراتك تخالف واحدة أو أكثر من المبادئ التوجيهية للمجتمع وقد تم إزالتها إثر ذلك من قِبل مشرفي %{instance}. disable: تم إيقاف حسابك، لكن ملفك الشخصي وكافة بياناتك لا زالت سليمة. يمكنك طلب نسخة احتياطية من بياناتك وتغيير إعدادات حسابك أو حذفه. + mark_statuses_as_sensitive: بعض المنشورات الخاصة بك تم تمييزها على أنها حساسة من قبل مشرفي %{instance}. وهذا يعني أن الناس سيحتاجون إلى النقر على الوسائط في المنشورات قبل عرضها. يمكنك تصنيف الوسائط كحساسة عند نشرها في المستقبل. sensitive: من الآن فصاعدا، سيتم وضع علامة على جميع ملفات الوسائط التي يتم تحميلها على أنها حساسة وستكون مخفية خلف تحذير يُنقر. silence: لا يزال بإمكانك استخدام حسابك ولكن فقط الأشخاص الذين يتابعونك فقط يمكنهم رؤية منشوراتك على هذا الخادم، وقد يتم استبعادك من ميزات الاكتشاف المختلفة. قد يتبعك آخرون على كل حال يدوياً. suspend: لم يعد بإمكانك استخدام حسابك، والوصول إلى ملفك الشخصي والبيانات الأخرى. لا يزال بإمكانك تسجيل الدخول لطلب نسخة احتياطية من بياناتك حتى تتم إزالة البيانات بالكامل في غضون 30 يوما. ولكننا سنحتفظ ببعض البيانات الأساسية لمنعك من التهرب من عقوبة تعليق الحساب. @@ -1548,19 +1620,25 @@ ar: subject: delete_statuses: تم إزالة منشوراتك على %{acct} disable: تم تجميد حسابك %{acct} + mark_statuses_as_sensitive: منشوراتك في %{acct} تم تصنيفها على أنها حساسة none: تحذير إلى %{acct} + sensitive: منشوراتك في %{acct} سيتم تمييزها على أنها حساسة من الآن فصاعدا silence: إنّ حسابك %{acct} محدود suspend: لقد تم تعليق حسابك %{acct} title: delete_statuses: منشورات محذوفة disable: الحساب مُجمَّد + mark_statuses_as_sensitive: منشورات مصنفه كحساسة none: تحذير + sensitive: حسابات مصنفه كحساسة silence: الحساب محدود suspend: الحساب مُعلَّق welcome: edit_profile_action: تهيئة الملف التعريفي + edit_profile_step: يمكنك تخصيص ملفك الشخصي عن طريق رفع صورة ملفك الشخصي, تغيير اسم العرض الخاص بك والمزيد. يمكنك اختيار مراجعة المتابعين الجدد قبل السماح لهم بمتابعتك. explanation: ها هي بعض النصائح قبل بداية الاستخدام final_action: اشرَع في النشر + final_step: 'ابدأ في النشر! حتى بدون متابعين، منشوراتك العامة قد يشاهدها آخرون، على سبيل المثال في التوقيت المحلي أو في الوسوم. قد ترغب في تقديم نفسك على وسم #introductions.' full_handle: عنوانك الكامل full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى. subject: أهلًا بك على ماستدون diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 53e806b60d..0a85b4c9a4 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -72,6 +72,7 @@ ast: enable_custom_emoji_html: "%{name} activó'l fustaxe «%{target}»" reject_user_html: "%{name} refugó'l rexistru de: %{target}" remove_avatar_user_html: "%{name} quitó l'avatar de: %{target}" + unblock_email_account_html: "%{name} desbloquió la direición de corréu electrónicu de: %{target}" update_announcement_html: "%{name} anovó l'anunciu «%{target}»" update_custom_emoji_html: "%{name} anovó'l fustaxe «%{target}»" update_status_html: "%{name} anovó l'artículu de: %{target}" @@ -159,6 +160,8 @@ ast: no_file: Nun se seleicionó nengún ficheru follow_recommendations: language: Pa la llingua + status: Estáu + title: Recomendación de cuentes instances: availability: no_failures_recorded: Nun se rexistró nengún fallu. @@ -311,6 +314,7 @@ ast: statuses: title: Artículos en tendencia tags: + current_score: 'Puntuación total: %{score}' dashboard: tag_accounts_measure: usos únicos listable: Pue suxerise @@ -408,6 +412,7 @@ ast: web: Dir a la web challenge: hint_html: "Conseyu: nun vamos volver pidite la contraseña hasta dientro d'una hora." + prompt: Confirma la contraseña pa siguir crypto: errors: invalid_key: nun ye una clave ed25519 o curve25519 válida diff --git a/config/locales/bg.yml b/config/locales/bg.yml index c37c0bcbf5..5d0df51070 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -29,7 +29,7 @@ bg: account_moderation_notes: create: Оставяне на бележка created_msg: Бележката за модерация е създадена успешно! - destroyed_msg: Бележката за модерация е успешно унищожена! + destroyed_msg: Успешно унищожена бележка за модериране! accounts: add_email_domain_block: Блокиране на домейн на имейл approve: Одобряване @@ -104,10 +104,10 @@ bg: not_subscribed: Без абонамент pending: Изчаква преглед perform_full_suspension: Спиране - previous_strikes: Предишни провинения + previous_strikes: Предишни нарушения previous_strikes_description_html: - one: Този акаунт има едно провинение. - other: Този акунт има %{count} провинения. + one: Този акаунт има едно нарушение. + other: Този акунт има %{count} нарушения. promote: Повишаване protocol: Протокол public: Публично @@ -115,7 +115,7 @@ bg: redownload: Опресняване на профил redownloaded_msg: Успешно опреснен профил на %{username} от източника reject: Отхвърляне - rejected_msg: Успешно отхвърлена заявка за регистрация на %{username} + rejected_msg: Успешно отхвърлена заявка за регистрация на приложението на %{username} remote_suspension_irreversible: Данните за този акаунт са изтрити безвъзвратно. remote_suspension_reversible_hint_html: Акаунтът е бил преустановен на своя сървър и данните ще бъдат напълно премахнати на %{date}. Дотогава отдалеченият сървър може да възстанови този акаунт без щети. Ако желаете да премахнете всички данни за акаунта незабавно, можете да го сторите по-долу. remove_avatar: Премахване на аватар @@ -123,9 +123,9 @@ bg: removed_avatar_msg: Успешно премахнат образ на аватара на %{username} removed_header_msg: Успешно премахнат образ на заглавката на %{username} resend_confirmation: - already_confirmed: Този потребител вече е потвърден - send: Изпращане пак на е-писмо за потвърждаване - success: Успешно изпращане на имейла за потвърждение! + already_confirmed: Потребителят вече е потвърден + send: Повторно изпращане на имейл за потвърждение + success: Успешно изпратено е-писмо за потвърждение! reset: Нулиране reset_password: Нулиране на паролата resubscribe: Абониране пак @@ -137,7 +137,7 @@ bg: only_password: Само парола password_and_2fa: Парола и двуфакторно удостоверяване sensitive: Деликатен - sensitized: Отбелязано като деликатно съдържание + sensitized: Отбелязано като деликатно shared_inbox_url: URL адрес на споделена входяща кутия show: created_reports: Докладвания @@ -153,7 +153,7 @@ bg: suspension_reversible_hint_html: Акаунтът е спрян и данните от него ще бъдат напълно премахнати на %{date}. До тогава акаунтът може да се възстанови без лоши ефекти. Ако желаете, по-долу може да премахнете всички данни от акаунта незабавно. title: Акаунти unblock_email: Отблокиране на адреса на имейла - unblocked_email_msg: Успешно разблокиране на имейл адреса на %{username} + unblocked_email_msg: Успешно отблокиран адрес на имейла на %{username} unconfirmed_email: Непотвърден имейл undo_sensitized: Нeчувствителен undo_silenced: Отмяна на ограничението @@ -168,15 +168,15 @@ bg: whitelisted: Позволено за федерацията action_logs: action_types: - approve_appeal: Одобри иска + approve_appeal: Одобряване на обжалването approve_user: Одобряване на потребител - assigned_to_self_report: Назначи отчет + assigned_to_self_report: Назначете доклад change_email_user: Промяна на имейл за потребител change_role_user: Промяна на роля за потребител confirm_user: Потвърждаване на потребител create_account_warning: Създаване на предупреждение create_announcement: Създаване на оповестяване - create_canonical_email_block: Създаване на имейл блокировка + create_canonical_email_block: Създаване на блокировка на имейл create_custom_emoji: Създаване на персонализирано емоджи create_domain_allow: Създаване на позволение за домейна create_domain_block: Създаване на блокиране за домейна @@ -186,98 +186,98 @@ bg: create_user_role: Създаване на роля demote_user: Понижаване на потребител destroy_announcement: Изтриване на оповестяване - destroy_canonical_email_block: Изтриване на имейл блокировка + destroy_canonical_email_block: Изтриване на блокировка за имейл destroy_custom_emoji: Изтриване на персонализирано емоджи destroy_domain_allow: Изтриване на позволението за домейн destroy_domain_block: Изтриване на блокирането за домейна - destroy_email_domain_block: Изтриване на блокирането за имейл домейна - destroy_instance: Прочистване на домейна + destroy_email_domain_block: Изтриване на блокирането за домейн на имейла + destroy_instance: Чистка на домейна destroy_ip_block: Изтриване на правило за IP destroy_status: Изтриване на публикация - destroy_unavailable_domain: Изтриване на неналичен домейн + destroy_unavailable_domain: Изтриване на недостъпен домейн destroy_user_role: Унищожаване на роля disable_2fa_user: Изкл. на 2факт.удостов. disable_custom_emoji: Деактивиране на персонализирано емоджи disable_sign_in_token_auth_user: Изключване на удостоверяването с код по имейл за потребителя disable_user: Изключване на потребител - enable_custom_emoji: Активиране на персонализирано емоджи + enable_custom_emoji: Включване на персонализирано емоджи enable_sign_in_token_auth_user: Включване на удостоверяването с код по имейл за потребителя enable_user: Активиране на потребител memorialize_account: Възпоменаване на акаунта promote_user: Повишаване на потребител - reject_appeal: Отхвърляне на молбата + reject_appeal: Отхвърляне на обжалването reject_user: Отхвърляне на потребителя - remove_avatar_user: Премахване на аватар + remove_avatar_user: Премахване на аватара reopen_report: Повторно отваряне на доклад resend_user: Повторно изпращане на имейла за потвърждение - reset_password_user: Нулиране на парола + reset_password_user: Задаване на нова парола resolve_report: Отстраняване на доклада sensitive_account: Деликатен акаунт silence_account: Ограничаване на акаунта suspend_account: Преустановяване на акаунта - unassigned_report: Освобождаване на доклада - unblock_email_account: Разблокирай Email адреса - unsensitive_account: Не е деликатен акаунт + unassigned_report: Оттегляне на доклада + unblock_email_account: Отблокиране на адреса на имейла + unsensitive_account: Отмяна на акаунта като деликатен unsilence_account: Отмяна на ограничението за акаунта unsuspend_account: Връщане на акаунта - update_announcement: Актуализиране на обявлението - update_custom_emoji: Обновяване на емоджитата по избор + update_announcement: Обновяване на оповестяването + update_custom_emoji: Обновяване на персонализираното емоджи update_domain_block: Обновяване на блокирането за домейна update_ip_block: Обновяване на правило за IP update_status: Обновяване на публикация - update_user_role: Обновяване на роля + update_user_role: Обновяване на ролята actions: - approve_appeal_html: "%{name} одобри молбата за решение за модериране от %{target}" - approve_user_html: "%{name} одобри записването от %{target}" - assigned_to_self_report_html: "%{name} възложи доклада %{target} на себе си" - change_email_user_html: "%{name} промени имейл адреса на потребителя %{target}" + approve_appeal_html: "%{name} одобри обжалването на решение за модериране от %{target}" + approve_user_html: "%{name} одобри регистрирането от %{target}" + assigned_to_self_report_html: "%{name} назначете доклада %{target} на себе си" + change_email_user_html: "%{name} промени адреса на имейла на потребителя %{target}" change_role_user_html: "%{name} промени ролята на %{target}" - confirm_user_html: "%{name} потвърди имейл адреса на потребителя %{target}" + confirm_user_html: "%{name} потвърди адреса на имейла на потребителя %{target}" create_account_warning_html: "%{name} изпрати предупреждение до %{target}" - create_announcement_html: "%{name} създаде ново обявление %{target}" + create_announcement_html: "%{name} създаде ново оповестяване %{target}" create_canonical_email_block_html: "%{name} блокира имейл с хеш %{target}" create_custom_emoji_html: "%{name} качи ново емоджи %{target}" create_domain_allow_html: "%{name} позволи федерирането с домейн %{target}" create_domain_block_html: "%{name} блокира домейн %{target}" - create_email_domain_block_html: "%{name} блокира имейл домейн %{target}" + create_email_domain_block_html: "%{name} блокира домейн на имейл %{target}" create_ip_block_html: "%{name} създаде правило за IP %{target}" create_unavailable_domain_html: "%{name} спря доставянето до домейн %{target}" - create_user_role_html: "%{name} създаде %{target} роля" + create_user_role_html: "%{name} създаде роля %{target}" demote_user_html: "%{name} понижи потребителя %{target}" - destroy_announcement_html: "%{name} изтри обявлението %{target}" - destroy_canonical_email_block_html: "%{name} разблокира имейла с хеш %{target}" + destroy_announcement_html: "%{name} изтри оповестяване %{target}" + destroy_canonical_email_block_html: "%{name} отблокира имейла с хеш %{target}" destroy_custom_emoji_html: "%{name} изтри емоджито %{target}" destroy_domain_allow_html: "%{name} отмени федерирането с домейн %{target}" - destroy_domain_block_html: "%{name} отмени блокирането на домейн %{target}" - destroy_email_domain_block_html: "%{name} отмени блокирането на имейл домейн %{target}" + destroy_domain_block_html: "%{name} отблокира домейн %{target}" + destroy_email_domain_block_html: "%{name} отблокира домейн на имейл %{target}" destroy_instance_html: "%{name} прочисти домейн %{target}" - destroy_ip_block_html: "%{name} изтри правилото за IP %{target}" - destroy_status_html: "%{name} премахна публикацията от %{target}" + destroy_ip_block_html: "%{name} изтри правило за IP %{target}" + destroy_status_html: "%{name} премахна публикация от %{target}" destroy_unavailable_domain_html: "%{name} възстанови доставянето до домейн %{target}" - destroy_user_role_html: "%{name} изтри %{target} роля" - disable_2fa_user_html: "%{name} деактивира двустепенното удостоверяване за потребител %{target}" - disable_custom_emoji_html: "%{name} деактивира емоджито %{target}" + destroy_user_role_html: "%{name} изтри роля %{target}" + disable_2fa_user_html: "%{name} изключи двуфакторното изискване за потребител %{target}" + disable_custom_emoji_html: "%{name} изключи емоджито %{target}" disable_sign_in_token_auth_user_html: "%{name} деактивира удостоверението с код по имейл за %{target}" - disable_user_html: "%{name} деактивира влизането за потребител %{target}" - enable_custom_emoji_html: "%{name} активира емоджито %{target}" + disable_user_html: "%{name} изключи влизането за потребител %{target}" + enable_custom_emoji_html: "%{name} включи емоджито %{target}" enable_sign_in_token_auth_user_html: "%{name} активира удостоверението с код по имейл за %{target}" - enable_user_html: "%{name} активира влизането за потребител %{target}" + enable_user_html: "%{name} включи влизането за потребител %{target}" memorialize_account_html: "%{name} превърна акаунта на %{target} във възпоменателна страница" promote_user_html: "%{name} повиши потребителя %{target}" - reject_appeal_html: "%{name} отхвърли молбата за модераторско решение от %{target}" - reject_user_html: "%{name} отхвърли записването на %{target}" - remove_avatar_user_html: "%{name} премахна аватар на %{target}" + reject_appeal_html: "%{name} отхвърли обжалването на решение за модериране от %{target}" + reject_user_html: "%{name} отхвърли регистрирането от %{target}" + remove_avatar_user_html: "%{name} премахна аватара на %{target}" reopen_report_html: "%{name} отвори пак доклада на %{target}" - resend_user_html: "%{name} изпрати отново имейл за потвърждение за %{target}" + resend_user_html: "%{name} изпрати пак е-писмо за потвърждение за %{target}" reset_password_user_html: "%{name} нулира паролата на потребител %{target}" resolve_report_html: "%{name} разреши случая с доклада от %{target}" sensitive_account_html: "%{name} означи мултимедия на %{target} като деликатна" silence_account_html: "%{name} сложи ограничения на акаунта на %{target}" suspend_account_html: "%{name} преустанови акаунта на %{target}" - unassigned_report_html: "%{name} отмени възложения доклад %{target}" + unassigned_report_html: "%{name} оттегли доклада на %{target}" unblock_email_account_html: "%{name} разблокира адреса на имейла на %{target}" unsensitive_account_html: "%{name} размаркира мултимедия на %{target} като деликатна" - unsilence_account_html: "%{name} отмени ограничения на акаунта на %{target}" + unsilence_account_html: "%{name} отмени ограниченията на акаунта на %{target}" unsuspend_account_html: "%{name} върна обратно акаунта на %{target}" update_announcement_html: "%{name} обнови оповестяването на %{target}" update_custom_emoji_html: "%{name} обнови емоджито на %{target}" @@ -301,8 +301,8 @@ bg: title: Ново оповестяване publish: Публикуване published_msg: Успешно публикувано оповестяване! - scheduled_for: Планирано за %{time} - scheduled_msg: Обявлението е планирано за публикуване! + scheduled_for: Насрочено за %{time} + scheduled_msg: Насрочено оповестяване за публикуване! title: Оповестявания unpublish: Без публикуване unpublished_msg: Успешно скрито оповестяване! @@ -336,8 +336,8 @@ bg: shortcode_hint: Поне 2 символа, само азбучно-цифрови символи и долни черти title: Потребителски емоджита uncategorized: Некатегоризирано - unlist: Скриване от списъка - unlisted: Скрито от списъка + unlist: Премахване от списъка + unlisted: Извънсписъчно update_failed_msg: Не може да се обнови това емоджи updated_msg: Успешно осъвременено емоджи! upload: Качване @@ -348,8 +348,8 @@ bg: new_users: нови потребители opened_reports: отворени доклади pending_appeals_html: - one: "%{count} чакаща молба" - other: "%{count} чакащи молби" + one: "%{count} чакащо обжалване" + other: "%{count} чакащи обжалвания" pending_reports_html: one: "%{count} чакащ доклад" other: "%{count} чакащи доклади" @@ -375,22 +375,22 @@ bg: add_new: Позволявам федерацията с домейна created_msg: Домейнът е успешно позволен за федерацията destroyed_msg: Домейнът не е позволен за федерацията - export: Експортиране - import: Импортиране + export: Износ + import: Внос undo: Не позволявам федерацията с домейна domain_blocks: add_new: Добавяне на ново блокиране за домейна created_msg: Блокирането на домейна се обработва - destroyed_msg: Блокирането на домейна е спряно + destroyed_msg: Блокирането на домейна е отменено domain: Домейн - edit: Редакция на блокирането на домейна + edit: Редактиране на блокирането на домейна existing_domain_block: Вече сте наложили строги ограничения на %{name}. existing_domain_block_html: Вече сте наложили строги ограничения за %{name} и трябва първо да премахнете блокирането. - export: Експортиране - import: Импортиране + export: Износ + import: Внос new: - create: Блокиране - hint: Блокирането на домейн няма да предотврати създаването на записи в базата данни за нови акаунти, но автоматично и с обратно действие ще приложи определени методи за модерация на тези акаунти. + create: Създаване на блокада + hint: Блокирането на домейн няма да предотврати създаването на записи на акаунти в базата от данни, но със задна дата и автоматично ще се приложат определени методи за модериране на тези акаунти. severity: desc_html: "Ограничаване ще скрие публикациите от акаунти в този домейн за всеки, който не ги следва. Преустановяване ще премахне всякакво съдържание, мултимедия и профилни данни за акаунтите в този домейн от вашия сървър. Използвайте Без, ако искате просто да забраните мултимедийни файлове." noop: Без @@ -399,23 +399,23 @@ bg: title: Ново блокиране на домейн no_domain_block_selected: Нищо не беше проемено, защото нямаше избрано блокиране на домейн not_permitted: Нямате право да извършвате това действие - obfuscate: Скриване на името на домейна - obfuscate_hint: Частично скриване на името на домейна в списъка, ако е включена опцията за рекламиране на списъка с ограничения на домейни + obfuscate: Замъгляване на името на домейна + obfuscate_hint: Частично замъгляване на името на домейна в списъка, ако е включено рекламирането на списъка с ограничения на домейни private_comment: Личен коментар private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите. public_comment: Публичен коментар public_comment_hint: Оставяне на коментар за ограничението на домейна за широката публика, ако рекламирането на списъка с ограниченията на домейни е включено. - reject_media: Забрана на мултимедийни файлове - reject_media_hint: Премахва локално запазени мултимедийни файлове и отказва да сваля такива в бъдеще. Ирелевантно в случай на преустановяване + reject_media: Отхвърляне на мултимедийните файлове + reject_media_hint: Премахва локално запазени мултимедийни файлове и отказва да сваля такива в бъдеще. Неподходящо в случай на преустановяване reject_reports: Отхвърляне на докладите - reject_reports_hint: Пренебрегване на всички доклади, идващи от този домейн. Неуместни за прекратяване + reject_reports_hint: Пренебрегване на всички доклади, идващи от този домейн. Неподходящо в случай на преустановяване undo: Отмяна на блокиране на домейн view: Преглед на блокиране на домейн email_domain_blocks: add_new: Добавяне на ново attempts_over_week: one: "%{count} опит за изминалата седмица" - other: "%{count} опити за записване през изминалата седмица" + other: "%{count} опита за регистрация през изминалата седмица" created_msg: Успешно блокиран домейн на е-поща delete: Изтриване dns: @@ -424,13 +424,21 @@ bg: domain: Домейн new: create: Добавяне на домейн + resolve: Преобразуване на домейна title: Блокиране на нов домейн на имейл + no_email_domain_block_selected: Няма промяна, тъй като няма избрани блокирания на имейл домейн + resolved_dns_records_hint_html: Името на домейна се преобразува към следните MX домейни, които са основно отговорни за получаване на имейл. Блокирането на MX домейн блокира записването от всеки имейл, използващ същия MX домейн, дори видимото име на домейна да е различно. Бъдете внимателни и не блокирайте често-срещани доставчици на имейл + resolved_through_html: Преобразувано чрез %{domain} title: Блокирани домейни на имейл export_domain_allows: + new: + title: Импортиране на позволенията на домейни no_file: Няма избран файл export_domain_blocks: import: - existing_relationships_warning: Съществуващи последвания + description_html: На път сте да внесете списък с блокирания на домейни. Прегледайте списъка много внимателно, особено ако самите вие не сте автор на този списък. + existing_relationships_warning: Съществуващи отношения във вид на следване + private_comment_description_html: 'За по-лесно проследяване откъде идват внесените блокирания, те ще се създадат със следния личен коментар: %{comment}' private_comment_template: Внесено от %{source} на %{date} title: Импортиране на блокиранията на домейни new: @@ -460,10 +468,10 @@ bg: back_to_limited: Ограничено back_to_warning: Предупреждение by_domain: Домейн - confirm_purge: Сигурни ли сте, че желаете да окончателно да изтриете данните от този домейн? + confirm_purge: Наистина ли искате завинаги да изтриете данните от този домейн? content_policies: comment: Вътрешна бележка - description_html: Можете да дефинирате политики за съдържание, които ще бъдат приложени към всички акаунти от този домейн и всеки от под-домейните му. + description_html: Може да определите политиките за съдържание, които ще се приложат към всички акаунти от този домейн и всеки от поддомейните му. policies: reject_media: Отхвърляне на мултимедия reject_reports: Отхвърляне на докладите @@ -480,7 +488,7 @@ bg: instance_languages_dimension: Водещи езици instance_media_attachments_measure: запазена прикачена мултимедия instance_reports_measure: доклади за тях - instance_statuses_measure: запазени публикации + instance_statuses_measure: съхранени публикации delivery: all: Всичко clear: Изчистване на грешките за доставка @@ -532,8 +540,8 @@ bg: '94670856': 3 години new: title: Създаване на ново правило за IP - no_ip_block_selected: Няма променени IP правила, тъй като нито едно не беше избрано - title: IP правила + no_ip_block_selected: Няма променени правила за IP, тъй като нито едно не бе избрано + title: Правила за IP relationships: title: Отношения на %{acct} relays: @@ -551,10 +559,10 @@ bg: setup: Настройка на връзка с предаващия сървър signatures_not_enabled: Предаващите сървъри може да не работят коректно, докато са включени режима за сигурност или режима за ограничено федериране status: Състояние - title: Предаващи сървъри + title: Препредаватели report_notes: - created_msg: Успешно създаване на бележка за доклад! - destroyed_msg: Успешно изтриване на бележка за доклад! + created_msg: Успешно създадена бележка за доклад! + destroyed_msg: Успешно изтрита бележка за доклад! reports: account: notes: @@ -562,10 +570,24 @@ bg: other: "%{count} бележки" action_log: Одитен дневник action_taken_by: Действие, предприето от + actions: + delete_description_html: Докладваните публикации ще се изтрият и ще бъде записано нарушение, за да ви помогне при изострянето на бъдещи нарушения от същия акаунт. + mark_as_sensitive_description_html: Мултимедията в докладваните публикации ще се означи като деликатна, за да ви помогне при изострянето на бъдещи нарушения от същия акаунт. + other_description_html: Показване на повече възможности за управляване на поведението на акаунта и за персонализиране на комуникацията с доклвадвания акаунт. + resolve_description_html: Няма да се предприеме действие срещу докладвания акаунт, няма да се записва нарушение и докладът ще се затвори. + silence_description_html: Профилът ще бъде видим само за тези, които вече го следват или го търсят ръчно, което драстично ограничава обсега му. Настройката може да бъде променена по всяко време. + suspend_description_html: Профилът и цялото му съдържание ще бъдат недостъпни, до евентуалното му изтриване. Няма да може да се взаимодейства с акаунта. Настройката може да се отмени в рамките на 30 дни. + actions_description_html: Решете какво действие може да се предприеме, за да бъде отхвърлен докладът. Ако предприемете наказателно действие срещу докладвания акаунт, към него ще бъде изпратено известие по имейл, освен ако Спам категорията не е била избрана. + add_to_report: Добавяне на още към доклада are_you_sure: Сигурни ли сте? + assign_to_self: Назначаване на мен + assigned: Назначен модератор + by_target_domain: Домейн на докладвания акаунт category: Категория + category_description_html: Причината, поради която акаунтът и/или съдържанието е докладвано ще се цитира в комуникацията с докладвания акаунт comment: none: Нищо + comment_description_html: 'За да предостави повече информация, %{name} написа:' created_at: Докладвано delete_and_resolve: Изтриване на публикациите forwarded: Препратено @@ -573,21 +595,31 @@ bg: mark_as_resolved: Маркиране като решено mark_as_sensitive: Означаване като деликатно mark_as_unresolved: Отбелязване като нерешено + no_one_assigned: Никого notes: create: Добавяне на бележка create_and_resolve: Разрешаване с бележка create_and_unresolve: Отваряне пак с бележка delete: Изтриване + placeholder: Опишете какви действия са били предприети или всякакви други свързани нови неща... title: Бележки + notes_description_html: Прегледайте и оставете бележки за други модератори и за вас самите след време + quick_actions_description_html: 'Предприемете бързо действие или превъртете надолу, за да видите докладваното съдържание:' + remote_user_placeholder: отдалеченият потребител от %{instance} reopen: Отваряне пак на доклад + report: 'Докладване на #%{id}' reported_account: Докладван акаунт reported_by: Докладвано от resolved: Разрешено + resolved_msg: Успешно разрешен доклад! skip_to_actions: Прескок към действия status: Състояние statuses: Докладвано съдържание + statuses_description_html: Непристойно съдържание ще бъде цитирано в комуникацията с докладвания акаунт target_origin: Произход на докладвания акаунт title: Доклади + unassign: Освобождаване + unresolved: Неразрешено updated_at: Обновено view_profile: Преглед на профила roles: @@ -602,8 +634,10 @@ bg: moderation: Mодериране special: Специални delete: Изтриване + description_html: С потребителските роли може да персонализирате до кои функции и области на Mastodon имат достъп потребителите ви. edit: Промяна на ролята на „%{name}“ everyone: Разрешения по подразбиране + everyone_full_description_html: Това е основната роля, засягаща всички потребители, дори тези без назначена роля. Всички други роли наследяват разрешения за достъп от нея. permissions_count: one: "%{count} разрешение" other: "%{count} разрешения" @@ -611,6 +645,7 @@ bg: administrator: Администратор administrator_description: Потребители с това разрешение ще заобиколят всички разрешения delete_user_data: Изтриване на потребителските данни + delete_user_data_description: Позволяване на потребителите да трият данни на други потребители без отлагане invite_users: Поканване на потребители invite_users_description: Позволява на потребителите да канят нови хора в сървъра manage_announcements: Управляване на оповестяванията @@ -628,38 +663,54 @@ bg: manage_reports: Управление на докладите manage_reports_description: Позволява на потребители да преглеждат доклади и да извършват модериращи действия срещу тях manage_roles: Управление на ролите - manage_roles_description: Позволява на потребителите да управляват и разпределят роли под техните + manage_roles_description: Позволява на потребителите да управляват и назначават роли под техните manage_rules: Управление на правилата manage_rules_description: Позволява на потребителите да променят правилата на сървъра manage_settings: Управление на настройките manage_settings_description: Позволява на потребителите да променят настройки на сайта + manage_taxonomies: Управление на класификации + manage_taxonomies_description: Позволяване на потребителите да преглеждат нашумяло съдържание и да обновяват настройките за хаштагове manage_user_access: Управление на потребителския достъп + manage_user_access_description: Позволяване на потребителите да изключват двуфакторното удостоверяване, да променят имейл адресите и да подновяват паролите на други потребители manage_users: Управление на потребителите + manage_users_description: Позволяване на потребителите да виждат подробностите за други потребители и да извършват модераторски действия срещу тях manage_webhooks: Управление на уебкуките manage_webhooks_description: Позволява на потребителите да настройват уебкуки за административни събития view_audit_log: Преглед на одитния дневник view_audit_log_description: Позволява на потребителите да виждат историята на административни действия в сървъра + view_dashboard: Преглед на таблото + view_dashboard_description: Даване на потребителите достъп до таблото и различни метрики view_devops: Развитие и операции view_devops_description: Позволява на потребителите да имат достъп до таблото за управл. на Sidekiq и pgHero title: Роли rules: add_new: Добавяне на правило delete: Изтриване + description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Направете четенето на правилата за вашия сървър по-лесно, като ги представите като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в твърде много точки. edit: Промяна на правило empty: Още няма определени правила на сървъра. title: Правила на сървъра settings: about: manage_rules: Управление на правилата на сървъра + preamble: Предложете задълбочена информация за това как вашият сървър се управлява, модерира и финансира. + rules_hint: Съществува специална част за правилата, които се очаква вашите потребители да спазват. title: Относно appearance: preamble: Настройване на мрежовия интерфейс на Mastodon. title: Външен вид branding: + preamble: Брандирането на вашия сървър го различава от другите сървъри в мрежата. Тази информация може да се види на различни места, като уеб интерфейса на Mastodon, собствени приложения, в прегледите на линкове от други сайтове и в приложения за съобщения, и т.н. По тази причина е добре тази информация да е кратка и ясна. title: Брандиране + content_retention: + preamble: Контрол върху това как съдържание, генерирано от потребители, се пази в Mastodon. + title: Съхранение на съдържание default_noindex: desc_html: Влияе на всички потребители, които не са променили тази настройка за себе си + title: По подразбиране изключете индексирането от търсачки за вашите потребители discovery: + follow_recommendations: Препоръки за следване + preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. profile_directory: Директория на профила public_timelines: Публични инфопотоци title: Откриване @@ -671,9 +722,15 @@ bg: registrations: preamble: Управлява кой може да създава акаунт на сървъра ви. title: Регистрации + registrations_mode: + modes: + approved: Нужно е одобрение за записване + none: Никой не може да се регистрира + open: Всеки може да се запише title: Настройки на сървъра site_uploads: delete: Изтриване на качения файл + destroyed_msg: Успешно изтриване на качването на сайта! statuses: account: Автор application: Приложение @@ -685,10 +742,12 @@ bg: deleted: Изтрито favourites: Любими history: История на версиите + in_reply_to: Отговор до language: Език media: title: Мултимедия metadata: Метаданни + no_status_selected: Няма промяна, тъй като няма избрани публикации open: Отваряне на публикация original_status: Първообразна публикация reblogs: Блогване пак @@ -709,6 +768,8 @@ bg: appeal_approved: Обжалвано appeal_pending: Чака се обжалването system_checks: + database_schema_check: + message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението elasticsearch_running_check: message_html: Не можа да се свърже с Elasticsearch. Проверете дали работи или изключете пълнотекстовото търсене elasticsearch_version_check: @@ -717,6 +778,8 @@ bg: rules_check: action: Управление на правилата на сървъра message_html: Не сте определили никакви правила на сървъра. + sidekiq_process_check: + message_html: Няма Sidekiq процес, който тече за %{value} опашка/и. Моля, прегледайте своите настройки за Sidekiq tags: review: Преглед на състояние updated_msg: Успешно осъвременени настройки на хаштага @@ -731,41 +794,82 @@ bg: description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове. disallow: Забранявам връзката disallow_provider: Забраняване на публикуващия + no_link_selected: Няма промяна, тъй като няма избрани линкове + publishers: + no_publisher_selected: Няма промяна, тъй като няма избрани автори shared_by_over_week: one: Споделено от един човек през последната седмица other: Споделено от %{count} хора през последната седмица + title: Нашумели линкове usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера only_allowed: Само позволените pending_review: В очакване на преглед preview_card_providers: + allowed: Линкове от този автор могат да се включат в нашумели description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни. + rejected: Линкове от този автор няма да се включат в нашумели title: Публикуващи rejected: Отхвърлено statuses: allow: Позволяване на публикацията allow_account: Позволяване на автора - description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или харесвани. Би помогнало на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показан публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации. + description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или маркирани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации. disallow: Забраняване на публикацията disallow_account: Забрана на автора + no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация + not_discoverable: Авторът не е избрал да е откриваем shared_by: - one: Споделено или харесано един път - other: Споделено или харесано %{friendly_count} пъти + one: Споделена или маркирана като любима веднъж + other: Споделена или маркирана като любима %{friendly_count} пъти + title: Налагащи се публикации tags: + current_score: Текущ резултат %{score} dashboard: tag_accounts_measure: неповторими употреби tag_languages_dimension: Водещи езици tag_servers_dimension: Водещи сървъри tag_servers_measure: различни сървъри tag_uses_measure: обща употреба + description_html: Това са хаштагове, фигуриращи в момента в много публикации, които вашият сървър вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете няма да се покажат публично, докато не ги одобрите. + listable: Може да бъде предложено + no_tag_selected: Няма промяна, тъй като няма избран таг + not_listable: Няма да бъде препоръчан + not_trendable: Няма да се покаже в актуални not_usable: Не може да се използва + peaked_on_and_decaying: Връх на актуалността на %{date}, сега е в спад + title: Актуални хаштагове + trendable: Може да се покаже в актуални + trending_rank: 'Актуални #%{rank}' usable: Може да се употребява + usage_comparison: Използвано %{today} пъти днес, в сравнение с %{yesterday} пъти вчера + used_by_over_week: + one: Употребено от един човек през последната седмица + other: Използвано от %{count} души през последната седмица + title: Актуални + trending: Актуални warning_presets: add_new: Добавяне на ново delete: Изтриване + edit_preset: Редакция на предварителните настройки + empty: Все още няма предварителни настройки за предупрежденията. + title: Управление на предварителните настройки webhooks: add_new: Добавяне на крайна точка delete: Изтриване + description_html: "Уеб обратно повикване позволява на Mastodon да насочи известия в реално време за избрани събития към вашето приложение, така че то да може да активира реакции автоматично." + disable: Деактивиране + disabled: Деактивирано + edit: Редактиране на крайната точка + empty: Все още нямате настроени крайни точки за уеб обратни повиквания. + enable: Активиране + enabled: Активно + enabled_events: + one: Едно активирано събитие + other: "%{count} активирани събития" events: Събития + new: Ново уеб обратно повикване + rotate_secret: Смяна на тайната + secret: Записване на тайната status: Състояние title: Уебкуки webhook: Уебкука @@ -773,25 +877,40 @@ bg: new_appeal: actions: delete_statuses: за изтриване на публикациите им + disable: за замразяване на акаунтите им mark_statuses_as_sensitive: за означаване на публикациите им като деликатни none: предупреждение sensitive: за означаване на акаунтите като деликатни silence: за слагане на органичение на акаунтите им suspend: за спиране на акаунтите им + body: "%{target} обжалва модераторското решение от %{action_taken_by} на %{date}, което е било %{type}. Жалбата гласи:" + next_steps: Можете да одобрите жалбата и да отмените модераторското решение или да я игнорирате. + subject: "%{username} обжалва модераторското решение в %{instance}" + new_pending_account: + body: Подробностите за новия акаунт са по-долу. Можете да приемете или отхвърлите молбата. + subject: Нов акаунт за преглед на %{instance} (%{username}) new_report: body: "%{reporter} докладва %{target}" body_remote: Някого от %{domain} докладва %{target} + subject: Нов доклад за %{instance} (#%{id}) new_trends: + body: 'Следните елементи се нуждаят от преглед преди да могат да бъдат показани публично:' new_trending_links: title: Налагащи се връзки new_trending_statuses: title: Налагащи се публикации new_trending_tags: + no_approved_tags: В момента няма одобрени актуални хаштагове. + requirements: 'Всеки от тези кандидати може да надмине #%{rank} одобрен актуален хаштаг, който в момента е #%{lowest_tag_name} с резултат %{lowest_tag_score}.' title: Нашумели хаштагове subject: Нови нашумели, готови за преглед в %{instance} aliases: add_new: Създайте псевдоним + created_msg: Успешно създаване на нов псевдоним. Сега вече можете да започнете преместването от стария акаунт. + deleted_msg: Успешно премахване на псевдонима. Преместването от онзи акаунт към този вече не е възможно. empty: Нямате псевдоними. + hint_html: Ако желаете да се преместите от друг акаунт към този, тук можете да създадете псевдоним, което се изисква преди да можете да пристъпите към преместване на последователите си от стария акаунт към този. Това действие е безопасно и възстановимо. Миграцията към новия акаунт се инициира от стария акаунт. + remove: Разкачвне на псевдонима appearance: advanced_web_interface: Разширен уеб интерфейс advanced_web_interface_hint: 'Ако желаете да се възползвате от пълната ширина на своя екран, разширеният уеб интерфейс ще ви позволи да настроите най-различни колони, за да виждате едновременно множество информация: Начало, известия, федериран инфопоток, множество списъци и хаштагове.' @@ -812,18 +931,25 @@ bg: view_profile: Преглед на профила view_status: Преглед на публикацията applications: + created: Успешно създадено приложение + destroyed: Успешно изтрито приложение + regenerate_token: Регенериране на кода за достъп + token_regenerated: Успешно генериране на код за достъп warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого! your_token: Вашият код за достъп auth: + apply_for_account: Молба за акаунт change_password: Парола delete_account: Изтриване на акаунта delete_account_html: Ако желаете да изтриете акаунта си, можете да сторите това тук. Ще ви бъде поискано потвърждение. description: prefix_invited_by_user: "@%{name} ви покани да се присъедините към този сървър на Mastodon!" prefix_sign_up: Регистрирайте се днес в Mastodon! + suffix: Със свой акаунт ще можете да следвате хора, да публикувате актуализации, да обменяте съобщения с потребители от всеки сървър на Mastodon и много повече! didnt_get_confirmation: Не получих инструкции за потвърждение dont_have_your_security_key: Нямате ли си ключ за сигурност? forgot_password: Забравих си паролата + invalid_reset_password_token: Кодът за възстановяване на паролата е невалиден или с изтекъл срок. Моля, поръчайте нов. link_to_otp: Въведете двуфакторния код от телефона си или кода за възстановяване link_to_webauth: Използвайте ключа си за сигурност на устройството log_in_with: Влизане с @@ -833,23 +959,40 @@ bg: migrate_account_html: Ако желаете да пренасочите този акаунт към друг, можете да настроите това тук. or_log_in_with: Или влизане с помощта на privacy_policy_agreement_html: Прочетох и има съгласието ми за политиката за поверителност + providers: + cas: CAS + saml: SAML register: Регистрация registration_closed: "%{instance} не приема нови членуващи" resend_confirmation: Изпрати отново инструкции за потвърждение reset_password: Подновяване на паролата rules: + preamble: Тези са зададени и наложени от модераторите на %{domain}. title: Някои основни правила. security: Сигурност set_new_password: Задаване на нова парола setup: + email_below_hint_html: Ако имейл адресът по-долу е неправилен, можете да го промените тук и да получите ново имейл за потвърждение. + email_settings_hint_html: Имейл за потвърждение беше изпратен до %{email}. Ако този имейл адрес е грешен, можете да го промените в настройките на акаунта. title: Настройка + sign_in: + preamble_html: Влезте с идентификационните данни за %{domain}. Ако вашият акаунт е хостван на различен сървър, няма да можете да влезете в този. + title: Влизане в %{domain} + sign_up: + preamble: С акаунт на този съвър в Mastodon ще може да последвате всекиго в мрежата, независимо къде се намира акаунтът му. + title: Първоначални настройки за %{domain}. status: account_status: Състояние на акаунта confirming: Чакане завършването на потвърждение на имейла. functional: Вашият акаунт е в изправност. + pending: Вашето приложение чака преглед от нашия екип. Това може да отнеме време. Ще получите имейл, ако приложението е одобрено. + redirecting_to: Вашият акаунт е бездеен, защото сега се пренасочва към %{acct}. + view_strikes: Преглед на предишните нарушения за вашия акаунт + too_fast: Образецът подаден пребързо, опитайте пак. use_security_key: Употреба на ключ за сигурност authorize_follow: already_following: Вече следвате този акаунт + already_requested: Вече сте изпратили заявка за последване до този акаунт error: Възникна грешка, търсейки отдалечения акаунт follow: Последвай follow_request: 'Изпратихте следната заявка до:' @@ -864,6 +1007,10 @@ bg: hint_html: "Съвет: няма да ви питаме пак за паролата през следващия час." invalid_password: Невалидна парола prompt: Потвърдете паролата, за да продължите + crypto: + errors: + invalid_key: не е валиден ключ Ed25519 или Curve25519 + invalid_signature: не е валиден подпис Ed25519 date: formats: default: "%b %d, %Y" @@ -890,20 +1037,44 @@ bg: 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: Вашето потребителско име ще остане неналично disputes: strikes: + action_taken: Предприето действие + appeal: Обжалване + appeal_approved: Това нарушение беше успешно обжалвано и е вече невалидно + appeal_rejected: Обжалването е отхвърлено + appeal_submitted_at: Подадено обжалване + appealed_msg: Вашето обжалване е отхвърлено. Ако е одобрено, то ще бъдете известени. + appeals: + submit: Изпращане на жалбата + approve_appeal: Одобряване на обжалването + associated_report: Свързан доклад created_at: Остаряло + description_html: Това са действията, предприети срещу вашия акаунт и предупрежденията, които са били изпратени до вас от екипа на %{instance}. + recipient: Адресирано до + reject_appeal: Отхвърляне на обжалването status: 'Публикация #%{id}' + status_removed: Публикацията вече е премахната от системата title: "%{action} от %{date}" title_actions: + delete_statuses: Премахване на публикацията + disable: Замразяване на акаунта mark_statuses_as_sensitive: Означаване на публикациите като деликатни none: Предупреждение sensitive: Означаване на акаунта като деликатен + silence: Ограничаване на акаунта suspend: Преустановяване на акаунта your_appeal_approved: Вашето обжалване е одобрено + your_appeal_pending: Подадохте обжалване your_appeal_rejected: Вашето обжалване е отхвърлено domain_validator: invalid_domain: не е валидно име на домейн @@ -956,11 +1127,16 @@ bg: add_keyword: Добавяне на ключова дума keywords: Ключови думи statuses: Отделни публикации + statuses_hint_html: Филтърът се прилага за избрани отделни публикации независимо дали съвпада с ключовите думи по-долу. Прегледайте или премахнете публикации от филтъра. title: Редактиране на филтър + errors: + deprecated_api_multiple_keywords: Тези параметри не може да се променят от това приложение, защото се прилагат към повече от една ключова дума за филтър. Употребяйвате по-нови версии на приложението или уебинтерфейса. + invalid_context: Липсващ или неправилно снабден контекст index: contexts: Филтри в %{contexts} delete: Изтриване empty: Нямате филтри. + expires_in: Изтича след %{distance} expires_on: Изтича на %{date} keywords: one: "%{count} ключова дума" @@ -980,9 +1156,18 @@ bg: batch: remove: Премахване от филтъра index: + hint: Този филтър се прилага за избор на отделни публикации, независимо от други критерии. Може да добавите още публикации в този филтър от уебинтерфейса. title: Филтрирани публикации + footer: + trending_now: Налагащи се сега generic: all: Всичко + all_items_on_page_selected_html: + one: "%{count} елемент от тази страница е избран." + other: Всички %{count} елементи от тази страница са избрани. + all_matching_items_selected_html: + one: "%{count} елементи, съвпадащи с вашето търсене, са избрани." + other: Всички %{count} елементи, съвпадащи с вашето търсене, са избрани. changes_saved_msg: Успешно запазване на промените! copy: Копиране delete: Изтриване @@ -990,6 +1175,9 @@ bg: none: Нищо order_by: Подреждане по save_changes: Запази промените + select_all_matching_items: + one: Избор на %{count} елемент, съвпадащ с вашето търсене. + other: Избор на %{count} елементи, съвпадащи с вашето търсене. today: днес validation_errors: one: Нещо още не е напълно наред! Прегледайте грешката долу @@ -997,6 +1185,9 @@ bg: html_validator: invalid_markup: 'съдържа невалидно HTML маркиране: %{error}' imports: + errors: + invalid_csv_file: 'Невалиден файл CSV. Грешка: %{error}' + over_rows_processing_limit: съдържа повече от %{count} реда modes: merge: Сливане merge_long: Пази текущите записи и добавя нови @@ -1007,6 +1198,7 @@ bg: types: blocking: Списък на блокираните bookmarks: Отметки + domain_blocking: Списък с блокирания на домейни following: Списък на последователите muting: Списък заглушавания upload: Качване @@ -1043,28 +1235,53 @@ bg: webauthn: ключове за сигурност description_html: Ако забележите неузнаваема дейност, то обмислете смяна на паролата си и включване на двуфакторното удостоверяване. empty: Няма налична история на удостоверяване + failed_sign_in_html: Неуспешен опит за влизане с %{method} от %{ip} (%{browser}) + successful_sign_in_html: Успешно влизане с %{method} от %{ip} (%{browser}) title: Историята на удостоверяване media_attachments: validations: images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения + not_ready: Не е възможно закачането на файлове, който все още се обработват. Опитайте отново след малко! too_many: Не мога да прикача повече от 4 файла 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: Още последователи redirected_msg: Вашият акаунт сега се пренасочва към %{acct}. redirecting_to: Вашият акаунт е пренасочен към %{acct}. set_redirect: Задаване на пренасочване + warning: + backreference_required: Новият акаунт трябва да бъде настроен така че да препраща обратно към този + before: 'Прочетете внимателно тези бележки преди да продължите:' + cooldown: След едно преместване има период на изчакване, по време на който няма да можете да се преместите отново + disabled_account: След това, текущият ви акаунт няма да бъде напълно използваем. Но ще имате достъп до експортиране на данни от него и до повторното му активиране. + followers: Това действие ще премести всички последователи от текущия към новия акаунт + only_redirect_html: Иначе, можете да просто да оставите пренасочване в своя профил. + other_data: Други данни няма да бъдат автоматично пренасочени + redirect: Текущият профил на вашия акаунт ще бъде обновен с бележка за пренасочване и няма да се появява при търсене moderation: title: Mодериране + move_handler: + carry_blocks_over_text: Този потребител се премести от %{acct}, който сте блокирали. + carry_mutes_over_text: Този потребител се премести от %{acct}, който сте заглушили. + copy_account_note_text: 'Този потребител се премести от %{acct}; това са вашите бележки относно потребителя:' + navigation: + toggle_menu: Превключване на менюто notification_mailer: admin: report: @@ -1072,9 +1289,9 @@ bg: sign_up: subject: "%{name} се регистрира" favourite: - body: 'Публикацията ти беше харесана от %{name}:' - subject: "%{name} хареса твоята публикация" - title: Ново любимо + body: 'Вашата публикация беше добавена в любими от %{name}:' + subject: "%{name} хареса вашата публикация" + title: Нова любима публикация follow: body: "%{name} те последва!" subject: "%{name} те последва" @@ -1083,6 +1300,7 @@ bg: action: Управляване на следните заявки body: "%{name} помоли за разрешение да те последва" subject: 'Чакащ последовател: %{name}' + title: Нови заявки за последване mention: action: Отговор body: "%{name} те спомена в:" @@ -1091,8 +1309,9 @@ bg: poll: subject: Анкетата от %{name} приключи reblog: - body: 'Твоята публикация беше споделена от %{name}:' + body: 'Вашата публикация беше споделена от %{name}:' subject: "%{name} сподели публикацията ти" + title: Ново споделяне status: subject: "%{name} току-що публикува" update: @@ -1165,6 +1384,9 @@ bg: status: Състояние на акаунта remote_follow: missing_resource: Не можа да се намери искания URL за пренасочване за акаунта ви + reports: + errors: + invalid_rules: не се отнася до валидни правила rss: content_warning: 'Предупреждение за съдържанието:' descriptions: @@ -1219,6 +1441,7 @@ bg: settings: account: Акаунт account_settings: Настройки на акаунта + aliases: Псевдоними за акаунта appearance: Външен вид authorized_apps: Упълномощени приложения back: Обратно към Mastodon @@ -1235,6 +1458,7 @@ bg: profile: Профил relationships: Последвания и последователи statuses_cleanup: Автоматично изтриване на публикации + strikes: Нарушения two_factor_authentication: Двустепенно удостоверяване webauthn_authentication: Ключове за сигурност statuses: @@ -1249,6 +1473,7 @@ bg: video: one: "%{count} видео" other: "%{count} видеозаписа" + boosted_from_html: Споделено от %{acct_link} content_warning: 'Предупреждение за съдържание: %{warning}' default_language: Същият като езика на интерфейса disallowed_hashtags: @@ -1263,10 +1488,14 @@ bg: direct: Публикациите, които са видими само за споменати потребители не може да се закачат limit: Вече сте закачили максималния брой публикации ownership: Публикация на някого другиго не може да се закачи + reblog: Споделяне не може да бъде закачено poll: total_people: one: "%{count} човек" other: "%{count} души" + total_votes: + one: "%{count} глас" + other: "%{count} гласа" vote: Гласуване show_more: Покажи повече show_newer: Показване на по-нови @@ -1290,14 +1519,18 @@ bg: ignore_favs: Игнориране на харесвания ignore_reblogs: Игнориране на споделяния interaction_exceptions: Изключения въз основа на взаимодействия - interaction_exceptions_explanation: Забележете, че няма гаранция, че публикации ще бъдат изтрити, ако паднат под прага на брой харесвания/споделяния, след като са го надвишили. + interaction_exceptions_explanation: Забележете, че няма гаранция, че публикации ще бъдат изтрити, ако паднат под прага на брой маркирания като любими/споделяния, след като са го надвишили. keep_direct: Запазване на директните съобщения keep_direct_hint: Директните ви съобщения не се изтриват keep_media: Задържане на публикации с прикачена мултимедия + keep_media_hint: Не изтрива публикации, които съдържат мултимедийни прикачвания keep_pinned: Запазване на закачените публикации + keep_pinned_hint: Не изтрива закачени публикации + keep_polls: Запазване на запитванията + keep_polls_hint: Не изтрива запитвания keep_self_bookmark: Запазване на публикации, добавени в отметки keep_self_bookmark_hint: Не се изтриват ваши публикации, ако сте ги добавили към отметки - keep_self_fav: Запазване на харесаните публикации + keep_self_fav: Запазване на публикации, които сте маркирали като любими keep_self_fav_hint: Не се изтриват публикации, които сте харесали min_age: '1209600': 2 седмици @@ -1309,14 +1542,17 @@ bg: '63113904': 2 години '7889238': 3 месеца min_age_label: Възрастов праг - min_favs: Запазване на публикации с поне толкова харесвания - min_favs_hint: Не се изтриват ваши публикации, харесани поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой харесвания + min_favs: Запазване на публикации, маркирани като любими поне + min_favs_hint: Не се изтриват ваши публикации, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя пъти маркирани като любими min_reblogs: Запазване на публикации с поне толкова споделяния min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния stream_entries: pinned: Закачена публикация reblogged: споделено sensitive_content: Деликатно съдържание + strikes: + errors: + too_late: Късно е за обжалване на това нарушение tags: does_not_match_previous_name: не съвпада с предишното име themes: @@ -1346,18 +1582,22 @@ bg: user_mailer: appeal_approved: action: Към акаунта ви + explanation: Жалбата, която изпратихте на %{appeal_date}, срещу нарушението за вашия акаунт, направено на %{strike_date}, е приета. Вашият акаунт е отново с добра репутация. subject: Вашето обжалване от %{date} е било одобрено title: Одобрено обжалване appeal_rejected: + explanation: Жалбата, която изпратихте на %{appeal_date}, срещу нарушението за вашия акаунт, направено на %{strike_date}, е отхвърлена. subject: Вашето обжалване от %{date} е било отхвърлено title: Отхвърлено обжалване backup_ready: explanation: Изискахте пълно резервно копиране на акаунта си в Mastodon. Вече е готово за изтегляне! subject: Вашият архив е готов за изтегляне + title: Сваляне на архива suspicious_sign_in: change_password: промяна на паролата ви details: 'Ето подробности при вход:' explanation: Засякохме влизане в акаунта ви от нов IP адрес. + further_actions_html: Ако това не сте били вие, препоръчваме да извършите действие %{action} незабавно и да включите двуфакторното удостоверяване, за да запазите сигурността на своя акаунт. subject: Вашият акаунт е използвал достъп от нов IP адрес title: Нов вход warning: @@ -1368,9 +1608,11 @@ bg: violation: Съдържанието нарушава следните ръководни линии explanation: delete_statuses: Някои от публикациите ви са нарушили една или повече от ръководните линии на общността и впоследствие бяха премахнати от модераторите на %{instance}. + disable: Не можете повече да използвате своя акаунт. Но профилът и другите ваши данни са непокътнати. Можете да подадете молба за архивиране на вашите данни, да промените настройките по акаунта или да го изтриете. mark_statuses_as_sensitive: Някои от публикациите ви са отбелязани като деликатни от модераторите на %{instance}. Това означава, че хората трябва да почукнат на мултимедията в публикацията преди да се показва нагледно. Може сами да отбелязвате мултимедия като деликатна, публикувайки в бъдеще. sensitive: От сега нататък, всички качени мултимедийни файлове ще се означават като деликатни и скрити зад предупреждение за щракване. silence: Още може да употребявате акаунта си, но само хора, които вече са ви последвали ще виждат публикациите ви на този сървър, а и може да бъдете изключени от различни функции за откриване. Въпреки това, други все още могат да ви последват ръчно. + suspend: Не можете повече да използвате своя акаунт. Профилът и другите ви данни също са вече недостъпни. Все още можете да влезете и да подадете молба за архивиране на вашите данни, преди те да бъдат изтрити след около 30 дни. Част от основните ви данни ще бъдат запазени, за да не ви бъде позволено да избегнете преустановяването. reason: 'Причина:' statuses: 'Цитирани публ.:' subject: @@ -1395,6 +1637,7 @@ bg: explanation: Ето няколко стъпки за начало final_action: Начало на публикуване final_step: 'Публикувайте! Дори без последователи, вашите публични публикации ще бъдат видени от други, например в местния инфопоток или под хаштагове. Не забравяйте да се представите с хаштаг #introductions.' + full_handle: Пълното ви име full_handle_hint: Ето какво бихте казали на приятелите си, за да могат да ви изпращат съобщения или да ви последват от друг сървър. subject: Добре дошли в Mastodon title: Добре дошли на борда, %{name}! diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 747b073123..09f5ca21a8 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1261,7 +1261,7 @@ ca: not_redirecting: El teu compte no està redirigint actualment a cap altre. on_cooldown: Recentment has emigrat el teu compte. Aquesta funció esdevindrà un altre cop disponible en %{count} dies. past_migrations: Migracions passades - proceed_with_move: Moure seguidors + proceed_with_move: Mou seguidors redirected_msg: El teu compte és ara redireccionat a %{acct}. redirecting_to: El teu compte està redirigint a %{acct}. set_redirect: Ajusta la redirecció @@ -1380,7 +1380,7 @@ ca: relationship: Relació remove_selected_domains: Elimina tots els seguidors dels dominis seleccionats remove_selected_followers: Elimina els seguidors seleccionats - remove_selected_follows: Deixa de seguir als usuaris seleccionats + remove_selected_follows: Deixa de seguir els usuaris seleccionats status: Estat del compte remote_follow: missing_resource: No s'ha pogut trobar l'URL de redirecció necessària per al compte diff --git a/config/locales/de.yml b/config/locales/de.yml index 8dd3e4978b..a039504a32 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -138,10 +138,10 @@ de: password_and_2fa: Passwort und 2FA sensitive: Inhaltswarnung sensitized: Mit Inhaltswarnung versehen - shared_inbox_url: Geteilte Posteingang-URL + shared_inbox_url: Geteilte Posteingangsadresse show: created_reports: Erstellte Meldungen - targeted_reports: Von anderen gemeldet + targeted_reports: Von Anderen gemeldet silence: Stummschalten silenced: Stummgeschaltet statuses: Beiträge @@ -300,17 +300,17 @@ de: create: Ankündigung erstellen title: Neue Ankündigung publish: Veröffentlichen - published_msg: Ankündigung erfolgreich erstellt! + published_msg: Ankündigung erfolgreich veröffentlicht! scheduled_for: Geplant für %{time} scheduled_msg: Ankündigung ist zur Veröffentlichung vorgemerkt! title: Ankündigungen unpublish: Veröffentlichung rückgängig machen - unpublished_msg: Ankündigung ist jetzt nicht mehr sichtbar! - updated_msg: Ankündigung erfolgreich geändert! + unpublished_msg: Ankündigung erfolgreich unveröffentlicht! + updated_msg: Ankündigung erfolgreich aktualisiert! custom_emojis: assign_category: Kategorie zuweisen by_domain: Domain - copied_msg: Eine lokale Kopie des Emojis wurde erstellt + copied_msg: Lokale Kopie des Emoji erfolgreich erstellt copy: Kopieren copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden create_new_category: Neue Kategorie erstellen @@ -319,11 +319,11 @@ de: destroyed_msg: Emoji erfolgreich gelöscht! disable: Deaktivieren disabled: Deaktiviert - disabled_msg: Das Emoji wurde deaktiviert + disabled_msg: Das Emoji wurde erfolgreich deaktiviert emoji: Emoji enable: Aktivieren enabled: Aktiviert - enabled_msg: Das Emoji wurde aktiviert + enabled_msg: Das Emoji wurde erfolgreich aktiviert image_hint: PNG oder GIF bis %{size} list: Aufführen listed: Angezeigt diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml index 93e18742c0..bdc5a076a1 100644 --- a/config/locales/devise.bg.yml +++ b/config/locales/devise.bg.yml @@ -2,9 +2,9 @@ bg: devise: confirmations: - confirmed: Вашият адрес на имейл беше успешно потвърден. - send_instructions: Ще получите е-писмо с указания как да потвърдите адреса на имейла си за няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. - send_paranoid_instructions: Ако адресът на имейл ви съществува в базата ни данни, ще получите е-писмо с указания как да потвърдите адреса на имейла си за няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. + confirmed: Вашият имейл адрес беше успешно потвърден. + send_instructions: Ще получите имейл с указания как да потвърдите своя имейл адреса след няколко минути. Моля, проверете спам папката си, ако не сте получили такъв имейл. + send_paranoid_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите имейл с указания как да потвърдите имейл адреса си след няколко минути. Проверете спам папката си, ако не сте получили такъв имейл. failure: already_authenticated: Вече сте влезли. inactive: Акаунтът ви още не е задействан. @@ -15,16 +15,16 @@ bg: pending: Вашият акаунт все още е в процес на проверка. timeout: Сесията ви изтече. Влезте пак, за да продължите. unauthenticated: Преди да продължите, трябва да влезете или да се регистрирате. - unconfirmed: Преди да продължите, трябва да потвърдиш адреса на имейла си. + unconfirmed: Преди да продължите, трябва да потвърдите имейл адреса си. mailer: confirmation_instructions: - action: Потвърдете адреса на имейла + action: Потвърдете своя имейл адрес action_with_app: Потвърдете и се върнете към %{app} explanation: Създали сте акаунт на %{host} с този имейл адрес. Само на едно щракване разстояние сте от активирането му. Ако това не сте били вие, моля, игнорирайте този имейл. explanation_when_pending: Кандидатствахте за покана до %{host} с този имейл адрес. След като потвърдите своя имейл адрес, ние ще разгледаме вашето заявление. Можете да влезете, за да промените данните си или да изтриете акаунта си, но нямате достъп до повечето функции, докато акаунтът ви не бъде одобрен. Ако вашето заявление бъде отхвърлено, вашите данни ще бъдат премахнати, така че няма да се изискват допълнителни действия от вас. Ако това не сте били вие, моля, игнорирайте този имейл. extra_html: Проверете правилата на сървъра и условията ни за обслужване. subject: 'Mastodon: Указания за потвърждаване за %{instance}' - title: Потвърдете адреса на имейла + title: Потвърдете имейл адреса email_changed: explanation: 'Имейл адресът на вашия акаунт се променя на:' extra: Ако не сте сменили имейла си, вероятно някой е получил достъп до вашия акаунт. Моля, сменете паролата си незабавно или се свържете с администратора на сървъра, ако сте блокирани от акаунта си. @@ -81,31 +81,31 @@ bg: failure: Не успяхме да те упълномощим чрез %{kind}, защото "%{reason}". success: Успешно упълномощаване от акаунт на %{kind}. passwords: - no_token: Може да достъпваш тази страница само от имейл за промяна на паролата. Ако тази страница е отворена от такъв имейл, увери се, че използваш целия URL-адрес, който сме ти изпратили. - send_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. - send_paranoid_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. - updated: Паролата ти беше променена успешно. Влизането в профила е успешно. + no_token: Не можете да осъществите достъп до тази страница, ако не сте я отворили чрез линк от получен имейл за възстановяване на паролата. Ако сте отворили линка за възстановяване на паролата от имейл, моля, уверете се, че сте използвали целия предоставен URL адрес. + send_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. + send_paranoid_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. + updated: Паролата ви беше променена успешно. Влязохте в профила си. updated_not_active: Паролата ви беше променена успешно. registrations: destroyed: Довиждане! Вашият акаунт беше успешно изтрит. Надяваме се скоро да ви видим пак. signed_up: Добре дошли! Успешно се регистрирахте. signed_up_but_inactive: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви все още не е активиран. signed_up_but_locked: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви е заключен. - signed_up_but_pending: До адреса на имейла ви е изпратено съобщение с връзка за потвърждение. След като щракнете върху връзката, ние ще прегледаме вашето заявление. Ще бъдете известени, ако то е одобрено. - signed_up_but_unconfirmed: Е-писмо с връзка за потвърждаване беше изпратено до адреса на имейла ви. Последвайте връзката, за да задействате акаунта си. Проверете папката си за спам, ако не сте получили това е-писмо. - update_needs_confirmation: Успешно осъвременихте акаунта си, но трябва да потвърдим новия ви адрес на имейл. Проверете е-пощата си и отворете връзката за потвърждаване на новия адрес. Проверете папката си за спам, ако не сте получили това е-писмо. - updated: Профилът ти е успешно променен. + signed_up_but_pending: На вашия имейл адрес е изпратено съобщение с връзка за потвърждение. След като щракнете върху линка, ние ще прегледаме вашето заявление. Ще бъдете уведомени, ако то е одобрено. + signed_up_but_unconfirmed: Съобщение с линк за потвърждение беше изпратено до вашия имейл адрес. Последвайте линка, за да задействате акаунта си. Проверете спам папката си, ако не сте получили такъв имейл. + update_needs_confirmation: Успешно обновихте акаунта си, но трябва да потвърдим вашия нов имейл адрес. Проверете електронната си поща и отворете отворете линка за потвърждение на новия си имейл адрес. Проверете спам папката си, ако не сте получили имейл за потвърждение. + updated: Вашият акаунт беше успешно обновен. sessions: already_signed_out: Успешно излизане от профила. signed_in: Успешно влизане. signed_out: Успешно излизане. unlocks: - send_instructions: Ще получите е-писмо с указания как да отключите акаунта си до няколко минути. Проверете папката си за спам, ако не сте получили това е-писмо. - send_paranoid_instructions: Ако акаунта ви съществува в базата ни, то ще получите е-писмо с указания за отключването му до няколко минути. Проверете папката си за спам, ако не сте получили това е-писмо. + send_instructions: Ще получите имейл с указания как да отключите акаунта си до няколко минути. Проверете папката си за спам, ако не сте получили такъв имейл. + send_paranoid_instructions: Ако вашият акаунт съществува, ще получите имейл с указания за отключването му до няколко минути. Проверете спам папката си, ако не сте получили такъв имейл. unlocked: Акаунтът ви е успешно отключен. Влезте, за да продължите. errors: messages: - already_confirmed: е вече потвърден, моля опитай да влезеш в профила си с него + already_confirmed: е вече потвърден, моля опитайте да влезете в профила си с него confirmation_period_expired: трябва да се потвърди в рамките на %{period}, моля направи нова заявка за потвърждение expired: е изтекъл, моля заяви нов not_found: не е намерен diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index b49a9f05f5..d6eed695d9 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -21,8 +21,8 @@ et: action: Kinnitage e-postiaadress action_with_app: Kinnita ja naase %{app} explanation: Oled loonud %{host} konto selle e-postiaadressiga. Oled ühe kliki kaugusel selle aktiveerimisest. Kui see polnud sina, palun eira seda kirja. - explanation_when_pending: "Esitasite taotluse liituda selle e-postiaadressiga %{host} kasutajaks. Palume kinnitada e-posti aadress. Pärast seda vaatame me teie taotluse üle. Võite logida sisse, et oma andmeid muuta või konto kustutada, aga te ei saa enamustele tegevustele ligi enne, kui teie konto on meie moderaatorite poolt kinnitatud. Kui konto on kinnitatud, saate selle kohta eraldi e-kirja.\nKui teie taotlus lükatakse aga tagasi, kustutatakse ka teie andmed ja mingit teiepoolset järeltegevust pole vaja. \nKui see polnud teie, siis palume seda kirja eirata." - extra_html: Palun tutvuge meie serveri reeglitega ning meie kasutustingimustega. + explanation_when_pending: "Selle e-postiaadressiga on esitatud taotlus saada %{host} kasutajaks. E-postiaadress vajab kinnitamist. Pärast seda vaatame me taotluse üle. Võib siseneda, et oma andmeid muuta või konto kustutada, aga enamustele tegevustele ei pääse ligi enne, kui konto on meie moderaatorite poolt kinnitatud. Kui konto on kinnitatud, saabub selle kohta eraldi e-kiri.\nKui taotlus lükatakse aga tagasi, kustutatakse ka andmed ja mingit järeltegevust pole vaja. \nKui see polnud Teie, siis palume seda kirja eirata." + extra_html: Palun tutvu meie serveri reeglitega ning meie kasutustingimustega. subject: 'Mastodon: %{instance} kinnitamisjuhised' title: Kinnita e-postiaadress email_changed: @@ -36,7 +36,7 @@ et: subject: 'Mastodon: salasõna muudetud' title: Salasõna muudetud reconfirmation_instructions: - explanation: Kinnitage oma uus aadress, et muuta oma e-posti aadressi. + explanation: Kinnita uus aadress, et oma e-posti aadress muuta. extra: Kui see muudatus pole teie poolt alustatud, palun eirake seda kirja. E-postiaadress sellele Mastodoni kontole ei muutu, kuni te vajutate üleval asuvale lingile. subject: 'Mastodon: kinnitake e-postiaadress %{instance} jaoks' title: Kinnita e-postiaadress @@ -93,19 +93,19 @@ et: signed_up_but_locked: Teie konto loodi edukalt, kuid me ei saanud teid sisse logida, kuna teie konto on lukustatud. signed_up_but_pending: Kiri kinnituslingiga saadeti teie e-postile. Pärast seda, kui te vajutate lingile, vaatame me teie taotluse üle. Teid teavitatakse, kui see on vastu võetud. signed_up_but_unconfirmed: Kiri kinnituslingiga saadeti teie e-postile. Palun järgige linki, et aktiveerida oma konto. Palun kontrollige oma rämpsposti, kui te ei saanud seda e-kirja. - update_needs_confirmation: Teie konto uuendamine õnnestus, kuid e-postiaadress tuleb veel kinnitada. Palun kontrollige oma e-posti ning järgige kirjas olevat linki, et e-postiaadress kinnitada. Palun kontrollige rämpsposti, kui te sellist e-kirja ei saanud. - updated: Teie konto uuendamine õnnestus. + update_needs_confirmation: Konto uuendamine õnnestus, kuid e-postiaadress tuleb veel kinnitada. Palun kontrolli oma e-posti ning järgi kirjas olevat linki, et e-postiaadress kinnitada. Palun kontrolli rämpsposti, kui selline e-kiri ei saabunud. + updated: Konto uuendamine õnnestus. sessions: already_signed_out: Väljumine õnnestus. signed_in: Sisenemine õnnestus. signed_out: Väljumine õnnestus. unlocks: send_instructions: Te saate paari minuti pärast e-kirja juhistega, kuidas oma konto lukust lahti teha. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. - send_paranoid_instructions: Kui teie konto eksisteerib, saate te paari minuti pärast e-kirja juhistega, kuidas see lukust lahti teha. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. - unlocked: Teie konto lukust lahti võtmine õnnestus. Jätkamiseks palun logige sisse. + send_paranoid_instructions: Kui konto on olemas, saabub paari minuti pärast e-kiri juhistega, kuidas konto lukust lahti teha. Palun kontrolli rämpsposti kausta, kui selline e-kiri ei saabunud. + unlocked: Sinu konto avamine õnnestus. Jätkamiseks palun logi sisse. errors: messages: - already_confirmed: oli juba kinnitatud, palun proovige sisse logida + already_confirmed: on juba kinnitatud, palun proovi sisse logida confirmation_period_expired: peab olema kinnitatud ajavahemikus %{period}, palun taotlege uuesti expired: on aegunud, palun taotlege uuesti not_found: ei leitud diff --git a/config/locales/devise.ku.yml b/config/locales/devise.ku.yml index 7ca89d7739..6debd96e05 100644 --- a/config/locales/devise.ku.yml +++ b/config/locales/devise.ku.yml @@ -3,7 +3,7 @@ ku: devise: confirmations: confirmed: Navnîşana te ya e-nameyê bi awayekî serkeftî hat piştrastkirin. - send_instructions: Çend xulek şûnde ji bo navnîşana e-name ya te çawa were pejirandinê, tu yê e-name yek hildî. Heke ev e-name yê hilnedî ji kerema xwe re peldanka nexwestî binêre. + send_instructions: Çend xulek şûnde ji bo navnîşana e-name ya te wê rênasînên pejirandinê were şandin. Ku ev e-name ji te re nehate ji kerema xwe re peldanka nexwestî (Spam) binêre. send_paranoid_instructions: Ku navnîşana e-name ya te danegeha me de hebe çend xulek şûnde ji bo navnîşana e-name ya te çawa were pejirandinê, tu yê e-nameyek ji te re bê şandin. Ku te ev e-name nestand ji kerema xwe re peldanka nexwestî (Spam) binêre. failure: already_authenticated: Jixwe te berê têketin kiriye. @@ -20,34 +20,34 @@ ku: confirmation_instructions: action: Navnîşana e-nameyê piştrast bike action_with_app: Piştrast bike û vegere bo %{app} - explanation: Te li ser %{host} ajimêrek çê kiriye bi navnîşana vê e-nameyê re. Tu ji çalakkirina wê bi tikandinekê dûr î. Heke ev ne tu bûya, ji kerema xwe guh nede vê e-nameyê. + explanation: Te li ser %{host} ajimêrek çê kiriye bi navnîşana vê e-nameyê re. Tu ji çalakkirina wê bi tikandinekê dûr î. Ku ev ne tu bûya, ji kerema xwe vê e-nameyê paşguh bike. explanation_when_pending: |- Te bi vê navnîşana e -nameyê serlêdana vexwendina %{host} kir. Gava ku tu navnîşana e-nameya xwe piştrast bikî, em ê serlêdana te binirxînin. Tu dikarî têkevî da ku hûrguliyên xwe biguherînî an ajimêra xwe jê bibî, lê heya ku ajimêra te neyê pejirandin tu nekarî piraniya fonksiyonan bi kar bînî - Heke serlêdana te werê red kirin, dê daneyên te werin jêbirin, ji ber vê yekê çalakîyek din ji te nayê xwestin. Heke ev ne tu bû, ji kerema xwe guh nede vê e-nameyê. + Ku serlêdana te neyê erêkirin, wê daneyên te werin jêbirin, ji ber vê yekê çalakîyek din ji te nayê xwestin. Ku ev ne tu bû, ji kerema xwe vê e-nameyê paşguh bike. extra_html: Jkx vê jî kontrol bike rêbazên rajekar û mercên me yên karûbaran. subject: 'Mastodon: ji bo %{instance} pejirandinê rêwerzan' title: Navnîşana e-nameyê piştrast bike email_changed: explanation: 'Navnîşana e-nameyê ajimêra te hate guhertin bo:' - extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. + extra: Ku te e-nameya xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Ji kerema xwe borînpeyva xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê ku tu êdî nikare ajimêra xwe bi kar bînî. subject: 'Mastodon: E-name hate guhertin' title: Navnîşana e-nameya nû password_change: explanation: Borînpeyva ajimêra te hate guhertin. - extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî. + extra: Ku te borînpeyva xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Ji kerema xwe borînpeyva xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê ku tu êdî nikarî ajimêra xwe bi kar bînî. subject: 'Mastodon: Borînpeyv hate guhertin' title: Borînpeyv hate guhertin reconfirmation_instructions: explanation: Navnîşana nû piştrast bike da ku tu e-nameya xwe biguherînî. extra: |- - Heke ev daxwaz ji aliyê te de nehate pêkanîn, jkx guh nede vê e-nameyê - Navnîşana e-nameyê bo ajimêra Mastodon wê tu guhertin pêk neyîne heya ku tu li girêdana Jêrin bitikînî. + Ku ev daxwaz ji aliyê te de nehate pêkanîn, ji kerema xwe vê e-nameyê paşguh bike. + Navnîşana e-nameyê bo ajimêra Mastodon wê tu guhertin pêk neyîne heya ku tu li girêdana jêrin bitikînî. subject: 'Mastodon: E-nameyê piştrast bike bo %{instance}' title: Navnîşana e-nameyê piştrast bike reset_password_instructions: action: Borînpeyvê biguherîne explanation: Te ji bo ajimêra xwe daxwaza pêborîneke nû kiriye. - extra: Heke te ev daxwaz nekir, jkx guh nede vê e-nameyê. Borînpeyva te wê neyê guhertin heya ku tu li girêdana Jêrin bitikînî û yeka nû çê bikî. + extra: Ku te ev daxwaz nekiriye, ji kerema xwe vê e-nameyê paşguh bike. Borînpeyva te wê neyê guhertin heya ku tu li girêdana jêrin bitikînî û yeka nû biafirînî. subject: 'Mastodon: rêwerzên jê birina pêborîn' title: Borînpeyv ji nû ve saz bike two_factor_disabled: @@ -85,9 +85,9 @@ ku: failure: Nikare ji %{kind} rastandinê bikê ji bo " %{reason}". success: Ji ajimêra %{kind} bi serkeftî hate rastandin. passwords: - no_token: Tu nikarî xwe bigihînî vê rûpelê bêyî ku tu ji e-nameya ji nû ve sazkirina borînpeyvê wernegerî. Heke tu ji e-nameya ji nû ve sazkirina borînpeyvê tê, ji kerema xwe pê ewle be ku tu girêdanê ya tevahî bi kar tînî. - send_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike. - send_paranoid_instructions: Heke navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî di hundir çend xulkan de. Heke te ev e-name wernegirtibe, ji kerema xwe peldanka xwe ya spamê kontrol bike. + no_token: Tu nikarî xwe bigihînî vê rûpelê bêyî ku tu ji e-nameya ji nû ve sazkirina borînpeyvê wernegerî. Ku tu ji e-nameya ji nû ve sazkirina borînpeyvê tê, ji kerema xwe pê ewle be ku tu girêdanê ya tevahî bi kar tînî. + send_instructions: Ku navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî. Ku te ev e-name nestand, ji kerema xwe peldanka xwe ya spamê kontrol bike. + send_paranoid_instructions: Ku navnîşana te ya e-nameyê di danegeha me da hebê, tu yê di navnîşana xwe ya e-nameyê da girêdana rizgarkirina borînpeyvê bistînî di hundir çend xulekan de. Ku te ev e-name nestand, ji kerema xwe peldanka xwe ya nexwestî (spam) kontrol bike. updated: Borînpeyva te bi serkeftî hate guhertin. Niha tu têketî ye. updated_not_active: Borînpeyva te bi serkeftî hate guhertin. registrations: @@ -95,17 +95,17 @@ ku: signed_up: Bi xêr hatî! Te bi serkeftî tomarkirin kir. signed_up_but_inactive: Te bi serkeftî tomarkirin kir. lê piştî ku tu çalak bikî em dikarin ku tu têketinê bikî. signed_up_but_locked: Te bi serkeftî tomarkirin kir. lê ajimêra te girtiye ber wê tu nikarî ku têketinê bikî. - signed_up_but_pending: Peyamek bi girêda pejirandinê ji navnîşana e-nameya te re hate şandin. Piştî ku tu girêdanê bitikînî, em ê serlêdana te binirxînin. Heke werê pejirandin tu yê bê agahdarkirin. - signed_up_but_unconfirmed: Peyamek bi girêda pejirandinê ji navnîşana e-nameya te re hate şandin. Ji kerema xwe girêdanê bişopîne da ku tu ajimêra xwe çalak bikî. Ji kerema xwe heke te ev e-name nestand peldanka spama xwe kontrol bike. - update_needs_confirmation: Te ajimêra xwe bi awayekî serkeftî rojane kir, lê pêdiviya me bi kontrolkirina navnîşana e -nameya te ya nû heye. Ji kerema xwe e -nameya xwe kontrol bike û girêdana piştrastkirinê bişopîne da ku navnîşana e -nameya xwe ya nû piştrast bikî. Ji kerema xwe heke te ev e -name nestand peldanka spama xwe kontrol bike. + signed_up_but_pending: Peyamek bi girêdana pejirandinê ji navnîşana e-nameya te re hate şandin. Piştî ku tu girêdanê bitikînî, em ê serlêdana te binirxînin. Ku were pejirandin tu yê bê agahdarkirin. + signed_up_but_unconfirmed: Peyamek bi girêdana pejirandinê ji navnîşana e-nameya te re hate şandin. Ji kerema xwe girêdanê bişopîne da ku tu ajimêra xwe çalak bikî. Ji kerema xwe ku te ev e-name nestand peldanka nexwestî (spam) ya xwe kontrol bike. + update_needs_confirmation: Te ajimêra xwe bi awayekî serkeftî rojane kir, lê pêdiviya me bi kontrolkirina navnîşana e -nameya te ya nû heye. Ji kerema xwe e -nameya xwe kontrol bike û girêdana piştrastkirinê bişopîne da ku navnîşana e -nameya xwe ya nû piştrast bikî. Ji kerema xwe ku te ev e-name nestand peldanka nexwestî (spam) ya xwe kontrol bike. updated: Ajimêra te bi awayekî serkeftî hate rojanekirin. sessions: already_signed_out: Derketina te serkeftî bû. signed_in: Têketina te serkeftî bû. signed_out: Derketina te serkeftî bû. unlocks: - send_instructions: Çend xulek şûnde ji bo navnîşana e-name ya te çawa were pejirandinê, tu yê e-name yek hildî. Heke ev e-name yê hilnedî ji kerema xwe re peldanka nexwestî binêrin. - send_paranoid_instructions: Hek ajimêra te hebe, tu yê e-nameyeke bi zanyariyan bistînî ka mirov çawa di çend xulekan de ajimêr vedikê. Ji kerema xwe heke te ev e-name nestand peldanka spama xwe kontrol bike. + send_instructions: Çend xulek şûnde ji bo navnîşana e-name ya te çawa were pejirandinê, tu yê e-nameyekê bistînî. Ku ev e-name yê nestand ki kerema xwe re peldanka nexwestî (Spam) ya xwe binêre. + send_paranoid_instructions: Ku ajimêra te hebe, tu yê e-nameyeke bi zanyariyan bistînî ka mirov çawa di çend xulekan de ajimêr vedikê. Ji kerema xwe ku te ev e-name nestand peldanka nexwestî (spam) ya xwe kontrol bike. unlocked: Ajimêra te bi serkeftî vebû. Ji kerema xwe têkeve da ku tu bidomînî. errors: messages: diff --git a/config/locales/devise.vi.yml b/config/locales/devise.vi.yml index 348f347e6a..2139daca75 100644 --- a/config/locales/devise.vi.yml +++ b/config/locales/devise.vi.yml @@ -22,7 +22,7 @@ vi: 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. Chỉ cần một cú nhấp chuột nữa để 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 vừa đăng ký %{host} với địa chỉ email này. Chúng tôi chỉ xem xét đơn đăng ký sau khi bạn xác minh địa chỉ email. 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ể sử dụng đầy đủ tính năng cho đến khi tài khoản được xác minh. Nếu 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 làm gì thêm nữa. Nếu không phải do bạn đăng ký, xin vui lòng bỏ qua email này. - extra_html: Xin đọc kỹ quy tắc máy chủchính sách riêng tư của chúng tôi. + extra_html: Xin đọc kỹ nội quy máy chủchính sách bảo mật của chúng tôi. subject: 'Mastodon: Xác minh email cho %{instance}' title: Xác minh địa chỉ email email_changed: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 137ee3eae5..88aaaa3456 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -149,9 +149,19 @@ ar: scopes: admin:read: قراءة كافة البيانات على الخادم admin:read:accounts: قراءة المعلومات الحساسة عن كافة الحسابات + admin:read:canonical_email_blocks: قراءة معلومات حساسة عن كل بريد إلكتروني أساسي + admin:read:domain_allows: قراءة المعلومات الحساسة عن كافة النطاقات المسموحة + admin:read:domain_blocks: قراءة المعلومات الحساسة عن كافة النطاقات المحجوبة + admin:read:email_domain_blocks: قراءة المعلومات الحساسة عن كل بريد إلكتروني محجوبة + admin:read:ip_blocks: قراءة المعلومات الحساسة عن كافة العناوين IP المحجوبة admin:read:reports: قراءة المعلومات الحساسة الواردة في جميع التقارير والحسابات المبلغ عنها admin:write: تعديل كافة البيانات على الخادم admin:write:accounts: اتخاذ إجراءات إشراف على الحسابات + admin:write:canonical_email_blocks: اتخاذ إجراءات إشراف على البريد الإلكتروني الأساسيين المحجوبين + admin:write:domain_allows: اتخاذ إجراءات إشراف على النطاقات المسموحين + admin:write:domain_blocks: اتخاذ إجراءات إشراف على النطاقات المحجوبين + admin:write:email_domain_blocks: اتخاذ إجراءات إشراف على نطاقات البريد الإلكتروني المحجوبين + admin:write:ip_blocks: اتخاذ إجراءات إشراف على عناوين IP المحجوبين admin:write:reports: اتخاذ إجراءات إشراف على الإبلاغات crypto: استخدم التشفير من الطرف إلى نهاية الطرف follow: تعديل علاقات الحساب diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index 9211818421..2a7447449d 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -4,7 +4,7 @@ be: attributes: doorkeeper/application: name: Назва праграмы - redirect_uri: URI перанакіравання + redirect_uri: перанакіравць URI scopes: Дазволы website: Вэб-сайт праграмы errors: @@ -13,7 +13,7 @@ be: attributes: redirect_uri: fragment_present: не можа ўтрымліваць фрагмент - invalid_uri: павінен быць сапраўдным URI + invalid_uri: URI павінен быць сапраўдным relative_uri: павінен быць абсалютным URI. secured_uri: павінен быць HTTPS/SSL URI. doorkeeper: @@ -51,7 +51,7 @@ be: application_id: Ключ кліента callback_urls: URL зваротных выклікаў scopes: Дазволы - secret: Кліенцкая таямніца + secret: Кліенцкі сакрэт title: 'Праграма: %{name}' authorizations: buttons: @@ -80,7 +80,7 @@ be: title: Вашы аўтарызаваныя праграмы errors: messages: - access_denied: Уласнік рэсурсу або сервер аўтарызацыі адхіліў ваш запыт. + access_denied: Уласнік рэсурсу або сэрвер аўтарызацыі адхіліў ваш запыт. credential_flow_not_configured: Resource Owner Password Credentials flow не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_from_credentials была не вызначана. invalid_client: Збой аўтэнтыфікацыі кліента з-за невядомага кліента, адсутнасці аўтэнтыфікацыі кліента або метаду аўтэнтыфікацыі, які не падтрымліваецца. invalid_grant: Прадастаўлены дазвол на аўтарызацыю несапраўдны, пратэрмінованы, быў адкліканы, не адпавядае URI перанакіравання, які выкарыстоўваецца ў запыце аўтарызацыі або быў выдадзены іншаму кліенту. @@ -89,18 +89,18 @@ be: missing_param: 'Адсутнічае абавязковы параметр: %{value}.' request_not_authorized: Запыт павінен быць аўтарызаваны. Абавязковы параметр для запыту аўтарызацыі адсутнічае або несапраўдны. unknown: У запыце адсутнічае абавязковы параметр, уключае значэнне параметра, якое не падтрымліваецца, альбо ён сфарміраваны іншым няправільным чынам. - invalid_resource_owner: Прадастаўленыя ўліковыя дадзеныя ўладальніка рэсурсу несапраўдныя або немагчыма знайсці ўладальніка рэсурсу - invalid_scope: Запытаная обласць абмежаванняў несапраўдная, невядомая альбо няправільная. + invalid_resource_owner: Прадстаўленыя ўліковыя дадзеныя ўладальніка рэсурсу несапраўдныя або немагчыма знайсці ўладальніка рэсурсу + invalid_scope: Запытаная вобласць абмежаванняў несапраўдная, невядомая альбо няправільная. invalid_token: expired: Тэрмін дзеяння токена доступу скончыўся revoked: Токен доступу быў адкліканы unknown: Токен доступу з'яўляецца несапраўдным - resource_owner_authenticator_not_configured: Пошук уладальніка рэсурсу не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_authenticator была не вызначына. - server_error: Сервер аўтарызацыі сутыкнуўся з непрадбачанай умоваю, якая не дазваляе выканаць запыт. + resource_owner_authenticator_not_configured: Пошук уладальніка рэсурсу не прайшоў з-за таго, што ўласцівасць Doorkeeper.configure.resource_owner_authenticator была не вызначана. + server_error: Сэрвер аўтарызацыі сутыкнуўся з непрадбачанай умовай, якая не дазваляе выканаць запыт. temporarily_unavailable: Сервер аўтарызацыі зараз не можа апрацаваць запыт з-за часовага перагрузу або прафілактычных работ на серверы. unauthorized_client: Кліент не аўтарызаваны, каб выканаць такі запыт выкарыстоўваючы гэты метад. - unsupported_grant_type: Тып аўтарызацыі не падтрымліваецца серверам аўтарызацыі. - unsupported_response_type: Сервер аўтарызацыі не падтрымлівае такі тып адказу. + unsupported_grant_type: Тып аўтарызацыі не падтрымліваецца сэрверам аўтарызацыі. + unsupported_response_type: Сэрвер аўтарызацыі не падтрымлівае такі тып адказу. flash: applications: create: @@ -119,15 +119,15 @@ be: write: Доступ толькі для запісу title: accounts: Уліковыя запісы - admin/accounts: Кіраванне ўліковымі запісамі - admin/all: Усе адміністратыўныя функцыі - admin/reports: Кіраванне справаздачамі + admin/accounts: Кіраванне акаўнтамі + admin/all: Усе кіравальныя функцыі + admin/reports: Кіраванне скардамі all: Усе - blocks: Блакіроўкі + blocks: Блакаванні bookmarks: Закладкі conversations: Размовы crypto: Скразное шыфраванне - favourites: Упадабаныя + favourites: Абраныя filters: Фільтры follow: Зносіны follows: Падпіскі @@ -145,46 +145,48 @@ be: applications: Праграмы oauth2_provider: OAuth2 правайдар application: - title: Неабходна OAuth аўтарызацыя + title: Патрабуецца аўтарызацыя OAuth scopes: - admin:read: чытаць усе даныя на серверы - admin:read:accounts: бачыць канфідэнцыйную інфармацыю ўсіх акаўнтаў - admin:read:domain_allows: бачыць канфідэнцыяльную інфармацыю ўсіх дазволеных даменаў - admin:read:domain_blocks: бачыць канфідэнцыяльную інфармацыю ўсіх блакіраваных даменаў - admin:read:email_domain_blocks: бачыць канфідэнцыяльную інфармацыю ўсіх блакіраваных даменаў эл. пошты - admin:read:ip_blocks: бачыць канфідэнцыяльную інфармацыю ўсіх блакіраваных IP - admin:read:reports: чытаць далікатную інфармацыю са скарг і ўліковых запісаў, на якія пададзена скарга + admin:read: чытаць усе дадзеныя на серверы + admin:read:accounts: чытаць канфідэнцыйную інфармацыю ўсіх акаўнтаў + admin:read:canonical_email_blocks: чытаць канфідэнцыйную інфармацыю ўсіх кананічных блокаў электроннай пошты + admin:read:domain_allows: чытаць канфідэнцыйную інфармацыю ўсіх дазволеных даменаў + admin:read:domain_blocks: чытаць канфідэнцыйную інфармацыю ўсіх блакіраваных даменаў + admin:read:email_domain_blocks: чытаць канфідэнцыйную інфармацыю ўсіх блакіраваных даменаў эл. пошты + admin:read:ip_blocks: чытаць канфідэнцыяльную інфармацыю ўсіх блакіраваных IP + admin:read:reports: чытаць канфідэнцыйную інфармацыю ўсіх справаздач і справаздачных уліковых запісаў admin:write: змяняць усе даныя на серверы - admin:write:accounts: мадэраваць уліковыя запісы - admin:write:domain_allows: мадэраваць дазволеныя дамены + admin:write:accounts: выконваць дзеянні па мадэрацыі акаўнтаў + admin:write:canonical_email_blocks: выконваць дзеянні па мадэрацыі кананічных блокаў электроннай пошты + admin:write:domain_allows: дазваляе праводзіць мадэрацыю ў дамене admin:write:domain_blocks: мадэраваць блакіраваныя дамены admin:write:email_domain_blocks: мадэраваць блакіраваныя дамены эл. пошты admin:write:ip_blocks: мадэраваць блакіраваныя IP admin:write:reports: мадэраваць скаргі - crypto: выкарыстоўваць скразное шыфраванне + crypto: выкарыстоўваць скразное шыфраванне (end-to-end) follow: змяняць зносіны ўліковага запісу push: атрымліваць push-апавяшчэнні read: чытаць усе даныя вашага ўліковага запісу read:accounts: бачыць інфармацыю аб уліковых запісах - read:blocks: бачыць вашы блакіроўкі - read:bookmarks: бачыць вашы закладкі - read:favourites: бачыць ваш спіс упадабанага - read:filters: бачыць вашы фільтры - read:follows: бачыць вашы падпіскі - read:lists: бачыць вашы спісы - read:mutes: бачыць ваш спіс ігнараваных - read:notifications: бачыць вашы апавяшчэнні - read:reports: бачыць вашы скаргі + 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:accounts: змяняць свой профіль write:blocks: блакіраваць уліковыя запісы і дамены - write:bookmarks: дадаваць допісы ў закладкі + write:bookmarks: закладкі допісаў write:conversations: ігнараваць і выдаляць размовы write:favourites: дадаваць допісы ва ўпадабанае write:filters: ствараць фільтры - write:follows: падпісвацца на людзей + write:follows: Сачыць за людзьмі write:lists: ствараць спiсы write:media: запампоўваць медыяфайлы write:mutes: ігнараваць людзей і размовы diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index 1838db222f..6ecfb0131e 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -164,7 +164,7 @@ ca: admin:write:ip_blocks: executa accions de moderació en blocs d'IP admin:write:reports: fer l'acció de moderació en els informes crypto: usa xifrat d'extrem a extrem - follow: modificar relacions dels comptes + follow: modifica les relacions del compte push: rebre notificacions push del teu compte read: llegir les dades del teu compte read:accounts: mira informació dels comptes diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index c27e419799..5701550581 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -145,22 +145,22 @@ de: applications: Anwendungen oauth2_provider: OAuth2-Anbieter application: - title: OAuth-Autorisierung nötig + title: OAuth-Autorisierung erforderlich scopes: admin:read: alle Daten auf dem Server lesen admin:read:accounts: sensible Informationen aller Konten lesen admin:read:canonical_email_blocks: sensible Informationen aller kanonischen E-Mail-Sperren lesen admin:read:domain_allows: sensible Informationen aller zugelassenen Domains lesen admin:read:domain_blocks: sensible Informationen aller Domain-Sperren lesen - admin:read:email_domain_blocks: sensible Informationen aller E-Mail-Domainsperren lesen + admin:read:email_domain_blocks: sensible Informationen aller E-Mail-Domain-Sperren lesen admin:read:ip_blocks: sensible Informationen aller IP-Sperren lesen admin:read:reports: sensible Informationen aller Meldungen und gemeldeten Konten lesen admin:write: alle Daten auf dem Server ändern admin:write:accounts: Moderationsaktionen auf Konten ausführen admin:write:canonical_email_blocks: Moderationsaktionen auf kanonischen E-Mail-Sperren ausführen admin:write:domain_allows: Moderationsaktionen auf zugelassende Domains ausführen - admin:write:domain_blocks: Moderationsaktionen auf Domainsperren ausführen - admin:write:email_domain_blocks: Moderationsaktionen auf E-Mail-Domainsperren ausführen + admin:write:domain_blocks: Moderationsaktionen auf Domain-Sperren ausführen + admin:write:email_domain_blocks: Moderationsaktionen auf E-Mail-Domain-Sperren ausführen admin:write:ip_blocks: Moderationsaktionen auf IP-Sperren ausführen admin:write:reports: Moderationsaktionen auf Meldungen ausführen crypto: Ende-zu-Ende-Verschlüsselung verwenden diff --git a/config/locales/doorkeeper.en-GB.yml b/config/locales/doorkeeper.en-GB.yml index 1f13709bee..7d2716359b 100644 --- a/config/locales/doorkeeper.en-GB.yml +++ b/config/locales/doorkeeper.en-GB.yml @@ -149,9 +149,19 @@ en-GB: scopes: admin:read: read all data on the server admin:read:accounts: read sensitive information of all accounts + admin:read:canonical_email_blocks: read sensitive information of all canonical email blocks + admin:read:domain_allows: read sensitive information of all domain allows + admin:read:domain_blocks: read sensitive information of all domain blocks + admin:read:email_domain_blocks: read sensitive information of all email domain blocks + admin:read:ip_blocks: read sensitive information of all IP blocks admin:read:reports: read sensitive information of all reports and reported accounts admin:write: modify all data on the server admin:write:accounts: perform moderation actions on accounts + admin:write:canonical_email_blocks: perform moderation actions on canonical email blocks + admin:write:domain_allows: perform moderation actions on domain allows + admin:write:domain_blocks: perform moderation actions on domain blocks + admin:write:email_domain_blocks: perform moderation actions on email domain blocks + admin:write:ip_blocks: perform moderation actions on IP blocks admin:write:reports: perform moderation actions on reports crypto: use end-to-end encryption follow: modify account relationships diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml index 58017d83ae..8358ce9bcf 100644 --- a/config/locales/doorkeeper.es-MX.yml +++ b/config/locales/doorkeeper.es-MX.yml @@ -6,7 +6,7 @@ es-MX: name: Nombre de aplicación redirect_uri: URI para redirección scopes: Ámbitos - website: Sitio web + website: Sitio web de la aplicación errors: models: doorkeeper/application: @@ -60,7 +60,7 @@ es-MX: error: title: Ha ocurrido un error new: - prompt_html: "%{client_name} Requiere permisos para acceder a tu cuenta. Es una aplicación de terceros. Si no confías en ella, no deberías darle autorización." + prompt_html: "%{client_name} requiere permiso para acceder a tu cuenta. Es una aplicación de terceros. Si no confías en esta, no deberías autorizarla." review_permissions: Revisar permisos title: Se requiere autorización show: @@ -77,18 +77,18 @@ es-MX: never_used: Nunca usado scopes: Permisos superapp: Interno - title: Sus aplicaciones autorizadas + title: Tus aplicaciones autorizadas errors: messages: access_denied: El propietario del recurso o servidor de autorización denegó la petición. credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar. - invalid_client: La autentificación del cliente falló debido o a que es un cliente desconocido o no está incluída la autentificación del cliente o el método de autentificación no está confirmado. + invalid_client: La autentificación del cliente falló ya que es un cliente desconocido, no está incluída la autentificación del cliente o el método de autentificación no es compatible. invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente. invalid_redirect_uri: La URI de redirección incluida no es válida. invalid_request: missing_param: 'Falta el parámetro requerido: %{value}.' - request_not_authorized: La solicitud debe ser autorizada. Parámetro requerido para la autorización de la solicitud falta o no es válido. - unknown: En la petición falta un parámetro necesario o incluye un valor de parámetro no soportado o tiene otro tipo de formato incorrecto. + request_not_authorized: La solicitud necesita ser autorizada. El parámetro requerido para la autorización de la solicitud está ausente o es inválido. + unknown: En la solicitud falta un parámetro necesario, incluye un valor de parámetro no soportado o tiene otro tipo de formato incorrecto. invalid_resource_owner: Las credenciales proporcionadas del propietario del recurso no son válidas, o el propietario del recurso no puede ser encontrado invalid_scope: El ámbito pedido es inválido, desconocido o erróneo. invalid_token: @@ -149,9 +149,19 @@ es-MX: scopes: admin:read: leer todos los datos en el servidor admin:read:accounts: leer información sensible de todas las cuentas + admin:read:canonical_email_blocks: leer información sensible de todos los bloques de correo canónico + admin:read:domain_allows: leer información sensible de todos los dominios permitidos + admin:read:domain_blocks: leer información sensible de todos los bloques de dominio + admin:read:email_domain_blocks: leer información sensible de todos los bloques de dominio de correo electrónico + admin:read:ip_blocks: leer información sensible de todos los bloques de IP admin:read:reports: leer información sensible de todos los informes y cuentas reportadas admin:write: modificar todos los datos en el servidor admin:write:accounts: realizar acciones de moderación en cuentas + admin:write:canonical_email_blocks: realizar acciones de moderación en bloques de correo canónico + admin:write:domain_allows: realizar acciones de moderación en el dominio permitido + admin:write:domain_blocks: realizar acciones de moderación en bloques de dominio + admin:write:email_domain_blocks: realizar acciones de moderación en bloques de dominio de correo electrónico + admin:write:ip_blocks: realizar acciones de moderación en bloques de IP admin:write:reports: realizar acciones de moderación en informes crypto: usar cifrado de extremo a extremo follow: seguir, bloquear, desbloquear y dejar de seguir cuentas diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml index 74d16942c1..654447e003 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -23,7 +23,7 @@ et: cancel: Katkesta destroy: Hävita edit: Muuda - submit: Saada + submit: Kinnita confirmations: destroy: Oled kindel? edit: @@ -43,7 +43,7 @@ et: new: Uus rakendus scopes: Ulatused show: Kuva - title: Teie rakendused + title: Kasutusel rakendused new: title: Uus rakendus show: @@ -165,10 +165,10 @@ et: admin:write:reports: teostada moderaatori tegevusi teavitustel crypto: kasuta otspunktkrüpeerimist follow: muuta kontode suhteid - push: saada Teie teateid - read: lugeda kogu Teie konto andmeid + push: saab tõuketeateid + read: lugeda konto kõiki andmeid read:accounts: näha konto informatsiooni - read:blocks: näha Teie blokeeringuid + read:blocks: näha su blokeeringuid read:bookmarks: näha järjehoidjaid read:favourites: näha Teie lemmikuid read:filters: näha Teie filtreid @@ -190,6 +190,6 @@ et: write:lists: luua nimekirju write:media: üles laadida meediafaile write:mutes: vaigista inimesi ja vestluseid - write:notifications: puhasta Teie teateid + write:notifications: tühjendada teateid write:reports: teavitada teistest inimestest write:statuses: avaldada postitusi diff --git a/config/locales/doorkeeper.fr-QC.yml b/config/locales/doorkeeper.fr-QC.yml index 073d5a0eea..45ad8f1866 100644 --- a/config/locales/doorkeeper.fr-QC.yml +++ b/config/locales/doorkeeper.fr-QC.yml @@ -149,9 +149,19 @@ fr-QC: scopes: admin:read: lire toutes les données du serveur admin:read:accounts: lire les informations sensibles de tous les comptes + admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs d'e-mails canoniques + admin:read:domain_allows: lire les informations sensibles de tous les domaines autorisés + admin:read:domain_blocks: lire les informations sensibles de tous les blocqueurs de domaines + admin:read:email_domain_blocks: lire les informations sensibles de tous les blocqueurs d'e-mails de domaines + admin:read:ip_blocks: lire les informations sensibles de tous les blocqueurs d'IP 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:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs d'e-mails canoniques + admin:write:domain_allows: effectuer des actions de modération sur les autorisations de domaines + admin:write:domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines + admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs d'e-mails de domaines + admin:write:ip_blocks: effectuer des actions de modération sur des bloqueurs d'IP admin:write:reports: effectuer des actions de modération sur les signalements crypto: utiliser le chiffrement de bout-en-bout follow: modifier les relations du compte diff --git a/config/locales/doorkeeper.fy.yml b/config/locales/doorkeeper.fy.yml index 06f7e901fc..ce47ae04cf 100644 --- a/config/locales/doorkeeper.fy.yml +++ b/config/locales/doorkeeper.fy.yml @@ -149,9 +149,19 @@ fy: scopes: admin:read: alle gegevens op de server lêze admin:read:accounts: gefoelige ynformaasje fan alle accounts lêze + admin:read:canonical_email_blocks: lês gefoelige ynformaasje fan alle kanonike e-mailblokken + admin:read:domain_allows: lês gefoelige ynformaasje fan alle domeinen + admin:read:domain_blocks: lês gefoelige ynformaasje fan alle domeinblokken + admin:read:email_domain_blocks: lês gefoelige ynformaasje fan alle e-maildomeinblokken + admin:read:ip_blocks: lês gefoelige ynformaasje fan alle IP-blokken admin:read:reports: gefoelige ynformaasje fan alle rapportaazjes en rapportearre accounts lêze admin:write: wizigje alle gegevens op de server admin:write:accounts: moderaasjemaatregelen tsjin accounts nimme + admin:write:canonical_email_blocks: fier moderaasje-aksjes út op kanonike e-mailblokken + admin:write:domain_allows: fier moderaasje-aksjes út op domeintastimmingen + admin:write:domain_blocks: fier moderaasje-aksjes út op domeinblokkaden + admin:write:email_domain_blocks: fier moderaasje-aksjes út op e-maildomeinen + admin:write:ip_blocks: fier moderaasje-aksjes út op IP-adresblokken admin:write:reports: moderaasjemaatregelen nimme yn rapportaazjes crypto: end-to-end-encryptie brûke follow: relaasjes tusken accounts bewurkje diff --git a/config/locales/doorkeeper.id.yml b/config/locales/doorkeeper.id.yml index 9a3fed94d5..019f339477 100644 --- a/config/locales/doorkeeper.id.yml +++ b/config/locales/doorkeeper.id.yml @@ -149,9 +149,16 @@ id: scopes: admin:read: baca semua data di server admin:read:accounts: baca informasi sensitif semua akun + admin:read:canonical_email_blocks: baca informasi sensitif dari semua domain surat elektronik kanonikal yang diblokir + admin:read:domain_allows: baca informasi sensitif dari semua domain yang diperbolehkan + admin:read:domain_blocks: baca informasi sensitif dari semua domain yang diblokir + admin:read:email_domain_blocks: baca informasi sensitif dari semua domain surat elektronik yang diblokir + admin:read:ip_blocks: baca informasi sensitif dari semua alamat IP yang diblokir admin:read:reports: baca informasi sensitif semua laporan dan akun terlapor admin:write: ubah semua data di server admin:write:accounts: lakukan aksi moderasi akun + admin:write:canonical_email_blocks: melakukan aksi moderasi pada email kanonikal yang diblokir + admin:write:ip_blocks: lakukan moderasi tindakan pada blokir IP admin:write:reports: lakukan aksi moderasi laporan crypto: menggunakan enkripsi end-to-end follow: mengikuti, blokir, menghapus blokir, dan berhenti mengikuti akun diff --git a/config/locales/doorkeeper.lv.yml b/config/locales/doorkeeper.lv.yml index a45b4822d7..d6fca1ff21 100644 --- a/config/locales/doorkeeper.lv.yml +++ b/config/locales/doorkeeper.lv.yml @@ -132,7 +132,7 @@ lv: follow: Attiecības follows: Seko lists: Saraksti - media: Mediju pielikumi + media: Multividesu pielikumi mutes: Apklusinātie notifications: Paziņojumi push: Uznirstošie paziņojumi @@ -188,7 +188,7 @@ lv: write:filters: izveidot filtrus write:follows: seko cilvēkiem write:lists: izveido sarakstus - write:media: pievieno mediju datnes + write:media: pievieno multivides datnes write:mutes: apklusini cilvēkus un sarunas write:notifications: notīri savus paziņojumus write:reports: ziņo par citiem cilvēkiem diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml index 75af425de3..4a9c6ae367 100644 --- a/config/locales/doorkeeper.pl.yml +++ b/config/locales/doorkeeper.pl.yml @@ -149,9 +149,19 @@ pl: scopes: admin:read: odczytaj wszystkie dane na serwerze admin:read:accounts: odczytaj wrażliwe informacje na wszystkich kontach + admin:read:canonical_email_blocks: odczytaj poufne informacje o wszystkich kanonicznych blokach poczty + admin:read:domain_allows: odczyt wrażliwych informacji z domen, które pozwalają + admin:read:domain_blocks: odczyt wrażliwych informacji ze wszystkich bloków domen + admin:read:email_domain_blocks: odczyt wrażliwych informacji ze wszystkich bloków domen email + admin:read:ip_blocks: odczyt wrażliwych informacji ze wszystkich bloków IP admin:read:reports: odczytaj wrażliwe informacje ze wszystkich zgłoszeń oraz zgłoszonych kont admin:write: zmodyfikuj wszystkie dane na serwerze admin:write:accounts: wykonaj działania moderacyjne na kontach + admin:write:canonical_email_blocks: wykonaj działania moderacyjne na kanonicznych blokach e-mail + admin:write:domain_allows: wykonaj działania moderacyjne na domenach, które zezwalają + admin:write:domain_blocks: wykonaj działania moderacyjne na blokach domen + admin:write:email_domain_blocks: wykonaj działania moderacyjne na blokach domen e-mail + admin:write:ip_blocks: wykonaj działania moderacyjne na blokach IP admin:write:reports: wykonaj działania moderacyjne na zgłoszeniach crypto: użyj szyfrowania end-to-end follow: możliwość zarządzania relacjami kont diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml index 8cdecabbcd..0dd66cb37b 100644 --- a/config/locales/doorkeeper.uk.yml +++ b/config/locales/doorkeeper.uk.yml @@ -58,7 +58,7 @@ uk: authorize: Авторизувати deny: Відмовити error: - title: Трапилась помилка + title: Сталася помилка new: prompt_html: "%{client_name} хоче отримати доступ до вашого облікового запису. Це сторонній застосунок. Якщо ви йому не довіряєте, не варто авторизувати його." review_permissions: Переглянути дозволи @@ -149,11 +149,25 @@ uk: scopes: admin:read: читати всі дані на сервері admin:read:accounts: читати конфіденційну інформацію усіх акаунтів + admin:read:canonical_email_blocks: читати конфіденційну інформацію всіх канонічних блоків електронної пошти admin:read:domain_allows: читати конфіденційну інформацію всіх доменів дозволено + admin:read:domain_blocks: читати конфіденційну інформацію всіх доменних блоків + admin:read:email_domain_blocks: читати конфіденційну інформацію всіх блоків доменів електронної пошти + admin:read:ip_blocks: читати конфіденційну інформацію всіх IP блоків admin:read:reports: читати дражливу інформацію усіх скарг та облікових записів зі скаргами admin:write: модифікувати всі дані на сервері admin:write:accounts: модерувати облікові записи + admin:write:canonical_email_blocks: 'здійснювати модераторські дії щодо канонічних поштових блоків + + ' admin:write:domain_allows: модерувати домени дозволено + admin:write:domain_blocks: 'здійснювати модераторські дії щодо доменних блоків + + ' + admin:write:email_domain_blocks: здійснювати модераторські дії щодо блокування поштових доменів + admin:write:ip_blocks: 'здійснювати дії з модерації IP-блоків + + ' admin:write:reports: модерувати скарги crypto: використовувати наскрізне шифрування follow: змінювати стосунки облікового запису diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index e67bb1fa7c..41bebd7a1a 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -63,6 +63,11 @@ en-GB: disabled: Frozen display_name: Display name domain: Domain + roles: + categories: + devops: DevOps + privileges: + view_devops: DevOps errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -73,3 +78,10 @@ en-GB: '429': Too many requests '500': '503': The page could not be served due to a temporary server failure. + sessions: + browsers: + blackberry: BlackBerry + uc_browser: UC Browser + platforms: + blackberry: BlackBerry + chrome_os: ChromeOS diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 3092c55e25..59eafb08a4 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -885,7 +885,7 @@ eo: next_steps: Vi povas aprobi apelacion por malfari kontroldecidon au ignori. subject: "%{username} apelacias kontroldecidon ĉe %{instance}" new_pending_account: - body: La detaloj de la nova konto estas sube. Vi povas aprobi aŭ Malakcepti ĉi kandidatiĝo. + body: La detaloj de la nova konto estas ĉi-sube. Vi povas akcepti aŭ malakcepti tiun aliĝilon. subject: Nova konto atendas por recenzo en %{instance} (%{username}) new_report: body: "%{reporter} signalis %{target}" @@ -1544,7 +1544,7 @@ eo: min_reblogs: Konservi diskonitajn mesaĝojn almenau min_reblogs_hint: Oni ne forigas viajn afiŝojn kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj stream_entries: - pinned: Alpinglita + pinned: Fiksita afiŝo reblogged: diskonigita sensitive_content: Tikla enhavo strikes: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index ae2d59336c..132105848a 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -4,7 +4,7 @@ es-MX: 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!' contact_missing: No especificado contact_unavailable: No disponible - hosted_on: Mastodon hosteado en %{domain} + hosted_on: Mastodon alojado en %{domain} title: Acerca de accounts: follow: Seguir @@ -116,6 +116,8 @@ es-MX: redownloaded_msg: Se actualizó correctamente el perfil de %{username} desde el origen reject: Rechazar rejected_msg: La solicitud de registro de %{username} ha sido rechazada con éxito + remote_suspension_irreversible: Los datos de esta cuenta han sido eliminados irreversiblemente. + remote_suspension_reversible_hint_html: La cuenta ha sido suspendida en su servidor, y los datos serán eliminados completamente el %{date}. Hasta entonces, el servidor remoto puede restaurar esta cuenta sin ningún efecto perjudicial. Si desea eliminar todos los datos de la cuenta inmediatamente, puede hacerlo a continuación. remove_avatar: Eliminar el avatar remove_header: Eliminar cabecera removed_avatar_msg: Se ha eliminado exitosamente la imagen del avatar de %{username} @@ -705,7 +707,7 @@ es-MX: title: Retención de contenido default_noindex: desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos - title: Excluir por defecto a los usuarios de la indexación del motor de búsqueda + title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto discovery: follow_recommendations: Recomendaciones de cuentas preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor. @@ -973,6 +975,9 @@ es-MX: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta. title: Configuración + sign_in: + preamble_html: Registrate con tus credenciales de %{domain}. Si tu cuenta está alojada en un servidor diferente, no podrás iniciar sesión aquí. + title: Registrate en %{domain} sign_up: preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente del servidor en el que se encuentre. title: Crear cuenta de Mastodon en %{domain}. diff --git a/config/locales/et.yml b/config/locales/et.yml index 89ee5c092a..746fe032eb 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -57,7 +57,7 @@ et: deleted: Kustutatud demote: Alanda destroyed_msg: "%{username} andmed on nüüd lõpliku kustutamise ootel" - disable: Keela + disable: Lukusta disable_sign_in_token_auth: Keela e-posti võtmetega autentimine disable_two_factor_authentication: Keela 2FA disabled: Keelatud @@ -157,7 +157,7 @@ et: unconfirmed_email: Kinnitamata e-post undo_sensitized: Eemalda tundliku sisu märge undo_silenced: Võta vaigistus tagasi - undo_suspension: Võta peatamine tagasi + undo_suspension: Võta kustutamine tagasi unsilenced_msg: Konto %{username} piirangud emaldatud unsubscribe: Tühista tellimus unsuspended_msg: Kasutaja %{username} konto taastatud @@ -759,7 +759,7 @@ et: strikes: actions: delete_statuses: "%{name} kustutas %{target} postitused" - disable: "%{name} külmutas %{target} konto" + disable: "%{name} lukustas %{target} konto" mark_statuses_as_sensitive: "%{name} märkis %{target} postitused tundlikena" none: "%{name} saatis hoiatuse kasutajale %{target}" sensitive: "%{name} märkis %{target} konto kui tundlik sisu" @@ -877,7 +877,7 @@ et: new_appeal: actions: delete_statuses: kustutada postitused - disable: kustutada konto + disable: lukustada konto mark_statuses_as_sensitive: et märkida postitused kui tundlik sisu none: hoiatus sensitive: et märkida konto kui tundlik sisu @@ -979,7 +979,7 @@ et: preamble_html: Logige sisse oma %{domain} volitustega. Kui konto asub teises serveris, ei saa te siin sisse logida. title: Logi sisse kohta %{domain} sign_up: - preamble: Selle kontoga saad jälgida ja suhelda kõigi teiste kasutajatega erivevates Mastodoni serverites. + preamble: Selle kontoga saad jälgida ja suhelda kõigi teiste kasutajatega erinevates Mastodoni serverites. title: Loo konto serverisse %{domain}. status: account_status: Konto olek @@ -1044,8 +1044,8 @@ et: email_reconfirmation_html: Kui Te ei saanud kinnituskirja, saate selle uuesti küsida irreversible: Kustutatud kontot ei saa taastada ega uuesti aktiveerida more_details_html: Konto kustutamise kohta loe täpsemalt isikuandmete kaitse põhimõtetest. - username_available: Su kasutajanimi muutub uuesti kasutatavaks - username_unavailable: Su kasutajanimi jääb mittekasutatavaks + username_available: Kasutajanimi muutub uuesti kasutatavaks + username_unavailable: Kasutajanimi jääb mittekasutatavaks disputes: strikes: action_taken: Tulemus @@ -1067,7 +1067,7 @@ et: title: "%{action} kuupäevaga %{date}" title_actions: delete_statuses: Postituste eemaldamine - disable: Konto külmutamine + disable: Konto lukustamine mark_statuses_as_sensitive: Postituste tundlikena märkimine none: Hoiatus sensitive: Konto tundlikuna märkimine @@ -1180,8 +1180,8 @@ et: other: Vali kõik %{count} otsinguvastet. today: täna validation_errors: - one: Midagi pole ikka õigesti! Palun vaadake allolev veateade üle - other: Midagi pole ikka õigesti! Palun vaadake all olevad %{count} veateadet üle + one: Midagi pole ikka õigesti! Palun vaata allolev veateade üle + other: Midagi pole ikka õigesti! Palun vaata all olevad %{count} veateadet üle html_validator: invalid_markup: 'sisaldab valet HTMLi süntaksi: %{error}' imports: @@ -1241,7 +1241,7 @@ et: media_attachments: validations: images_and_video: Ei saa lisada video postitusele, milles on juba pildid - not_ready: Ei saa lisada faile, mida hetkel töödeldakse. Proovige uuesti mõne hetke pärast! + not_ready: Ei saa lisada faile, mida hetkel töödeldakse. Proovi uuesti mõne hetke pärast! too_many: Ei saa lisada rohkem, kui 4 faili migrations: acct: Kolitud aadressile @@ -1591,7 +1591,7 @@ et: title: Vaidlustus tagasi lükatud backup_ready: explanation: Te taotlesite varukoopia oma Mastodoni kontost. See on nüüd valmis allalaadimiseks! - subject: Teie arhiiv on allalaadimiseks valmis + subject: Arhiiv on allalaadimiseks valmis title: Arhiivi väljavõte suspicious_sign_in: change_password: muuta oma salasõna @@ -1607,7 +1607,7 @@ et: spam: Rämpspost violation: Sisu eirab järgmisi kogukonnajuhiseid explanation: - delete_statuses: Mõned postitused eiravad ühte või mitmeid kogukonnajuhiseid ja on seetõttu %{instance} moderaatorite poolt eemaldatud. + delete_statuses: Mõned su positustest eiravad serveri reegleid või tavasid ning on seetõttu %{instance} moderaatorite poolt eemaldatud. disable: Konto kasutamine pole enam võimalik, kuid profiil ja muud andmed säilivad. Andmetest on võimalik saada varukoopiat, muuta konto seadeid või konto kustutada. mark_statuses_as_sensitive: Mõned postitused märgiti %{instance} moderaatorite poolt kui tundlik sisu. See tähendab, et meedia eelvaadet vaikimisi ei kuvata. Edaspidi postitades on soovitatav seesugune meedia märkida kui tundlik sisu. sensitive: Praegusest alates saab kogu Su üleslaetav meedia tundliku sisu märke ja selle eelvaadet ei kuvata enne hoiatust. @@ -1636,11 +1636,11 @@ et: edit_profile_step: |- Esmalt seadista oma profiil. Saad lisada profiilipildi, muuta ekraaninime, lisada lühikirjelduse ja teha paljut muud. Vaata üle oma konto seaded. Saad ise otsustada, kui nähtav on konto teiste jaoks, mis keeltes postitusi oma ajavoos näha soovid ning kui privaatne peaks konto olema. - Kui mõni asi arusaamatuks jääb, siis saate vaadata juhendvideot: https://youtu. be/J4ItbTOAw7Q. + Kui mõni asi arusaamatuks jääb, siis võib vaadata juhendvideot: https://youtu.be/J4ItbTOAw7Q explanation: Siin on mõned nõuanded, mis aitavad alustada final_action: Alusta postitamist final_step: 'Nüüd tee oma esimene postitus. Hea tava on uues kohas ennast tutvustada ning kindlasti kasuta selles postituses ka teemaviidet #tutvustus. Isegi kui sul ei ole veel jälgijaid, siis su postitusi näevad kohalikul ajajoonel ka kõik teised serveri kasutajad.' - full_handle: Su kasutajanimi Mastodon võrgustikus + full_handle: Kasutajanimi Mastodon võrgustikus full_handle_hint: Kui jagad kasutajanime väljaspool serverit, siis kasuta kindlasti pikka nime. Erinevates serverites võib olla sama kasutajanimega liikmeid. subject: Tere tulemast Mastodoni title: Tere tulemast, %{name}! diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml index f3a6e0b4c0..d48e188e48 100644 --- a/config/locales/fr-QC.yml +++ b/config/locales/fr-QC.yml @@ -975,6 +975,9 @@ fr-QC: email_below_hint_html: Si l’adresse de courriel ci-dessous est incorrecte, vous pouvez la modifier ici et recevoir un nouveau courriel de confirmation. email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte. title: Configuration + sign_in: + preamble_html: Connectez-vous avec vos identifiants %{domain} . Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici. + title: Se connecter à %{domain} sign_up: preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé. title: Mettons les choses en place pour %{domain}. diff --git a/config/locales/fy.yml b/config/locales/fy.yml index d178d21279..aa023827cf 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -105,36 +105,264 @@ fy: pending: Moat noch beoardiele wurde perform_full_suspension: Utstelle previous_strikes: Eardere skeiningen + previous_strikes_description_html: + one: Dizze account hat ien oertrêding makke. + other: Dizze account hat %{count} oertrêdingen makke. promote: Promovearje protocol: Protokol public: Iepenbier + push_subscription_expires: PuSH-abonnemint ferrint op + redownload: Profyl fernije + redownloaded_msg: It werstellen fan it oarspronklike profyl fan %{username} is slagge reject: Wegerje + rejected_msg: It ôfwizen fan it registraasjefersyk fan %{username} is slagge + remote_suspension_irreversible: De gegevens fan dizze account binne definityf fuortsmiten. + remote_suspension_reversible_hint_html: Dizze account is útsteld op harren server en de gegevens wurde op %{date} folslein fuortsmiten. Oant dy tiid kin de eksterne server dizze account werstelle sûnder neidielige gefolgen. Wannear’t jo alle gegevens fan dizze account daliks fuortsmite wolle, kinne jo dit hjirûnder dwaan. + remove_avatar: Profylfoto fuortsmite + remove_header: Omslachfoto fuortsmite + removed_avatar_msg: It fuortsmiten fan de profylfoto fan %{username} is slagge + removed_header_msg: It fuortsmiten fan de omslachfoto fan %{username} is slagge + resend_confirmation: + already_confirmed: Dizze brûker is al befêstige + send: Befêstigings-e-mailberjocht opnij ferstjoere + success: Befêstigings-e-mailberjocht mei sukses ferstjoerd! + reset: Opnij ynstelle + reset_password: Wachtwurd opnij ynstelle + resubscribe: Opnij abonnearje + role: Rol + search: Sykje + search_same_email_domain: Oare brûkers mei itselde e-maildomein + search_same_ip: Oare brûkers mei itselde IP-adres security_measures: only_password: Allinnich wachtwurd password_and_2fa: Wachtwurd en 2FA + sensitive: Gefoelich forsearje + sensitized: As gefoelich markearre + shared_inbox_url: Dielde Postfek-YN-URL + show: + created_reports: Oanmakke rapportaazjes + targeted_reports: Troch oaren rapportearre + silence: Beheine + silenced: Beheind + statuses: Berjochten + strikes: Eardere skeiningen + subscribe: Abonnearje + suspend: Utstelle + suspended: Utsteld + suspension_irreversible: De gegevens fan dizze account binne definityf fuortsmiten. Jo kinne it útstellen fan dizze account ûngedien meitsje, sadat it wer te brûken is, mar de fuortsmiten gegevens wurde hjirmei net wersteld. + suspension_reversible_hint_html: Dizze account is útsteld en de gegevens wurde op %{date} folslein fuortsmiten. Oant dy tiid kin de account wersteld wurde sûnder neidielige gefolgen. Wannear’t jo alle gegevens fan dizze account daliks fuortsmite wolle, kinne jo dit hjirûnder dwaan. title: Accounts unblock_email: E-mailadres deblokkearje + unblocked_email_msg: It e-mailadres fan %{username} is deblokkearre + unconfirmed_email: Unbefêstige e-mailadres + undo_sensitized: Net mear as gefoelich forsearje + undo_silenced: Net langer beheine + undo_suspension: Net langer útstelle + unsilenced_msg: It opheffen fan de beheiningen fan %{username} is slagge + unsubscribe: Opsizze + unsuspended_msg: It net langer útstellen fan %{username} is slagge + username: Brûkersnamme + view_domain: Gearfetting foar domein besjen warn: Warskôgje web: Web-app + whitelisted: Goedkard foar federaasje action_logs: action_types: + approve_appeal: Beswier goedkarre + approve_user: Brûker goedkarre + assigned_to_self_report: Rapportaazje tawize + change_email_user: E-mailadres fan brûker wizigje + change_role_user: Brûkersrol wizigje + confirm_user: Brûker befêstigje + create_account_warning: Warskôging oanmeitsje + create_announcement: Meidieling oanmeitsje + create_canonical_email_block: E-mailblokkade oanmeitsje + create_custom_emoji: Lokale emoji oanmeitsje + create_domain_allow: Domeingoedkarring oanmeitsje + create_domain_block: Domeinblokkade oanmeitsje + create_email_domain_block: E-maildomeinblokkade oanmeitsje + create_ip_block: IP-rigel oanmeitsje + create_unavailable_domain: Net beskikber domein oanmeitsje + create_user_role: Rol oanmeitsje + demote_user: Brûker degradearje destroy_announcement: Meidieling fuortsmite + destroy_canonical_email_block: E-mailblokkade fuortsmite + destroy_custom_emoji: Lokale emoji fuortsmite + destroy_domain_allow: Domeingoedkarring fuortsmite + destroy_domain_block: Domeinblokkade fuortsmite + destroy_email_domain_block: E-maildomeinblokkade fuortsmite + destroy_instance: Domein folslein fuortsmite + destroy_ip_block: IP-rigel fuortsmite + destroy_status: Toot fuortsmite + destroy_unavailable_domain: Net beskikber domein fuortsmite + destroy_user_role: Rol permanint fuortsmite + disable_2fa_user: Twa-stapsferifikaasje útskeakelje + disable_custom_emoji: Lokale emoji útskeakelje + disable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mailberjocht foar de brûker útskeakelje + disable_user: Brûker útskeakelje + enable_custom_emoji: Lokale emoji ynskeakelje + enable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mailberjocht foar de brûker ynskeakelje + enable_user: Brûker ynskeakelje + memorialize_account: De account yn in Yn memoriam wizigje + promote_user: Brûker promovearje + reject_appeal: Beswier ôfwize + reject_user: Brûker ôfwize + remove_avatar_user: Profylfoto fuortsmite + reopen_report: Rapport opnij iepenje + resend_user: Befêstigings-e-mailberjocht opnij ferstjoere + reset_password_user: Wachtwurd opnij ynstelle + resolve_report: Rapport oplosse + sensitive_account: De media yn jo account as gefoelich markearje + silence_account: Account beheine + suspend_account: Account útstelle + unassigned_report: Rapportaazje net langer tawize + unblock_email_account: E-mailadres deblokkearje + unsensitive_account: De media yn jo account net langer as gefoelich markearje + unsilence_account: Account net langer beheine + unsuspend_account: Account net langer útstelle + update_announcement: Meidieling bywurkje + update_custom_emoji: Lokale emoji bywurkje + update_domain_block: Domeinblokkade bywurkje + update_ip_block: IP-rigel bywurkje + update_status: Berjocht bywurkje + update_user_role: Rol bywurkje + actions: + approve_appeal_html: "%{name} hat it beswier tsjin de moderaasjemaatregel fan %{target} goedkard" + approve_user_html: "%{name} hat de registraasje fan %{target} goedkard" + assigned_to_self_report_html: "%{name} hat rapportaazje %{target} oan harrensels tawiisd" + change_email_user_html: "%{name} hat it e-mailadres fan brûker %{target} wizige" + change_role_user_html: "%{name} hat de rol fan %{target} wizige" + confirm_user_html: E-mailadres fan brûker %{target} is troch %{name} befêstige + create_account_warning_html: "%{name} hat in warskôging nei %{target} ferstjoerd" + create_announcement_html: "%{name} hat de nije meidieling %{target} oanmakke" + create_canonical_email_block_html: "%{name} hat it e-mailberjocht mei de hash %{target} blokkearre" + create_custom_emoji_html: Nije emoji %{target} is troch %{name} opladen + create_domain_allow_html: "%{name} hat de federaasje mei it domein %{target} goedkard" + create_domain_block_html: Domein %{target} is troch %{name} blokkearre + create_email_domain_block_html: "%{name} hat it e-maildomein %{target} blokkearre" + create_ip_block_html: "%{name} hat de rigel foar IP %{target} oanmakke" + create_unavailable_domain_html: "%{name} hat de besoarging foar domein %{target} beëinige" + create_user_role_html: "%{name} hat de rol %{target} oanmakke" + demote_user_html: Brûker %{target} is troch %{name} degradearre + destroy_announcement_html: "%{name} hat de meidieling %{target} fuortsmiten" + destroy_canonical_email_block_html: "%{name} hat it e-mailberjocht mei de hash %{target} deblokkearre" + destroy_custom_emoji_html: Emoji %{target} is troch %{name} fuortsmiten + destroy_domain_allow_html: "%{name} hat de federaasje mei it domein %{target} ôfkard" + destroy_domain_block_html: Domein %{target} is troch %{name} deblokkearre + destroy_email_domain_block_html: Domein %{target} is troch %{name} deblokkearre + destroy_instance_html: "%{name} hat it domein %{target} folslein fuortsmiten" + destroy_ip_block_html: "%{name} hat de rigel foar IP %{target} fuortsmiten" + destroy_status_html: Berjocht fan %{target} is troch %{name} fuortsmiten + destroy_unavailable_domain_html: "%{name} hat de besoarging foar domein %{target} opnij starte" + destroy_user_role_html: "%{name} hat de rol %{target} fuortsmiten" + disable_2fa_user_html: De fereaske twa-stapsferifikaasje foar %{target} is troch %{name} útskeakele + disable_custom_emoji_html: Emoji %{target} is troch %{name} útskeakele + disable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mailberjocht útskeakele foar %{target}" + disable_user_html: Oanmelden foar %{target} is troch %{name} útskeakele + enable_custom_emoji_html: Emoji %{target} is troch %{name} ynskeakele + enable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mailberjocht ynskeakele foar %{target}" + enable_user_html: Oanmelden foar %{target} is troch %{name} ynskeakele + memorialize_account_html: De account %{target} is troch %{name} yn in Yn memoriam wizige + promote_user_html: Brûker %{target} is troch %{name} promovearre + reject_appeal_html: "%{name} hat it beswier tsjin de moderaasjemaatregel fan %{target} ôfwêzen" + reject_user_html: "%{name} hat de registraasje fan %{target} ôfwêzen" + remove_avatar_user_html: "%{name} hat de profylfoto fan %{target} fuortsmiten" + reopen_report_html: "%{name} hat rapportaazje %{target} opnij iepene" + resend_user_html: "%{name} hat it befêstigings-e-mailberjocht foar %{target} opnij ferstjoerd" + reset_password_user_html: Wachtwurd fan brûker %{target} is troch %{name} opnij ynsteld + resolve_report_html: "%{name} hat rapportaazje %{target} oplost" + sensitive_account_html: "%{name} markearre de media fan %{target} as gefoelich" + silence_account_html: Account %{target} is troch %{name} beheind + suspend_account_html: Account %{target} is troch %{name} útsteld + unassigned_report_html: "%{name} hat it tawizen fan rapportaazje %{target} ûngedien makke" + unblock_email_account_html: "%{name} deblokkearre it e-mailadres fan %{target}" + unsensitive_account_html: "%{name} markearre de media fan %{target} as net gefoelich" + unsilence_account_html: Beheining fan account %{target} is troch %{name} opheven + unsuspend_account_html: Utstellen fan account %{target} is troch %{name} opheven + update_announcement_html: "%{name} hat de meidieling %{target} bywurke" + update_custom_emoji_html: Emoji %{target} is troch %{name} bywurke + update_domain_block_html: "%{name} hat de domeinblokkade bywurke foar %{target}" + update_ip_block_html: "%{name} hat de rigel foar IP %{target} wizige" + update_status_html: "%{name} hat de berjochten %{target} bywurke" + update_user_role_html: "%{name} hat de rol %{target} wizige" deleted_account: fuortsmiten account + empty: Gjin lochboeken fûn. + filter_by_action: Op aksje filterje + filter_by_user: Op brûker filterje + title: Auditlogboek + announcements: + destroyed_msg: Fuortsmiten fan meidieling slagge! + edit: + title: Meidieling bewurkje + empty: Gjin meidielingen fûn. + live: Live + new: + create: Meidieling oanmeitsje + title: Nije meidieling + publish: Publisearje + published_msg: Publisearjen fan meidieling slagge! + scheduled_for: Ynpland foar %{time} + scheduled_msg: Meidieling stiet ynpland foar publikaasje! + title: Oankundigingen + unpublish: Depublisearje + unpublished_msg: Ungedien meitsjen fan publisearre meidieling is slagge! + updated_msg: Bywurkjen fan meidieling slagge! custom_emojis: + assign_category: Kategory tawize + by_domain: Domein + copied_msg: Lokale kopy fan emoji meitsje slagge copy: Kopiearje + copy_failed_msg: Kin gjin lokale kopy fan dizze emoji meitsje + create_new_category: Nije kategory tafoegje + created_msg: Emoji oanmeitsjen slagge! delete: Fuortsmite + destroyed_msg: Emoji fuortsmiten slagge! disable: Utskeakelje disabled: Utskeakele + disabled_msg: Emoji útskeakeljen slagge emoji: Emoji enable: Ynskeakelje enabled: Ynskeakele + enabled_msg: Emoji ynskeakeljen slagge image_hint: PNG of GIF net grutter as %{size} list: Yn list listed: Werjaan + new: + title: Lokale emoji tafoegje + no_emoji_selected: Der binne gjin emoji wizige, omdat der gjin ien selektearre waard + not_permitted: Jo hawwe gjin rjochten om dizze aksje út te fieren + overwrite: Oerskriuwe + shortcode: Ferkoarte koade + shortcode_hint: Op syn minst 2 tekens, allinnich alfanumeryk en underscores + title: Lokale emoji + uncategorized: Net kategorisearre + unlist: Net yn list + unlisted: Net werjaan + update_failed_msg: Dizze emoji koe net bywurke wurde + updated_msg: Emoji fernije is slagge! upload: Oplade dashboard: active_users: warbere brûkers interactions: ynteraksjes + media_storage: Mediaûnthâld + new_users: nije brûkers + opened_reports: iepene rapportaazjes + pending_appeals_html: + one: "%{count} te beoardielen beswier" + other: "%{count} te beoardielen beswieren" + pending_reports_html: + one: "%{count} iepensteande rapportaazje" + other: "%{count} iepensteande rapportaazjes" + pending_tags_html: + one: "%{count} te beoardielen hashtag" + other: "%{count} te beoardielen hashtags" + pending_users_html: + one: "%{count} te beoardielen nije brûker" + other: "%{count} te beoardielen nije brûkers" + resolved_reports: oploste rapportaazjes + software: Software + sources: Registraasjelokaasje + space: Romtegebrûk title: Dashboerd top_languages: Meast aktive talen top_servers: Meast aktive tsjinners @@ -143,15 +371,99 @@ fy: appeals: empty: Gjin beswieren fûn. title: Beswieren + domain_allows: + add_new: Federaasje mei domein tastean + created_msg: Federaasjetastimming mei domein is slagge + destroyed_msg: Federaasje mei domein is net tastien + export: Eksportearje + import: Ymportearje + undo: Federaasje mei domein net tastean + domain_blocks: + add_new: Nije domeinblokkade tafoegje + created_msg: Domeinblokkade wurdt no ferwurke + destroyed_msg: Domeinblokkade is ûngedien makke + domain: Domein + edit: Domeinblokkade bewurkje + existing_domain_block: Jo hawwe al strangere limiten oplein oan %{name}. + existing_domain_block_html: Jo hawwe al strangere beheiningen oplein oan %{name}, jo moatte it domein earst deblokkearje. + export: Eksportearje + import: Ymportearje + new: + create: Blokkade oanmeitsje + hint: In domeinblokkade foarkomt net dat accountgegevens fan dit domein oan de database tafoege wurde, mar dat der mei weromwurkjende krêft en automatysk bepaalde moderaasjemetoaden op dizze accounts tapast wurde. + severity: + desc_html: "Beheinen soarget derfoar dat berjochten fan accounts fan dit domein foar elkenien ûnsichtber binne, behalve as in account folge wurdt. Utstelle soarget derfoar dat alle berjochten, media en profylgegevens fan accounts fan dit domein fuortsmiten wurde. Brûk Gjin wannear’t jo allinnich mediabestannen wegerje wolle." + noop: Gjin + silence: Beheine + suspend: Utstelle + title: Nije domeinblokkade + no_domain_block_selected: Der binne gjin domeinblokkades wizige, omdat der gjin ien selektearre waard + not_permitted: Jo hawwe gjin rjochten om dizze aksje út te fieren + obfuscate: Domeinnamme dizich meitsje + obfuscate_hint: De domeinnamme foar in part dizich meitsje, wannear’t de list mei domeinblokkaden toand wurdt + private_comment: Priveeopmerking + private_comment_hint: Opmerking oer dizze domeinbeheining foar yntern gebrûk troch de moderatoaren. + public_comment: Iepenbiere opmerking + public_comment_hint: Opmerking oer dizze domeinbeheining foar it grutte publyk, foar wannear de iepenbiere list mei domeinbeheiningen ynskeakele is. + reject_media: Mediabestannen wegerje + reject_media_hint: Smyt lokaal bewarre mediabestannen fuort en wegeret dizze yn de takomst te downloaden. Net relevant foar útstelde domeinen + reject_reports: Rapportaazjes wegerje + reject_reports_hint: Alle rapportaazjes dy’t fan dit domein ôf komme negearje. Net relevant foar útstelde domeinen + undo: Domeinblokkade ûngedien meitsje + view: Domeinblokkade besjen email_domain_blocks: + add_new: Nije tafoegje + attempts_over_week: + one: "%{count} registraasjebesykjen yn de ôfrûne wike" + other: "%{count} registraasjebesykjen yn de ôfrûne wike" + created_msg: E-maildomein blokkearjen slagge delete: Fuortsmite + dns: + types: + mx: MX-record domain: Domein new: create: Domain tafoegje resolve: Domein opsykje + title: Nije e-maildomein blokkearje + no_email_domain_block_selected: Der binne gjin e-maildomeinblokkaden wizige, omdat der gjin ien selektearre waard + resolved_dns_records_hint_html: De domeinnamme slacht op de folgjende MX-domeinen dy’t úteinlik ferantwurdlik binne foar it akseptearjen fan e-mail. It blokkearjen fan in MX-domein blokkearret oanmeldingen fan elk e-mailadres dat itselde MX-domein brûkt, sels as de sichtbere domeinnamme oars is. Pas op dat jo gjin grutte e-mailproviders blokkearje. + resolved_through_html: Blokkearre fia %{domain} + title: Blokkearre e-maildomeinen + export_domain_allows: + new: + title: Tastiene domeinen ymportearje + no_file: Gjin bestân selektearre + export_domain_blocks: + import: + description_html: Jo steane op it punt in list mei domeinblokkaden te ymportearjen. Kontrolearje dizze list bot soarchfâldich, foaral as jo dizze list net sels makke hawwe. + existing_relationships_warning: Besteande folchrelaasjes + private_comment_description_html: 'Om jo te helpen byhâlden wêr’t de ymportearre blokkaden wei komme, wurde de ymportearre blokkaden mei de folgjende priveeopmerking oanmakke: %{comment}' + private_comment_template: Ymportearre fan %{source} op %{date} + title: Domeinblokkaden ymportearje + new: + title: Domeinblokkaden ymportearje + no_file: Gjin bestân selektearre follow_recommendations: + description_html: "Dizze oanrekommandearre accounts helpe nije brûkers fluch ynteressante ynhâldte finen. Wannear’t in brûker net mei oare brûkers genôch ynteraksje hân hat om personalisearre oanrekommandaasjes te krijen, wurde yn stee dêrfan dizze accounts oanrekommandearre. Dizze accounts wurde deistich opnij berekkene mei help fan accounts mei it heechste tal resinte ynteraksjes en it heechste tal lokale folgers yn in bepaalde taal." + language: Foar taal status: Steat + suppress: Oanrekommandearre account net mear oanrekommandearje + suppressed: Net mear oanrekommandearre + title: Oanrekommandearre accounts + unsuppress: Account wer oanrekommandearje instances: + availability: + description_html: + one: As de besoarging oan it domein nei %{count} dag mislearjen bliuwt, dan sille der gjin fierdere besykjen ta besoarging dien wurde oant in besoarging fan it domein ûntfongen is. + other: As de besoarging oan it domein nei %{count} dagen mislearjen bliuwt, dan sille der gjin fierdere besykjen ta besoarging dien wurde oant in besoarging fan it domein ûntfongen is. + failure_threshold_reached: Flaterdrompelwearde berikt op %{date}. + failures_recorded: + one: Mislearre besykjen op %{count} dag. + other: Mislearre besykjen op %{count} ferskate dagen. + no_failures_recorded: Gjin steuringen bekend. + title: Beskikberheid + warning: It lêste besykjen om mei dizze server te ferbinen wie sûnder sukses back_to_all: Alle back_to_limited: Beheind back_to_warning: Warskôging @@ -159,71 +471,1199 @@ fy: confirm_purge: Wolle jo werklik alle gegevens fan dit domein foar ivich fuortsmite? content_policies: comment: Ynterne reden + description_html: Jo kinne it belied bepale dat op de accounts fan dit domein en alle subdomeinen fan tapassing is. policies: + reject_media: Mediabestannen wegerje + reject_reports: Rapportaazjes wegerje silence: Beheind suspend: Utsteld policy: Belied + reason: Publike reden + title: Belied dashboard: + instance_accounts_dimension: Meast troch ús folge accounts instance_accounts_measure: bewarre accounts + instance_followers_measure: ús folgers dêr + instance_follows_measure: troch harren hjir folge + instance_languages_dimension: Meast aktive talen + instance_media_attachments_measure: bewarre mediabestannen + instance_reports_measure: rapportaazjes oer harren + instance_statuses_measure: bewarre berjochten + delivery: + all: Alles + clear: Ofleverflater fuorthelje + failing: Problemen + restart: Oflevering opnij starte + stop: Oflevering beëinigje + unavailable: Net beskikber + delivery_available: Ofleverjen is mooglik + delivery_error_days: Dagen mei ôfleverflaters + delivery_error_hint: Wannear’t de besoarging foar %{count} dagen net mooglik is, wurdt de besoarging automatysk as net beskikber markearre. + destroyed_msg: Gegevens fan %{domain} stean no yn de wachtrige foar oansteande ferwidering. + empty: Gjin domeinen fûn. + known_accounts: + one: "%{count} bekende account" + other: "%{count} bekende accounts" + moderation: + all: Alle + limited: Beheind + title: Moderaasje + private_comment: Priveeopmerking + public_comment: Iepenbiere opmerking + purge: Folslein fuortsmite + purge_description_html: As jo tinke dat dit domein definityf offline is, kinne jo alle accounts en byhearrende gegevens fan dit domein fuortsmite. Dit kin efkes duorje. + title: Federaasje + total_blocked_by_us: Troch ús blokkearre + total_followed_by_them: Troch harren folge + total_followed_by_us: Troch ús folge + total_reported: Rapportaazjes oer harren + total_storage: Mediabylagen + totals_time_period_hint_html: De hjirûnder toande totalen befetsje gegevens sûnt it begjin. + invites: + deactivate_all: Alles deaktivearje + filter: + all: Alles + available: Beskikber + expired: Ferrûn + title: Filter + title: Utnûgingen ip_blocks: + add_new: Rigel meitsje + created_msg: It tafoegjen fan in nije IP-rigel is slagge delete: Fuortsmite + expires_in: + '1209600': 2 wiken + '15778476': 6 moannen + '2629746': 1 moanne + '31556952': 1 jier + '86400': 1 dei + '94670856': 3 jier + new: + title: Nije IP-rigel oanmeitsje + no_ip_block_selected: Der binne gjin IP-rigels wizige, omdat der gjin ien selektearre waard + title: IP-rigels + relationships: + title: Relaasjes fan %{acct} relays: + add_new: Nije relayserver tafoegje delete: Fuortsmite + description_html: In federaasjerelay is in tuskenlizzende server dy’t grutte hoemannichte iepenbiere berjochten útwikselet tusken servers dy’t harren hjirop abonnearre hawwe. It kin lytse en middelgrutte servers helpe om ynhâld fan de fediverse te ûntdekken, wêrfoar oars lokale brûkers hânmjittich minsken fan eksterne servers folgje moatte. + disable: Utskeakelje + disabled: Utskeakele + enable: Ynskeakelje + enable_hint: Ien kear ynskeakele giet jo server harren op alle iepenbiere berjochten fan dizze relayserver abonnearje en stjoert it de iepenbiere berjochten fan jo server nei de relayserver. + enabled: Ynskeakele + inbox_url: Relay-URL + pending: Wachtet op tastimming fan de relayserver + save_and_enable: Bewarje en ynskeakelje + setup: In ferbining mei in relayserver meitsje + signatures_not_enabled: Federaasjerelays wurkje mooglik net goed wannear’t de feilige modus of de beheinde federaasjemodus ynskeakele is + status: Steat + title: Relayservers + report_notes: + created_msg: Oanmeitsjen fan rapportaazje slagge! + destroyed_msg: Fuortsmiten fan opmerking by rapportaazje slagge! reports: + account: + notes: + one: "%{count} opmerking" + other: "%{count} opmerkingen" + action_log: Auditlogboek + action_taken_by: Maatregel nommen troch + actions: + delete_description_html: De rapportearre berjochten wurde fuortsmiten en der wurdt in oertrêding registrearre om takomstige oertrêdingen fan itselde account flugger ôfhannelje te kinnen. + mark_as_sensitive_description_html: De media yn de rapportearre berjochten wurde markearre as gefoelich en der wurdt in oertrêding registrearre om takomstige oertrêdingen fan itselde account flugger ôfhannelje te kinnen. + other_description_html: Besjoch mear opsjes foar it kontrolearjen fan it gedrach fan en de kommunikaasje mei it rapportearre account. + resolve_description_html: Der wurdt tsjin it rapportearre account gjin maatregel nommen, gjin oertrêding registrearre en de rapportaazje wurdt markearre as oplost. + silence_description_html: It profyl sil allinnich sichtber wêze foar dyjinge dy’t it al folgje of it hânmjittich opsykje, wêrtroch it berik earnstich beheind wurdt. Kin altyd weromdraaid wurde. + suspend_description_html: It profyl en alle accountgegevens wurde earst net tagonklik makke, oant dizze úteinlik definityf fuortsmiten wurde. It is net mear mooglik om ynteraksje te hawwen mei de account. Dit kin binnen 30 dagen weromdraaid wurde. + actions_description_html: Beslis hokker maatregel nommen wurde moat om dizze rapportaazje op te lossen. Wannear’t jo in (straf)maatregel tsjin it rapportearre account nimme, kriget de account in e-mailmelding, behalve wannear’t de spam-kategory keazen is. + add_to_report: Mear oan de rapportaazje tafoegje + are_you_sure: Binne jo wis? + assign_to_self: Oan my tawize + assigned: Tawizen moderator + by_target_domain: Domein fan rapportearre account + category: Kategory + category_description_html: De reden wêrom dizze account en/of ynhâld rapportearre waard, wurdt oan it rapportearre account meidield + comment: + none: Gjin + comment_description_html: 'Om mear ynformaasje te jaan, skreau %{name}:' + created_at: Rapportearre op delete_and_resolve: Berjocht fuortsmite + forwarded: Trochstjoerd + forwarded_to: Trochstjoerd nei %{domain} + mark_as_resolved: As oplost markearje + mark_as_sensitive: As gefoelich markearje + mark_as_unresolved: As net oplost markearje + no_one_assigned: Net ien notes: + create: Opmerking tafoegje + create_and_resolve: Oplosse mei opmerking + create_and_unresolve: Opnij iepeje mei opmerking delete: Fuortsmite + placeholder: Beskriuw hokker maatregels nommen binne of oare relatearre opmerkingen… + title: Opmerkingen + notes_description_html: Besjoch en lit opmerkingen efter foar oare moderatoaren en foar jo takomstige sels + quick_actions_description_html: 'Nim in flugge maatregel of skow nei ûnder om de rapportearre ynhâld te besjen:' + remote_user_placeholder: de eksterne brûker fan %{instance} + reopen: Rapport opnij iepenje + report: 'Rapportaazje #%{id}' + reported_account: Rapportearre account + reported_by: Rapportearre troch + resolved: Oplost + resolved_msg: Rapportaazje oplosse slagge! + skip_to_actions: Gean daliks nei de maatregels + status: Steat + statuses: Rapportearre ynhâld + statuses_description_html: De problematyske ynhâld wurdt oan it rapportearre account meidield + target_origin: Orizjineel fan rapportearre account + title: Rapportaazjes + unassign: Net langer tawize + unresolved: Net oplost + updated_at: Bywurke + view_profile: Profyl besjen roles: + add_new: Rol tafoegje + assigned_users: + one: "%{count} brûker" + other: "%{count} brûkers" + categories: + administration: Behear + devops: DevOps + invites: Utnûgingen + moderation: Moderaasje + special: Spesjaal delete: Fuortsmite + description_html: Mei brûkersrollen kinne jo de funksjes en ûnderdielen fan Mastodon, wêr’t jo brûkers tagong ta hawwe, oanpasse. + edit: Rol ‘%{name}’ bewurkje + everyone: Standertrjochten + everyone_full_description_html: Dit is de basisrol dy’t fan tapassing is op alle brûkers, sels foar dyjinge sûnder tawizen rol. Alle oare rollen hawwe de rjochten fan dizze rol as minimum. + permissions_count: + one: "%{count} rjocht" + other: "%{count} rjochten" + privileges: + administrator: Behearder + administrator_description: Dizze brûkers hawwe folsleine rjochten en kinne dus oeral by + delete_user_data: Brûkersgegevens fuortsmite + delete_user_data_description: Stiet brûkers ta om de gegevens fan oare brûkers sûnder fertraging fuort te smiten + invite_users: Brûkers útnûgje + invite_users_description: Stiet brûkers ta om nije minsken foar de server út te nûgjen + manage_announcements: Meidielingen beheare + manage_announcements_description: Stiet brûkers ta om meidielingen op de server te behearen + manage_appeals: Beswieren beheare + manage_appeals_description: Stiet brûkers ta om beswieren tsjin moderaasjemaatregelen te beoardielen + manage_blocks: Blokkaden beheare + manage_blocks_description: Stiet brûkers ta om e-mailproviders en IP-adressen te blokkearjen + manage_custom_emojis: Lokale emoji’s beheare + manage_custom_emojis_description: Stiet brûkers ta om lokale emoji’s op de server te behearen + manage_federation: Federaasje beheare + manage_federation_description: Stiet brûkers ta om federaasje mei oare domeinen te blokkearjen of ta te stean en om de besoarging te bepalen + manage_invites: Utnûgingen beheare + manage_invites_description: Stiet brûkers ta om útnûgingskeppelingen te besjen en te de-aktivearjen + manage_reports: Rapportaazjes beheare + manage_reports_description: Stiet brûkers ta om rapportaazjes te beoardielen en om oan de hân hjirfan moderaasjemaatregelen te nimmen + manage_roles: Rollen beheare + manage_roles_description: Stiet brûkers ta om rollen te behearen en ta te wizen dy’t minder rjochten hawwe as harren eigen rol(len) + manage_rules: Serverregels wizigje + manage_rules_description: Stiet brûkers ta om serverregels te wizigjen + manage_settings: Serverynstellingen wizigje + manage_settings_description: Stiet brûkers ta de ynstellingen fan de website te wizigjen + manage_taxonomies: Trends en hashtags beheare + manage_taxonomies_description: Stiet brûkers ta om trending ynhâld te besjen en om hashtagynstellingen by te wurkjen + manage_user_access: Brûkerstagong beheare + manage_user_access_description: Stiet brûkers ta om twa-stapsferifikaasje fan oare brûkers út te skeakeljen, om harren e-mailadres te wizigjen en om harren wachtwurd opnij yn te stellen + manage_users: Brûkers beheare + manage_users_description: Stiet brûkers ta om brûkersdetails fan oaren te besjen en moderaasjemaatregelen tsjin harren te nimmen + manage_webhooks: Webhooks beheare + manage_webhooks_description: Stiet brûkers ta om webhooks foar beheartaken yn te stellen + view_audit_log: Auditlochboek besjen + view_audit_log_description: Stiet brûkers ta om in skiednis fan behearaksjes op de server te besjen + view_dashboard: Dashboard besjen + view_dashboard_description: Jout brûkers tagong ta it dashboard en ferskate statistiken + view_devops: DevOps + view_devops_description: Jout brûkers tagong ta de dashboarden fan Sidekiq en pgHero + title: Rollen rules: + add_new: Rigel tafoegje delete: Fuortsmite + description_html: Hoewol de measte minsken sizze dat se de brûksbetingsten lêzen hawwe en der mei akkoard gean, lêze minsken dizze meastentiids net oant dat der in probleem bard. Meitsje it ienfâldiger om de regels fan dizze server yn ien eachwink te sjen, troch se punt foar punt yn in list te setten. Probearje de ferskate regels koart en simpel te hâlden, mar probearje se ek net yn ferskate items ûnder te ferdielen. + edit: Rigel bewurkje + empty: Foar dizze server binne noch gjin regels opsteld. + title: Serverrigels + settings: + about: + manage_rules: Serverregels beheare + preamble: Jou wiidweidige ynformaasje oer hoe’t de server beheard, modereare en finansiere wurdt. + rules_hint: Der is in spesjaal gebied foar regels wêr’t jo brûkers harren oan hâlde moatte. + title: Oer + appearance: + preamble: Mastodon’s webomjouwing oanpasse. + title: Werjefte + branding: + preamble: De branding fan jo server lit sjen hoe’t it fan oare servers yn it netwurk ferskilt. Dizze ynformaasje wurdt op ferskate plakken toand, lykas yn de webomjouwing fan Mastodon, yn mobile apps, yn foarfertoaningen op oare websites en berjochte-apps, ensfh. Dêrom is it wichtich om de ynformaasje helder, koart en bûnich te hâlden. + title: Branding + content_retention: + preamble: Tafersjoch hâlde op hoe’t berjochten en media fan brûkers op Mastodon bewarre wurde. + title: Bewartermyn berjochten + default_noindex: + desc_html: Hat ynfloed op alle brûkers dy’t dizze ynstelling net sels wizige hawwe + title: Brûkers standert net troch sykmasinen yndeksearje litte + discovery: + follow_recommendations: Oanrekommandearre accounts + preamble: It toanen fan ynteressante ynhâld is fan essinsjeel belang foar it oan board heljen fan nije brûkers dy’t mooglik net ien fan Mastodon kinne. Bepaal hoe’t ferskate funksjes foar it ûntdekken fan ynhâld en brûkers op jo server wurkje. + profile_directory: Profylmap + public_timelines: Iepenbiere tiidlinen + title: Untdekke + trends: Trends + domain_blocks: + all: Oan elkenien + disabled: Oan net ien + users: Oan oanmelde lokale brûkers + registrations: + preamble: Tafersjoch hâlde op wa’t in account op dizze server registrearje kin. + title: Registraasjes + registrations_mode: + modes: + approved: Goedkarring fereaske om te registrearje te kinnen + none: Net ien kin harren registrearje + open: Elkenien kin harren registrearje + title: Serverynstellingen + site_uploads: + delete: Opladen bestân fuortsmite + destroyed_msg: Fuortsmiten website-oplaad slagge! statuses: + account: Auteur + application: Tapassing + back_to_account: Tebek nei accountside + back_to_report: Tebek nei de rapportaazje + batch: + remove_from_report: Ut rapportaazje fuortsmite + report: Rapportaazje deleted: Fuortsmiten + favourites: Favoriten + history: Ferzjeskiednis + in_reply_to: Reaksje op + language: Taal + media: + title: Media + metadata: Metagegevens + no_status_selected: Der binne gjin berjochten wizige, omdat der gjin ien selektearre waard + open: Berjocht toane + original_status: Oarspronklik berjocht + reblogs: Boosts + status_changed: Berjocht wizige + title: Accountberjochten + trending: Trending + visibility: Sichtberheid + with_media: Mei media + strikes: + actions: + delete_statuses: "%{name} hat de berjochten fan %{target} fuortsmiten" + disable: Account %{target} is troch %{name} beferzen + mark_statuses_as_sensitive: "%{name} markearre de berjochten fan %{target} as gefoelich" + none: "%{name} hat in warskôging nei %{target} ferstjoerd" + sensitive: "%{name} markearre de account fan %{target} as gefoelich" + silence: Account %{target} is troch %{name} beheind + suspend: Account %{target} is troch %{name} útsteld + appeal_approved: Beswier yntsjinne + appeal_pending: Beswier yn behanneling system_checks: database_schema_check: message_html: Der binne database migraasjes yn ôfwachting. Jo moatte dizze útfiere om der foar te soargjen dat de applikaasje wurkjen bliuwt sa as it heard + elasticsearch_running_check: + message_html: Koe gjin ferbining meitsje mei Elasticsearch. Kontrolearje dat Elasticsearch útfierd wurdt of skeakelje full-text-sykjen út + elasticsearch_version_check: + message_html: 'Ynkompatibele Elasticsearch-ferzje: %{value}' + version_comparison: Jo brûke Elasticsearch %{running_version}, mar %{required_version} is fereaske + rules_check: + action: Serverregels beheare + message_html: Jo hawwe foar dizze server gjin regels opsteld. + sidekiq_process_check: + message_html: Der draait gjin Sidekiq-proses foar de wachtrige(n) %{value}. Kontrolearje jo Sidekiq-konfiguraasje + tags: + review: Steat beoardiele + updated_msg: Hashtagynstellingen mei sukses bywurke + title: Behear + trends: + allow: Tastean + approved: Goedkarre + disallow: Ofkarre + links: + allow: Keppeling goedkarre + allow_provider: Auteur goedkarre + description_html: Dit binne keppelingen dy’t op dit stuit in protte dield wurde troch accounts wêr’t jo server berjochten fan ûntfangt. Hjirtroch kinne jo brûkers sjen wat der yn de wrâld oan de hân is. Der wurde gjin keppelingen werjûn oant jo de website goedkard hawwe. Jo kinne ek yndividuele keppelingen goed- of ôfkarre. + disallow: Keppeling ôfkarre + disallow_provider: Website ôfkarre + no_link_selected: Der binne gjin keppelingen wizige, omdat der gjin ien selektearre waard + publishers: + no_publisher_selected: Der binne gjin websites wizige, omdat der gjin ien selektearre waard + shared_by_over_week: + one: Dizze wike troch ien persoan dield + other: Dizze wike troch %{count} persoanen dield + title: Trending keppelingen + usage_comparison: Hjoed %{today} kear dield, fergelike mei %{yesterday} kear juster + only_allowed: Allinnich goedkarre + pending_review: Moat noch beoardiele wurde + preview_card_providers: + allowed: Keppelingen fan dizze website kinne trending wurde + description_html: Dit binne domeinen wêrfan keppelingen faaks op jo server dield wurde. Keppelingen sille net yn it iepenbier trending wurde, eardat it domein fan de keppeling goedkard wurdt. Jo goedkarring (of ôfwizing) jildt ek foar subdomeinen. + rejected: Keppelingen fan dizze nijswebsite kinne net trending wurde + title: Utjouwers + rejected: Wegere + statuses: + allow: Berjocht goedkarre + allow_account: Account goedkarre + description_html: Dit binne berjochten dy’t op jo server bekend binne en dy’t op dit stuit in protte dield wurde en as favoryt markearre wurde. Hjirmei kinne nije en weromkearende brûkers mear minsken fine om te folgjen. Der wurde gjin berjochten yn it iepenbier werjûn oant de account troch jo goedkard is en de brûker tastiet dat harren account oan oaren oanrekommandearre wurdt. Jo kinne ek yndividuele berjochten goed- of ôfkarre. + disallow: Berjocht ôfkarre + disallow_account: Account ôfkarre + no_status_selected: Der binne gjin trending berjochten wizige, omdat der gjin ien selektearre waard + not_discoverable: Brûker hat gjin tastimming jûn om ûntdekt te wurden + shared_by: + one: Ien kear dield of as favoryt markearre + other: "%{friendly_count} kear dield of as favoryt markearre" + title: Trending berjochten + tags: + current_score: Aktuele skoare is %{score} + dashboard: + tag_accounts_measure: tal unike kearen brûkt + tag_languages_dimension: Populêre talen + tag_servers_dimension: Populêre servers + tag_servers_measure: ferskate servers + tag_uses_measure: totaal tal kear brûkt + description_html: Dizze hashtags ferskine op dit stuit yn in protte berjochten dy’t op jo server sichtber binne. Hjirmei kinne jo brûkers sjen dêr’t minsken op dit momint it meast oer prate. Der wurde gjin hashtags yn it iepenbier werjûn oant jo se goedkarre. + listable: Kin oanrekommandearre wurde + no_tag_selected: Der binne gjin hashtags wizige, omdat der gjin ien selektearre waard + not_listable: Wurdt net oanrekommandearre + not_trendable: Sil net ûnder trends ferskine + not_usable: Kin net brûkt wurde + peaked_on_and_decaying: Yn de trends op %{date}, nimt no wer ôf + title: Trending hashtags + trendable: Kin net ûnder trends ferskine + trending_rank: 'Trending #%{rank}' + usable: Kin brûkt wurde + usage_comparison: Hjoed %{today} kear brûkt, fergelike mei %{yesterday} kear juster + used_by_over_week: + one: Dizze wike troch ien persoan brûkt + other: Dizze wike troch %{count} persoanen brûkt + title: Trends + trending: Trending warning_presets: + add_new: Nije tafoegje delete: Fuortsmite + edit_preset: Foarynstelling foar warskôging bewurkje + empty: Jo hawwe noch gjin foarynstellingen foar warskôgingen tafoege. + title: Foarynstellingen foar warskôgingen beheare webhooks: + add_new: Einpunt tafoegje delete: Fuortsmite + description_html: Mei in webhook kin Mastodon meldingen real-time oer keazen barrens nei jo eigen tapassing stjoere, sadat jo applikaasje automatysk reaksjes generearje kin. + disable: Utskeakelje + disabled: Utskeakele + edit: Einpunt bewurkje + empty: Jo hawwe noch gjin webhook-einpunten konfigurearre. + enable: Ynskeakelje + enabled: Aktyf + enabled_events: + one: 1 ynskeakele evenemint + other: "%{count} ynskeakele eveneminten" + events: Eveneminten + new: Nije webhook + rotate_secret: Geheime kaai opnij generearje + secret: Geheime kaai ûndertekenje + status: Steat + title: Webhooks + webhook: Webhook + admin_mailer: + new_appeal: + actions: + delete_statuses: it fuortsmiten fan harren berjochten + disable: it beferzen fan harren account + mark_statuses_as_sensitive: it markearjen fan harren berjochten as gefoelich + none: in warskôging + sensitive: it gefoelich forsearjen fan harren account + silence: it beheinen fan harren account + suspend: it útstellen fan harren account + body: "%{target} makket beswier tsjin in moderaasjemaatregel troch %{action_taken_by} op %{date}, oangeande %{type}. De brûker skriuwt:" + next_steps: Jo kinne it beswier goedkarre om dêrmei de moderaasjemaatregel ûngedien te meitsjen, of jo kinne it ferwerpe. + subject: "%{username} makket beswier tsjin in moderaasjemaatregel op %{instance}" + new_pending_account: + body: Sjoch hjirûnder de details fan it nije account. Jo kinne de oanfraach goedkarre of ôfwize. + subject: Der moat in nij account op %{instance} beoardiele wurde (%{username}) + new_report: + body: "%{reporter} hat %{target} rapportearre" + body_remote: Ien fan %{domain} hat %{target} rapportearre + subject: Nije rapportaazje op %{instance} (#%{id}) + new_trends: + body: 'De folgjende items moatte beoardiele wurde eardat se iepenbier toand wurde kinne:' + new_trending_links: + title: Trending keppelingen + new_trending_statuses: + title: Trending berjochten + new_trending_tags: + no_approved_tags: Op dit stuit binne der gjin goedkarre hashtags. + requirements: 'Elk fan dizze kandidaten kin de #%{rank} goedkarre trending hashtag oertreffe, dy’t op dit stuit #%{lowest_tag_name} is mei in skoare fan %{lowest_tag_score}.' + title: Trending hashtags + subject: Nije trends te beoardielen op %{instance} + aliases: + add_new: Alias oanmeitsje + created_msg: Mei sukses in nije alias oanmakke. Jo kinne no mei de ferhuzing fan it âlde account ôf begjinne. + deleted_msg: De alias is mei sukses fuortsmiten. Ferhúzjen fan dy account ôf nei dizze account is net mear mooglik. + empty: Jo hawwe gjin aliassen. + hint_html: Wannear’t jo fan in oare account ôf nei dizze account ferhúzje wolle, kinne jo hjir in alias oanmeitsje. Dit is nedich eardat jo troch gean kinne mei it ferhúzjen fan folgers fan de âlde nei dizze nije account. Dizze aksje is op eins net gefaarlik en omkearber. De accountmigraasje wurdt start fan de âlde account ôf. + remove: Alias ûntkeppelje + appearance: + advanced_web_interface: Avansearre webomjouwing + advanced_web_interface_hint: 'Wannear’t jo fan de hiele skermbreedte gebrûk meitsje wolle, stelt de avansearre webomjouwing jo yn steat om meardere ferskate kolommen te konfigurearjen. Hjirmei kinne jo safolle mooglik ynformaasje op itselde momint besjen, lykas: Start, meldingen, de globale tiidline, meardere listen en hashtags.' + animations_and_accessibility: Animaasjes en tagonklikheid + confirmation_dialogs: Befêstigingen + discovery: Untdekke + localization: + body: Mastodon wurdt troch frijwilligers oerset. + guide_link: https://crowdin.com/project/mastodon/fy + guide_link_text: Elkenien kin bydrage. + sensitive_content: Gefoelige ynhâld + toot_layout: Lay-out fan berjochten + application_mailer: + notification_preferences: E-mailfoarkarren wizigje + salutation: "%{name}," + settings: 'E-mailfoarkarren wizigje: %{link}' + view: 'Besjoch:' + view_profile: Profyl besjen + view_status: Berjocht besjen + applications: + created: Oanmeitsjen tapassing slagge + destroyed: Fuortsmiten tapassing slagge + regenerate_token: Tagongskoade opnij oanmeitsje + token_regenerated: Opnij oanmeitsjen tagongskoade slagge + warning: Wês foarsichtich mei dizze gegevens. Diel it nea mei in oar! + your_token: Jo tagongskoade auth: + apply_for_account: Account oanfreegje + change_password: Wachtwurd delete_account: Account fuortsmite + delete_account_html: Wannear’t jo jo account graach fuortsmite wolle, kinne jo dat hjir dwaan. Wy freegje jo dêr om in befêstiging. + description: + prefix_invited_by_user: "@%{name} nûget jo hjirby út om in account oan te meitsjen op dizze Mastodon-server!" + prefix_sign_up: Registrearje jo hjoed noch op Mastodon! + suffix: Mei in account binne jo yn steat om minsken te folgjen, berjochten te pleatsen en út te wikseljen mei minsken dy’t op oare Mastodon-servers binne en mear! + didnt_get_confirmation: Gjin befêstigingsynstruksjes ûntfongen? + dont_have_your_security_key: Hawwe jo jo befeiligingskaai net by de hân? + forgot_password: Wachtwurd ferjitten? + invalid_reset_password_token: De koade om jo wachtwurd opnij yn te stellen is ferrûn. Freegje in nije oan. + link_to_otp: Fier in twa-stapsferifikaasjekoade fan jo telefoan of in werstelkoade yn + link_to_webauth: Jo apparaat mei de autentikaasje-app brûke + log_in_with: Oanmelde mei + login: Oanmelde + logout: Ofmelde + migrate_account: Nei in oar account ferhúzje + migrate_account_html: Wannear’t jo dizze account nei in oare account trochferwize wolle, kinne jo dit hjir ynstelle. + or_log_in_with: Of oanmelde mei + privacy_policy_agreement_html: Ik haw it privacybelied lêzen en gean dêrmei akkoard + providers: + cas: CAS + saml: SAML + register: Registrearje + registration_closed: "%{instance} lit gjin nije brûkers ta" + resend_confirmation: Ferstjoer de befêstigingsynstruksjes nochris + reset_password: Wachtwurd opnij ynstelle + rules: + preamble: Dizze binne fêststeld en wurde yn stân hâlden troch de moderatoaren fan %{domain}. + title: Inkelde basisrigels. + security: Befeiliging + set_new_password: Nij wachtwurd ynstelle + setup: + email_below_hint_html: Wannear ûndersteand e-mailadres net kloppet, kinne jo dat hjir wizigje. Jo ûntfange dan hjirnei in befêstigings-e-mailberjocht. + email_settings_hint_html: It befêstigings-e-mailberjocht is ferstjoerd nei %{email}. Wannear’t dat e-mailadres net kloppet, kinne jo dat wizigje yn jo accountynstellingen. + title: Ynstelle + sign_in: + preamble_html: Meld jo oan mei de oanmeldgegevens fan %{domain}. As jo account op in oare server stiet, kinne jo hjir net oanmelde. + title: Oanmelde op %{domain} + sign_up: + preamble: Jo kinne mei in Mastodon-account elkenien yn it netwurk folgen, wêr’t dizze persoan ek in account hat. + title: Litte wy jo account op %{domain} ynstelle. + status: + account_status: Accountsteat + confirming: Oan it wachtsjen oant it e-mailadres befêstige is. + functional: Jo account kin folslein brûkt wurde. + pending: Jo oanfraach moat noch beoardiele wurde troch ien fan ús meiwurkers. Dit kin miskien efkes duorje. Jo ûntfangt in e-mailberjocht wannear’t jo oanfraach goedkard is. + redirecting_to: Jo account is ynaktyf, omdat it op dit stuit trochferwezen wurdt nei %{acct}. + view_strikes: Besjoch de earder troch moderatoaren fêststelde skeiningen dy’t jo makke hawwe + too_fast: Formulier is te fluch yntsjinne. Probearje it nochris. + use_security_key: Befeiligingskaai brûke + authorize_follow: + already_following: Jo folgje dizze account al + already_requested: Jo hawwe al in folchfersyk nei dat account ferstjoerd + error: Spitiger, der is in flater bard by it opsykjen fan de eksterne account + follow: Folgje + follow_request: 'Jo hawwe in folchfersyk yntsjinne by:' + following: 'Slagge! Jo folgje no:' + post_follow: + close: Of jo kinne dit finster gewoan slute. + return: Profyl fan dizze brûker toane + web: Gean nei de webapp + title: "%{acct} folgje" + challenge: + confirm: Trochgean + hint_html: "Tip: Wy freegje jo it kommende oere net mear nei jo wachtwurd." + invalid_password: Unjildich wachtwurd + prompt: Befêstigje wachtwurd om troch te gean + crypto: + errors: + invalid_key: is gjin jildige Ed25519- of Curve25519-kaai + invalid_signature: is gjin jildige Ed25519-hantekening + date: + formats: + default: "%d %b %Y" + with_month_name: "%d %B %Y" + datetime: + distance_in_words: + about_x_hours: "%{count}o" + about_x_months: "%{count}mo" + about_x_years: "%{count}j" + almost_x_years: "%{count}j" + half_a_minute: Sakrekt + less_than_x_minutes: "%{count}m" + less_than_x_seconds: Sakrekt + over_x_years: "%{count}j" + x_days: "%{count}d" + x_minutes: "%{count}m" + x_months: "%{count}mo" + x_seconds: "%{count}s" deletes: + challenge_not_passed: De ynformaasje dy’t jo ynfierd hawwe is ûnjildich + confirm_password: Fier jo aktuele wachtwurd yn om jo identiteit te befêstigjen + confirm_username: Fier jo brûkersnamme yn om de proseduere te befêstigjen proceed: Account fuortsmite + success_msg: Jo account is mei sukses fuortsmiten + warning: + before: 'Lês dizze tekst soarchfâldich eardat jo troch gean:' + caches: Berjochten en media dy’t op oare servers bewarre binne kinne dêr efterbliuwe + data_removal: Jo berjochten en oare gegevens wurde permanint fuortmiten + email_change_html: Jo kinne jo e-mailadres wizigje sûnder dat jo jo account fuort hoege te smiten + email_contact_html: Wannear’t it noch hieltyd net oankomt, kinne jo foar help in e-mailberjocht stjoere nei %{email} + email_reconfirmation_html: Wannear’t jo it befêstigings-e-mailberjocht net ûntfongen hawwe, kinne jo dizze opnij oanfreegje + irreversible: Jo sille net yn steat wêze om jo account te werstellen of te de-aktivearjen + more_details_html: Sjoch it privacybelied foar mear ynformaasje. + username_available: Jo brûkersnamme sil wer beskikber komme + username_unavailable: Jo brûkersnamme sil net beskikber bliuwe + disputes: + strikes: + action_taken: Nommen maatregel + appeal: Beswier + appeal_approved: It yntsjinne beswier is goedkard en de earder fêststelde oertrêding is net langer jildich + appeal_rejected: It yntsjinne beswier is ôfwêzen + appeal_submitted_at: Beswier yntsjinne + appealed_msg: Jo beswier is yntsjinne. Wannear’t dizze goedkard wurdt, krije jo hjir berjocht fan. + appeals: + submit: Beswier yntsjinje + approve_appeal: Beswier goedkarre + associated_report: Byhearrende rapportaazje + created_at: Datum en tiid + description_html: Dit binne maatregels dy’t tsjin jo account nommen binne en warskôgingen dy’t troch meiwurkers fan %{instance} nei jo stjoerd binne. + recipient: Adressearre oan + reject_appeal: Beswier ôfwêzen + status: 'Berjocht #%{id}' + status_removed: Berjocht is al fan de server fuortsmiten + title: "%{action} fan %{date}" + title_actions: + delete_statuses: Fuortsmiten fan berjocht + disable: Beferzen fan account + mark_statuses_as_sensitive: Berjochten as gefoelich markearje + none: Warskôging + sensitive: Folsleine account as gefoelich markearje + silence: Beheining account + suspend: Utstellen account + your_appeal_approved: Jo beswier is goedkard + your_appeal_pending: Jo hawwe in beswier yntsjinne + your_appeal_rejected: Jo beswier is ôfwêzen + domain_validator: + invalid_domain: is in ûnjildige domeinnamme 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': Too many requests - '500': - '503': The page could not be served due to a temporary server failure. + '400': De oanfraach dy’t jo yntsjinne hawwe wie ûnjildich of fout. + '403': Jo hawwe gjin tastimming om dizze side te besjen. + '404': De side wêrnei’t jo sochten bestiet net. + '406': Dizze side is net beskikber yn it opfrege formaat. + '410': De side dy’t jo sochten bestiet net mear. + '422': + content: Feilichheidsferifikaasje mislearre. Blokkearje jo tafallich cookies? + title: Feilichheidsferifikaasje mislearre + '429': Te folle ferbiningsoanfragen + '500': + content: It spyt ús, der is oan ús kant wat fout gien. + title: Dizze side is skansearre + '503': De side koe troch in tydlike serversteuring net laden wurde. + noscript_html: Skeakelje JavaScript yn om de webapp fan Mastodon brûke te kinnen. As alternatyf kinne jo in Mastodon-app sykje foar jo platfoarm. + existing_username_validator: + not_found: koe gjin lokale brûker mei dy brûkersnamme fine + not_found_multiple: koe %{usernames} net fine + exports: + archive_takeout: + date: Datum + download: Jo argyf downloade + hint_html: Jo kinne in argyf opfreegje fan jo berjochten en oplade media. De eksportearre gegevens binne yn it ActivityPub-formaat, dat troch hjirfoar geskikte software te lêzen is. Jo kinne elke 7 dagen in kopy fan jo argyf oanfreegje. + in_progress: Jo argyf wurdt gearstald… + request: Jo argyf opfreegje + size: Grutte + blocks: Jo blokkearje + bookmarks: Blêdwizers + csv: CSV + domain_blocks: Domeinblokkaden + lists: Listen + mutes: Jo negearje + storage: Mediaûnthâld + featured_tags: + add_new: Nije tafoegje + errors: + limit: Jo hawwe al it maksimaal tal hashtags útljochte + hint_html: "Wat binne útljochte hashtags? Dizze wurde prominint op jo iepenbiere profyl toand en stelt minsken yn steat om jo iepenbiere berjochten per hashtag te besjen. It is in goed helpmiddel om kreative wurksumheden of langetermynprojekten by te hâlden." filters: contexts: + account: Profilen + home: Starttiidline en listen + notifications: Meldingen + public: Iepenbiere tiidlinen thread: Petearen + edit: + add_keyword: Foegje kaaiwurd ta + keywords: Kaaiwurden + statuses: Yndividuele berjochten + statuses_hint_html: Dit filter is fan tapassing om yndividuele berjochten te selektearjen, oft se no met de ûndersteande trefwurden oerienkomme of net. Berjochten fan it filter besjen of fuortsmite. + title: Filter bewurkje + errors: + deprecated_api_multiple_keywords: Dizze ynstellingen kinne net fia dizze applikaasje wizige wurde, omdat der mear as ien trefwurd brûkt wurdt. Brûk in mear resinte applikaasje of de webomjouwing. + invalid_context: Gjin of ûnjildige kontekst jûn index: + contexts: Filters yn %{contexts} delete: Fuortsmite + empty: Jo hawwe gjin filters oanmakke. + expires_in: Ferrint nei %{distance} + expires_on: Ferrint op %{date} + keywords: + one: "%{count} trefwurd" + other: "%{count} trefwurden" + statuses: + one: "%{count} berjocht" + other: "%{count} berjochten" + statuses_long: + one: "%{count} yndividueel berjocht ferstoppe" + other: "%{count} yndividuele berjochten ferstoppe" + title: Filters + new: + save: Nije filter bewarje + title: Nije filter tafoegje + statuses: + back_to_filter: Tebek nei it filter + batch: + remove: Ut it filter fuortsmite + index: + hint: Dit filter is fan tapassing om yndividuele berjochten te selektearjen, ûnôfhinklik fan oare kritearia. Jo kinne yn de webomjouwing mear berjochten oan dit filter tafoegje. + title: Filtere berjochten + footer: + trending_now: Trends generic: + all: Alle + all_items_on_page_selected_html: + one: "%{count} item op dizze side is selektearre." + other: Alle %{count} items op dizze side binne selektearre. + all_matching_items_selected_html: + one: "%{count} item dat mei jo sykopdracht oerienkomt is selektearre." + other: Alle %{count} items dy’t mei jo sykopdracht oerienkomme binne selektearre. + changes_saved_msg: Wizigingen mei sukses bewarre! + copy: Kopiearje delete: Fuortsmite + deselect: Alles deselektearje + none: Gjin + order_by: Sortearje op + save_changes: Wizigingen bewarje + select_all_matching_items: + one: "%{count} item dat mei jo sykopdracht oerienkomt selektearje." + other: Alle %{count} items dy’t mei jo sykopdracht oerienkomme selektearje. + today: hjoed + validation_errors: + one: Der is wat net hielendal goed! Besjoch ûndersteande flater + other: Der is wat net hielendal goed! Besjoch ûndersteande %{count} flaters + html_validator: + invalid_markup: 'befettet ûnjildige HTML-opmaak: %{error}' + imports: + errors: + invalid_csv_file: 'Unjildich CSV-bestân. Flater: %{error}' + over_rows_processing_limit: befettet mear as %{count} rigen + modes: + merge: Gearfoegje + merge_long: Besteande gegevens behâlde en nije tafoegje + overwrite: Oerskriuwe + overwrite_long: Aktuele gegevens mei de nije gegevens ferfange + preface: Jo kinne bepaalde gegevens, lykas de minsken dy’t jo folgje of blokkearre hawwe, nei jo account op dizze server ymportearje. Jo moatte dizze gegevens wol earst op de oarspronklike server eksportearje. + success: Jo gegevens binne mei sukses opladen en wurde ynkoarten ferwurke + types: + blocking: Blokkearlist + bookmarks: Blêdwizers + domain_blocking: Domeinblokkearlist + following: Folchlist + muting: Negearlist + upload: Oplade invites: delete: Deaktivearje + expired: Ferrûn + expires_in: + '1800': 30 minuten + '21600': 6 oeren + '3600': 1 oere + '43200': 12 oeren + '604800': 1 wike + '86400': 1 dei + expires_in_prompt: Nea + generate: Utnûgingskeppeling generearje + invited_by: 'Jo binne útnûge troch:' + max_uses: + one: 1 kear + other: "%{count} kear" + max_uses_prompt: Gjin limyt + prompt: Generearje en diel spesjale keppelingen om minsken tagong ta dizze Mastodon-server te jaan + table: + expires_at: Ferrint op + uses: Brûkt + title: Minsken útnûgje + lists: + errors: + limit: Jo hawwe it maksimaal tal listen berikt + login_activities: + authentication_methods: + otp: twa-stapsferifikaasje-app + password: wachtwurd + sign_in_token: befeiligingskoade fia e-mailberjocht + webauthn: befeiligingskaaien + description_html: Wannear’t jo aktiviteit sjogge dy’t jo net werkenne, tink dan nei om jo wachtwurd te wizigjen en twa-stapsferifikaasje yn te skeakeljen. + empty: Gjin oanmeldskiednis beskikber + failed_sign_in_html: Mislearre oanmeldbesykjen mei %{method} fan %{ip} (%{browser}) + successful_sign_in_html: Mei sukses oanmeld mei %{method} fan %{ip} (%{browser}) + title: Oanmeldskiednis + media_attachments: + validations: + images_and_video: In fideo kin net oan in berjocht mei ôfbyldingen keppele wurde + not_ready: Kin gjin bestannen tafoegje dy’t noch net ferwurke binne. Probearje it letter opnij! + too_many: Der kinne net mear as 4 ôfbyldingen tafoege wurde + migrations: + acct: Ferhuze nei + cancel: Trochferwizing annulearje + cancel_explanation: It annulearjen fan de trochferwizing sil jo aktuele account opnij aktivearje, mar bringt gjin folgers werom dy’t nei de oare account ferhuze binne. + cancelled_msg: De trochferwizing is mei sukses annulearre. + errors: + already_moved: is itselde account wêrnei’t jo al nei ta ferhuze binne + missing_also_known_as: is gjin alias fan dizze account + move_to_self: kin net it aktuele account wêze + not_found: koe net fûn wurde + on_cooldown: Jo lêste migraasje is noch te koart lyn + followers_count: Folgers op it momint fan ferhuzing + incoming_migrations: Ferhúzje fan in oar account ôf + incoming_migrations_html: Om fan in oar account ôf nei dizze account te ferhúzjen, moatte jo earst in accountalias oanmeitsje. + moved_msg: Jo account wurdt no nei %{acct} trochferwiisd en jo folgers wurde ferhuze. + not_redirecting: Jo account wurdt op dit stuit net nei in oar account trochferwizen. + on_cooldown: Jo hawwe resint jo account ferhuze. Dizze mooglikheid is oer %{count} dagen wer beskikber. + past_migrations: Foarige migraasjes + proceed_with_move: Folgers ferhúzje + redirected_msg: Jo account wurdt no trochferwizen nei %{acct}. + redirecting_to: Jo account wurdt no nei %{acct} trochferwizen. + set_redirect: Trochferwizing ynstelle + warning: + backreference_required: De nije account moat earst ynsteld wurde om nei dizze account weromferwize te kinnen + before: 'Lês dizze tekst soarchfâldich eardat jo troch gean:' + cooldown: Nei de ferhuzing kinne jo tydlik net opnij ferhúzje + disabled_account: Jo aktuele account is hjirnei net mear folslein brûkber. Jo hawwe echter wol tagong ta it eksportearjen fan jo gegevens en ta it opnij aktivearjen fan jo account. + followers: Dizze aksje ferhuzet alle folgers fan de aktuele account ôf nei de nije account + only_redirect_html: Jo kinne as alternatyf ek allinnich de trochferwizing op jo profyl sette. + other_data: Oare gegevens wurde net automatysk ferhuze + redirect: Jo aktuele accountprofyl wurdt bywurke mei in trochferwizingsmelding en wurdt útsluten fan sykresultaten + moderation: + title: Moderaasje + move_handler: + carry_blocks_over_text: Dizze brûker is fan %{acct} ôf ferhuze. Jo hawwe dizze account blokkearre. + carry_mutes_over_text: Dizze brûker is fan %{acct} ôf ferhuze. Jo hawwe dizze account negearre. + copy_account_note_text: 'Dizze brûker is fan %{acct} ôf ferhuze. Jo hawwe de folgjende opmerkingen oer dizze account makke:' + navigation: + toggle_menu: Menu toane/ferstopje notification_mailer: + admin: + report: + subject: "%{name} hat in rapportaazje yntsjinne" + sign_up: + subject: "%{name} hat harren registrearre" + favourite: + body: 'Jo berjocht waard troch %{name} al favoryt markearre:' + subject: "%{name} hat jo berjocht as favoryt markearre" + title: Nije favoryt + follow: + body: "%{name} folget jo no!" + subject: "%{name} folget jo no" + title: Nije folger + follow_request: + action: Folchfersiken beheare + body: "%{name} wol jo graach folgje" + subject: 'Folgjen yn ôfwachting: %{name}' + title: Nij folchfersyk mention: action: Beäntwurdzje body: 'Jo binne fermeld troch %{name} yn:' subject: Jo binne fermeld troch %{name} title: Nije fermelding + poll: + subject: In enkête fan %{name} is beëinige + reblog: + body: 'Jo berjocht waard troch %{name} al boost:' + subject: "%{name} hat jo berjocht boost" + title: Nije boost + status: + subject: "%{name} hat sakrekt in berjocht pleatst" + update: + subject: "%{name} hat in berjocht bewurke" + notifications: + email_events: E-mailmeldingen foar eveneminten + email_events_hint: 'Selektearje eveneminten wêrfoar’t jo meldingen ûntfange wolle:' + other_settings: Oare meldingsynstellingen + number: + human: + decimal_units: + format: "%n%u" + units: + billion: mld. + million: mln. + quadrillion: qdn. + thousand: K + trillion: bln. + otp_authentication: + code_hint: Fier de koade yn dy’t troch de autentikaasje-app generearre waard + description_html: Nei it ynstellen fan twa-stapsferifikaasje mei in autentikaasje-app, kinne jo allinnich oanmelde as jo jo mobile telefoan by jo hawwe. Hjirmei generearje jo nammentlik de yn te fieren tagongskoade. + enable: Ynskeakelje + instructions_html: "Scan dizze QR-koade yn Google Authenticator of in gelikense app op jo mobile telefoan. Fan no ôf generearret dizze app tagongskoaden dy’t jo by it oanmelden ynfiere moatte." + manual_instructions: 'Yn it gefal jo de QR-koade net scanne kinne en it hânmjittich ynfiere moatte, fine jo hjirûnder de geheime koade yn platte tekst:' + setup: Ynstelle + wrong_code: De ynfierde koade is ûnjildich! Kloppet de systeemtiid fan de server en dy fan jo apparaat? + pagination: + newer: Nijer + next: Folgjende + older: Alder + prev: Foarige + truncate: "…" + polls: + errors: + already_voted: Jo hawwe al op dizze enkête stimd + duplicate_options: befettet dûbele items + duration_too_long: leit te fier yn de takomst + duration_too_short: duorret te koart + expired: De enkête is al beëinige + invalid_choice: De keazen enkêteopsje bestiet net + over_character_limit: kin net langer wêze as %{max} tekens + too_few_options: moat mear as ien item befetsje + too_many_options: kin net mear as %{max} items befetsje + preferences: + other: Oars + posting_defaults: Standertynstellingen foar berjochten + public_timelines: Iepenbiere tiidlinen + privacy_policy: + title: Privacybelied + reactions: + errors: + limit_reached: Limyt fan ferskate emoji-reaksjes berikt + unrecognized_emoji: is gjin besteande emoji-reaksje relationships: + activity: Accountaktiviteit + dormant: Slommerjend + follow_selected_followers: Selektearre folgers folgje + followers: Folgers + following: Folgjend + invited: Utnûge last_active: Letst warber + most_recent: Meast resint + moved: Ferhuze + mutual: Fan wjerskanten + primary: Primêr + relationship: Relaasje + remove_selected_domains: Alle folgers fan de selektearre domeinen fuortsmite + remove_selected_followers: Selektearre folgers fuortsmite + remove_selected_follows: Selektearre brûkers net mear folgje + status: Accountsteat + remote_follow: + missing_resource: Koe fereaske trochferwizings-URL foar jo account net fine + reports: + errors: + invalid_rules: ferwiist net nei jildige regels rss: content_warning: 'Ynhâldswarskôging:' + descriptions: + account: Iepenbiere berjochten fan @%{acct} + tag: 'Iepenbiere berjochten mei hashtag #%{hashtag}' + scheduled_statuses: + over_daily_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten foar hjoed + over_total_limit: Jo binne oer de limyt fan %{limit} yn te plannen berjochten + too_soon: De datum foar it ynplande berjocht moat yn de takomst lizze + sessions: + activity: Lêst warber + browser: Browser + browsers: + alipay: Alipay + blackberry: BlackBerry + chrome: Chrome + edge: Microsoft Edge + electron: Electron + firefox: Firefox + generic: Unbekende browser + ie: Internet Explorer + micro_messenger: MicroMessenger + nokia: Nokia S40 Ovi Browser + opera: Opera + otter: Otter + phantom_js: PhantomJS + qq: QQ Browser + safari: Safari + uc_browser: UC Browser + weibo: Weibo + current_session: Aktuele sesje + description: "%{browser} op %{platform}" + explanation: Dit binne de webbrowsers dy’t op dit stuit mei jo Mastodon-account oanmeld binne. + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: BlackBerry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: Linux + mac: macOS + other: ûnbekend platfoarm + windows: Windows + windows_mobile: Windows Mobile + windows_phone: Windows Phone + revoke: Ynlûke + revoke_success: Sesje mei sukses ynlutsen + title: Sesjes + view_authentication_history: Oanmeldskiednis fan jo account besjen settings: + account: Account + account_settings: Accountynstellingen + aliases: Accountaliassen + appearance: Werjefte + authorized_apps: Autorisearre apps + back: Tebek nei Mastodon delete: Account fuortsmite + development: Untwikkelers + edit_profile: Profyl bewurkje + export: Eksportearje + featured_tags: Utljochte hashtags + import: Ymportearje + import_and_export: Ymportearje en eksportearje + migrate: Accountmigraasje + notifications: Meldingen + preferences: Foarkarren + profile: Profyl + relationships: Folgers en folgjenden + statuses_cleanup: Automatysk berjochten fuortsmite + strikes: Fêststelde skeiningen + two_factor_authentication: Twa-stapsferifikaasje + webauthn_authentication: Befeiligingskaaien statuses: + attached: + audio: + one: "%{count} lûdsbestân" + other: "%{count} lûdsbestannen" + description: 'Bylagen: %{attached}' + image: + one: "%{count} opmerking" + other: "%{count} opmerkingen" + video: + one: "%{count} fideo" + other: "%{count} fideo’s" + boosted_from_html: Boost fan %{acct_link} content_warning: 'Ynhâldswarskôging: %{warning}' + default_language: Itselde as de taal fan de brûkersomjouwing + disallowed_hashtags: + one: 'befette in net tastiene hashtag: %{tags}' + other: 'befette net tastiene hashtags: %{tags}' + edited_at_html: Bewurke op %{date} + errors: + in_reply_not_found: It berjocht wêrop jo probearje te reagearjen liket net te bestean. + open_in_web: Yn de webapp iepenje + over_character_limit: Oer de limyt fan %{max} tekens pin_errors: direct: Berjochten dy’t allinnich sichtber binne foar fermelde brûkers kinne net fêstset wurde + limit: Jo hawwe it maksimaal tal berjochten al fêstmakke + ownership: In berjocht fan in oar kin net fêstmakke wurde + reblog: In boost kin net fêstset wurde + poll: + total_people: + one: "%{count} persoan" + other: "%{count} persoanen" + total_votes: + one: "%{count} stim" + other: "%{count} stimmen" + vote: Stimme + show_more: Mear toane + show_newer: Nijere toane + show_older: Aldere toane + show_thread: Petear toane + sign_in_to_participate: Meld jo oan om oan dit petear mei te dwaan + title: '%{name}: "%{quote}"' + visibilities: + direct: Direkt + private: Allinnich folgers + private_long: Allinnich oan jo folgers toane + public: Iepenbier + public_long: Elkenien kin it sjen + unlisted: Minder iepenbier + unlisted_long: Elkenien kin it sjen, mar net op iepenbiere tiidlinen + statuses_cleanup: + enabled: Automatysk âlde berjochten fuortsmite + enabled_hint: Smyt jo berjochten automatysk fuort sa gau as se in bepaalde leeftiidsgrins berikke, útsein se oerienkomme mei ien fan de ûndersteande útsûnderingen + exceptions: Utsûnderingen + explanation: Trochdat it fuortsmiten fan berjochten de server swier belêst, bart dit stadich op mominten dat de server net dwaande is. Om dizze reden kinne jo berjochten in amerijke neidat se de leeftiidsgrins berikt hawwe fuortsmiten wurde. + ignore_favs: Favoriten negearje + ignore_reblogs: Boosts negearje + interaction_exceptions: Utsûnderingen op basis fan ynteraksjes + interaction_exceptions_explanation: Merk op dat der gjin garânsje is dat berjochten fuortsmiten wurde, wannear’t ien kear it tal favoriten of boosts boppe de ynstelde grinswearde west binne. + keep_direct: Direkte berjochten behâlde + keep_direct_hint: Smyt gjin inkeld direkt berjocht fan jo fuort + keep_media: Berjochten mei mediabylagen behâlde + keep_media_hint: Smyt gjin inkeld berjocht mei mediabylagen fuort + keep_pinned: Fêstmakke berjochten behâlde + keep_pinned_hint: Smyt gjin inkeld fêstset berjocht fan jo fuort + keep_polls: Enkêten bewarje + keep_polls_hint: Gjin inkelde enkête fan jo wurdt fuortsmiten + keep_self_bookmark: Blêdwizers behâlde + keep_self_bookmark_hint: Eigen berjochten dy’t jo oan jo blêdwizers tafoege hawwe wurde net fuortsmiten + keep_self_fav: Favoriten behâlde + keep_self_fav_hint: Eigen berjochten dy’t jo as favoryt markearre hawwe wurde net fuortsmiten + min_age: + '1209600': 2 wiken + '15778476': 6 moannen + '2629746': 1 moanne + '31556952': 1 jier + '5259492': 2 moannen + '604800': 1 wike + '63113904': 2 jier + '7889238': 3 moannen + min_age_label: Fuort te smiten nei + min_favs: Berjochten dy’t op syn minst safolle kear as favoryt markearre binne behâlde + min_favs_hint: Smyt gjin berjochten dy’t op syn minst safolle kear as favoryt markearre binne fuort. Lit leech om berjochten likefolle it tal favoriten fuort te smiten + min_reblogs: Berjochten dy’t op syn minst safolle kear boost binne behâlde + min_reblogs_hint: Smyt gjin berjochten dy’t op syn minst safolle kear boost binne fuort. Lit leech om berjochten likefolle it tal boosts fuort te smiten + stream_entries: + pinned: Fêstsette berjocht + reblogged: boostte + sensitive_content: Gefoelige ynhâld + strikes: + errors: + too_late: De perioade dat jo beswier meitsje kinne tsjin dizze skeining is ferrûn + tags: + does_not_match_previous_name: komt net oerien mei de foarige namme + themes: + contrast: Mastodon (heech kontrast) + default: Mastodon (donker) + mastodon-light: Mastodon (ljocht) + time: + formats: + default: "%d %B %Y om %H:%M" + month: "%b %Y" + time: "%H:%M" + two_factor_authentication: + add: Tafoegje + disable: 2FA útskeakelje + disabled_success: Utskeakeljen twa-stapsferifikaasje is slagge + edit: Bewurkje + enabled: Twa-stapsferifikaasje is ynskeakele + enabled_success: Ynskeakeljen twa-stapsferifikaasje is slagge + generate_recovery_codes: Werstelkoaden generearje + lost_recovery_codes: Mei werstelkoaden kinne jo tagong ta jo account krije wannear’t jo jo telefoan kwytrekke binne. Wannear’t jo jo werstelkoaden kwytrekke binne, kinne jo se hjir opnij generearje. Jo âlde werstelkoaden binne dêrnei ûnjildich. + methods: Metoaden foar twa-stapsferifikaasje + otp: Autentikaasje-app + recovery_codes: Reservekopy meitsje fan werstelkoaden + recovery_codes_regenerated: Opnij generearjen werstelkoaden slagge + recovery_instructions_html: Wannear’t jo ea de tagong ta jo telefoan ferlieze, kinne jo mei help fan ien fan de werstelkoaden hjirûnder opnij tagong krije ta jo account. Soargje derfoar dat jo de werstelkoaden op in feilich plak bewarje. Jo kinne se bygelyks ôfdrukke en se tegearre mei oare wichtige dokuminten bewarje. + webauthn: Befeiligingskaaien + user_mailer: + appeal_approved: + action: Gean nei jo account + explanation: It beswier tsjin in troch in moderator fêststelde skeining fan jo op %{strike_date}, yntsjinne op %{appeal_date}, is goedkard. De earder fêststelde skeining is hjirby net langer jildich. + subject: Jo beswier fan %{date} is goedkard + title: Beswier goedkard + appeal_rejected: + explanation: It beswier tsjin in troch in moderator fêststelde skeining fan jo op %{strike_date}, yntsjinne op %{appeal_date}, is ôfwêzen. De fêststelde skeining bliuwt wurdt dêrom net wizige. + subject: Jo beswier fan %{date} is ôfwêzen + title: Beswier ôfwêzen + backup_ready: + explanation: Jo hawwe in folsleine reservekopy fan jo Mastodon-account opfrege. It stiet no klear om download te wurden! + subject: Jo argyf stiet klear om download te wurden + title: Argyf ophelje + suspicious_sign_in: + change_password: wizigje jo wachtwurd + details: 'Hjir binne de details fan oanmeldbesykjen:' + explanation: Wy hawwe fêststeld dat ien fan in nij IP-adres ôf op jo account oanmeld is. + further_actions_html: Wannear’t jo dit net wiene, advisearje wy om daliks %{action} en om twa-stapsferifikaasje yn te skeakeljen, om sa jo account feilich te hâlden. + subject: Jo account is fan in nij IP-adres ôf benadere + title: In nije registraasje + warning: + appeal: Beswier yntsjinje + appeal_description: Wannear’t jo tinke dat dit in flater is, kinne jo in beswier yntsjinje by de meiwurkers fan %{instance}. + categories: + spam: Spam + violation: De ynhâld is yn striid mei de folgjende mienskipsrjochtlinen + explanation: + delete_statuses: Der is fêststeld dat guon fan jo berjochten yn striid binne mei ien of meardere mienskipsrjochtlinen en dêrom troch de moderatoren fan %{instance} fuortsmiten. + disable: Jo kinne net langer jo account brûke, mar jo profyl en oare gegevens binne noch wol yntakt. Jo kinne in reservekopy fan jo gegevens opfreegje, accountynstellingen wizigje of jo account fuortsmite. + mark_statuses_as_sensitive: Guon fan jo berjochten binne as gefoelich markearre troch de moderatoren fan %{instance}. Dit betsjut dat minsken op de media yn de berjochten klikke/tikke moatte om dizze wer te jaan. Jo kinne media yn de takomst ek sels as gefoelich markearje. + sensitive: Fan no ôf wurde al jo opladen media as gefoelich markearre en efter in warskôging ferstoppe. + silence: Jo kinne noch hieltyd jo account brûke, mar allinnich minsken dy’t jo al folgje kinne jo berjochten sjen, en jo kinne minder goed fûn wurde. Oaren kinne jo echter noch wol hieltyd hânmjittich folgje. + suspend: Jo kinne net langer jo account brûke en jo profyl en oare gegevens binne net langer tagonklik. Jo kinne noch hieltyd oanmelde om in reservekopy fan jo gegevens op te freegjen, oant dizze nei 30 dagen folslein fuortsmiten wurde. Wy sille wol inkelde basisgegevens behâlde om foar te kommen dat jo ûnder jo útstel probearje út te kommen. + reason: 'Reden:' + statuses: 'Rapportearre berjochten:' + subject: + delete_statuses: Dizze berjochten fan %{acct} binne fuortsmiten + disable: Jo account %{acct} is beferzen + mark_statuses_as_sensitive: Dizze berjochten fan %{acct} binne as gefoelich markearre + none: Warskôging foar %{acct} + sensitive: Berjochten fan %{acct} sille fan no ôf altyd as gefoelich markearre wurde + silence: Jo account %{acct} is no beheind + suspend: Jo account %{acct} is útsteld + title: + delete_statuses: Berjochten fuortsmiten + disable: Account beferzen + mark_statuses_as_sensitive: Berjochten as gefoelich markearre + none: Warskôging + sensitive: Account as gefoelich markearre + silence: Account beheind + suspend: Account beskoattele + welcome: + edit_profile_action: Profyl ynstelle + edit_profile_step: Jo kinne jo profyl oanpasse troch in profylfoto op te laden, jo werjeftenamme oan te passen en mear. Jo kinne it hânmjittich goedkarren fan folgers ynstelle. + explanation: Hjir binne inkelde tips om jo op wei te helpen + final_action: Begjin mei berjochten te pleatsen + final_step: 'Begjin berjochten te pleatsen! Sels sûnder folgers kinne jo iepenbiere berjochten troch oaren besjoen wurde, bygelyks op de lokale tiidline en ûnder hashtags. Jo kinne josels foarstelle mei it gebrûk fan de hashtag #introductions.' + full_handle: Jo folsleine Mastodon-adres + full_handle_hint: Dit jouwe jo oan jo freonen, sadat se jo berjochten stjoere kinne of (fan in oare Mastodon-server ôf) folgje kinne. + subject: Wolkom op Mastodon + title: Wolkom oan board %{name}! + users: + follow_limit_reached: Jo kinne net mear as %{limit} accounts folgje + invalid_otp_token: Unjildige twa-stapstagongskoade + otp_lost_help_html: As jo tagong ta beide kwytrekke binne, nim dan kontakt op fia %{email} + seamless_external_login: Jo binne oanmeld fia in eksterne tsjinst, dêrom binne wachtwurden en e-mailynstellingen net beskikber. + signed_in_as: 'Oanmeld as:' + verification: + explanation_html: 'Jo kinne josels ferifiearje as de eigener fan de keppelingen yn de metadata fan jo profyl. Hjirfoar moat op de keppele website in keppeling werom nei jo Mastodon-profyl stean. Dizze keppeling moat it rel="me"-attribút befetsje. De omskriuwing fan de keppeling makket net út. Hjir is in foarbyld:' + verification: Ferifikaasje webauthn_credentials: + add: Nije befeiligingskaai tafoegje + create: + error: Der is in probleem bard mei it tafoegjen fan jo befeiligingskaai. Probearje it nochris. + success: It tafoegjen fan jo befeiligingskaai is slagge. delete: Fuortsmite + delete_confirmation: Binne jo wis dat jo dizze befeiligingskaai fuortsmite wolle? + description_html: Wannear’t jo ferifikaasje mei befeiligingskaaien ynskeakelje, moatte jo wylst it oanmelden ien fan jo befeiligingskaaien brûke. + destroy: + error: Der wie in probleem by it fuortsmiten fan jo befeiligingskaai. Probearje it nochris. + success: Jo befeilingskaai is mei sukses fuortsmiten. + invalid_credential: Unjildige befeiligingskaai + nickname_hint: Fier de bynamme yn fan jo nije befeiligingskaai + not_enabled: Jo hawwe WebAuthn noch net ynskeakele + not_supported: Dizze browser stipet gjin befeiligingskaaien + otp_required: Om befeiligingskaaien brûke te kinnen, moatte jo earst twa-stapsferifikaasje ynskeakelje. + registered_on: Registrearre op %{date} diff --git a/config/locales/gl.yml b/config/locales/gl.yml index d472296e80..c6c2ca0183 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -28,7 +28,7 @@ gl: 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! + created_msg: Nota de moderación creada correctamente! destroyed_msg: Nota de moderación eliminada de xeito correcto! accounts: add_email_domain_block: Bloquear o dominio do email @@ -1031,19 +1031,19 @@ gl: x_seconds: "%{count}s" deletes: challenge_not_passed: A información introducida non é correcta - confirm_password: Introduza o seu contrasinal para verificar a súa identidade + confirm_password: Escribe o contrasinal actual para verificar a túa identidade confirm_username: Introduce o nome de usuaria para confirmar o procedemento proceed: Eliminar conta success_msg: A súa conta eliminouse correctamente warning: - before: 'Antes de seguir, por favor lé estas notas con atención:' - caches: O contido almacenado en outros servidores podería persistir + before: 'Antes de continuar, por favor le estas notas con atención:' + caches: O contido almacenado noutros servidores podería persistir data_removal: As túas publicacións e outros datos serán permanentemente borrados email_change_html: Podes cambiar o enderezo de correo sen eliminar a conta email_contact_html: Se non o recibes, podes escribir a %{email} pedindo axuda 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. + more_details_html: Para máis detalles, mira a política de privacidade. username_available: O nome de usuaria estará dispoñible novamente username_unavailable: O nome de usuaria non estará dispoñible disputes: @@ -1267,7 +1267,7 @@ gl: set_redirect: Establecer redirección warning: backreference_required: Tes que configurar primeiro a nova conta para referenciar hacia esta - before: 'Antes de seguir, por favor lé estas notas con atención:' + before: 'Antes de continuar, por favor le estas notas con atención:' cooldown: Tras a migración existe un período de calma durante o cal non poderás volver a migrar de novo disabled_account: Tras o cambio a túa conta actual non será totalmente usable, pero terás acceso a exportar os datos e tamén a reactivación. followers: Esta acción moverá todas as túas seguidoras desde a conta actual a nova conta diff --git a/config/locales/id.yml b/config/locales/id.yml index bfd87673d1..70c65081dc 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -956,6 +956,8 @@ id: email_below_hint_html: Jika alamat email di bawah tidak benar, Anda dapat menggantinya di sini dan menerima email konfirmasi baru. email_settings_hint_html: Email konfirmasi telah dikirim ke %{email}. Jika alamat email tidak benar, Anda dapat mengubahnya di pengaturan akun. title: Atur + sign_in: + title: Masuk ke %{domain} sign_up: preamble: Dengan sebuah akun di server Mastodon ini, Anda akan dapat mengikuti orang lain dalam jaringan, di mana pun akun mereka berada. title: Mari kita siapkan Anda di %{domain}. diff --git a/config/locales/io.yml b/config/locales/io.yml index b05555e1be..3f18bf7fc6 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -370,6 +370,8 @@ io: add_new: Permisez federato kun domeno created_msg: Domeno sucesoza permisesas por federato destroyed_msg: Domeno despermisesas de federato + export: Exportez + import: Importez undo: Despermisez federato kun domeno domain_blocks: add_new: Add new @@ -379,13 +381,18 @@ io: edit: Modifikez domenobstrukto existing_domain_block: Vu ja exekutis plu rigoroza limiti a %{name}. existing_domain_block_html: Vu ja povis plu rigoroza limiti a %{name}, vu bezonas deobstruktar unesme. + export: Exportez + import: Importez new: create: Kreez obstrukto hint: Domenobstrukto ne preventos kreo di kontrekordaji en datumaturo, ma retroaktive e automate aplikos partikulara jermetodi a ta konti. severity: noop: Nulo + silence: Limito suspend: Restriktez title: Nova domenobstrukto + no_domain_block_selected: Nula domenobstrukti ne chanjesis por ke nulo selektesis + not_permitted: Vu ne permisesis agar co obfuscate: Nedicernebligez domennomo obfuscate_hint: Partala nedicernebligez domennomo en listo se reklamo di listo di domenlimito aktivigesas private_comment: Privata komento @@ -1230,6 +1237,8 @@ io: carry_blocks_over_text: Ca uzanti transferesis de %{acct} quon vu restriktis. carry_mutes_over_text: Ca uzanti transferesis de %{acct} quon vu silencigis. copy_account_note_text: 'Ca uzanti transferesis de %{acct}, co esas vua antea noti pri ol:' + navigation: + toggle_menu: Baskulez menuo notification_mailer: admin: report: @@ -1349,6 +1358,7 @@ io: browser: Vidilo browsers: alipay: Alipay + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -1362,6 +1372,7 @@ io: phantom_js: PhantomJS qq: Vidilo QQ safari: Safari + uc_browser: UC Browser weibo: Weibo current_session: Nuna sesiono description: "%{browser} che %{platform}" @@ -1370,6 +1381,8 @@ io: platforms: adobe_air: Adobe Air android: Android + blackberry: BlackBerry + chrome_os: ChromeOS firefox_os: Firefox OS ios: iOS linux: Linux diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a1eb584162..48d3d4599d 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -94,7 +94,7 @@ ko: suspended: 정지 중 title: 중재 moderation_notes: 중재 기록 - most_recent_activity: 최근 활동순 + most_recent_activity: 최근 활동 most_recent_ip: 최근 IP no_account_selected: 아무 것도 선택 되지 않아 어떤 계정도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 diff --git a/config/locales/lv.yml b/config/locales/lv.yml index f0759dab0c..e755906642 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -207,7 +207,7 @@ lv: enable_sign_in_token_auth_user: Iespējot e-pasta marķiera autentifikāciju lietotājam enable_user: Ieslēgt Lietotāju memorialize_account: Saglabāt Kontu Piemiņai - promote_user: Paaugstināt Lietotāju + promote_user: Izceltt Lietotāju reject_appeal: Noraidīt Apelāciju reject_user: Noraidīt lietotāju remove_avatar_user: Noņemt Avatāru @@ -274,12 +274,12 @@ lv: resend_user_html: "%{name} atkārtoti nosūtīja apstiprinājuma e-pastu %{target}" reset_password_user_html: "%{name} atiestatīja paroli lietotājam %{target}" resolve_report_html: "%{name} atrisināja ziņojumu %{target}" - sensitive_account_html: "%{name} atzīmēja %{target} mediju kā sensitīvu" + sensitive_account_html: "%{name} atzīmēja %{target} multividi kā sensitīvu" silence_account_html: "%{name} ierobežoja %{target} kontu" suspend_account_html: "%{name} apturēja %{target} kontu" unassigned_report_html: "%{name} nepiešķīra ziņojumu %{target}" unblock_email_account_html: "%{name} atbloķēja %{target} e-pasta adresi" - unsensitive_account_html: "%{name} atmarķēja %{target} mediju kā sensitīvu" + unsensitive_account_html: "%{name} atmarķēja %{target} multividi kā sensitīvu" unsilence_account_html: "%{name} atcēla ierobežojumu %{target} kontam" unsuspend_account_html: "%{name} neapturēja %{target} kontu" update_announcement_html: "%{name} atjaunināja paziņojumu %{target}" @@ -347,7 +347,7 @@ lv: dashboard: active_users: aktīvie lietotāji interactions: mijiedarbības - media_storage: Mediju krātuve + media_storage: Multividesu krātuve new_users: jauni lietotāji opened_reports: atvērtie ziņojumi pending_appeals_html: @@ -412,8 +412,8 @@ lv: private_comment_hint: Atstāj komentāru par šo domēna ierobežojumu moderatoru iekšējai lietošanai. public_comment: Publisks komentārs public_comment_hint: Atstāj komentāru par šo domēna ierobežojumu plašai sabiedrībai, ja ir iespējota domēnu ierobežojumu saraksta reklamēšana. - reject_media: Noraidīt mediju failus - reject_media_hint: Noņem lokāli saglabātos mediju failus un atsaka tos lejupielādēt nākotnē. Nav nozīmes apturēšanai + reject_media: Noraidīt multivides failus + reject_media_hint: Noņem lokāli saglabātos multivides failus un atsaka tos lejupielādēt nākotnē. Nav nozīmes apturēšanai reject_reports: Noraidīt ziņojumus reject_reports_hint: Ignorēt visus ziņojumus, kas nāk no šī domēna. Nav nozīmes apturēšanai undo: Atsaukt domēna bloķēšanu @@ -483,7 +483,7 @@ lv: comment: Iekšējā piezīme description_html: Tu vari definēt satura politikas, kas tiks piemērotas visiem kontiem no šī domēna un jebkura tā apakšdomēna. policies: - reject_media: Noraidīt medijus + reject_media: Noraidīt multividi reject_reports: Noraidīt ziņojumus silence: Ierobežot suspend: Apturēt @@ -496,7 +496,7 @@ lv: instance_followers_measure: mūsu sekotāji tur instance_follows_measure: viņu sekotāji šeit instance_languages_dimension: Populārākās valodas - instance_media_attachments_measure: saglabātie mediju pielikumi + instance_media_attachments_measure: saglabātie multivides pielikumi instance_reports_measure: ziņojumi par viņiem instance_statuses_measure: saglabātās ziņas delivery: @@ -528,7 +528,7 @@ lv: total_followed_by_them: Viņiem seko total_followed_by_us: Mums seko total_reported: Ziņojumi par viņiem - total_storage: Mediju pielikumi + total_storage: Multividesu pielikumi totals_time_period_hint_html: Tālāk redzamajās summās ir iekļauti dati par visu laiku. invites: deactivate_all: Deaktivēt visu @@ -584,7 +584,7 @@ lv: action_taken_by: Veiktā darbība actions: delete_description_html: Raksti, par kurām ziņots, tiks dzēsti, un tiks reģistrēts brīdinājums, lai palīdzētu tev izvērst turpmākos pārkāpumus saistībā ar to pašu kontu. - mark_as_sensitive_description_html: Mediju faili ziņojumos, par kuriem ziņots, tiks atzīmēti kā sensitīvi, un tiks reģistrēts brīdinājums, lai palīdzētu tev izvērst turpmākus pārkāpumus saistībā ar to pašu kontu. + mark_as_sensitive_description_html: Multividesu faili ziņojumos, par kuriem ziņots, tiks atzīmēti kā sensitīvi, un tiks reģistrēts brīdinājums, lai palīdzētu tev izvērst turpmākus pārkāpumus saistībā ar to pašu kontu. other_description_html: Skatīt vairāk iespēju kontrolēt konta uzvedību un pielāgot saziņu ar paziņoto kontu. resolve_description_html: Pret norādīto kontu netiks veiktas nekādas darbības, netiks reģistrēts brīdinājums, un ziņojums tiks slēgts. silence_description_html: Profils būs redzams tikai tiem, kas jau tam seko vai manuāli apskata, tādējādi ievērojami ierobežojot tā sasniedzamību. Šo izvēli vienmēr var mainīt. @@ -769,7 +769,7 @@ lv: title: Konta ziņas trending: Tendences visibility: Redzamība - with_media: Ar medijiem + with_media: Ar multividi strikes: actions: delete_statuses: "%{name} izdzēsa %{target} publikācijas" @@ -1118,7 +1118,7 @@ lv: archive_takeout: date: Dati download: Lejupielādē savu arhīvu - hint_html: Tu vari pieprasīt savu ziņu un augšupielādēto mediju arhīvu. Eksportētie dati būs ActivityPub formātā, ko varēs nolasīt ar jebkuru saderīgu programmatūru. Tu vari pieprasīt arhīvu ik pēc 7 dienām. + hint_html: Tu vari pieprasīt savu ziņu un augšupielādēto multividi arhīvu. Eksportētie dati būs ActivityPub formātā, ko varēs nolasīt ar jebkuru saderīgu programmatūru. Tu vari pieprasīt arhīvu ik pēc 7 dienām. in_progress: Notiek tava arhīva apkopošana... request: Pieprasi savu arhīvu size: Izmērs @@ -1128,7 +1128,7 @@ lv: domain_blocks: Bloķētie domēni lists: Saraksti mutes: Apklusinātie konti - storage: Mediju krātuve + storage: Multividesu krātuve featured_tags: add_new: Pievienot jaunu errors: @@ -1335,9 +1335,9 @@ lv: poll: subject: "%{name} aptauja ir beigusies" reblog: - body: 'Tavu ziņu pastiprināja %{name}:' - subject: "%{name} pastiprināja tavu ziņu" - title: Jauns pastiprinājums + body: 'Tavu ziņu izcēla %{name}:' + subject: "%{name} izcēla tavu ziņu" + title: Jauns izcēlums status: subject: "%{name} tikko publicēja" update: @@ -1502,7 +1502,7 @@ lv: one: "%{count} video" other: "%{count} video" zero: "%{count} video" - boosted_from_html: Pastiprināja %{acct_link} + boosted_from_html: Izcēla %{acct_link} content_warning: 'Satura brīdinājums: %{warning}' default_language: Tāda, kā saskarnes valoda disallowed_hashtags: @@ -1518,7 +1518,7 @@ lv: direct: Ziņojumus, kas ir redzami tikai minētajiem lietotājiem, nevar piespraust limit: Tu jau esi piespraudis maksimālo ziņu skaitu ownership: Citas personas ziņu nevar piespraust - reblog: Pastiprinātu ierakstu nevar piespraust + reblog: Izceltu ierakstu nevar piespraust poll: total_people: one: "%{count} persona" @@ -1549,13 +1549,13 @@ lv: exceptions: Izņēmumi explanation: Tā kā ziņu dzēšana ir dārga darbība, tā tiek veikta lēnām laika gaitā, kad serveris nav citādi aizņemts. Šī iemesla dēļ tavas ziņas var tikt izdzēstas kādu laiku pēc vecuma sliekšņa sasniegšanas. ignore_favs: Ignorēt izlasi - ignore_reblogs: Ignorēt pastiprinātos ierakstus + ignore_reblogs: Ignorēt izcēlumus interaction_exceptions: Izņēmumi, kuru pamatā ir mijiedarbība - interaction_exceptions_explanation: Ņem vērā, ka ieraksti var netikt dzēsti, ja tie noslīd zem par izlases vai pastiprinājuma sliekšņa pēc tam, kad to reiz pārsnieguši. + interaction_exceptions_explanation: Ņemiet vērā, ka nav garantijas, ka ziņas tiks dzēstas, ja tās pārsniegs izlases vai izcēluma slieksni. keep_direct: Saglabāt tiešos ziņojumus keep_direct_hint: Nedzēš nevienu tavu tiešo ziņojumu - keep_media: Saglabāt ziņas ar mediju pielikumiem - keep_media_hint: Neizdzēš nevienu no tavām ziņām, kurām ir mediju pielikumi + keep_media: Saglabāt ziņas ar multivides pielikumiem + keep_media_hint: Neizdzēš nevienu no tavām ziņām, kurām ir multivides pielikumi keep_pinned: Saglabāt piespraustās ziņas keep_pinned_hint: Nedzēš nevienu tavis piesprausto ziņu keep_polls: Saglabāt aptaujas @@ -1576,11 +1576,11 @@ lv: min_age_label: Vecuma slieksnis min_favs: Saglabāt ziņas izlsasē vismaz min_favs_hint: Nedzēš nevienu tavu ziņu, kas ir saņēmusi vismaz tik daudz izlases. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izlases skaita - min_reblogs: Saglabāt ierakstus pastiprinātus vismaz - min_reblogs_hint: Neizdzēš nevienu no taviem ierakstiem, kas ir pastiprināts vismaz tik reižu. Atstāj tukšu, lai dzēstu ierakstus neatkarīgi no to pastiprinājumu skaita + min_reblogs: Saglabāt ziņas izceltas vismaz + min_reblogs_hint: Neizdzēš nevienu no tavām ziņām, kas ir izceltas vismaz tik reižu. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu skaita stream_entries: pinned: Piespraustā ziņa - reblogged: pastiprinātie + reblogged: izceltie sensitive_content: Sensitīvs saturs strikes: errors: @@ -1641,8 +1641,8 @@ lv: explanation: delete_statuses: Tika konstatēts, ka dažas no tavām ziņām pārkāpj vienu vai vairākas kopienas vadlīnijas, un rezultātā %{instance} moderatori tās noņēma. disable: Tu vairs nevari izmantot savu kontu, taču tavs profils un citi dati paliek neskarti. Tu vari pieprasīt savu datu dublējumu, mainīt konta iestatījumus vai dzēst kontu. - mark_statuses_as_sensitive: "%{instance} moderatori dažas no tavām ziņām ir atzīmējušas kā sensitīvas. Tas nozīmē, ka cilvēkiem būs jāpieskaras ziņās esošajiem medijiem, pirms tiek parādīts priekšskatījums. Tu arī pats vari atzīmēt mediju kā sensitīvu, kad tādu publicēsi turpmāk." - sensitive: No šī brīža visi augšupielādētie mediju faili tiks atzīmēti kā sensitīvi un paslēpti aiz klikšķa brīdinājuma. + mark_statuses_as_sensitive: "%{instance} moderatori dažas no tavām ziņām ir atzīmējušas kā sensitīvas. Tas nozīmē, ka cilvēkiem būs jāpieskaras ziņās esošajai multividei, pirms tiek parādīts priekšskatījums. Tu arī pats vari atzīmēt mediju kā sensitīvu, kad tādu publicēsi turpmāk." + sensitive: No šī brīža visi augšupielādētie multivides faili tiks atzīmēti kā sensitīvi un paslēpti aiz klikšķa brīdinājuma. silence: Tu joprojām vari izmantot savu kontu, taču tikai tie cilvēki, kuri jau tev seko, redzēs tavas ziņas šajā serverī, un tev var tikt liegtas dažādas atklāšanas funkcijas. Tomēr citi joprojām var tev manuāli sekot. suspend: Tu vairs nevari izmantot savu kontu, un tavs profils un citi dati vairs nav pieejami. Tu joprojām vari pieteikties, lai pieprasītu savu datu dublēšanu, līdz dati tiks pilnībā noņemti aptuveni 30 dienu laikā, taču mēs saglabāsim dažus pamata datus, lai neļautu tev izvairīties no apturēšanas. reason: 'Iemesls:' diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 60858909e0..20cfe4c816 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -116,8 +116,8 @@ nn: redownloaded_msg: Oppdaterte %{username} sin profil frå opphavstenar reject: Avvis rejected_msg: Avviste %{username} sin registreringssøknad - remote_suspension_irreversible: Dataene til denne kontoen har blitt slettet uten mulighet for gjenoppretting. - remote_suspension_reversible_hint_html: Kontoen har blitt suspendert på sin tjener, og dataene bli fjernet helt den %{date}. Inntil da kan tjeneren gjeninnsette kontoen uten skade. Hvis du ønsker å fjerne alle dataene til kontoen umiddelbart, kan du gjøre dette under. + remote_suspension_irreversible: Data for denne kontoen har blitt sletta for alltid. + remote_suspension_reversible_hint_html: Kontoen har blitt suspendert på tenaren deira og data vil bli fjerna den %{date}. Fram til dess kan tenaren deira gjenoppretta kontoen utan negative fylgjer. Dersom du ynskjer å fjerna all kontodata no, kan du gjera det nedanfor. remove_avatar: Fjern bilete remove_header: Fjern overskrift removed_avatar_msg: Fjerna %{username} sitt avatarbilete @@ -551,7 +551,7 @@ nn: 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å + signatures_not_enabled: Overgangar fungerer ikkje så lenge sikker- eller kvitlistingsmodus er aktivert status: Status title: Vidaresendingar report_notes: @@ -567,35 +567,49 @@ nn: actions: delete_description_html: De rapporterte innleggene vil bli slettet, og en advarsel vil bli tatt vare på for å hjelpe deg eskalere ved fremtidige overtredelser fra samme konto. mark_as_sensitive_description_html: Mediene i dei rapporterte innlegga vil verte markerte som ømtolege, og ein merknad vil verte lagra for å hjelpe deg å eskalera ved framtidige regelbrot frå same konto. + other_description_html: Sjå fleire alternativ når det gjeld kontroll av kontoåtferd og tilpassing av kommunikasjonen til den rapporterte kontoen. resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes. silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. + suspend_description_html: Profil med innhald vil bli utilgjengeleg og til sist sletta. Det vil ikkje vera mogleg å samhandla med kontoen. Avgjerda kan opphevast innan 30 dagar. + actions_description_html: Avgjer kva som skal gjerast med denne rapporteringa. Dersom du utfører straffetiltak mot den rapporterte kontoen, vil dei motta ein e-post – så sant du ikkje har valt kategorien Spam. + add_to_report: Legg til i rapporten are_you_sure: Er du sikker? assign_to_self: Tilegn til meg assigned: Tilsett moderator by_target_domain: Domenet av rapportert bruker category: Kategori + category_description_html: Årsaka til at kontoen og/eller innhaldet vart rapportert vil bli inkludert i kommunikasjonen med den rapporterte kontoen comment: none: Ingen + comment_description_html: 'For å gje meir informasjon, skreiv %{name}:' created_at: Rapportert + delete_and_resolve: Slett innlegg forwarded: Videresendt forwarded_to: Videresendt til %{domain} mark_as_resolved: Merk som løyst mark_as_sensitive: Marker som ømtolig mark_as_unresolved: Merk som uløyst + no_one_assigned: Ingen notes: create: Sett inn merknad 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... + title: Merknad + notes_description_html: Sjå og skriv merknadar til andre moderatorar og ditt framtidige sjølv + quick_actions_description_html: 'Utfør ei handling eller bla ned for å sjå det rapporterte innhaldet:' + remote_user_placeholder: den eksterne brukaren frå %{instance} reopen: Opn rapport igjen report: 'Rapporter #%{id}' reported_account: Rapportert konto reported_by: Rapportert av resolved: Oppløyst resolved_msg: Rapporten er løyst! + skip_to_actions: Gå til handlingar status: Status statuses: Rapportert innhold + statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen target_origin: Opprinnelse for innrapportert konto title: Rapportar unassign: Avset @@ -611,6 +625,8 @@ nn: administration: Administrasjon devops: DevOps invites: Innbydingar + moderation: Moderering + special: Særskild delete: Slett description_html: Med brukarrollar kan du kontrollera kva funksjonar og område av Mastodon brukarane dine har tilgong til. edit: Endr rollen '%{name}' @@ -626,10 +642,28 @@ nn: delete_user_data_description: Lar brukere slette andre brukeres data uten forsinkelse invite_users: Innby brukarar invite_users_description: Tillet at brukarar innbyr nye folk til tenaren + manage_announcements: Handtera Kunngjeringar + manage_announcements_description: Let brukarar handtera kunngjeringar på tenaren + manage_appeals: Handtering av klager + manage_appeals_description: Let brukarar gjennomgå klager på modereringshandlingar + manage_blocks: Handtere blokkeringar + manage_blocks_description: Let brukarar blokkere e-postleverandørar og IP-adresser + manage_custom_emojis: Handtere tilpassa emojiar + manage_custom_emojis_description: Let brukarar handtere tilpassa emojiar på tenaren + manage_federation: Handtere føderasjon + manage_federation_description: Let brukarar blokkera eller tillata føderasjon med andre domener, samt styra kva som skal leverast manage_invites: Handsam innbydingar manage_invites_description: Tillet at brukarar blar gjennom og deaktiverer innbydingslenkjer + manage_reports: Handtere rapporteringar + manage_reports_description: Let brukarar gjennomgå rapportar og utføre modereringshandlingar i samsvar med desse manage_roles: Handsam roller manage_roles_description: Tillet at brukarar handsamar og tilset rollar under deira eiga + manage_rules: Handtere reglar + manage_rules_description: Let brukarar endre reglane for tenaren + manage_settings: Handtere innstillingar + manage_settings_description: Let brukarar endre innstillingar for tenaren + manage_taxonomies: Handtere taksonomiar + manage_taxonomies_description: Let brukarar gjennomgå populært innhald og oppdatera innstillingar for emneknaggar manage_user_access: Administrer brukartilgang manage_user_access_description: Let brukarar deaktivera 2-trinnsautentisering, endra e-postadressa og tilbakestille passordet til andre brukarar manage_users: Handtere brukarar @@ -657,18 +691,31 @@ nn: rules_hint: Det er eit eige område for reglar som brukarar må retta seg etter. title: Om appearance: + preamble: Tilpasse web-grensesnittet. title: Utsjånad + branding: + preamble: Profileringa av tenaren din skil den frå andre tenarar i nettverket. Informasjonen kan bli vist ulike stadar, til dømes i Mastodon sitt web-grensesnitt, i eigne applikasjonar, i førehandsvisningar på andre nettsider, i meldingsappar og så bortetter. På grunn av dette er det best å halde informasjonen enkel, kort og treffande. + title: Profilering + content_retention: + preamble: Styr korleis brukargenerert innhald blir lagra i Mastodon. + title: Bevaring av innhald default_noindex: desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve title: Ikkje la brukarar indekserast av søkjemotorar som standard discovery: follow_recommendations: Følgjeforslag preamble: Å framheva interessant innhald er vitalt i mottakinga av nye brukarar som ikkje nødvendigvis kjenner nokon på Mastodon. Kontroller korleis oppdagingsfunksjonane på tenaren din fungerar. + profile_directory: Profilkatalog + public_timelines: Offentlege tidsliner + title: Oppdaging trends: Trender domain_blocks: all: Til alle disabled: Til ingen users: Til lokale brukarar som er logga inn + registrations: + preamble: Kontroller kven som kan oppretta konto på tenaren din. + title: Registreringar registrations_mode: modes: approved: Godkjenning kreves for påmelding @@ -682,18 +729,25 @@ nn: account: Forfatter application: Applikasjon back_to_account: Tilbake til kontosida + back_to_report: Attende til rapporteringssida batch: remove_from_report: Fjern fra rapport + report: Rapport deleted: Sletta + favourites: Favorittar history: Versjonshistorikk + in_reply_to: Svarar på language: Språk media: title: Media metadata: Metadata no_status_selected: Ingen statusar vart endra sidan ingen vart valde + open: Opne innlegg original_status: Opprinnelig innlegg + reblogs: Framhevingar status_changed: Innlegg endret title: Kontostatusar + trending: Populært visibility: Synlighet with_media: Med media strikes: @@ -730,18 +784,40 @@ nn: disallow: Ikke tillat links: allow: Tillat lenke + allow_provider: Tillat utgjevar + description_html: Dette er lenkjer som for tida blir mykje delt av kontoar som tenaren din ser innlegg frå. Dei kan hjelpa brukarane dine med å finna ut kva som skjer i verda. Ingen lenkjer vert offentleg tilgjengelege før du godkjenner utgjevaren. Du kan også tillata eller forby individuelle lenkjer. disallow: Ikke tillat lenke + disallow_provider: Forby utgjevaren no_link_selected: Ingen lenker ble endret da ingen var valgt + publishers: + no_publisher_selected: Ingen utgjevarar vart endra sidan ingen var valde shared_by_over_week: one: Delt av %{count} person i løpet av den siste uken other: Delt av %{count} personer i løpet av den siste uken + title: Populære lenkjer usage_comparison: Delt %{today} ganger i dag, sammenlignet med %{yesterday} i går + only_allowed: Kun tillatne pending_review: Avventer gjennomgang + preview_card_providers: + allowed: Lenkjer frå denne utgjevaren kan bli populære + description_html: På tenaren din blir lenkjer frå desse domena ofte delt. Ei lenkje vil ikkje bli offentleg populær om ikkje domenet er tillate som utgjevar. Tillating (eller forbod) gjeld også subdomener. + rejected: Lenkjer frå denne utgjevaren kan ikkje bli populær + title: Utgjevarar rejected: Avvist statuses: allow: Tillat innlegg allow_account: Tillat forfatter + description_html: Dette er innlegg som tenaren din veit om og som blir mykje delt og markerte som favorittar no for tida. Dei kan hjelpa nye og gamle brukarar å finna folk dei vil fylgja. Ingen innlegg vert vist offentleg utan at du tillet forfattaren, og utan at forfattaren tillet kontoen deira å bli foreslått for andre. Du kan også tillata eller avvisa individuelle innlegg. disallow: Ikke tillat innlegg + disallow_account: Forby forfattar + no_status_selected: Ingen populære innlegg vart endra sidan ingen var valde + not_discoverable: Forfattaren har ikkje valt å kunna bli oppdaga + shared_by: + one: Delt eller markert som favoritt ein gong + other: Delt og markert som favoritt %{friendly_count} gongar + title: Populære innlegg + tags: + current_score: Gjeldande poengsum %{score} warning_presets: add_new: Legg til ny delete: Slett @@ -833,6 +909,9 @@ nn: 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 + sign_in: + preamble_html: Logg inn med brukaropplysningar for %{domain}. Dersom kontoen din er registrert på ein annan tenar vil du ikkje kunne logga inn her. + title: Logg inn på %{domain} sign_up: preamble: Med en konto på denne Mastodon-tjeneren vil du kunne følge andre personer på nettverket, uansett hvor kontoen deres holder til. title: La oss få deg satt i gang på %{domain}. diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 194d3fd72b..67976d9876 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1012,6 +1012,7 @@ pl: email_settings_hint_html: E-mail potwierdzający został wysłany na %{email}. Jeżeli adres e-mail nie jest prawidłowy, możesz zmienić go w ustawieniach konta. title: Konfiguracja sign_in: + preamble_html: Zaloguj się przy użyciu danych logowania %{domain}. Jeśli Twoje konto jest hostowane na innym serwerze, nie będziesz mógł się zalogować tutaj. title: Zaloguj się do %{domain} sign_up: preamble: Z kontem na tym serwerze Mastodon będziesz mógł obserwować każdą inną osobę w sieci, niezależnie od miejsca przechowywania ich konta. diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index b6202f0e69..82cdbb25ca 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -116,6 +116,8 @@ pt-BR: redownloaded_msg: O perfil de %{username} foi atualizado a partir da origem reject: Rejeitar rejected_msg: O pedido de registro de %{username} foi rejeitado + remote_suspension_irreversible: Os dados desta conta foram excluídos de forma irreversível. + remote_suspension_reversible_hint_html: A conta foi suspensa em seu servidor, e todos os dados serão removidos em %{date}. Até lá, o servidor remoto pode restaurar essa conta sem nenhum efeito negativo. Se você quer remover todos os dados desta conta imediatamente, você pode fazer isso abaixo. remove_avatar: Remover imagem de perfil remove_header: Remover capa removed_avatar_msg: A imagem de perfil de %{username} foi removida @@ -394,6 +396,7 @@ pt-BR: silence: Limitar suspend: Banir title: Novo bloqueio de domínio + no_domain_block_selected: Nenhum bloqueio de domínio foi alterado porque nenhum foi selecionado not_permitted: Você não possui permissão para realizar esta ação obfuscate: Ofuscar nome de domínio obfuscate_hint: Ofuscar parcialmente o domínio na lista se a exibição da lista de domínios limitados estiver habilitada @@ -700,6 +703,8 @@ pt-BR: content_retention: preamble: Controlar como o conteúdo gerado pelo usuário é armazenado no Mastodon. title: Retenção de conteúdo + default_noindex: + desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente discovery: follow_recommendations: Seguir recomendações preamble: Navegar por um conteúdo interessante é fundamental para integrar novos usuários que podem não conhecer ninguém no Mastodon. Controle como várias características de descoberta funcionam no seu servidor. @@ -787,6 +792,8 @@ pt-BR: disallow: Proibir link disallow_provider: Proibir autor no_link_selected: Nenhum link foi alterado como nenhum foi selecionado + publishers: + no_publisher_selected: Nenhum editor foi alterado porque nenhum foi selecionado shared_by_over_week: one: Compartilhado por uma pessoa na última semana other: Compartilhado por %{count} pessoas na última semana @@ -964,6 +971,8 @@ pt-BR: 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 + sign_in: + title: Entrar em %{domain} sign_up: preamble: Com uma conta neste servidor Mastodon, você poderá seguir qualquer outra pessoa na rede, independentemente de onde sua conta esteja hospedada. title: Então vamos lá criar uma conta em %{domain}. @@ -1296,7 +1305,7 @@ pt-BR: reblog: body: "%{name} impulsionou a sua publicação:" subject: "%{name} impulsionou a sua publicação" - title: Novo boost + title: Novo impulso status: subject: "%{name} acabou de publicar" update: @@ -1532,7 +1541,7 @@ pt-BR: min_reblogs: Manter publicações impulsionadas por ao menos min_reblogs_hint: Não exclui publicações que receberam pelo menos esta quantidade de impulsos. Deixe em branco para excluir publicações independentemente da quantidade de impulsos stream_entries: - pinned: Publicação fixada + pinned: Toot fixado reblogged: deu boost sensitive_content: Conteúdo sensível strikes: diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 41b659fac5..4612bf34c9 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -125,6 +125,9 @@ ar: name: الاسم العام للوظيفه، إذا تم تعيين الوظيفه ليتم عرضه كشارة permissions_as_keys: سيكون للمستخدمين الذين لديهم هذه الوظيفة حق الصلاحيه إلى... position: وتقرر الوظيفة الأعلى تسوية النزاعات في حالات معينة، ولا يمكن القيام ببعض الإجراءات إلا على أساس الوظائف ذات الأولوية الأقل + webhook: + events: حدد الأحداث لإرسالها + url: إين سترسل الأحداث labels: account: fields: @@ -227,7 +230,11 @@ ar: warn: إخفاء بتحذير form_admin_settings: backups_retention_period: فترة الاحتفاظ بأرشيف المستخدم + bootstrap_timeline_accounts: أوصي دائما بهذه الحسابات للمستخدمين الجدد + closed_registrations_message: رسالة مخصصة عندما يكون التسجيل غير متاح + content_cache_retention_period: مدة الاحتفاظ بالتخزين المؤقت للوسائط custom_css: سي أس أس CSS مخصص + mascot: جالب حظ مخصص (قديم) media_cache_retention_period: مدة الاحتفاظ بالتخزين المؤقت للوسائط profile_directory: تفعيل دليل الصفحات التعريفية registrations_mode: من يمكنه التسجيل @@ -288,6 +295,7 @@ ar: permissions_as_keys: الصلاحيات position: الأولوية webhook: + events: الأحداث المفعلة url: الرابط التشعبّي URL لنقطة النهاية 'no': لا not_recommended: غير مستحسن diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 94cae75d15..4be3716bf4 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -38,7 +38,7 @@ bg: current_username: Въведете потребителското име на текущия профил, за да потвърдите digest: Изпраща се само след дълъг период на бездействие и само ако сте получили лични съобщения във ваше отсъствие discoverable: Позволяване на странници да откриват вашия акаунт чрез препоръки, нашумели и други неща - email: Ще ви се изпрати е-писмо за потвърждение + email: Ще ви се изпрати имейл за потвърждение fields: Може да добавите до 4 елемента в таблицата към профила си header: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате @@ -141,7 +141,7 @@ bg: text: Предварително настроен текст title: Заглавие admin_account_action: - include_statuses: Включва докладваните публикации в е-писмо + include_statuses: Включване на докладваните публикации в имейла send_email_notification: Известяване на потребителя по имейл text: Потребителско предупреждение type: Действие @@ -271,10 +271,10 @@ bg: notification_emails: appeal: Някой възразява срещу решение на модератора digest: Изпращай извлечения на съобщенията - favourite: Изпращане на е-писмо, когато някой означи ваша публикация като любима - follow: Изпращане на е-писмо, когато някой ви последва - follow_request: Изпращане на е-писмо, когато някой пожелае да ви последва - mention: Изпращане на е-писмо, когато някой ви спомене + favourite: Някой маркира ваша публикация като любима + follow: Някой ви последва + follow_request: Някой пожела да ви последва + mention: Някой ви спомена pending_account: Новите акаунти трябва да се прегледат reblog: Изпращай e-mail, когато някой сподели твоя публикация report: Новият доклад е подаден diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 597d978599..977fe3dbc6 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -15,7 +15,7 @@ ca: text_html: Opcional. En les publicacions, pots usar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps type_html: Tria què fer amb %{acct} types: - disable: Evita que l'usuari faci servir el seu compte, però no esborris ni amaguis el seu contingut. + disable: Evita que l'usuari faci servir el seu compte, però no n'esborris ni amaguis el contingut. none: Fes servir això per a enviar un avís a l'usuari sense desencadenar cap altra acció. sensitive: Obliga a marcar tots els fitxers multimèdia adjunts com a sensibles. silence: Evita que l'usuari pugui publicar amb visibilitat pública, amagar les seves publicacions i les notificacions d'usuaris que no el segueixin. @@ -51,14 +51,14 @@ ca: setting_aggregate_reblogs: No mostris els nous impulsos de les publicacions que ja s'han impulsat recentment (només afecta els nous impulsos rebuts) setting_always_send_emails: Normalment, no s'enviarà cap notificació per correu electrònic mentre facis servir Mastodon setting_default_sensitive: El contingut sensible està ocult per defecte i es pot mostrar fent-hi clic - setting_display_media_default: Ocultar el contingut gràfic marcat com a sensible + setting_display_media_default: Amaga el contingut gràfic marcat com a sensible setting_display_media_hide_all: Oculta sempre tot el contingut multimèdia setting_display_media_show_all: Mostra sempre el contingut gràfic setting_hide_network: Qui segueixes i els que et segueixen 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à en la vista detallada de les publicacions setting_use_blurhash: Els degradats es basen en els colors de les imatges ocultes, però n'enfosqueixen els detalls - setting_use_pending_items: Amaga les actualitzacions de la línia de temps després de fer un clic en lloc de desplaçar automàticament les publicacions + setting_use_pending_items: Amaga les actualitzacions de la línia de temps després de fer un clic, en lloc de desplaçar-les automàticament username: El teu nom d'usuari serà únic a %{domain} whole_word: Quan la paraula clau o la frase sigui només alfanumèrica, s'aplicarà si coincideix amb la paraula sencera domain_allow: @@ -87,7 +87,7 @@ ca: site_contact_username: Com pot la gent trobar-te a Mastodon. site_extended_description: Qualsevol informació addicional que pot ser útil per als visitants i els teus usuaris. Es pot estructurar amb format Markdown. site_short_description: Una descripció curta per a ajudar a identificar de manera única el teu servidor. Qui el fa anar, per a qui és? - site_terms: Usa la teva pròpia política de privacitat o deixa-ho en blanc per a usar la per defecte. Pot ser estructurat amb format Markdown. + site_terms: Fes servir la teva pròpia política de privacitat o deixa-ho en blanc per a la per defecte. Es pot estructurar amb format Markdown. site_title: Com pot la gent referir-se al teu servidor a part del seu nom de domini. theme: El tema que els visitants i els nous usuaris veuen. thumbnail: Una imatge d'aproximadament 2:1 que es mostra al costat la informació del teu servidor. @@ -271,7 +271,7 @@ ca: notification_emails: appeal: Algú ha apel·lat una decisió de moderació digest: Envia'm un resum per correu electrònic - favourite: Algú marca com a preferit el teu estat + favourite: Algú marca com a preferida la teva publicació follow: Algú et segueix follow_request: Algú sol·licita seguir-te mention: Algú et menciona diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index 89e78c9b05..832274fbac 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -34,6 +34,17 @@ en-GB: avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px bot: Signal to others that the account mainly performs automated actions and might not be monitored context: One or multiple contexts where the filter should apply + current_password: For security purposes please enter the password of the current account + current_username: To confirm, please enter the username of the current account + digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence + discoverable: Allow your account to be discovered by strangers through recommendations, trends and other features + email: You will be sent a confirmation e-mail + fields: You can have up to 4 items displayed as a table on your profile + header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px + inbox_url: Copy the URL from the frontpage of the relay you want to use + irreversible: Filtered posts will disappear irreversibly, even if filter is later removed + locale: The language of the user interface, e-mails and push notifications + locked: Manually control who can follow you by approving follow requests labels: notification_emails: follow_request: Someone requested to follow you diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index df14bf8391..abb05aed3d 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -82,7 +82,7 @@ et: mascot: Asendab kohandatud veebiliidese illustratsiooni. media_cache_retention_period: Positiivse väärtuse korral kustutatakse allalaetud meediafailid määratud päevade möödudes. Vajadusel laaditakse need uuesti alla. profile_directory: Kasutajate kataloog kuvab nimekirja kasutajatest, kes on seda lubanud. - require_invite_text: Kui liitumisi on tarvis kinnitada, oleks "Miks Te soovite liituda?" vastus vajalik + require_invite_text: Kui liitumisi on tarvis kinnitada, oleks "Miks soovid liituda?" vastus vajalik site_contact_email: Kui peaks tekkima vajadus ühendust võtta täiendavate küsimuste osas. site_contact_username: Kuidas Mastodoni kaudu ühendust võtta. site_extended_description: Igasugune lisateave, mis võib külastajatele ja kasutajatele kasulik olla. Saab liigendada Markdown süntaksiga. @@ -146,7 +146,7 @@ et: text: Hoiatus type: Tegevus types: - disable: Keela + disable: Lukusta none: Ära tee midagi sensitive: Tundlik silence: Vaigista @@ -192,7 +192,7 @@ et: setting_always_send_emails: Edasta kõik teavitused meilile setting_auto_play_gif: Esita GIF-e automaatselt setting_boost_modal: Näita enne jagamist kinnitusdialoogi - setting_crop_images: Kärbi suurendamata postituste pildid mõõtu 16x9 + setting_crop_images: Laiendamata postitustes kärbi pildid 16:9 küljesuhtesse setting_default_language: Postituse keel setting_default_privacy: Postituse nähtavus setting_default_sensitive: Alati märgista meedia tundlikuks @@ -202,7 +202,7 @@ et: setting_display_media_default: Vaikimisi setting_display_media_hide_all: Peida kõik setting_display_media_show_all: Kuva kõik - setting_expand_spoilers: Alati laienda sisuhoiatustega postitused + setting_expand_spoilers: Alati näita tundlikuks märgitud postituste sisu setting_hide_network: Peida oma võrk setting_noindex: Keeldu otsingumootorite indekseerimistest setting_reduce_motion: Vähenda animatsioonides liikumist @@ -259,7 +259,7 @@ et: invite: comment: Kommenteerima invite_request: - text: Miks Te soovite liituda? + text: Miks soovid liituda? ip_block: comment: Kommentaar ip: IP diff --git a/config/locales/simple_form.fr-QC.yml b/config/locales/simple_form.fr-QC.yml index 41e14e5b28..11c0503545 100644 --- a/config/locales/simple_form.fr-QC.yml +++ b/config/locales/simple_form.fr-QC.yml @@ -84,7 +84,7 @@ fr-QC: profile_directory: L'annuaire des profils répertorie tous les utilisateurs qui ont opté pour être découverts. require_invite_text: Lorsque les inscriptions nécessitent une approbation manuelle, rendre le texte de l’invitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif site_contact_email: Comment les personnes peuvent vous joindre pour des demandes de renseignements juridiques ou d'assistance. - site_contact_username: Comment les gens peuvent vous conracter sur Mastodon. + site_contact_username: Comment les gens peuvent vous contacter sur Mastodon. site_extended_description: Toute information supplémentaire qui peut être utile aux visiteurs et à vos utilisateurs. Peut être structurée avec la syntaxe Markdown. site_short_description: Une courte description pour aider à identifier de manière unique votre serveur. Qui l'exécute, à qui il est destiné ? site_terms: Utilisez votre propre politique de confidentialité ou laissez vide pour utiliser la syntaxe par défaut. Peut être structurée avec la syntaxe Markdown. diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index 0125ca40f4..d45809a3a8 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -68,6 +68,66 @@ fy: with_dns_records: Der wurdt in besykjen dien om de oanbelangjende DNS-records op te sykjen, wêrnei de resultaten ek blokkearre wurde featured_tag: name: 'Hjir binne inkelde fan de hashtags dy’t jo koartlyn brûkt hawwe:' + filters: + action: Kies hokker aksjes útfierd wurde moatte, wannear’t in berjocht oerienkomt mei it filter + actions: + hide: Ferstopje de filtere ynhâld folslein, as oft it net bestiet + warn: Ferstopje de filtere ynhâld efter in warskôging, mei de titel fan it filter as warskôgingstekst + form_admin_settings: + backups_retention_period: De oanmakke brûkersargiven foar it opjûne oantal dagen behâlde. + bootstrap_timeline_accounts: Dizze accounts wurde boppe oan de oanrekommandaasjes oan nije brûkers toand. Meardere brûkersnammen troch komma’s skiede. + closed_registrations_message: Werjûn wannear’t registraasje fan nije accounts útskeakele is + content_cache_retention_period: 'Berjochten fan oare servers wurde nei it opjûne oantal dagen fuortsmiten. Let op: Dit is definityf.' + custom_css: Jo kinne oanpaste CSS tapasse op de webferzje fan dizze Mastodon-server. + mascot: Oerskriuwt de yllustraasje yn de avansearre webomjouwing. + media_cache_retention_period: Mediabestannen dy’t fan oare servers download binne wurde nei it opjûne oantal dagen fuortsmiten en wurde op fersyk opnij download. + profile_directory: De brûkersgids befettet in list fan alle brûkers dy¥t derfoar keazen hawwe om ûntdekt wurde te kinnen. + require_invite_text: Meitsje it ynfoljen fan "Wêrom wolle jo jo hjir registrearje?" ferplicht yn stee fan opsjoneel, wannear’t registraasjes hânmjittich goedkard wurde moatte + site_contact_email: Hoe minsken jo berikke kinne foar juridyske fragen of stipe. + site_contact_username: Hoe minsken jo op Mastodon berikke kinne. + site_extended_description: Alle oanfoljende ynformaasje dy’t nuttich wêze kin foar besikers en jo brûkers. Kin opmakke wurde mei Markdown. + site_short_description: In koarte beskriuwing om it unike karakter fan jo server te toanen. Wa beheart de server, wat is de doelgroep? + site_terms: Brûk jo eigen privacybeleid of lit leech om de standertwearde te brûken. Kin mei Markdown opmakke wurde. + site_title: Hoe minsken bûten de domeinnamme nei jo server ferwize kinne. + theme: Tema dy’t ôfmelde besikers en nije brûkers sjen. + thumbnail: In ôfbylding fan ûngefear in ferhâlding fan 2:1 dy’t njonken jo serverynformaasje toand wurdt. + timeline_preview: Net oanmelde besikers kinne de meast resinte, op de server oanwêzige iepenbiere berjochten besjen. + trendable_by_default: Hânmjittige beoardieling fan trends oerslaan. Yndividuele items kinne letter dochs noch ôfkard wurde. + trends: Trends toane hokker berjochten, hashtags en nijsberjochten op jo server oan populariteit winne. + form_challenge: + current_password: Jo betrêdzje in feilige omjouwing + imports: + data: CSV-bestân dat op in oare Mastodon-server eksportearre waard + invite_request: + text: Dit helpt ús om jo oanfraach te beoardielen + ip_block: + comment: Opsjoneel. Ferjit net wêrom jo dizze rigel tafoege hawwe. + expires_in: It tal IP-adressen is beheind. Se wurde somtiden dield en wikselje faaks fan eigener. Om dizze reden wurde ûnbeheinde IP-blokkaden net oanrekommandearre. + ip: Fier in IPv4- of IPv6-adres yn. Jo kinne hiele rigels blokkearje mei de CIDR-metoade. Pas op dat jo josels net bûtenslute! + severities: + no_access: Tagong ta de hiele server blokkearje + sign_up_block: Nije registraasjes binne net mooglik + sign_up_requires_approval: Nije registraasjes fereaskje jo goedkarring + severity: Kies wat der barre moat mei oanfragen fan dit IP-adres + rule: + text: Omskriuw in rigel of eask foar brûkers op dizze server. Probearje it koart en simpel te hâlden + sessions: + otp: 'Fier de twa-stapstagongskoade fan jo mobile telefoan ôf yn of brûk ien fan jo werstelkoaden:' + webauthn: Wannear’t it in USB-kaai is, soargje der dan foar dat jo dizze yn de kompjûter stekke en, wannear nedich, aktivearje. + tag: + name: Jo kinne elk wurd mei in haadletter begjinne, om sa bygelyks de tekst mear lêsber te meitsjen + user: + chosen_languages: Allinnich berjochten yn de selektearre talen wurde op de iepenbiere tiidline toand + role: De rol bepaalt hokker rjochten in brûker hat + user_role: + color: Kleur dy’t brûkt wurdt foar de rol yn de UI, as RGB yn heksadesimaal formaat + highlighted: Dit makket de rol iepenbier sichtber + name: Iepenbiere namme fan de rol, wannear de rol as badge op profylsiden toand wurdt + permissions_as_keys: Brûkers mei dizze rol hawwe tagong ta… + position: In hegere rol beslist yn bepaalde situaasjes oer it oplossen fan konflikten. Bepaalde aksjes kinne allinnich útfierd wurde op rollen mei in legere prioriteit + webhook: + events: Selektearje de te ferstjoeren eveneminten + url: Wêr’t eveneminten nei ta stjoerd wurde labels: account: fields: @@ -83,13 +143,25 @@ fy: admin_account_action: include_statuses: Rapportearre berjochten oan it e-mailberjocht tafoegje send_email_notification: Meld dit per e-mailberjocht oan de brûker + text: Oanpaste warskôging + type: Aksje + types: + disable: Befrieze + none: Warskôging stjoere + sensitive: Gefoelich + silence: Beheine + suspend: Utstelle en definityf accountgegevens fuortsmite + warning_preset_id: Brûk in foarynstelling fan in warskôging announcement: all_day: De hiele dei troch ends_at: Einiget scheduled_at: Meidieling ynplanne starts_at: Begjint text: Oankundiging + appeal: + text: Lis út wêrom dizze beslissing neffens jo weromdraaid wurde moat defaults: + autofollow: Utnûgje om jo account te folgjen avatar: Profylfoto bot: Dit is in bot-account chosen_languages: Talen filterje @@ -106,21 +178,84 @@ fy: header: Omslachfoto honeypot: "%{label} (net ynfolje)" inbox_url: Relais-ynboks-URL + irreversible: Fuortsmite yn stee fan ferstopje + locale: Taal fan de brûkersomjouwing + locked: Folchfersyk fereaskje + max_uses: Maksimaal tal kear te brûken new_password: Nije wachtwurd note: Bio otp_attempt: Twa-stapstagangskoade password: Wachtwurd + phrase: Trefwurd of sindiel + setting_advanced_layout: Avansearre webomjouwing ynskeakelje + setting_aggregate_reblogs: Boosts yn tiidlinen groepearje + setting_always_send_emails: Altyd e-mailmeldingen ferstjoere + setting_auto_play_gif: Spylje animearre GIF’s automatysk ôf + setting_boost_modal: Freegje foar it boosten fan in berjocht in befêstiging + setting_crop_images: Ofbyldingen bysnije oant 16x9 yn berjochten op tiidlinen + setting_default_language: Taal fan jo berjochten + setting_default_privacy: Sichtberheid fan nije berjochten + setting_default_sensitive: Media altyd as gefoelich markearje + setting_delete_modal: Freegje foar it fuortsmiten fan in berjocht in befêstiging + setting_disable_swiping: Feibewegingen útskeakelje + setting_display_media: Mediawerjefte setting_display_media_default: Standert setting_display_media_hide_all: Alles ferstopje setting_display_media_show_all: Alles toane + setting_expand_spoilers: Berjochten mei ynhâldswarskôgingen altyd útklappe + setting_hide_network: Jo folgers en wa’t jo folget ferstopje + setting_noindex: Jo berjochten net troch sykmasinen yndeksearje litte + setting_reduce_motion: Stadigere animaasjes + setting_show_application: Tapassing dy’t jo foar it ferstjoeren fan berjochten brûke toane + setting_system_font_ui: Standertlettertype fan jo systeem brûke + setting_theme: Websitetema + setting_trends: Trends fan hjoed toane + setting_unfollow_modal: Freegje foar it ûntfolgjen fan ien in befêstiging + setting_use_blurhash: Dizige kleuroergongen foar ferstoppe media toane + setting_use_pending_items: Stadige modus + severity: Swierte + sign_in_token_attempt: Befeiligingskoade + title: Titel + type: Ymporttype + username: Brûkersnamme + username_or_email: Brûkersnamme of e-mailadres + whole_word: Hiel wurd + email_domain_block: + with_dns_records: MX-records en IP-adressen fan it domein tafoegje + featured_tag: + name: Hashtag + filters: + actions: + hide: Folslein ferstopje + warn: Mei in warskôging ferstopje form_admin_settings: + backups_retention_period: Bewartermyn brûkersargyf + bootstrap_timeline_accounts: Accounts dy’t altyd oan nije brûkers oanrekommandearre wurde + closed_registrations_message: Oanpast berjocht wannear registraasje útskeakele is + content_cache_retention_period: Bewartermyn berjochtebuffer + custom_css: Oanpaste CSS + mascot: Oanpaste maskotte (legacy) + media_cache_retention_period: Bewartermyn mediabuffer + profile_directory: Brûkersgids ynskeakelje + registrations_mode: Wa kin harren registrearje + require_invite_text: Opjaan fan in reden is ferplicht + show_domain_blocks: Domeinblokkaden toane + show_domain_blocks_rationale: Redenen foar domeinblokkaden toane site_contact_email: E-mailadres kontaktpersoan site_contact_username: Brûkersnamme kontaktpersoan + site_extended_description: Wiidweidige omskriuwing + site_short_description: Serveromskriuwing site_terms: Privacybelied site_title: Servernamme theme: Standerttema thumbnail: Serverthumbnail + timeline_preview: Tagong ta de iepenbiere tiidlinen sûnder oan te melden tastean + trendable_by_default: Trends goedkarre sûnder yn it foar geande beoardieling trends: Trends ynskeakelje + interactions: + must_be_follower: Meldingen fan minsken dy’t jo net folgje blokkearje + must_be_following: Meldingen fan minsken dy’t jo net folgje blokkearje + must_be_following_dm: Direkte berjochten fan minsken dy’t jo net folgje blokkearje invite: comment: Opmerking invite_request: @@ -134,19 +269,33 @@ fy: sign_up_requires_approval: Registraasjes beheine severity: Regel notification_emails: + appeal: Ien hat beswier yntsjinne tsjin in beslissing fan in moderator + digest: Periodyk e-mailberjochten mei in gearfetting ferstjoere + favourite: Wannear ien jo berjocht as favoryt markearret + follow: Wannear ien begûn is jo te folgjen + follow_request: Wannear ien jo folgje wol mention: Ien hat jo fermeld + pending_account: Wannear in nij account beoardiele wurde moat + reblog: Wannear ien jo berjocht boost hat + report: Nije rapportaazje yntsjinne is + trending_tag: Nije trend beoardieling fereasket rule: text: Regel tag: + listable: Tastean dat dizze hashtag yn sykopdrachten en oanrekommandaasjes te sjen is name: Hashtag + trendable: Goedkarre dat dizze hashtag ûnder trends te sjen is + usable: Tastean dat dizze hashtag yn berjochten brûkt wurde mei user: role: Rol user_role: color: Badgekleur + highlighted: Rol as badge op profylsiden toane name: Namme permissions_as_keys: Tastimmingen position: Prioriteit webhook: + events: Ynskeakele eveneminten url: Einpunt-URL 'no': Nee not_recommended: Net oanrekommandearre @@ -154,4 +303,7 @@ fy: required: mark: "*" text: fereaske + title: + sessions: + webauthn: Brûk ien fan jo befeiligingskaaien om oan te melden 'yes': Ja diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index dd0dda3145..57762f821f 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -48,12 +48,12 @@ lv: password: Izmanto vismaz 8 rakstzīmes phrase: Tiks saskaņots neatkarīgi no ziņas teksta reģistra vai satura brīdinājuma scopes: Kuriem API lietojumprogrammai būs atļauta piekļuve. Ja izvēlies augstākā līmeņa tvērumu, tev nav jāatlasa atsevišķi vienumi. - setting_aggregate_reblogs: Nerādīt jaunus pastiprinājumus ierakstiem, kas nesen tikuši pastiprināti (ietekmēs tikai turpmāk saņemtos pastiprinājumus) + setting_aggregate_reblogs: Nerādīt jaunus izcēlumus ziņām, kas nesen tika palielinātas (ietekmē tikai nesen saņemtos palielinājumus) setting_always_send_emails: Parasti e-pasta paziņojumi netiek sūtīti, kad aktīvi izmantojat Mastodon - setting_default_sensitive: Sensitīvi mediji pēc noklusējuma ir paslēpti, un tos var atklāt, noklikšķinot - setting_display_media_default: Paslēpt mediju, kas atzīmēts kā sensitīvs - setting_display_media_hide_all: Vienmēr slēpt medijus - setting_display_media_show_all: Vienmēr rādīt medijus + setting_default_sensitive: Sensitīva multivide pēc noklusējuma ir paslēpti, un tos var atklāt, noklikšķinot + setting_display_media_default: Paslēpt multividi, kas atzīmēta kā sensitīva + setting_display_media_hide_all: Vienmēr slēpt multividi + setting_display_media_show_all: Vienmēr rādīt multividi setting_hide_network: Tavā profilā netiks rādīts, kam tu seko un kurš seko tev setting_noindex: Ietekmē tavu publisko profilu un ziņu lapas setting_show_application: Lietojumprogramma, ko tu izmanto publicēšanai, tiks parādīta tavu ziņu detalizētajā skatā @@ -188,17 +188,17 @@ lv: password: Parole phrase: Atslēgvārds vai frāze setting_advanced_layout: Iespējot paplašināto tīmekļa saskarni - setting_aggregate_reblogs: Grupēt pastiprinājumus ierakstu lentās + setting_aggregate_reblogs: Grupēt izcēlumus ierakstu lentās setting_always_send_emails: Vienmēr sūtīt e-pasta paziņojumus setting_auto_play_gif: Automātiski atskaņot animētos GIF - setting_boost_modal: Rādīt apstiprinājuma dialogu pirms pastiprināšanas + setting_boost_modal: Rādīt apstiprinājuma dialogu pirms izcelšanas setting_crop_images: Apgrieziet attēlus neizvērstajās ziņās līdz 16x9 setting_default_language: Publicēšanas valoda setting_default_privacy: Publicēšanas privātums - setting_default_sensitive: Atļaut atzīmēt medijus kā sensitīvus + setting_default_sensitive: Atļaut atzīmēt multividi kā sensitīvu setting_delete_modal: Parādīt apstiprinājuma dialogu pirms ziņas dzēšanas setting_disable_swiping: Atspējot vilkšanas kustības - setting_display_media: Mediju rādīšana + setting_display_media: Multivides rādīšana setting_display_media_default: Noklusējums setting_display_media_hide_all: Paslēpt visu setting_display_media_show_all: Parādīt visu @@ -211,7 +211,7 @@ lv: setting_theme: Vietnes motīvs setting_trends: Parādīt šodienas tendences setting_unfollow_modal: Parādīt apstiprinājuma dialogu pirms pārtraukt kādam sekot - setting_use_blurhash: Rādīt krāsainos gradientus slēptajiem medijiem + setting_use_blurhash: Rādīt krāsainus gradientus slēptajiem multivides materiāliem setting_use_pending_items: Lēnais režīms severity: Smagums sign_in_token_attempt: Drošības kods @@ -276,7 +276,7 @@ lv: follow_request: Kāds vēlas tev sekot mention: Kāds pieminēja tevi pending_account: Jāpārskata jaunu kontu - reblog: Kāds pastiprināja tavu ierakstu + reblog: Kāds izcēla tavu ierakstu report: Tika iesniegts jauns ziņojums trending_tag: Jaunā tendence ir jāpārskata rule: diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 69bf943292..ded441ef35 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -110,7 +110,7 @@ vi: sign_up_requires_approval: Bạn sẽ phê duyệt những đăng ký mới từ IP này severity: Chọn hành động nếu nhận được yêu cầu từ IP này rule: - text: Mô tả một quy tắc bắt buộc trên máy chủ này. Nên để ngắn và đơn giản. + text: Mô tả một nội quy bắt buộc trên máy chủ này. Nên để ngắn và đơn giản sessions: otp: 'Nhập mã xác minh 2 bước được tạo bởi ứng dụng điện thoại của bạn hoặc dùng một trong các mã khôi phục của bạn:' webauthn: Nếu đây là USB key, hãy cắm vào và thử xoay chiều. @@ -280,7 +280,7 @@ vi: report: Ai đó gửi báo cáo trending_tag: Phê duyệt nội dung nổi bật mới rule: - text: Quy tắc + text: Nội quy tag: listable: Cho phép xuất hiện trong tìm kiếm và đề xuất name: Hashtag diff --git a/config/locales/vi.yml b/config/locales/vi.yml index fbc8db2ccb..62d1a64c4d 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -650,8 +650,8 @@ vi: manage_reports_description: Cho phép xem xét các báo cáo và thực hiện hành động kiểm duyệt đối với chúng manage_roles: Quản lý vai trò manage_roles_description: Cho phép quản lý và chỉ định các vai trò nhỏ hơn họ - manage_rules: Quản lý quy tắc máy chủ - manage_rules_description: Cho phép thay đổi quy tắc máy chủ + manage_rules: Quản lý nội quy máy chủ + manage_rules_description: Cho phép thay đổi nội quy máy chủ manage_settings: Quản lý thiết lập manage_settings_description: Cho phép thay đổi thiết lập máy chủ manage_taxonomies: Quản lý phân loại @@ -670,17 +670,17 @@ vi: view_devops_description: Cho phép truy cập trang tổng quan Sidekiq và pgHero title: Danh sách vai trò rules: - add_new: Thêm quy tắc + add_new: Thêm nội quy delete: Xóa bỏ - description_html: Mặc dù được yêu cầu chấp nhận điều khoản dịch vụ khi đăng ký, nhưng mọi người thường không đọc cho đến khi vấn đề gì đó xảy ra. Hãy làm điều này rõ ràng hơn bằng cách liệt kê quy tắc máy chủ theo gạch đầu dòng. Cố gắng viết ngắn và đơn giản, nhưng đừng tách ra quá nhiều mục. - edit: Sửa quy tắc - empty: Chưa có quy tắc máy chủ. - title: Quy tắc máy chủ + description_html: Mặc dù được yêu cầu chấp nhận điều khoản dịch vụ khi đăng ký, nhưng mọi người thường không đọc cho đến khi vấn đề gì đó xảy ra. Hãy làm điều này rõ ràng hơn bằng cách liệt kê nội quy máy chủ theo gạch đầu dòng. Cố gắng viết ngắn và đơn giản, nhưng đừng tách ra quá nhiều mục. + edit: Sửa nội quy + empty: Chưa có nội quy máy chủ. + title: Nội quy máy chủ settings: about: - manage_rules: Sửa quy tắc máy chủ + manage_rules: Sửa nội quy máy chủ preamble: Cung cấp thông tin chuyên sâu về cách máy chủ được vận hành, kiểm duyệt, tài trợ. - rules_hint: Có một khu vực dành riêng cho các quy tắc mà người tham gia máy chủ của bạn phải tuân thủ. + rules_hint: Có một khu vực dành riêng cho các nội quy mà người tham gia máy chủ của bạn phải tuân thủ. title: Giới thiệu appearance: preamble: Tùy chỉnh giao diện web của Mastodon. @@ -762,8 +762,8 @@ vi: message_html: 'Phiên bản Elasticsearch không tương thích: %{value}' version_comparison: Đang dùng Elasticsearch %{running_version} trong khi bắt buộc phải có %{required_version} rules_check: - action: Sửa quy tắc máy chủ - message_html: Bạn chưa cập nhật quy tắc máy chủ. + action: Sửa nội quy máy chủ + message_html: Bạn chưa cập nhật nội quy máy chủ. sidekiq_process_check: message_html: Sidekiq không hoạt động khi truy vấn %{value}. Hãy kiểm tra lại cấu hình Sidekiq tags: @@ -950,7 +950,7 @@ vi: reset_password: Đặt lại mật khẩu rules: preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}. - title: Quy tắc máy chủ. + title: Nội quy máy chủ. security: Bảo mật set_new_password: Đặt mật khẩu mới setup: @@ -1360,7 +1360,7 @@ vi: missing_resource: Không tìm thấy URL chuyển hướng cho tài khoản của bạn reports: errors: - invalid_rules: không đúng với quy tắc + invalid_rules: không hợp với nội quy rss: content_warning: 'Cảnh báo nội dung:' descriptions: @@ -1449,7 +1449,7 @@ vi: default_language: Giống ngôn ngữ giao diện disallowed_hashtags: other: 'chứa các hashtag bị cấm: %{tags}' - edited_at_html: Đã sửa %{date} + edited_at_html: Sửa %{date} errors: in_reply_not_found: Bạn đang trả lời một tút không còn tồn tại. open_in_web: Xem trong web @@ -1575,7 +1575,7 @@ vi: spam: Spam violation: Nội dung vi phạm quy tắc cộng đồng explanation: - delete_statuses: Vài tút của bạn đã vi phạm quy tắc máy chủ và tạm thời bị ẩn bởi kiểm duyệt viên của %{instance}. + delete_statuses: Vài tút của bạn đã vi phạm nội quy máy chủ và tạm thời bị ẩn bởi kiểm duyệt viên của %{instance}. disable: Bạn không còn có thể sử dụng tài khoản của mình, nhưng hồ sơ của bạn và dữ liệu khác vẫn còn nguyên. Bạn có thể yêu cầu sao lưu dữ liệu của mình, thay đổi cài đặt tài khoản hoặc xóa tài khoản của bạn. mark_statuses_as_sensitive: Vài tút của bạn đã bị kiểm duyệt viên %{instance} đánh dấu nhạy cảm. Mọi người cần nhấn vào media để xem nó. Bạn có thể tự đánh dấu tài khoản của bạn là nhạy cảm. sensitive: Từ giờ trở đi, tất cả các media của bạn bạn tải lên sẽ được đánh dấu là nhạy cảm và ẩn đằng sau cảnh báo nhấp chuột. From 476c13194666037ed5f23f0d563d135e8d3390ec Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Wed, 28 Dec 2022 01:21:10 -0800 Subject: [PATCH 014/176] [Glitch] Replace flex styling with sensible layout rules Port ef4d29c8791086b11f6e36aa121ff5c9b5fa0103 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/admin.scss | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 7d5b28a12c..8ddf815c30 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -254,10 +254,8 @@ $content-width: 840px; &__actions { display: inline-flex; - - & > :not(:first-child) { - margin-left: 5px; - } + flex-flow: wrap; + gap: 5px; } h2 small { From 546e301bcdbe54a1df6d54303cda4d7f11beb6cc Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 3 Jan 2023 16:45:16 -0800 Subject: [PATCH 015/176] Remove microformats gem dependency (#22923) Looks like this gem was introduced as a dependency in 89707ad0ac for testing Miroformat output. The last test using the Microformats gem was removed in 62782babd08bc2385a604e275bf88af925d137c1, so I think it is safe to remove this dependency. For context, you [can't install the microformats gem with Ruby 3.2](https://github.com/microformats/microformats-ruby/pull/131), so we can't currently bundle Mastodon with Ruby 3.2. But since we don't really need this gem, we can just remove it and unblock Ruby 3.2 --- Gemfile | 1 - Gemfile.lock | 4 ---- 2 files changed, 5 deletions(-) diff --git a/Gemfile b/Gemfile index 9608a67c02..3a18d13313 100644 --- a/Gemfile +++ b/Gemfile @@ -122,7 +122,6 @@ group :test do gem 'climate_control', '~> 0.2' gem 'faker', '~> 3.1' gem 'json-schema', '~> 3.0' - gem 'microformats', '~> 4.4' gem 'rack-test', '~> 2.0' gem 'rails-controller-testing', '~> 1.0' gem 'rspec_junit_formatter', '~> 0.6' diff --git a/Gemfile.lock b/Gemfile.lock index 3a3dd25773..4f20d3766e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -397,9 +397,6 @@ GEM matrix (0.4.2) memory_profiler (1.0.1) method_source (1.0.0) - microformats (4.4.1) - json (~> 2.2) - nokogiri (~> 1.10) mime-types (3.4.1) mime-types-data (~> 3.2015) mime-types-data (3.2022.0105) @@ -809,7 +806,6 @@ DEPENDENCIES makara (~> 0.5) mario-redis-lock (~> 1.2) memory_profiler - microformats (~> 4.4) mime-types (~> 3.4.1) net-ldap (~> 0.17) nokogiri (~> 1.13) From 115ab2869b2742f0cc68116a8c03359d220fd608 Mon Sep 17 00:00:00 2001 From: Partho Ghosh Date: Tue, 3 Jan 2023 17:12:48 -0800 Subject: [PATCH 016/176] =?UTF-8?q?Fix=20=E3=83=BB=20detection=20in=20hash?= =?UTF-8?q?tag=20regex=20to=20construct=20hashtag=20correctly=20(#22888)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix ・ detection in hashtag regex to construct hashtag correctly * Fixed rubocop liniting issues * More rubocop linting fix --- app/models/tag.rb | 22 +++++++++++---- spec/models/tag_spec.rb | 59 +++++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/app/models/tag.rb b/app/models/tag.rb index b66f854236..47a05d00a1 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -26,8 +26,12 @@ class Tag < ApplicationRecord has_many :featured_tags, dependent: :destroy, inverse_of: :tag has_many :followers, through: :passive_relationships, source: :account - HASHTAG_SEPARATORS = "_\u00B7\u200c" - HASHTAG_NAME_PAT = "([[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}][[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_])|([[:word:]_]*[[:alpha:]][[:word:]_]*)" + HASHTAG_SEPARATORS = "_\u00B7\u30FB\u200c" + HASHTAG_FIRST_SEQUENCE_CHUNK_ONE = "[[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}]" + HASHTAG_FIRST_SEQUENCE_CHUNK_TWO = "[[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_]" + HASHTAG_FIRST_SEQUENCE = "(#{HASHTAG_FIRST_SEQUENCE_CHUNK_ONE}#{HASHTAG_FIRST_SEQUENCE_CHUNK_TWO})" + HASTAG_LAST_SEQUENCE = '([[:word:]_]*[[:alpha:]][[:word:]_]*)' + HASHTAG_NAME_PAT = "#{HASHTAG_FIRST_SEQUENCE}|#{HASTAG_LAST_SEQUENCE}" HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_PAT})/i HASHTAG_NAME_RE = /\A(#{HASHTAG_NAME_PAT})\z/i @@ -45,7 +49,11 @@ class Tag < ApplicationRecord scope :listable, -> { where(listable: [true, nil]) } scope :trendable, -> { Setting.trendable_by_default ? where(trendable: [true, nil]) : where(trendable: true) } scope :not_trendable, -> { where(trendable: false) } - scope :recently_used, ->(account) { joins(:statuses).where(statuses: { id: account.statuses.select(:id).limit(1000) }).group(:id).order(Arel.sql('count(*) desc')) } + scope :recently_used, ->(account) { + joins(:statuses) + .where(statuses: { id: account.statuses.select(:id).limit(1000) }) + .group(:id).order(Arel.sql('count(*) desc')) + } scope :matches_name, ->(term) { where(arel_table[:name].lower.matches(arel_table.lower("#{sanitize_sql_like(Tag.normalize(term))}%"), nil, true)) } # Search with case-sensitive to use B-tree index update_index('tags', :self) @@ -105,7 +113,8 @@ class Tag < ApplicationRecord names = Array(name_or_names).map { |str| [normalize(str), str] }.uniq(&:first) names.map do |(normalized_name, display_name)| - tag = matching_name(normalized_name).first || create(name: normalized_name, display_name: display_name.gsub(HASHTAG_INVALID_CHARS_RE, '')) + tag = matching_name(normalized_name).first || create(name: normalized_name, + display_name: display_name.gsub(HASHTAG_INVALID_CHARS_RE, '')) yield tag if block_given? @@ -154,6 +163,9 @@ class Tag < ApplicationRecord end def validate_display_name_change - errors.add(:display_name, I18n.t('tags.does_not_match_previous_name')) unless HashtagNormalizer.new.normalize(display_name).casecmp(name.mb_chars).zero? + unless HashtagNormalizer.new.normalize(display_name).casecmp(name.mb_chars).zero? + errors.add(:display_name, + I18n.t('tags.does_not_match_previous_name')) + end end end diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index b16f99a799..102d2f6251 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -1,21 +1,22 @@ +# frozen_string_literal: true require 'rails_helper' -RSpec.describe Tag, type: :model do +RSpec.describe Tag do describe 'validations' do it 'invalid with #' do - expect(Tag.new(name: '#hello_world')).to_not be_valid + expect(described_class.new(name: '#hello_world')).not_to be_valid end it 'invalid with .' do - expect(Tag.new(name: '.abcdef123')).to_not be_valid + expect(described_class.new(name: '.abcdef123')).not_to be_valid end it 'invalid with spaces' do - expect(Tag.new(name: 'hello world')).to_not be_valid + expect(described_class.new(name: 'hello world')).not_to be_valid end it 'valid with aesthetic' do - expect(Tag.new(name: 'aesthetic')).to be_valid + expect(described_class.new(name: 'aesthetic')).to be_valid end end @@ -62,6 +63,10 @@ RSpec.describe Tag, type: :model do expect(subject.match('hello #one·two·three').to_s).to eq ' #one·two·three' end + it 'matches ・unicode in ぼっち・ざ・ろっく correctly' do + expect(subject.match('testing #ぼっち・ざ・ろっく').to_s).to eq ' #ぼっち・ざ・ろっく' + end + it 'matches ZWNJ' do expect(subject.match('just add #نرم‌افزار and').to_s).to eq ' #نرم‌افزار' end @@ -89,44 +94,46 @@ RSpec.describe Tag, type: :model do describe '.find_normalized' do it 'returns tag for a multibyte case-insensitive name' do upcase_string = 'abcABCabcABCやゆよ' - downcase_string = 'abcabcabcabcやゆよ'; + downcase_string = 'abcabcabcabcやゆよ' tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string)) - expect(Tag.find_normalized(upcase_string)).to eq tag + expect(described_class.find_normalized(upcase_string)).to eq tag end end describe '.matches_name' do it 'returns tags for multibyte case-insensitive names' do upcase_string = 'abcABCabcABCやゆよ' - downcase_string = 'abcabcabcabcやゆよ'; + downcase_string = 'abcabcabcabcやゆよ' tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string)) - expect(Tag.matches_name(upcase_string)).to eq [tag] + expect(described_class.matches_name(upcase_string)).to eq [tag] end it 'uses the LIKE operator' do - expect(Tag.matches_name('100%abc').to_sql).to eq %q[SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") LIKE LOWER('100abc%')] + result = %q[SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") LIKE LOWER('100abc%')] + expect(described_class.matches_name('100%abc').to_sql).to eq result end end describe '.matching_name' do it 'returns tags for multibyte case-insensitive names' do upcase_string = 'abcABCabcABCやゆよ' - downcase_string = 'abcabcabcabcやゆよ'; + downcase_string = 'abcabcabcabcやゆよ' tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string)) - expect(Tag.matching_name(upcase_string)).to eq [tag] + expect(described_class.matching_name(upcase_string)).to eq [tag] end end describe '.find_or_create_by_names' do - it 'runs a passed block once per tag regardless of duplicates' do - upcase_string = 'abcABCabcABCやゆよ' - downcase_string = 'abcabcabcabcやゆよ'; - count = 0 + let(:upcase_string) { 'abcABCabcABCやゆよ' } + let(:downcase_string) { 'abcabcabcabcやゆよ' } - Tag.find_or_create_by_names([upcase_string, downcase_string]) do |tag| + it 'runs a passed block once per tag regardless of duplicates' do + count = 0 + + described_class.find_or_create_by_names([upcase_string, downcase_string]) do |_tag| count += 1 end @@ -136,28 +143,28 @@ RSpec.describe Tag, type: :model do describe '.search_for' do it 'finds tag records with matching names' do - tag = Fabricate(:tag, name: "match") - _miss_tag = Fabricate(:tag, name: "miss") + tag = Fabricate(:tag, name: 'match') + _miss_tag = Fabricate(:tag, name: 'miss') - results = Tag.search_for("match") + results = described_class.search_for('match') expect(results).to eq [tag] end it 'finds tag records in case insensitive' do - tag = Fabricate(:tag, name: "MATCH") - _miss_tag = Fabricate(:tag, name: "miss") + tag = Fabricate(:tag, name: 'MATCH') + _miss_tag = Fabricate(:tag, name: 'miss') - results = Tag.search_for("match") + results = described_class.search_for('match') expect(results).to eq [tag] end it 'finds the exact matching tag as the first item' do - similar_tag = Fabricate(:tag, name: "matchlater", reviewed_at: Time.now.utc) - tag = Fabricate(:tag, name: "match", reviewed_at: Time.now.utc) + similar_tag = Fabricate(:tag, name: 'matchlater', reviewed_at: Time.now.utc) + tag = Fabricate(:tag, name: 'match', reviewed_at: Time.now.utc) - results = Tag.search_for("match") + results = described_class.search_for('match') expect(results).to eq [tag, similar_tag] end From e32a37138ab8bdc3f469893858bb41975303e503 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 19:46:43 +0900 Subject: [PATCH 017/176] Bump bullet from 7.0.4 to 7.0.7 (#22927) Bumps [bullet](https://github.com/flyerhzm/bullet) from 7.0.4 to 7.0.7. - [Release notes](https://github.com/flyerhzm/bullet/releases) - [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md) - [Commits](https://github.com/flyerhzm/bullet/compare/7.0.4...7.0.7) --- updated-dependencies: - dependency-name: bullet dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4f20d3766e..cd4381ea77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,7 +130,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.5) redis (>= 1.0, < 6) builder (3.2.4) - bullet (7.0.4) + bullet (7.0.7) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) bundler-audit (0.9.1) @@ -402,7 +402,7 @@ GEM mime-types-data (3.2022.0105) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.16.3) + minitest (5.17.0) msgpack (1.6.0) multi_json (1.15.0) multipart-post (2.1.1) From f837b569975f94c9c17b3131a011f5ad5680bfa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 19:47:01 +0900 Subject: [PATCH 018/176] Bump json5 from 1.0.1 to 1.0.2 (#22925) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 997d36db54..527f848cbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6825,9 +6825,9 @@ json3@^3.3.3: integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" From 897617d6e26447f063e5ac0ad49bd740b12b204c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 19:47:19 +0900 Subject: [PATCH 019/176] Bump ox from 2.14.11 to 2.14.12 (#22914) Bumps [ox](https://github.com/ohler55/ox) from 2.14.11 to 2.14.12. - [Release notes](https://github.com/ohler55/ox/releases) - [Changelog](https://github.com/ohler55/ox/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ohler55/ox/compare/v2.14.11...v2.14.12) --- updated-dependencies: - dependency-name: ox dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index cd4381ea77..ddb5f4b49c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM openssl-signature_algorithm (1.2.1) openssl (> 2.0, < 3.1) orm_adapter (0.5.0) - ox (2.14.11) + ox (2.14.12) parallel (1.22.1) parser (3.1.2.1) ast (~> 2.4.1) From 1717d708e6c677bd378d010b60e78a3fddaca38a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 19:47:39 +0900 Subject: [PATCH 020/176] Bump axios from 1.2.1 to 1.2.2 (#22911) Bumps [axios](https://github.com/axios/axios) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.2.1...1.2.2) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b60c0b26b9..a1725fdd7c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "array-includes": "^3.1.6", "arrow-key-navigation": "^1.2.0", "autoprefixer": "^9.8.8", - "axios": "^1.2.1", + "axios": "^1.2.2", "babel-loader": "^8.3.0", "babel-plugin-lodash": "^3.3.4", "babel-plugin-preval": "^5.1.0", diff --git a/yarn.lock b/yarn.lock index 527f848cbd..64d4908c18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2510,10 +2510,10 @@ axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== -axios@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" - integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== +axios@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" + integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" From 910d2d9f6b31f926bdc95c3e95323abccb0996f6 Mon Sep 17 00:00:00 2001 From: Plastikmensch Date: Wed, 4 Jan 2023 11:59:43 +0100 Subject: [PATCH 021/176] Prevent doodle from closing on outside click (#2047) Adds a new property to the dispatch, which when set to true, replaces the onClose handler with a no-op, preventing the modal from closing. Signed-off-by: Plastikmensch Signed-off-by: Plastikmensch --- .../glitch/features/compose/containers/options_container.js | 2 +- .../flavours/glitch/features/ui/components/modal_root.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/features/compose/containers/options_container.js b/app/javascript/flavours/glitch/features/compose/containers/options_container.js index 6c3db8173d..5de9f5419d 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/options_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/options_container.js @@ -46,7 +46,7 @@ const mapDispatchToProps = (dispatch) => ({ }, onDoodleOpen() { - dispatch(openModal('DOODLE', { noEsc: true })); + dispatch(openModal('DOODLE', { noEsc: true, noClose: true })); }, }); diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.js b/app/javascript/flavours/glitch/features/ui/components/modal_root.js index d2ee289488..379f57cbbe 100644 --- a/app/javascript/flavours/glitch/features/ui/components/modal_root.js +++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.js @@ -116,13 +116,16 @@ export default class ModalRoot extends React.PureComponent { this._modal = c; } + // prevent closing of modal when clicking the overlay + noop = () => {} + render () { const { type, props, ignoreFocus } = this.props; const { backgroundColor } = this.state; const visible = !!type; return ( - + {visible && ( <> From 2432b94cfeded133718b356a29d7aaef98363a18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 20:58:26 +0900 Subject: [PATCH 022/176] Bump rubocop from 1.39.0 to 1.42.0 (#22912) * Bump rubocop-rspec from 2.15.0 to 2.16.0 Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.15.0 to 2.16.0. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.15.0...v2.16.0) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump fog-openstack from 0.3.2 to 0.3.10 (#22542) Bumps [fog-openstack](https://github.com/fog/fog-openstack) from 0.3.2 to 0.3.10. - [Release notes](https://github.com/fog/fog-openstack/releases) - [Changelog](https://github.com/fog/fog-openstack/blob/master/CHANGELOG.md) - [Commits](https://github.com/fog/fog-openstack/compare/v0.3.2...v0.3.10) --- updated-dependencies: - dependency-name: fog-openstack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * New Crowdin updates (#22354) * New translations en.json (Hindi) * New translations en.json (Malay) * New translations en.json (Telugu) * New translations en.json (English, United Kingdom) * New translations en.json (Burmese) * New translations en.json (Welsh) * New translations en.json (Faroese) * New translations en.json (Esperanto) * New translations en.json (Uyghur) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.json (Tatar) * New translations en.json (Malayalam) * New translations en.json (Breton) * New translations en.json (Latin) * New translations en.json (Bosnian) * New translations en.json (French, Quebec) * New translations en.json (Sinhala) * New translations en.json (Cornish) * New translations en.json (Kannada) * New translations en.json (Scottish Gaelic) * New translations en.json (Asturian) * New translations en.json (Aragonese) * New translations en.json (Occitan) * New translations en.json (Serbian (Latin)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Sorani (Kurdish)) * New translations en.json (Scots) * New translations en.json (Igbo) * New translations en.json (Corsican) * New translations en.json (Sardinian) * New translations en.json (Sanskrit) * New translations en.json (Kabyle) * New translations en.json (Ido) * New translations en.json (Taigi) * New translations en.json (Silesian) * New translations en.json (Standard Moroccan Tamazight) * New translations en.yml (Korean) * New translations en.yml (Galician) * New translations doorkeeper.en.yml (Korean) * New translations doorkeeper.en.yml (Galician) * New translations en.json (Spanish) * New translations en.json (Belarusian) * New translations en.yml (Belarusian) * New translations doorkeeper.en.yml (Belarusian) * New translations en.json (Bulgarian) * New translations en.json (Greek) * New translations activerecord.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Belarusian) * New translations doorkeeper.en.yml (Bulgarian) * New translations en.json (German) * New translations en.json (Italian) * New translations en.json (Slovenian) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Bulgarian) * New translations doorkeeper.en.yml (Bulgarian) * New translations en.json (Spanish) * New translations en.json (Swedish) * New translations en.json (Ukrainian) * New translations en.json (Estonian) * New translations en.json (Welsh) * New translations en.yml (Spanish) * New translations en.yml (Bulgarian) * New translations doorkeeper.en.yml (Spanish) * New translations en.json (Faroese) * New translations en.json (Latin) * New translations en.json (Catalan) * New translations en.json (Vietnamese) * New translations en.yml (Bulgarian) * New translations en.yml (Serbian (Latin)) * New translations en.json (Frisian) * New translations en.json (Hebrew) * New translations en.json (Latvian) * New translations en.yml (Bulgarian) * New translations en.yml (Dutch) * New translations simple_form.en.yml (Dutch) * New translations devise.en.yml (Dutch) * New translations en.json (Catalan) * New translations en.json (Chinese Traditional) * New translations en.yml (Bulgarian) * New translations doorkeeper.en.yml (German) * New translations en.json (German) * New translations en.yml (Bulgarian) * New translations doorkeeper.en.yml (German) * New translations en.json (Latin) * New translations simple_form.en.yml (Frisian) * New translations en.json (French) * New translations en.json (Hungarian) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Latin) * New translations en.yml (Portuguese) * New translations doorkeeper.en.yml (Portuguese) * New translations en.json (Albanian) * New translations en.yml (Hebrew) * New translations en.yml (Albanian) * New translations doorkeeper.en.yml (Albanian) * New translations en.json (Norwegian) * New translations en.json (Russian) * New translations en.json (Thai) * New translations en.yml (Bulgarian) * New translations en.yml (Thai) * New translations simple_form.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Thai) * New translations en.json (Asturian) * New translations en.yml (Norwegian) * New translations en.json (Danish) * New translations en.json (Finnish) * New translations en.json (Occitan) * New translations en.yml (Korean) * New translations doorkeeper.en.yml (Korean) * New translations en.yml (Thai) * New translations en.json (Persian) * New translations doorkeeper.en.yml (Spanish, Argentina) * New translations en.yml (Bulgarian) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Dutch) * New translations doorkeeper.en.yml (Dutch) * New translations en.yml (Korean) * New translations en.json (Japanese) * New translations en.json (Turkish) * New translations en.yml (Turkish) * New translations doorkeeper.en.yml (Turkish) * New translations en.json (Czech) * New translations en.yml (Czech) * New translations en.json (German) * New translations en.yml (German) * New translations en.yml (Thai) * New translations simple_form.en.yml (German) * New translations doorkeeper.en.yml (German) * New translations doorkeeper.en.yml (Thai) * New translations en.json (German) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (German) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Indonesian) * New translations en.json (Estonian) * New translations en.yml (Indonesian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations en.yml (Russian) * New translations doorkeeper.en.yml (Russian) * New translations en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Polish) * New translations en.yml (Polish) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Basque) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Estonian) * New translations en.yml (Basque) * New translations en.yml (Estonian) * New translations en.json (French) * New translations en.json (Estonian) * New translations en.yml (French) * New translations en.yml (Bulgarian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations activerecord.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (German) * New translations en.json (Estonian) * New translations en.yml (Bulgarian) * New translations doorkeeper.en.yml (Ukrainian) * New translations en.json (Bengali) * New translations en.json (Estonian) * New translations en.yml (Swedish) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Ukrainian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Swedish) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Icelandic) * New translations en.yml (Icelandic) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations en.yml (Icelandic) * New translations simple_form.en.yml (Bulgarian) * New translations simple_form.en.yml (Icelandic) * New translations activerecord.en.yml (Icelandic) * New translations devise.en.yml (Icelandic) * New translations doorkeeper.en.yml (Icelandic) * New translations en.yml (Bulgarian) * New translations en.yml (Korean) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.yml (Bulgarian) * New translations en.yml (Korean) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations doorkeeper.en.yml (Icelandic) * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Japanese) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Japanese) * New translations en.yml (Kurmanji (Kurdish)) * New translations simple_form.en.yml (Kurmanji (Kurdish)) * New translations en.json (Norwegian Nynorsk) * New translations en.yml (Bulgarian) * New translations en.yml (Thai) * New translations en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (French) * New translations doorkeeper.en.yml (Thai) * New translations en.yml (Thai) * New translations en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations en.json (Estonian) * New translations en.yml (Bulgarian) * New translations en.yml (Ukrainian) * New translations simple_form.en.yml (Ukrainian) * New translations simple_form.en.yml (Estonian) * New translations doorkeeper.en.yml (Dutch) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Estonian) * New translations en.json (Serbian (Latin)) * New translations en.yml (Polish) * New translations en.json (Chinese Simplified) * New translations en.yml (Chinese Simplified) * New translations doorkeeper.en.yml (Chinese Simplified) * New translations en.yml (Bulgarian) * New translations en.json (Estonian) * New translations en.yml (Bulgarian) * New translations en.yml (Chinese Simplified) * New translations doorkeeper.en.yml (Czech) * New translations en.json (Estonian) * New translations en.yml (Bulgarian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Frisian) * New translations simple_form.en.yml (Icelandic) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Frisian) * New translations en.yml (Bulgarian) * Normalize * New translations en.yml (Serbian (Cyrillic)) * Normalize * New translations en.yml (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Serbian (Latin)) * New translations en.yml (Bulgarian) * Normalize Co-authored-by: Yamagishi Kazutoshi * Bump fog-core from 2.1.0 to 2.3.0 (#22544) Bumps [fog-core](https://github.com/fog/fog-core) from 2.1.0 to 2.3.0. - [Release notes](https://github.com/fog/fog-core/releases) - [Changelog](https://github.com/fog/fog-core/blob/master/changelog.md) - [Commits](https://github.com/fog/fog-core/compare/v2.1.0...v2.3.0) --- updated-dependencies: - dependency-name: fog-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump fog-openstack from 0.3.2 to 0.3.10 (#22593) Bumps [fog-openstack](https://github.com/fog/fog-openstack) from 0.3.2 to 0.3.10. - [Release notes](https://github.com/fog/fog-openstack/releases) - [Changelog](https://github.com/fog/fog-openstack/blob/master/CHANGELOG.md) - [Commits](https://github.com/fog/fog-openstack/compare/v0.3.2...v0.3.10) --- updated-dependencies: - dependency-name: fog-openstack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump fog-core from 2.1.0 to 2.3.0 (#22596) Bumps [fog-core](https://github.com/fog/fog-core) from 2.1.0 to 2.3.0. - [Release notes](https://github.com/fog/fog-core/releases) - [Changelog](https://github.com/fog/fog-core/blob/master/changelog.md) - [Commits](https://github.com/fog/fog-core/compare/v2.1.0...v2.3.0) --- updated-dependencies: - dependency-name: fog-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump fog-openstack from 0.3.2 to 0.3.10 (#22597) Bumps [fog-openstack](https://github.com/fog/fog-openstack) from 0.3.2 to 0.3.10. - [Release notes](https://github.com/fog/fog-openstack/releases) - [Changelog](https://github.com/fog/fog-openstack/blob/master/CHANGELOG.md) - [Commits](https://github.com/fog/fog-openstack/compare/v0.3.2...v0.3.10) --- updated-dependencies: - dependency-name: fog-openstack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rubocop-performance from 1.15.1 to 1.15.2 Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.15.1 to 1.15.2. - [Release notes](https://github.com/rubocop/rubocop-performance/releases) - [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.15.1...v1.15.2) --- updated-dependencies: - dependency-name: rubocop-performance dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump rubocop-rails from 2.17.2 to 2.17.4 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.17.2 to 2.17.4. - [Release notes](https://github.com/rubocop/rubocop-rails/releases) - [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.17.2...v2.17.4) --- updated-dependencies: - dependency-name: rubocop-rails dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump faker from 3.0.0 to 3.1.0 (#22762) Bumps [faker](https://github.com/faker-ruby/faker) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: faker dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump simplecov from 0.21.2 to 0.22.0 (#22773) Bumps [simplecov](https://github.com/simplecov-ruby/simplecov) from 0.21.2 to 0.22.0. - [Release notes](https://github.com/simplecov-ruby/simplecov/releases) - [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md) - [Commits](https://github.com/simplecov-ruby/simplecov/compare/v0.21.2...v0.22.0) --- updated-dependencies: - dependency-name: simplecov dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump sass from 1.57.0 to 1.57.1 (#22770) Bumps [sass](https://github.com/sass/dart-sass) from 1.57.0 to 1.57.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.57.0...1.57.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump immutable from 4.1.0 to 4.2.1 (#22774) Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.1.0 to 4.2.1. - [Release notes](https://github.com/immutable-js/immutable-js/releases) - [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/immutable-js/immutable-js/compare/v4.1.0...v4.2.1) --- updated-dependencies: - dependency-name: immutable dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @babel/core from 7.20.5 to 7.20.7 (#22768) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @babel/core from 7.20.5 to 7.20.7 (#22768) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @babel/runtime from 7.20.6 to 7.20.7 (#22767) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.6 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @babel/plugin-proposal-decorators from 7.20.5 to 7.20.7 (#22764) Bumps [@babel/plugin-proposal-decorators](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators) from 7.20.5 to 7.20.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-plugin-proposal-decorators) --- updated-dependencies: - dependency-name: "@babel/plugin-proposal-decorators" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rack from 2.2.4 to 2.2.5 (#22777) Bumps [rack](https://github.com/rack/rack) from 2.2.4 to 2.2.5. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/2.2.4...v2.2.5) --- updated-dependencies: - dependency-name: rack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump redis-namespace from 1.9.0 to 1.10.0 (#22765) Bumps [redis-namespace](https://github.com/resque/redis-namespace) from 1.9.0 to 1.10.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.9...v1.10.0) --- updated-dependencies: - dependency-name: redis-namespace dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Replace flex styling with sensible layout rules (#22803) The old styling would cause multiple admin header buttons in a flex container to overflow the page on mobile. This new styling uses `flex-flow: wrap` along with a gap, which gets rid of the awkward `:not(:first-child)` pseudoselector and makes multiple buttons in a row flow nicely. * New Crowdin updates (#22560) * New translations devise.en.yml (Slovak) * New translations devise.en.yml (Slovenian) * New translations devise.en.yml (Albanian) * New translations devise.en.yml (Serbian (Cyrillic)) * New translations devise.en.yml (Swedish) * New translations devise.en.yml (Turkish) * New translations devise.en.yml (Ukrainian) * New translations devise.en.yml (Chinese Simplified) * New translations devise.en.yml (Chinese Traditional) * New translations devise.en.yml (Urdu (Pakistan)) * New translations devise.en.yml (Vietnamese) * New translations devise.en.yml (Galician) * New translations devise.en.yml (Icelandic) * New translations devise.en.yml (Portuguese, Brazilian) * New translations devise.en.yml (Indonesian) * New translations devise.en.yml (Persian) * New translations devise.en.yml (Tamil) * New translations devise.en.yml (Spanish, Argentina) * New translations devise.en.yml (Spanish, Mexico) * New translations devise.en.yml (Bengali) * New translations devise.en.yml (Thai) * New translations devise.en.yml (Croatian) * New translations devise.en.yml (Norwegian Nynorsk) * New translations devise.en.yml (Kazakh) * New translations devise.en.yml (Estonian) * New translations devise.en.yml (Latvian) * New translations devise.en.yml (Hindi) * New translations devise.en.yml (Malay) * New translations devise.en.yml (English, United Kingdom) * New translations devise.en.yml (Welsh) * New translations devise.en.yml (Faroese) * New translations devise.en.yml (Chinese Traditional, Hong Kong) * New translations devise.en.yml (Tatar) * New translations devise.en.yml (Malayalam) * New translations devise.en.yml (Breton) * New translations devise.en.yml (French, Quebec) * New translations devise.en.yml (Sinhala) * New translations devise.en.yml (Kannada) * New translations devise.en.yml (Scottish Gaelic) * New translations devise.en.yml (Asturian) * New translations devise.en.yml (Aragonese) * New translations devise.en.yml (Occitan) * New translations devise.en.yml (Serbian (Latin)) * New translations devise.en.yml (Kurmanji (Kurdish)) * New translations devise.en.yml (Sorani (Kurdish)) * New translations devise.en.yml (Scots) * New translations devise.en.yml (Corsican) * New translations devise.en.yml (Sardinian) * New translations devise.en.yml (Kabyle) * New translations devise.en.yml (Ido) * New translations devise.en.yml (Standard Moroccan Tamazight) * New translations doorkeeper.en.yml (Romanian) * New translations doorkeeper.en.yml (French) * New translations doorkeeper.en.yml (Spanish) * New translations doorkeeper.en.yml (Afrikaans) * New translations doorkeeper.en.yml (Arabic) * New translations doorkeeper.en.yml (Belarusian) * New translations doorkeeper.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Catalan) * New translations doorkeeper.en.yml (Czech) * New translations doorkeeper.en.yml (Danish) * New translations doorkeeper.en.yml (German) * New translations doorkeeper.en.yml (Greek) * New translations doorkeeper.en.yml (Basque) * New translations doorkeeper.en.yml (Finnish) * New translations doorkeeper.en.yml (Irish) * New translations doorkeeper.en.yml (Hebrew) * New translations doorkeeper.en.yml (Hungarian) * New translations doorkeeper.en.yml (Armenian) * New translations doorkeeper.en.yml (Italian) * New translations doorkeeper.en.yml (Japanese) * New translations doorkeeper.en.yml (Georgian) * New translations doorkeeper.en.yml (Korean) * New translations doorkeeper.en.yml (Dutch) * New translations doorkeeper.en.yml (Norwegian) * New translations doorkeeper.en.yml (Portuguese) * New translations doorkeeper.en.yml (Russian) * New translations doorkeeper.en.yml (Slovak) * New translations doorkeeper.en.yml (Slovenian) * New translations doorkeeper.en.yml (Albanian) * New translations doorkeeper.en.yml (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Swedish) * New translations doorkeeper.en.yml (Turkish) * New translations doorkeeper.en.yml (Ukrainian) * New translations doorkeeper.en.yml (Chinese Simplified) * New translations doorkeeper.en.yml (Chinese Traditional) * New translations doorkeeper.en.yml (Vietnamese) * New translations doorkeeper.en.yml (Galician) * New translations doorkeeper.en.yml (Icelandic) * New translations doorkeeper.en.yml (Portuguese, Brazilian) * New translations doorkeeper.en.yml (Indonesian) * New translations doorkeeper.en.yml (Persian) * New translations doorkeeper.en.yml (Tamil) * New translations doorkeeper.en.yml (Spanish, Argentina) * New translations doorkeeper.en.yml (Marathi) * New translations doorkeeper.en.yml (Thai) * New translations doorkeeper.en.yml (Croatian) * New translations doorkeeper.en.yml (Norwegian Nynorsk) * New translations doorkeeper.en.yml (Kazakh) * New translations doorkeeper.en.yml (Estonian) * New translations doorkeeper.en.yml (Latvian) * New translations doorkeeper.en.yml (Hindi) * New translations doorkeeper.en.yml (Malay) * New translations doorkeeper.en.yml (Welsh) * New translations doorkeeper.en.yml (Faroese) * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) * New translations doorkeeper.en.yml (Tatar) * New translations doorkeeper.en.yml (Malayalam) * New translations doorkeeper.en.yml (Breton) * New translations doorkeeper.en.yml (French, Quebec) * New translations doorkeeper.en.yml (Sinhala) * New translations doorkeeper.en.yml (Scottish Gaelic) * New translations doorkeeper.en.yml (Asturian) * New translations doorkeeper.en.yml (Aragonese) * New translations doorkeeper.en.yml (Occitan) * New translations doorkeeper.en.yml (Serbian (Latin)) * New translations doorkeeper.en.yml (Kurmanji (Kurdish)) * New translations doorkeeper.en.yml (Sorani (Kurdish)) * New translations doorkeeper.en.yml (Scots) * New translations doorkeeper.en.yml (Corsican) * New translations doorkeeper.en.yml (Sardinian) * New translations doorkeeper.en.yml (Kabyle) * New translations doorkeeper.en.yml (Ido) * New translations doorkeeper.en.yml (Standard Moroccan Tamazight) * New translations en.json (Kannada) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.json (Italian) * New translations en.yml (Bulgarian) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Arabic) * New translations en.yml (Frisian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations en.json (Arabic) * New translations en.yml (Arabic) * New translations simple_form.en.yml (Arabic) * New translations doorkeeper.en.yml (Arabic) * New translations en.yml (Arabic) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Portuguese, Brazilian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations doorkeeper.en.yml (Indonesian) * New translations en.yml (Estonian) * New translations en.yml (Norwegian Nynorsk) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.yml (Asturian) * New translations en.yml (Vietnamese) * New translations en.json (Bulgarian) * New translations en.json (Estonian) * New translations en.json (Bulgarian) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Catalan) * New translations simple_form.en.yml (Bulgarian) * New translations activerecord.en.yml (Bulgarian) * New translations devise.en.yml (Bulgarian) * New translations en.json (Catalan) * New translations en.yml (Asturian) * New translations en.json (Catalan) * New translations en.json (Estonian) * New translations en.json (Estonian) * New translations en.json (Ukrainian) * New translations doorkeeper.en.yml (Ukrainian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Portuguese, Brazilian) * New translations en.json (Latvian) * New translations en.yml (Latvian) * New translations simple_form.en.yml (Latvian) * New translations doorkeeper.en.yml (Latvian) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * New translations en.yml (Norwegian Nynorsk) * New translations en.json (Estonian) * New translations en.yml (Indonesian) * New translations doorkeeper.en.yml (Indonesian) * New translations en.json (Latvian) * New translations en.yml (Galician) * New translations doorkeeper.en.yml (Belarusian) * New translations doorkeeper.en.yml (Belarusian) * New translations en.json (Esperanto) * New translations doorkeeper.en.yml (Belarusian) * New translations en.json (Estonian) * New translations en.json (Hebrew) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (German) * New translations en.yml (German) * New translations activerecord.en.yml (German) * New translations doorkeeper.en.yml (German) * New translations en.yml (Esperanto) * New translations en.yml (Esperanto) * New translations en.json (Asturian) * New translations en.yml (Asturian) * New translations en.yml (Asturian) * New translations en.json (German) * New translations en.yml (Polish) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.yml (German) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.json (German) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.yml (Frisian) * New translations en.yml (Frisian) * New translations en.json (Taigi) * New translations en.yml (Frisian) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations en.yml (Frisian) * New translations simple_form.en.yml (Catalan) * New translations en.yml (Frisian) * New translations en.json (Vietnamese) * New translations en.json (English, United Kingdom) * New translations en.yml (Frisian) * New translations en.yml (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations doorkeeper.en.yml (English, United Kingdom) * New translations en.yml (Ido) * New translations activerecord.en.yml (Ido) * New translations simple_form.en.yml (French, Quebec) * New translations en.yml (Catalan) * New translations simple_form.en.yml (Catalan) * New translations doorkeeper.en.yml (Catalan) * New translations en.json (Vietnamese) * New translations en.yml (Vietnamese) * New translations en.yml (Vietnamese) * New translations simple_form.en.yml (Vietnamese) * New translations devise.en.yml (Vietnamese) * Normalize Co-authored-by: Yamagishi Kazutoshi * Bump rubocop from 1.39.0 to 1.42.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.39.0 to 1.42.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.39.0...v1.42.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eugen Rochko Co-authored-by: Yamagishi Kazutoshi Co-authored-by: Darius Kazemi --- Gemfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ddb5f4b49c..c7d88688bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,7 +328,7 @@ GEM idn-ruby (0.1.5) ipaddress (0.8.3) jmespath (1.6.2) - json (2.6.2) + json (2.6.3) json-canonicalization (0.3.0) json-jwt (1.13.0) activesupport (>= 4.2) @@ -453,7 +453,7 @@ GEM orm_adapter (0.5.0) ox (2.14.12) parallel (1.22.1) - parser (3.1.2.1) + parser (3.1.3.0) ast (~> 2.4.1) parslet (2.0.0) pastel (0.8.0) @@ -549,7 +549,7 @@ GEM redis (>= 4) redlock (1.3.2) redis (>= 3.0.0, < 6.0) - regexp_parser (2.6.0) + regexp_parser (2.6.1) request_store (1.5.1) rack (>= 1.4) responders (3.0.1) @@ -584,26 +584,26 @@ GEM rspec-support (3.11.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.39.0) + rubocop (1.42.0) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.23.0, < 2.0) + rubocop-ast (>= 1.24.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.23.0) + rubocop-ast (1.24.1) parser (>= 3.1.1.0) - rubocop-performance (1.15.1) + rubocop-performance (1.15.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.17.2) + rubocop-rails (2.17.4) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.15.0) + rubocop-rspec (2.16.0) rubocop (~> 1.33) ruby-progressbar (1.11.0) ruby-saml (1.13.0) From 17f79082b098e05b68d6f0d38fabb3ac121879a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 21:13:57 +0900 Subject: [PATCH 023/176] Bump stylelint from 14.14.0 to 14.16.1 (#22910) * Bump stylelint-config-standard-scss from 5.0.0 to 6.1.0 Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 5.0.0 to 6.1.0. - [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases) - [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v5.0.0...v6.1.0) --- updated-dependencies: - dependency-name: stylelint-config-standard-scss dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump stylelint from 14.14.0 to 14.16.1 Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.14.0 to 14.16.1. - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/14.14.0...14.16.1) --- updated-dependencies: - dependency-name: stylelint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Fix Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yamagishi Kazutoshi --- app/javascript/styles/mastodon/admin.scss | 2 +- .../styles/mastodon/components.scss | 4 +- package.json | 4 +- yarn.lock | 102 +++++++++--------- 4 files changed, 56 insertions(+), 56 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 4a73a7d23b..9c06e7a255 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1200,7 +1200,7 @@ a.name-tag, path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 100% !important; + fill-opacity: 1 !important; } path:last-child { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 6a22f60095..0439156f14 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4268,7 +4268,7 @@ a.status-card.compact:hover { } @keyframes heartbeat { - from { + 0% { transform: scale(1); animation-timing-function: ease-out; } @@ -7343,7 +7343,7 @@ noscript { path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 100% !important; + fill-opacity: 1 !important; } path:last-child { diff --git a/package.json b/package.json index a1725fdd7c..16fca35852 100644 --- a/package.json +++ b/package.json @@ -160,8 +160,8 @@ "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", - "stylelint": "^14.14.0", - "stylelint-config-standard-scss": "^5.0.0", + "stylelint": "^14.16.1", + "stylelint-config-standard-scss": "^6.1.0", "webpack-dev-server": "^3.11.3", "yargs": "^17.6.2" }, diff --git a/yarn.lock b/yarn.lock index 64d4908c18..e18e860182 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3541,10 +3541,10 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== +cosmiconfig@^7.0.0, cosmiconfig@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -5689,10 +5689,10 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +ignore@^5.2.0, ignore@^5.2.1: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immutable@^4.0.0, immutable@^4.2.1: version "4.2.1" @@ -6895,10 +6895,10 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -known-css-properties@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.25.0.tgz#6ebc4d4b412f602e5cfbeb4086bd544e34c0a776" - integrity sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA== +known-css-properties@^0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.26.0.tgz#008295115abddc045a9f4ed7e2a84dc8b3a77649" + integrity sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg== language-subtag-registry@~0.3.2: version "0.3.20" @@ -8535,10 +8535,10 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -8590,7 +8590,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.2.15, postcss@^8.4.17, postcss@^8.4.20: +postcss@^8.2.15, postcss@^8.4.19, postcss@^8.4.20: version "8.4.20" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== @@ -10323,34 +10323,34 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -stylelint-config-recommended-scss@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz#db16b6ae6055e72e3398916c0f13d6eb685902a2" - integrity sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA== +stylelint-config-recommended-scss@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz#1c1e93e619fe2275d4c1067928d92e0614f7d64f" + integrity sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ== dependencies: postcss-scss "^4.0.2" - stylelint-config-recommended "^8.0.0" + stylelint-config-recommended "^9.0.0" stylelint-scss "^4.0.0" -stylelint-config-recommended@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz#7736be9984246177f017c39ec7b1cd0f19ae9117" - integrity sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ== +stylelint-config-recommended@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz#1c9e07536a8cd875405f8ecef7314916d94e7e40" + integrity sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ== -stylelint-config-standard-scss@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz#afc5e43c73e7a15875b8f30f54204b01a2634743" - integrity sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ== +stylelint-config-standard-scss@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.1.0.tgz#a6cddd2a9430578b92fc89726a59474d5548a444" + integrity sha512-iZ2B5kQT2G3rUzx+437cEpdcnFOQkwnwqXuY8Z0QUwIHQVE8mnYChGAquyKFUKZRZ0pRnrciARlPaR1RBtPb0Q== dependencies: - stylelint-config-recommended-scss "^7.0.0" - stylelint-config-standard "^26.0.0" + stylelint-config-recommended-scss "^8.0.0" + stylelint-config-standard "^29.0.0" -stylelint-config-standard@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz#4701b8d582d34120eec7d260ba779e4c2d953635" - integrity sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ== +stylelint-config-standard@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz#4cc0e0f05512a39bb8b8e97853247d3a95d66fa2" + integrity sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg== dependencies: - stylelint-config-recommended "^8.0.0" + stylelint-config-recommended "^9.0.0" stylelint-scss@^4.0.0: version "4.2.0" @@ -10363,15 +10363,15 @@ stylelint-scss@^4.0.0: postcss-selector-parser "^6.0.6" postcss-value-parser "^4.1.0" -stylelint@^14.14.0: - version "14.14.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.14.0.tgz#1acb52497c9a921f23f9c4014d4e0ee6eba768d0" - integrity sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA== +stylelint@^14.16.1: + version "14.16.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.16.1.tgz#b911063530619a1bbe44c2b875fd8181ebdc742d" + integrity sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A== dependencies: "@csstools/selector-specificity" "^2.0.2" balanced-match "^2.0.0" colord "^2.9.3" - cosmiconfig "^7.0.1" + cosmiconfig "^7.1.0" css-functions-list "^3.1.0" debug "^4.3.4" fast-glob "^3.2.12" @@ -10381,21 +10381,21 @@ stylelint@^14.14.0: globby "^11.1.0" globjoin "^0.1.4" html-tags "^3.2.0" - ignore "^5.2.0" + ignore "^5.2.1" import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.25.0" + known-css-properties "^0.26.0" mathml-tag-names "^2.1.3" meow "^9.0.0" micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.17" + postcss "^8.4.19" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" resolve-from "^5.0.0" string-width "^4.2.3" @@ -10403,7 +10403,7 @@ stylelint@^14.14.0: style-search "^0.1.0" supports-hyperlinks "^2.3.0" svg-tags "^1.0.0" - table "^6.8.0" + table "^6.8.1" v8-compile-cache "^2.3.0" write-file-atomic "^4.0.2" @@ -10499,10 +10499,10 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.9, table@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== +table@^6.0.9, table@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" From cba7158085d0f8a2317e2fc00cb0f9bdb67b2eff Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 4 Jan 2023 18:38:45 +0100 Subject: [PATCH 024/176] Fix prettifier/lint issues (#2066) * Add glitch-soc locale files to prettierignore * Run prettier on theme.yml * Add glitch-soc emoji_map.json to .prettierignore * Run prettier on config/i18n-tasks.yml --- .prettierignore | 7 +++++++ app/javascript/flavours/glitch/theme.yml | 8 ++++---- app/javascript/flavours/vanilla/theme.yml | 8 ++++---- config/i18n-tasks.yml | 5 ++++- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.prettierignore b/.prettierignore index f72354a42f..dc8c536933 100644 --- a/.prettierignore +++ b/.prettierignore @@ -70,3 +70,10 @@ docker-compose.override.yml # Ignore locale files /app/javascript/mastodon/locales /config/locales + +# Ignore glitch-soc locale files +/app/javascript/flavours/glitch/locales +/config/locales-glitch + +# Ignore glitch-soc emoji map file +/app/javascript/flavours/glitch/features/emoji/emoji_map.json diff --git a/app/javascript/flavours/glitch/theme.yml b/app/javascript/flavours/glitch/theme.yml index 1811287462..2a2cf30b53 100644 --- a/app/javascript/flavours/glitch/theme.yml +++ b/app/javascript/flavours/glitch/theme.yml @@ -12,10 +12,10 @@ pack: home: filename: packs/home.js preload: - - flavours/glitch/async/compose - - flavours/glitch/async/getting_started - - flavours/glitch/async/home_timeline - - flavours/glitch/async/notifications + - flavours/glitch/async/compose + - flavours/glitch/async/getting_started + - flavours/glitch/async/home_timeline + - flavours/glitch/async/notifications mailer: modal: public: packs/public.js diff --git a/app/javascript/flavours/vanilla/theme.yml b/app/javascript/flavours/vanilla/theme.yml index 5cb76b721c..3f0b278993 100644 --- a/app/javascript/flavours/vanilla/theme.yml +++ b/app/javascript/flavours/vanilla/theme.yml @@ -12,10 +12,10 @@ pack: home: filename: application.js preload: - - features/getting_started - - features/compose - - features/home_timeline - - features/notifications + - features/getting_started + - features/compose + - features/home_timeline + - features/notifications mailer: modal: public: public.js diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 3f3f6f2486..334511efe5 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -8,7 +8,10 @@ data: - config/locales-glitch/*.%{locale}.yml write: - - ['{devise, simple_form, doorkeeper}.*', 'config/locales-glitch/\1.%{locale}.yml'] + - [ + '{devise, simple_form, doorkeeper}.*', + 'config/locales-glitch/\1.%{locale}.yml', + ] - config/locales-glitch/%{locale}.yml external: From 3a94668d8709c2156758041cda61b6253a431d68 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 4 Jan 2023 18:47:01 +0100 Subject: [PATCH 025/176] Fix root key for glitch-soc pt-PT and pt-BR yaml translations (#2065) --- config/locales-glitch/pt-BR.yml | 2 +- config/locales-glitch/pt-PT.yml | 2 +- config/locales-glitch/simple_form.pt-BR.yml | 2 +- config/locales-glitch/simple_form.pt-PT.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/locales-glitch/pt-BR.yml b/config/locales-glitch/pt-BR.yml index 3419e59482..95c1579bac 100644 --- a/config/locales-glitch/pt-BR.yml +++ b/config/locales-glitch/pt-BR.yml @@ -1,5 +1,5 @@ --- -pt: +pt-BR: admin: custom_emojis: batch_copy_error: 'Ocorreu um erro ao copiar alguns dos emojis selecionados: %{message}' diff --git a/config/locales-glitch/pt-PT.yml b/config/locales-glitch/pt-PT.yml index 9cbe1f0387..a1a2dc36b3 100644 --- a/config/locales-glitch/pt-PT.yml +++ b/config/locales-glitch/pt-PT.yml @@ -1 +1 @@ -pt: +pt-PT: diff --git a/config/locales-glitch/simple_form.pt-BR.yml b/config/locales-glitch/simple_form.pt-BR.yml index 00a7607d62..831f18d236 100644 --- a/config/locales-glitch/simple_form.pt-BR.yml +++ b/config/locales-glitch/simple_form.pt-BR.yml @@ -1,5 +1,5 @@ --- -pt: +pt-BR: simple_form: glitch_only: glitch-soc hints: diff --git a/config/locales-glitch/simple_form.pt-PT.yml b/config/locales-glitch/simple_form.pt-PT.yml index 9cbe1f0387..a1a2dc36b3 100644 --- a/config/locales-glitch/simple_form.pt-PT.yml +++ b/config/locales-glitch/simple_form.pt-PT.yml @@ -1 +1 @@ -pt: +pt-PT: From 8eb29741b440e3eeac297ec89a49a3fb1c9deb8d Mon Sep 17 00:00:00 2001 From: Alexander Ivanov Date: Thu, 5 Jan 2023 20:29:49 +0800 Subject: [PATCH 026/176] Add webhook `account.approved` (#22938) * Webhook `account.approved` when preparing new user * Update Webhook.EVENTS --- app/models/user.rb | 1 + app/models/webhook.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index ca98a0afab..2a42ffaa16 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -489,6 +489,7 @@ class User < ApplicationRecord BootstrapTimelineWorker.perform_async(account_id) ActivityTracker.increment('activity:accounts:local') UserMailer.welcome(self).deliver_later + TriggerWebhookWorker.perform_async('account.approved', 'Account', account_id) end def prepare_returning_user! diff --git a/app/models/webhook.rb b/app/models/webhook.rb index 431edd75da..4aafb1257b 100644 --- a/app/models/webhook.rb +++ b/app/models/webhook.rb @@ -15,6 +15,7 @@ class Webhook < ApplicationRecord EVENTS = %w( + account.approved account.created report.created ).freeze From fdd1facba16db75e425c02807323eb2666688652 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Thu, 5 Jan 2023 21:30:38 +0900 Subject: [PATCH 027/176] Fix home TL could contain post from who blocked me (#22849) * Fix home tl contains post from who blocked me * Add test * Fix feed_manager's build_crutches blocked_by was not includes status' owner * Add test for status from I blocked * Fix typo --- app/lib/feed_manager.rb | 3 ++- spec/lib/feed_manager_spec.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 510667558e..b9c5bc2cd0 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -365,6 +365,7 @@ class FeedManager end return true if check_for_blocks.any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } + return true if crutches[:blocked_by][status.account_id] if status.reply? && !status.in_reply_to_account_id.nil? # Filter out if it's a reply should_filter = !crutches[:following][status.in_reply_to_account_id] # and I'm not following the person it's a reply to @@ -548,7 +549,7 @@ class FeedManager crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true) - crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| s.reblog&.account_id }.compact).pluck(:account_id).index_with(true) + crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| [s.account_id, s.reblog&.account_id] }.flatten.compact).pluck(:account_id).index_with(true) crutches end diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index 0f3b05e5a5..eb55c3983c 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -39,6 +39,18 @@ RSpec.describe FeedManager do expect(FeedManager.instance.filter?(:home, reblog, bob)).to be false end + it 'returns true for post from account who blocked me' do + status = Fabricate(:status, text: 'Hello, World', account: alice) + alice.block!(bob) + expect(FeedManager.instance.filter?(:home, status, bob)).to be true + end + + it 'returns true for post from blocked account' do + status = Fabricate(:status, text: 'Hello, World', account: alice) + bob.block!(alice) + expect(FeedManager.instance.filter?(:home, status, bob)).to be true + end + it 'returns true for reblog by followee of blocked account' do status = Fabricate(:status, text: 'Hello world', account: jeff) reblog = Fabricate(:status, reblog: status, account: alice) From 0e7549b82da3d5319682cc8334777ff1a059e2d7 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Thu, 5 Jan 2023 07:31:05 -0500 Subject: [PATCH 028/176] Add `reading:autoplay:gifs` to /api/v1/preferences (#22706) --- app/serializers/rest/preferences_serializer.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/serializers/rest/preferences_serializer.rb b/app/serializers/rest/preferences_serializer.rb index 874bd990d3..e1c6544608 100644 --- a/app/serializers/rest/preferences_serializer.rb +++ b/app/serializers/rest/preferences_serializer.rb @@ -7,6 +7,7 @@ class REST::PreferencesSerializer < ActiveModel::Serializer attribute :reading_default_sensitive_media, key: 'reading:expand:media' attribute :reading_default_sensitive_text, key: 'reading:expand:spoilers' + attribute :reading_autoplay_gifs, key: 'reading:autoplay:gifs' def posting_default_privacy object.user.setting_default_privacy @@ -27,4 +28,8 @@ class REST::PreferencesSerializer < ActiveModel::Serializer def reading_default_sensitive_text object.user.setting_expand_spoilers end + + def reading_autoplay_gifs + object.user.setting_auto_play_gif + end end From d68c12648c2d11d4f172e740a2d9067a38f8faca Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Thu, 5 Jan 2023 21:32:02 +0900 Subject: [PATCH 029/176] Remove object-fit polyfill for the old Microsoft Edge (#22693) * chore: remove object-fit-images and its postcss packages * chore: update postcss config * chore: remove object-fit-image from extra_polyfills.js * chore: remove object-fit property check from load_polyfills.js --- app/javascript/mastodon/extra_polyfills.js | 3 - app/javascript/mastodon/load_polyfills.js | 5 +- package.json | 2 - postcss.config.js | 1 - yarn.lock | 137 +-------------------- 5 files changed, 5 insertions(+), 143 deletions(-) diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 395f1ed050..6e8004f077 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,6 +1,3 @@ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; import 'intersection-observer'; import 'requestidlecallback'; -import objectFitImages from 'object-fit-images'; - -objectFitImages(); diff --git a/app/javascript/mastodon/load_polyfills.js b/app/javascript/mastodon/load_polyfills.js index cc5bcd18f1..f5a897f754 100644 --- a/app/javascript/mastodon/load_polyfills.js +++ b/app/javascript/mastodon/load_polyfills.js @@ -23,15 +23,14 @@ function loadPolyfills() { ); // Latest version of Firefox and Safari do not have IntersectionObserver. - // Edge does not have requestIdleCallback and object-fit CSS property. + // Edge does not have requestIdleCallback. // This avoids shipping them all the polyfills. const needsExtraPolyfills = !( window.AbortController && window.IntersectionObserver && window.IntersectionObserverEntry && 'isIntersecting' in IntersectionObserverEntry.prototype && - window.requestIdleCallback && - 'object-fit' in (new Image()).style + window.requestIdleCallback ); return Promise.all([ diff --git a/package.json b/package.json index 16fca35852..19e9018e83 100644 --- a/package.json +++ b/package.json @@ -81,13 +81,11 @@ "mkdirp": "^1.0.4", "npmlog": "^7.0.1", "object-assign": "^4.1.1", - "object-fit-images": "^3.2.3", "object.values": "^1.1.6", "path-complete-extname": "^1.0.0", "pg": "^8.5.0", "postcss": "^8.4.20", "postcss-loader": "^3.0.0", - "postcss-object-fit-images": "^1.1.2", "promise.prototype.finally": "^3.1.4", "prop-types": "^15.8.1", "punycode": "^2.1.0", diff --git a/postcss.config.js b/postcss.config.js index 1c820c3181..e7749a219d 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,7 +1,6 @@ module.exports = ({ env }) => ({ plugins: { autoprefixer: {}, - 'postcss-object-fit-images': {}, cssnano: env === 'production' ? {} : false, }, }); diff --git a/yarn.lock b/yarn.lock index e18e860182..8f637ae5e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2245,11 +2245,6 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -3100,17 +3095,6 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz" integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg== -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -3645,43 +3629,11 @@ css-declaration-sorter@^4.0.1: postcss "^7.0.1" timsort "^0.3.0" -css-font-size-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz#854875ace9aca6a8d2ee0d345a44aae9bb6db6cb" - integrity sha1-hUh1rOmspqjS7g00WkSq6btttss= - -css-font-stretch-keywords@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz#50cee9b9ba031fb5c952d4723139f1e107b54b10" - integrity sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA= - -css-font-style-keywords@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz#5c3532813f63b4a1de954d13cea86ab4333409e4" - integrity sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ= - -css-font-weight-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz#9bc04671ac85bc724b574ef5d3ac96b0d604fd97" - integrity sha1-m8BGcayFvHJLV07106yWsNYE/Zc= - css-functions-list@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== -css-global-keywords@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-global-keywords/-/css-global-keywords-1.0.1.tgz#72a9aea72796d019b1d2a3252de4e5aaa37e4a69" - integrity sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk= - -css-list-helpers@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-list-helpers/-/css-list-helpers-1.0.1.tgz#fff57192202db83240c41686f919e449a7024f7d" - integrity sha1-//VxkiAtuDJAxBaG+RnkSacCT30= - dependencies: - tcomb "^2.5.0" - css-loader@^5.2.7: version "5.2.7" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" @@ -3713,11 +3665,6 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-system-font-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz#85c6f086aba4eb32c571a3086affc434b84823ed" - integrity sha1-hcbwhquk6zLFcaMIav/ENLhII+0= - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -4410,7 +4357,7 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -5358,23 +5305,11 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -6715,11 +6650,6 @@ jest@^29.3.1: import-local "^3.0.2" jest-cli "^29.3.1" -js-base64@^2.1.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -7672,11 +7602,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-fit-images@^3.2.3: - version "3.2.4" - 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.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" @@ -7959,21 +7884,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-css-font@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-css-font/-/parse-css-font-2.0.2.tgz#7b60b060705a25a9b90b7f0ed493e5823248a652" - integrity sha1-e2CwYHBaJam5C38O1JPlgjJIplI= - dependencies: - css-font-size-keywords "^1.0.0" - css-font-stretch-keywords "^1.0.1" - css-font-style-keywords "^1.0.1" - css-font-weight-keywords "^1.0.0" - css-global-keywords "^1.0.1" - css-list-helpers "^1.0.1" - css-system-font-keywords "^1.0.0" - tcomb "^2.5.0" - unquote "^1.1.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -8473,15 +8383,6 @@ postcss-normalize-whitespace@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" -postcss-object-fit-images@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/postcss-object-fit-images/-/postcss-object-fit-images-1.1.2.tgz#8b773043db14672ef6cd6f2cb1f0d8b26a9f573b" - integrity sha1-i3cwQ9sUZy72zW8ssfDYsmqfVzs= - dependencies: - parse-css-font "^2.0.2" - postcss "^5.0.16" - quote "^0.4.0" - postcss-ordered-values@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" @@ -8571,16 +8472,6 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^5.0.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32: version "7.0.32" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" @@ -8836,11 +8727,6 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -quote@^0.4.0: - version "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.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -10251,7 +10137,7 @@ stringz@^2.1.0: dependencies: char-regex "^1.0.2" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= @@ -10417,18 +10303,6 @@ substring-trie@^1.0.2: resolved "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz#7b42592391628b4f2cb17365c6cce4257c7b7af5" integrity sha1-e0JZI5Fii08ssXNlxszkJXx7evU= -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -10527,11 +10401,6 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" -tcomb@^2.5.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0" - integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA= - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -10971,7 +10840,7 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@^1.1.0, unquote@~1.1.1: +unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= From 7e9d5bdbb9125197afb5b3df69ce49a79451d697 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 5 Jan 2023 13:32:29 +0100 Subject: [PATCH 030/176] [Glitch] Fix unnecessary re-rendering of various components when typing in web UI (#2063) Port 9620ee90be7e04b3616ce4b851abb63dbba7af7f to glitch-soc Signed-off-by: Claire Signed-off-by: Claire Co-authored-by: Eugen Rochko --- .../flavours/glitch/components/status.js | 8 ++++---- .../glitch/containers/status_container.js | 9 +++------ .../status/components/detailed_status.js | 9 ++++++--- .../flavours/glitch/features/status/index.js | 19 ++++++++++++------- .../flavours/glitch/selectors/index.js | 12 +++++++++++- 5 files changed, 36 insertions(+), 21 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 4041b48194..409ec0adc5 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -102,7 +102,7 @@ class Status extends ImmutablePureComponent { scrollKey: PropTypes.string, deployPictureInPicture: PropTypes.func, settings: ImmutablePropTypes.map.isRequired, - pictureInPicture: PropTypes.shape({ + pictureInPicture: ImmutablePropTypes.contains({ inUse: PropTypes.bool, available: PropTypes.bool, }), @@ -603,7 +603,7 @@ class Status extends ImmutablePureComponent { attachments = status.get('media_attachments'); - if (pictureInPicture.inUse) { + if (pictureInPicture.get('inUse')) { media.push(); mediaIcons.push('video-camera'); } else if (attachments.size > 0) { @@ -631,7 +631,7 @@ class Status extends ImmutablePureComponent { width={this.props.cachedMediaWidth} height={110} cacheWidth={this.props.cacheMediaWidth} - deployPictureInPicture={pictureInPicture.available ? this.handleDeployPictureInPicture : undefined} + deployPictureInPicture={pictureInPicture.get('available') ? this.handleDeployPictureInPicture : undefined} sensitive={status.get('sensitive')} blurhash={attachment.get('blurhash')} visible={this.state.showMedia} @@ -660,7 +660,7 @@ class Status extends ImmutablePureComponent { onOpenVideo={this.handleOpenVideo} width={this.props.cachedMediaWidth} cacheWidth={this.props.cacheMediaWidth} - deployPictureInPicture={pictureInPicture.available ? this.handleDeployPictureInPicture : undefined} + deployPictureInPicture={pictureInPicture.get('available') ? this.handleDeployPictureInPicture : undefined} visible={this.state.showMedia} onToggleVisibility={this.handleToggleMediaVisibility} />)} diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 947573fc7d..645919ebe8 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -1,7 +1,7 @@ import { connect } from 'react-redux'; import Status from 'flavours/glitch/components/status'; import { List as ImmutableList } from 'immutable'; -import { makeGetStatus } from 'flavours/glitch/selectors'; +import { makeGetStatus, makeGetPictureInPicture } from 'flavours/glitch/selectors'; import { replyCompose, mentionCompose, @@ -60,6 +60,7 @@ const messages = defineMessages({ const makeMapStateToProps = () => { const getStatus = makeGetStatus(); + const getPictureInPicture = makeGetPictureInPicture(); const mapStateToProps = (state, props) => { @@ -83,11 +84,7 @@ const makeMapStateToProps = () => { account: account || props.account, settings: state.get('local_settings'), prepend: prepend || props.prepend, - - pictureInPicture: { - inUse: state.getIn(['meta', 'layout']) !== 'mobile' && state.get('picture_in_picture').statusId === props.id, - available: state.getIn(['meta', 'layout']) !== 'mobile', - }, + pictureInPicture: getPictureInPicture(state, props), }; }; diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.js b/app/javascript/flavours/glitch/features/status/components/detailed_status.js index 7d2c2aace3..907fc3f1c1 100644 --- a/app/javascript/flavours/glitch/features/status/components/detailed_status.js +++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.js @@ -41,7 +41,10 @@ class DetailedStatus extends ImmutablePureComponent { domain: PropTypes.string.isRequired, compact: PropTypes.bool, showMedia: PropTypes.bool, - usingPiP: PropTypes.bool, + pictureInPicture: ImmutablePropTypes.contains({ + inUse: PropTypes.bool, + available: PropTypes.bool, + }), onToggleMediaVisibility: PropTypes.func, intl: PropTypes.object.isRequired, }; @@ -120,7 +123,7 @@ class DetailedStatus extends ImmutablePureComponent { render () { const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status; - const { expanded, onToggleHidden, settings, usingPiP, intl } = this.props; + const { expanded, onToggleHidden, settings, pictureInPicture, intl } = this.props; const outerStyle = { boxSizing: 'border-box' }; const { compact } = this.props; @@ -153,7 +156,7 @@ class DetailedStatus extends ImmutablePureComponent { outerStyle.height = `${this.state.height}px`; } - if (usingPiP) { + if (pictureInPicture.get('inUse')) { media.push(); mediaIcons.push('video-camera'); } else if (status.get('media_attachments').size > 0) { diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index c716e4f0f5..c22e7f0bd8 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -41,7 +41,7 @@ import { initMuteModal } from 'flavours/glitch/actions/mutes'; import { initBlockModal } from 'flavours/glitch/actions/blocks'; import { initReport } from 'flavours/glitch/actions/reports'; import { initBoostModal } from 'flavours/glitch/actions/boosts'; -import { makeGetStatus } from 'flavours/glitch/selectors'; +import { makeGetStatus, makeGetPictureInPicture } from 'flavours/glitch/selectors'; import ScrollContainer from 'flavours/glitch/containers/scroll_container'; import ColumnBackButton from 'flavours/glitch/components/column_back_button'; import ColumnHeader from '../../components/column_header'; @@ -72,6 +72,7 @@ const messages = defineMessages({ const makeMapStateToProps = () => { const getStatus = makeGetStatus(); + const getPictureInPicture = makeGetPictureInPicture(); const getAncestorsIds = createSelector([ (_, { id }) => id, @@ -129,11 +130,12 @@ const makeMapStateToProps = () => { const mapStateToProps = (state, props) => { const status = getStatus(state, { id: props.params.statusId }); - let ancestorsIds = Immutable.List(); + + let ancestorsIds = Immutable.List(); let descendantsIds = Immutable.List(); if (status) { - ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') }); + ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') }); descendantsIds = getDescendantsIds(state, { id: status.get('id') }); } @@ -145,7 +147,7 @@ const makeMapStateToProps = () => { settings: state.get('local_settings'), askReplyConfirmation: state.getIn(['local_settings', 'confirm_before_clearing_draft']) && state.getIn(['compose', 'text']).trim().length !== 0, domain: state.getIn(['meta', 'domain']), - usingPiP: state.get('picture_in_picture').statusId === props.params.statusId, + pictureInPicture: getPictureInPicture(state, { id: props.params.statusId }), }; }; @@ -190,7 +192,10 @@ class Status extends ImmutablePureComponent { askReplyConfirmation: PropTypes.bool, multiColumn: PropTypes.bool, domain: PropTypes.string.isRequired, - usingPiP: PropTypes.bool, + pictureInPicture: ImmutablePropTypes.contains({ + inUse: PropTypes.bool, + available: PropTypes.bool, + }), }; state = { @@ -604,7 +609,7 @@ class Status extends ImmutablePureComponent { render () { let ancestors, descendants; - const { isLoading, status, settings, ancestorsIds, descendantsIds, intl, domain, multiColumn, usingPiP } = this.props; + const { isLoading, status, settings, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; const { fullscreen } = this.state; if (isLoading) { @@ -682,7 +687,7 @@ class Status extends ImmutablePureComponent { domain={domain} showMedia={this.state.showMedia} onToggleMediaVisibility={this.handleToggleMediaVisibility} - usingPiP={usingPiP} + pictureInPicture={pictureInPicture} /> { ); }; +export const makeGetPictureInPicture = () => { + return createSelector([ + (state, { id }) => state.get('picture_in_picture').statusId === id, + (state) => state.getIn(['meta', 'layout']) !== 'mobile', + ], (inUse, available) => ImmutableMap({ + inUse: inUse && available, + available, + })); +}; + const getAlertsBase = state => state.get('alerts'); export const getAlerts = createSelector([getAlertsBase], (base) => { From b3ab0014e669e25b984dc7e769a2d1e6d2736ef0 Mon Sep 17 00:00:00 2001 From: kyori19 Date: Thu, 5 Jan 2023 21:32:59 +0900 Subject: [PATCH 031/176] Install SSH server into devcontainer image (#22679) --- .devcontainer/devcontainer.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 01941a9d30..b98f6a21e0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -15,6 +15,12 @@ "webben.browserslist" ], + "features": { + "ghcr.io/devcontainers/features/sshd:1": { + "version": "latest" + } + }, + // Use 'forwardPorts' to make a list of ports inside the container available locally. // This can be used to network with other containers or the host. "forwardPorts": [3000, 4000], From 3654c945832405267e80fe24b14f7e1d74c395ba Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 5 Jan 2023 13:33:33 +0100 Subject: [PATCH 032/176] Strip spaces around URL when adding a relay (#22655) * Strip spaces around URL when adding a relay Fixes #22650 * Gracefuly handle URL parsing errors in URL validator --- app/models/relay.rb | 5 +++++ app/validators/url_validator.rb | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/models/relay.rb b/app/models/relay.rb index d6ddd30ede..c66bfe4ffe 100644 --- a/app/models/relay.rb +++ b/app/models/relay.rb @@ -18,6 +18,7 @@ class Relay < ApplicationRecord scope :enabled, -> { accepted } + before_validation :strip_url before_destroy :ensure_disabled alias enabled? accepted? @@ -74,4 +75,8 @@ class Relay < ApplicationRecord def ensure_disabled disable! if enabled? end + + def strip_url + inbox_url&.strip! + end end diff --git a/app/validators/url_validator.rb b/app/validators/url_validator.rb index 75d1edb873..a90fb6958a 100644 --- a/app/validators/url_validator.rb +++ b/app/validators/url_validator.rb @@ -10,5 +10,7 @@ class URLValidator < ActiveModel::EachValidator def compliant?(url) parsed_url = Addressable::URI.parse(url) parsed_url && %w(http https).include?(parsed_url.scheme) && parsed_url.host + rescue Addressable::URI::InvalidURIError + false end end From b81b646e3bf94ebc1b86999250092e947d7bc5dc Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Thu, 5 Jan 2023 07:34:10 -0500 Subject: [PATCH 033/176] =?UTF-8?q?Improve=20the=20contrast=20of=20the=20c?= =?UTF-8?q?hart=20in=20=E2=80=9Cpoll=20has=20ended=E2=80=9D=20notification?= =?UTF-8?q?s=20(#22575)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Improve the contrast of the chart in “poll has ended” notifications * Further increase the contrast of non-leading poll options --- app/javascript/styles/mastodon/polls.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index f553c55017..6812d54625 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -279,10 +279,10 @@ color: $dark-text-color; &__chart { - background: rgba(darken($ui-primary-color, 14%), 0.2); + background: rgba(darken($ui-primary-color, 14%), 0.7); &.leading { - background: rgba($ui-highlight-color, 0.2); + background: rgba($ui-highlight-color, 0.5); } } } From b8ad446f77479010997a4a3c52fa7b47fb403eed Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 5 Jan 2023 13:35:28 +0100 Subject: [PATCH 034/176] Fix incorrectly formatted datetime in account moderation note timestamp (#22555) * Fix incorrectly formatted datetime in account moderation note timestamp Fix oversight from #21878 * Fix use of non-existent translation string --- app/views/admin/report_notes/_report_note.html.haml | 4 ++-- app/views/admin/reports/show.html.haml | 2 +- app/views/disputes/strikes/show.html.haml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admin/report_notes/_report_note.html.haml b/app/views/admin/report_notes/_report_note.html.haml index 14df2f6090..54c252ee89 100644 --- a/app/views/admin/report_notes/_report_note.html.haml +++ b/app/views/admin/report_notes/_report_note.html.haml @@ -4,8 +4,8 @@ .report-notes__item__header %span.username = link_to report_note.account.username, admin_account_path(report_note.account_id) - %time.relative-formatted{ datetime: report_note.created_at } - = t('admin.report_notes.created_at') + %time.relative-formatted{ datetime: report_note.created_at.iso8601 } + = l report_note.created_at.to_date .report-notes__item__content = simple_format(h(report_note.content)) diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 50ec64b065..5a45b9b781 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -145,7 +145,7 @@ - else = link_to @report.account.domain, admin_instance_path(@report.account.domain) %time.relative-formatted{ datetime: @report.created_at.iso8601 } - = t('admin.report_notes.created_at') + = l @report.created_at.to_date .report-notes__item__content = simple_format(h(@report.comment)) diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml index cab0a17eb1..7797348dd7 100644 --- a/app/views/disputes/strikes/show.html.haml +++ b/app/views/disputes/strikes/show.html.haml @@ -111,7 +111,7 @@ %span.username = link_to @appeal.account.username, can?(:show, @appeal.account) ? admin_account_path(@appeal.account_id) : short_account_url(@appeal.account) %time.relative-formatted{ datetime: @appeal.created_at.iso8601 } - = t('admin.report_notes.created_at') + = l @appeal.created_at.to_date .report-notes__item__content = simple_format(h(@appeal.text)) From 70b3207e33743290e55b67a4b88cddbed36c1903 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 5 Jan 2023 13:35:47 +0100 Subject: [PATCH 035/176] Add a11y tags to the modal (#22549) Closes #22547 --- app/views/layouts/modal.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/modal.html.haml b/app/views/layouts/modal.html.haml index c0ea211ff4..bbdae602f3 100644 --- a/app/views/layouts/modal.html.haml +++ b/app/views/layouts/modal.html.haml @@ -8,7 +8,7 @@ .name = t 'users.signed_in_as' %span.username @#{current_account.local_username_and_domain} - = link_to destroy_user_session_path(continue: true), method: :delete, class: 'logout-link icon-button' do + = link_to destroy_user_session_path(continue: true), method: :delete, class: 'logout-link icon-button', title: t('applications.logout'), 'aria-label': t('applications.logout') do = fa_icon 'sign-out' .container-alt= yield From 4dc9152b3e8e390aa18f823e0f5498cd02b8b496 Mon Sep 17 00:00:00 2001 From: Effy Elden Date: Thu, 5 Jan 2023 23:36:24 +1100 Subject: [PATCH 036/176] Be more lenient with OEmbed detection and validation (#22533) --- app/services/fetch_oembed_service.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb index 4cbaa04c62..7d0879c799 100644 --- a/app/services/fetch_oembed_service.rb +++ b/app/services/fetch_oembed_service.rb @@ -28,7 +28,7 @@ class FetchOEmbedService page = Nokogiri::HTML(html) if @format.nil? || @format == :json - @endpoint_url ||= page.at_xpath('//link[@type="application/json+oembed"]')&.attribute('href')&.value + @endpoint_url ||= page.at_xpath('//link[@type="application/json+oembed"]|//link[@type="text/json+oembed"]')&.attribute('href')&.value @format ||= :json if @endpoint_url end @@ -100,7 +100,7 @@ class FetchOEmbedService end def validate(oembed) - oembed if oembed[:version] == '1.0' && oembed[:type].present? + oembed if oembed[:version].to_s == '1.0' && oembed[:type].present? end def html From c5da2f8c439f86f809d750b42aa11cdeef6b7c1f Mon Sep 17 00:00:00 2001 From: Holden Foreman <38192823+hs4man21@users.noreply.github.com> Date: Thu, 5 Jan 2023 07:36:42 -0500 Subject: [PATCH 037/176] Add aria-hidden to 'Hide image' button in MediaGallery since the button is useless to screen reader users (#22513) --- app/javascript/mastodon/components/icon_button.js | 4 ++++ app/javascript/mastodon/components/media_gallery.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.js index 49858f2e23..b7daf82a47 100644 --- a/app/javascript/mastodon/components/icon_button.js +++ b/app/javascript/mastodon/components/icon_button.js @@ -27,6 +27,7 @@ export default class IconButton extends React.PureComponent { counter: PropTypes.number, obfuscateCount: PropTypes.bool, href: PropTypes.string, + ariaHidden: PropTypes.bool, }; static defaultProps = { @@ -36,6 +37,7 @@ export default class IconButton extends React.PureComponent { animate: false, overlay: false, tabIndex: '0', + ariaHidden: false, }; state = { @@ -102,6 +104,7 @@ export default class IconButton extends React.PureComponent { counter, obfuscateCount, href, + ariaHidden, } = this.props; const { @@ -142,6 +145,7 @@ export default class IconButton extends React.PureComponent { type='button' aria-label={title} aria-expanded={expanded} + aria-hidden={ariaHidden} title={title} className={classes} onClick={this.handleClick} diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.js index bf7982ceab..e4a8be338e 100644 --- a/app/javascript/mastodon/components/media_gallery.js +++ b/app/javascript/mastodon/components/media_gallery.js @@ -345,7 +345,7 @@ class MediaGallery extends React.PureComponent { ); } else if (visible) { - spoilerButton = ; + spoilerButton = ; } else { spoilerButton = ( +
From 2bcb081ce8ab42649932404f3a13f69a0b582af9 Mon Sep 17 00:00:00 2001 From: Holden Foreman <38192823+hs4man21@users.noreply.github.com> Date: Sun, 8 Jan 2023 21:54:03 -0500 Subject: [PATCH 063/176] Fix footer link circle dividers' screen reader accessibility by adding aria-hidden (#22576) * Fix footer link circle dividers' screen reader accessibility by adding aria-hidden * Remove a circle erroneously added in prev commit, and make code more DRY --- .../features/ui/components/link_footer.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.js index 2b83d6378f..3664a05bf8 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.js +++ b/app/javascript/mastodon/features/ui/components/link_footer.js @@ -52,6 +52,8 @@ class LinkFooter extends React.PureComponent { const canInvite = signedIn && ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS); const canProfileDirectory = profileDirectory; + const DividingCircle = {' · '}; + return (

@@ -60,17 +62,17 @@ class LinkFooter extends React.PureComponent { {canInvite && ( <> - {' · '} + {DividingCircle} )} {canProfileDirectory && ( <> - {' · '} + {DividingCircle} )} - {' · '} + {DividingCircle}

@@ -78,13 +80,13 @@ class LinkFooter extends React.PureComponent { Mastodon: {' '} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} v{version}

From aefefc74c468ffd90e3ac97bfed5973717138759 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 10 Jan 2023 05:18:43 +0100 Subject: [PATCH 064/176] Change referrer-policy to no-referrer application-wide (#23014) --- app/controllers/concerns/web_app_controller_concern.rb | 5 ----- config/environments/production.rb | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb index cbd522246d..f28786f63e 100644 --- a/app/controllers/concerns/web_app_controller_concern.rb +++ b/app/controllers/concerns/web_app_controller_concern.rb @@ -6,17 +6,12 @@ module WebAppControllerConcern included do prepend_before_action :redirect_unauthenticated_to_permalinks! before_action :set_app_body_class - before_action :set_referrer_policy_header end def set_app_body_class @body_classes = 'app-body' end - def set_referrer_policy_header - response.headers['Referrer-Policy'] = 'origin' - end - def redirect_unauthenticated_to_permalinks! return if user_signed_in? && current_account.moved_to_account_id.nil? diff --git a/config/environments/production.rb b/config/environments/production.rb index 5ea9ea9bac..abb46bd167 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -138,6 +138,7 @@ Rails.application.configure do 'X-Content-Type-Options' => 'nosniff', 'X-XSS-Protection' => '0', 'Permissions-Policy' => 'interest-cohort=()', + 'Referrer-Policy' => 'no-referrer', } config.x.otp_secret = ENV.fetch('OTP_SECRET') From b6a928cd04d5563ee08012b09d9e1c9f9efc9f07 Mon Sep 17 00:00:00 2001 From: Akira Ouchi Date: Mon, 9 Jan 2023 11:52:37 +0900 Subject: [PATCH 065/176] [Glitch] Add variable autoFocus to video Port 2195f21524270e50c00a6292f77dfe39342ff482 to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/ui/components/video_modal.js | 1 + app/javascript/flavours/glitch/features/video/index.js | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/features/ui/components/video_modal.js b/app/javascript/flavours/glitch/features/ui/components/video_modal.js index 6b6e615a6b..90be11e4b7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/video_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/video_modal.js @@ -50,6 +50,7 @@ export default class VideoModal extends ImmutablePureComponent { autoPlay={options.autoPlay} volume={options.defaultVolume} onCloseVideo={onClose} + autoFocus detailed alt={media.get('description')} /> diff --git a/app/javascript/flavours/glitch/features/video/index.js b/app/javascript/flavours/glitch/features/video/index.js index cb4655f7f2..0daab747b6 100644 --- a/app/javascript/flavours/glitch/features/video/index.js +++ b/app/javascript/flavours/glitch/features/video/index.js @@ -124,6 +124,7 @@ class Video extends React.PureComponent { volume: PropTypes.number, muted: PropTypes.bool, componentIndex: PropTypes.number, + autoFocus: PropTypes.bool, }; static defaultProps = { @@ -537,7 +538,7 @@ class Video extends React.PureComponent { } render () { - const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive, editable, blurhash } = this.props; + const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props; const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state; const progress = Math.min((currentTime / duration) * 100, 100); const playerStyle = {}; @@ -635,7 +636,7 @@ class Video extends React.PureComponent {
- +
From fdabfb9d0eea00e601b25fe5b199f72fb01f54a3 Mon Sep 17 00:00:00 2001 From: Holden Foreman <38192823+hs4man21@users.noreply.github.com> Date: Sun, 8 Jan 2023 21:54:03 -0500 Subject: [PATCH 066/176] [Glitch] Fix footer link circle dividers' screen reader accessibility by adding aria-hidden Port 2bcb081ce8ab42649932404f3a13f69a0b582af9 to glitch-soc Signed-off-by: Claire --- .../glitch/features/ui/components/link_footer.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.js b/app/javascript/flavours/glitch/features/ui/components/link_footer.js index d7a4cf1304..ac0c78674e 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.js +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.js @@ -52,6 +52,8 @@ class LinkFooter extends React.PureComponent { const canInvite = signedIn && ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS); const canProfileDirectory = profileDirectory; + const DividingCircle = {' · '}; + return (

@@ -60,17 +62,17 @@ class LinkFooter extends React.PureComponent { {canInvite && ( <> - {' · '} + {DividingCircle} )} {canProfileDirectory && ( <> - {' · '} + {DividingCircle} )} - {' · '} + {DividingCircle}

@@ -78,13 +80,13 @@ class LinkFooter extends React.PureComponent { Mastodon: {' '} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} - {' · '} + {DividingCircle} v{version}

From cff7d967f97b5119f9cf68f84973a8e36ec9d7c6 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 10 Jan 2023 14:33:40 +0100 Subject: [PATCH 067/176] Fix CSRF protection (#23037) Fix regression from #23014 --- config/environments/production.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index abb46bd167..99c9bb40c5 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -138,7 +138,7 @@ Rails.application.configure do 'X-Content-Type-Options' => 'nosniff', 'X-XSS-Protection' => '0', 'Permissions-Policy' => 'interest-cohort=()', - 'Referrer-Policy' => 'no-referrer', + 'Referrer-Policy' => 'same-origin', } config.x.otp_secret = ENV.fetch('OTP_SECRET') From f6e34ca134f849f08ca56b484e302f3e4ec8fd11 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 Jan 2023 13:41:34 +0100 Subject: [PATCH 068/176] New Crowdin updates (#22953) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.json (Belarusian) * New translations en.json (Vietnamese) * New translations en.json (Asturian) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations activerecord.en.yml (Estonian) * New translations en.yml (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.yml (German) * New translations activerecord.en.yml (German) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (German) * New translations en.json (Danish) * New translations en.json (Arabic) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations en.json (English, United Kingdom) * New translations simple_form.en.yml (English, United Kingdom) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations simple_form.en.yml (Catalan) * New translations doorkeeper.en.yml (Catalan) * New translations en.json (Galician) * New translations en.json (Russian) * New translations en.yml (Russian) * New translations en.json (Hungarian) * New translations en.yml (Russian) * New translations en.json (Turkish) * New translations devise.en.yml (Estonian) * New translations en.json (Catalan) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Occitan) * New translations en.yml (Occitan) * New translations en.json (Finnish) * New translations en.json (Hindi) * New translations en.json (Hindi) * New translations en.json (Czech) * New translations en.json (Thai) * New translations en.json (Portuguese) * New translations en.json (Portuguese) * New translations en.yml (Portuguese) * New translations simple_form.en.yml (Portuguese) * New translations en.json (Portuguese) * New translations en.yml (Portuguese) * New translations en.json (Estonian) * New translations doorkeeper.en.yml (Spanish) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.yml (Portuguese) * New translations en.yml (Portuguese) * New translations en.json (Finnish) * New translations en.json (Romanian) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Afrikaans) * New translations en.json (Arabic) * New translations en.json (Belarusian) * New translations en.json (Bulgarian) * New translations en.json (Catalan) * New translations en.json (Czech) * New translations en.json (Danish) * New translations en.json (German) * New translations en.json (Greek) * New translations en.json (Frisian) * New translations en.json (Basque) * New translations en.json (Finnish) * New translations en.json (Irish) * New translations en.json (Hebrew) * New translations en.json (Hungarian) * New translations en.json (Armenian) * New translations en.json (Italian) * New translations en.json (Japanese) * New translations en.json (Georgian) * New translations en.json (Korean) * New translations en.json (Lithuanian) * New translations en.json (Macedonian) * New translations en.json (Dutch) * New translations en.json (Norwegian) * New translations en.json (Punjabi) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Slovak) * New translations en.json (Slovenian) * New translations en.json (Albanian) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Swedish) * New translations en.json (Turkish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Urdu (Pakistan)) * New translations en.json (Vietnamese) * New translations en.json (Galician) * New translations en.json (Icelandic) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Indonesian) * New translations en.json (Persian) * New translations en.json (Tamil) * New translations en.json (Spanish, Argentina) * New translations en.json (Spanish, Mexico) * New translations en.json (Bengali) * New translations en.json (Marathi) * New translations en.json (Thai) * New translations en.json (Croatian) * New translations en.json (Norwegian Nynorsk) * New translations en.json (Kazakh) * New translations en.json (Estonian) * New translations en.json (Latvian) * New translations en.json (Hindi) * New translations en.json (Malay) * New translations en.json (Telugu) * New translations en.json (English, United Kingdom) * New translations en.json (Welsh) * New translations en.json (Faroese) * New translations en.json (Esperanto) * New translations en.json (Uyghur) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.json (Tatar) * New translations en.json (Malayalam) * New translations en.json (Breton) * New translations en.json (French, Quebec) * New translations en.json (Sinhala) * New translations en.json (Cornish) * New translations en.json (Kannada) * New translations en.json (Scottish Gaelic) * New translations en.json (Aragonese) * New translations en.json (Occitan) * New translations en.json (Serbian (Latin)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Sorani (Kurdish)) * New translations en.json (Scots) * New translations en.json (Corsican) * New translations en.json (Sardinian) * New translations en.json (Sanskrit) * New translations en.json (Kabyle) * New translations en.json (Ido) * New translations en.json (Taigi) * New translations en.json (Silesian) * New translations en.json (Standard Moroccan Tamazight) * New translations en.json (Irish) * New translations en.json (Korean) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Spanish, Argentina) * New translations en.yml (Irish) * New translations en.json (Latvian) * New translations en.json (Spanish) * New translations en.json (Bulgarian) * New translations en.json (Hebrew) * New translations en.json (Ukrainian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Belarusian) * New translations en.json (Catalan) * New translations en.json (Finnish) * New translations en.json (Faroese) * New translations en.yml (Finnish) * New translations simple_form.en.yml (Finnish) * New translations en.json (Czech) * New translations en.json (Frisian) * New translations en.json (Finnish) * New translations en.json (Dutch) * New translations en.json (Polish) * New translations en.json (Icelandic) * New translations en.json (German) * New translations en.json (Hungarian) * New translations en.json (Italian) * New translations en.json (Portuguese) * New translations en.json (Slovenian) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Thai) * New translations en.json (Estonian) * New translations en.json (Serbian (Latin)) * New translations en.json (Bulgarian) * New translations en.json (Swedish) * New translations en.json (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Portuguese) * New translations en.json (Galician) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Esperanto) * New translations en.json (Danish) * New translations en.json (French) * New translations en.json (Albanian) * New translations en.yml (French) * New translations en.yml (Portuguese) * New translations en.json (Russian) * New translations en.yml (Russian) * New translations en.yml (Portuguese) * New translations en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations en.yml (Portuguese) * New translations en.json (Belarusian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Vietnamese) * New translations en.json (Bulgarian) * New translations en.json (Bulgarian) * New translations en.json (Bulgarian) * New translations en.json (Norwegian) * New translations en.json (Norwegian Nynorsk) * New translations devise.en.yml (Bulgarian) * New translations en.yml (Galician) * New translations en.json (Slovak) * New translations devise.en.yml (Bulgarian) * New translations en.json (Welsh) * New translations en.yml (Portuguese) * New translations en.yml (Portuguese) * New translations en.json (Croatian) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Bulgarian) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations en.json (Bulgarian) * New translations en.json (Slovak) * New translations en.yml (Slovak) * New translations en.yml (Portuguese) * New translations en.json (Spanish, Mexico) * New translations en.yml (Portuguese) * New translations en.json (Portuguese) * New translations en.yml (Portuguese) * New translations simple_form.en.yml (Portuguese) * New translations en.yml (Bulgarian) * New translations en.json (Slovak) * New translations en.yml (Slovak) * Normalize Co-authored-by: Yamagishi Kazutoshi --- app/javascript/mastodon/locales/af.json | 2 +- app/javascript/mastodon/locales/an.json | 2 +- app/javascript/mastodon/locales/ar.json | 6 +- app/javascript/mastodon/locales/ast.json | 2 +- app/javascript/mastodon/locales/be.json | 6 +- app/javascript/mastodon/locales/bg.json | 72 +-- app/javascript/mastodon/locales/bn.json | 2 +- app/javascript/mastodon/locales/br.json | 2 +- app/javascript/mastodon/locales/ca.json | 32 +- app/javascript/mastodon/locales/ckb.json | 2 +- app/javascript/mastodon/locales/co.json | 2 +- app/javascript/mastodon/locales/cs.json | 6 +- app/javascript/mastodon/locales/cy.json | 4 +- app/javascript/mastodon/locales/da.json | 4 +- app/javascript/mastodon/locales/de.json | 4 +- app/javascript/mastodon/locales/el.json | 4 +- app/javascript/mastodon/locales/en-GB.json | 2 +- app/javascript/mastodon/locales/eo.json | 6 +- app/javascript/mastodon/locales/es-AR.json | 4 +- app/javascript/mastodon/locales/es-MX.json | 6 +- app/javascript/mastodon/locales/es.json | 6 +- app/javascript/mastodon/locales/et.json | 114 ++-- app/javascript/mastodon/locales/eu.json | 2 +- app/javascript/mastodon/locales/fa.json | 2 +- app/javascript/mastodon/locales/fi.json | 26 +- app/javascript/mastodon/locales/fo.json | 4 +- app/javascript/mastodon/locales/fr-QC.json | 6 +- app/javascript/mastodon/locales/fr.json | 6 +- app/javascript/mastodon/locales/fy.json | 4 +- app/javascript/mastodon/locales/ga.json | 14 +- app/javascript/mastodon/locales/gd.json | 2 +- app/javascript/mastodon/locales/gl.json | 4 +- app/javascript/mastodon/locales/he.json | 6 +- app/javascript/mastodon/locales/hi.json | 8 +- app/javascript/mastodon/locales/hr.json | 162 ++--- app/javascript/mastodon/locales/hu.json | 4 +- app/javascript/mastodon/locales/hy.json | 2 +- app/javascript/mastodon/locales/id.json | 2 +- app/javascript/mastodon/locales/io.json | 2 +- app/javascript/mastodon/locales/is.json | 4 +- app/javascript/mastodon/locales/it.json | 4 +- app/javascript/mastodon/locales/ja.json | 4 +- app/javascript/mastodon/locales/ka.json | 2 +- app/javascript/mastodon/locales/kab.json | 2 +- app/javascript/mastodon/locales/kk.json | 2 +- app/javascript/mastodon/locales/kn.json | 2 +- app/javascript/mastodon/locales/ko.json | 4 +- app/javascript/mastodon/locales/ku.json | 2 +- app/javascript/mastodon/locales/kw.json | 2 +- app/javascript/mastodon/locales/lt.json | 2 +- app/javascript/mastodon/locales/lv.json | 4 +- app/javascript/mastodon/locales/mk.json | 2 +- app/javascript/mastodon/locales/ml.json | 2 +- app/javascript/mastodon/locales/mr.json | 2 +- app/javascript/mastodon/locales/ms.json | 2 +- app/javascript/mastodon/locales/nl.json | 4 +- app/javascript/mastodon/locales/nn.json | 10 +- app/javascript/mastodon/locales/no.json | 34 +- app/javascript/mastodon/locales/oc.json | 12 +- app/javascript/mastodon/locales/pa.json | 2 +- app/javascript/mastodon/locales/pl.json | 6 +- app/javascript/mastodon/locales/pt-BR.json | 2 +- app/javascript/mastodon/locales/pt-PT.json | 234 ++++---- app/javascript/mastodon/locales/ro.json | 2 +- app/javascript/mastodon/locales/ru.json | 6 +- app/javascript/mastodon/locales/sa.json | 2 +- app/javascript/mastodon/locales/sc.json | 2 +- app/javascript/mastodon/locales/sco.json | 2 +- app/javascript/mastodon/locales/si.json | 2 +- app/javascript/mastodon/locales/sk.json | 28 +- app/javascript/mastodon/locales/sl.json | 2 +- app/javascript/mastodon/locales/sq.json | 6 +- app/javascript/mastodon/locales/sr-Latn.json | 4 +- app/javascript/mastodon/locales/sr.json | 4 +- app/javascript/mastodon/locales/sv.json | 4 +- app/javascript/mastodon/locales/szl.json | 2 +- app/javascript/mastodon/locales/ta.json | 2 +- app/javascript/mastodon/locales/tai.json | 2 +- app/javascript/mastodon/locales/te.json | 2 +- app/javascript/mastodon/locales/th.json | 6 +- app/javascript/mastodon/locales/tr.json | 6 +- app/javascript/mastodon/locales/tt.json | 2 +- app/javascript/mastodon/locales/ug.json | 2 +- app/javascript/mastodon/locales/uk.json | 8 +- app/javascript/mastodon/locales/ur.json | 2 +- app/javascript/mastodon/locales/vi.json | 2 +- app/javascript/mastodon/locales/zgh.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 4 +- app/javascript/mastodon/locales/zh-HK.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 4 +- config/locales/activerecord.bg.yml | 2 +- config/locales/activerecord.de.yml | 16 +- config/locales/activerecord.et.yml | 10 +- config/locales/bg.yml | 112 ++-- config/locales/ca.yml | 104 ++-- config/locales/de.yml | 8 +- config/locales/devise.bg.yml | 36 +- config/locales/devise.et.yml | 72 +-- config/locales/doorkeeper.bg.yml | 8 +- config/locales/doorkeeper.ca.yml | 10 +- config/locales/doorkeeper.es.yml | 18 +- config/locales/doorkeeper.et.yml | 28 +- config/locales/et.yml | 136 ++--- config/locales/fi.yml | 20 +- config/locales/fr.yml | 2 +- config/locales/ga.yml | 7 + config/locales/gl.yml | 4 +- config/locales/oc.yml | 2 + config/locales/pt-PT.yml | 586 +++++++++---------- config/locales/ru.yml | 17 + config/locales/simple_form.bg.yml | 30 +- config/locales/simple_form.ca.yml | 36 +- config/locales/simple_form.de.yml | 48 +- config/locales/simple_form.en-GB.yml | 37 ++ config/locales/simple_form.et.yml | 42 +- config/locales/simple_form.fi.yml | 8 +- config/locales/simple_form.pt-PT.yml | 18 +- config/locales/simple_form.uk.yml | 2 +- config/locales/sk.yml | 7 + 119 files changed, 1250 insertions(+), 1180 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 8065c8b687..abd664fc89 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -128,7 +128,7 @@ "compose.language.search": "Soek tale...", "compose_form.direct_message_warning_learn_more": "Leer meer", "compose_form.encryption_warning": "Plasings op Mastodon is nie van punt tot punt versleutel nie. Moet geen sensitiewe inligting op Mastodon deel nie.", - "compose_form.hashtag_warning": "Hierdie plasing is ongelys en sal dus onder geen hutsetiket verskyn nie. Slegs openbare plasings is vindbaar wanneer daar na hutsetikette gesoek word.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Jou rekening is nie {locked} nie. Enigiemand kan jou volg en sien wat jy vir jou volgers plaas.", "compose_form.lock_disclaimer.lock": "gesluit", "compose_form.placeholder": "Wat wil jy deel?", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index 22fc58b0b5..0a86e32ef8 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -128,7 +128,7 @@ "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Aprender mas", "compose_form.encryption_warning": "Las publicacions en Mastodon no son zifradas de cabo a cabo. No comparta garra información sensible en Mastodon.", - "compose_form.hashtag_warning": "Esta publicación no s'amostrará baixo garra hashtag perque no ye listada. Nomás las publicacions publicas se pueden buscar per hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "La tuya cuenta no ye {locked}. Totz pueden seguir-te pa veyer las tuyas publicacions nomás pa seguidores.", "compose_form.lock_disclaimer.lock": "blocau", "compose_form.placeholder": "En qué yes pensando?", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index f7cdc977e7..87804ab07f 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -128,7 +128,7 @@ "compose.language.search": "البحث عن لغة…", "compose_form.direct_message_warning_learn_more": "تَعَلَّم المَزيد", "compose_form.encryption_warning": "إنّ المنشورات على ماستدون ليست مشفرة من النهاية إلى النهاية. لا تشارك أي معلومات حساسة عبر ماستدون.", - "compose_form.hashtag_warning": "لن يُدرَج هذا المنشور تحت أي وسم بما أنَّه غير مُدرَج. فقط المنشورات العامة يُمكن البحث عنها بواسطة الوسم.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "حسابُك غير {locked}. يُمكن لأي شخص مُتابعتك لرؤية (منشورات المتابعين فقط).", "compose_form.lock_disclaimer.lock": "مُقفَل", "compose_form.placeholder": "فِيمَ تُفكِّر؟", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "تسجيل الدخول", "sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة الرسائل إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", "status.block": "احجب @{name}", "status.bookmark": "أضفه إلى الفواصل المرجعية", @@ -559,7 +559,7 @@ "status.favourite": "أضف إلى المفضلة", "status.filter": "تصفية هذه الرسالة", "status.filtered": "مُصفّى", - "status.hide": "Hide post", + "status.hide": "إخفاء المنشور", "status.history.created": "أنشأه {name} {date}", "status.history.edited": "عدله {name} {date}", "status.load_more": "حمّل المزيد", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 5631d44863..484a263cfd 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -559,7 +559,7 @@ "status.favourite": "Favourite", "status.filter": "Filter this post", "status.filtered": "Filtered", - "status.hide": "Hide post", + "status.hide": "Anubrir l'artículu", "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editó {date}", "status.load_more": "Cargar más", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 17ea029fa6..ff99ec6e49 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -128,7 +128,7 @@ "compose.language.search": "Шукаць мовы...", "compose_form.direct_message_warning_learn_more": "Даведацца больш", "compose_form.encryption_warning": "Допісы ў Mastodon не абаронены скразным шыфраваннем. Не дзяліцеся ніякай канфідэнцыяльнай інфармацыяй в Mastodon.", - "compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, так як ён мае тып \"Не паказваць у стужках\". Толькі публічныя допісы могуць быць знойдзены па хэштэгу.", + "compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, бо ён не публічны. Толькі публічныя допісы можна знайсці па хэштэгу.", "compose_form.lock_disclaimer": "Ваш уліковы запіс не {locked}. Усе могуць падпісацца на вас, каб бачыць допісы толькі для падпісчыкаў.", "compose_form.lock_disclaimer.lock": "закрыты", "compose_form.placeholder": "Што здарылася?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Увайсці", "sign_in_banner.text": "Увайдзіце, каб падпісацца на людзей і тэгі, каб адказваць на допісы, дзяліцца імі і падабаць іх, альбо кантактаваць з вашага ўліковага запісу на іншым серверы.", "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}", "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі", "status.block": "Заблакаваць @{name}", "status.bookmark": "Дадаць закладку", @@ -559,7 +559,7 @@ "status.favourite": "Упадабаць", "status.filter": "Фільтраваць гэты допіс", "status.filtered": "Адфільтравана", - "status.hide": "Hide post", + "status.hide": "Схаваць допіс", "status.history.created": "Створана {name} {date}", "status.history.edited": "Адрэдагавана {name} {date}", "status.load_more": "Загрузіць яшчэ", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 925b19c8e4..284d162b10 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -38,7 +38,7 @@ "account.follows.empty": "Потребителят още никого не следва.", "account.follows_you": "Следва ви", "account.go_to_profile": "Към профила", - "account.hide_reblogs": "Скриване на споделяния от @{name}", + "account.hide_reblogs": "Скриване на подсилвания от @{name}", "account.joined_short": "Дата на присъединяване", "account.languages": "Промяна на езиците, за които сте абонирани", "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}", @@ -49,14 +49,14 @@ "account.mute": "Заглушаване на @{name}", "account.mute_notifications": "Заглушаване на известия от @{name}", "account.muted": "Заглушено", - "account.open_original_page": "Отваряне на оригиналната страница", + "account.open_original_page": "Отваряне на първообразната страница", "account.posts": "Публикации", "account.posts_with_replies": "Публ. и отговори", "account.report": "Докладване на @{name}", "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване", "account.requested_follow": "{name} поиска да ви последва", "account.share": "Споделяне на профила на @{name}", - "account.show_reblogs": "Показване на споделяния от @{name}", + "account.show_reblogs": "Показване на подсилвания от @{name}", "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", "account.unblock": "Отблокиране на @{name}", "account.unblock_domain": "Отблокиране на домейн {domain}", @@ -128,14 +128,14 @@ "compose.language.search": "Търсене на езици...", "compose_form.direct_message_warning_learn_more": "Още информация", "compose_form.encryption_warning": "Публикациите в Mastodon не са криптирани от край до край. Не споделяйте никаква чувствителна информация там.", - "compose_form.hashtag_warning": "Тази публикация няма да бъде изброена под нито един хаштаг, тъй като е скрита. Само публични публикации могат да се търсят по хаштаг.", - "compose_form.lock_disclaimer": "Вашият акаунт не е {locked}. Всеки може да ви последва, за да прегледа вашите публикации само за последователи.", + "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": "Промяна на анкетата, за да се позволят множество възможни избора", "compose_form.poll.switch_to_single": "Промяна на анкетата, за да се позволи един възможен избор", "compose_form.publish": "Публикуване", @@ -168,7 +168,7 @@ "confirmations.mute.explanation": "Това ще скрие публикациите от тях и публикации, които ги споменават, но все още ще им позволява да виждат публикациите ви и да ви следват.", "confirmations.mute.message": "Наистина ли искате да заглушите {name}?", "confirmations.redraft.confirm": "Изтриване и преработване", - "confirmations.redraft.message": "Сигурни ли сте, че искате да изтриете тази публикация и да я върнете в чернова? Ще загубите споделянията и маркиранията като любима, и отговорите към оригинала ще останат висящи.", + "confirmations.redraft.message": "Сигурни ли сте, че искате да изтриете тази публикация и да я върнете в чернова? Ще загубите подсилванията и означаванията като любима, и отговорите към оригинала ще останат висящи.", "confirmations.reply.confirm": "Отговор", "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", "confirmations.unfollow.confirm": "Без следване", @@ -224,7 +224,7 @@ "empty_column.hashtag": "Още няма нищо в този хаштаг.", "empty_column.home": "Вашата начална часова ос е празна! Последвайте повече хора, за да я запълните. {suggestions}", "empty_column.home.suggestions": "Преглед на някои предложения", - "empty_column.list": "Още няма нищо в този списък. Когато членовете на списъка публикуват нови публикации, то те ще се появят тук.", + "empty_column.list": "Все още списъкът е празен. Членуващите на списъка, публикуващи нови публикации, ще се появят тук.", "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.", "empty_column.mutes": "Още не сте заглушавали потребители.", "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.", @@ -284,35 +284,35 @@ "hashtag.follow": "Следване на хаштаг", "hashtag.unfollow": "Спиране на следване на хаштаг", "home.column_settings.basic": "Основно", - "home.column_settings.show_reblogs": "Показване на споделяния", + "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", "home.hide_announcements": "Скриване на оповестяванията", "home.show_announcements": "Показване на оповестяванията", "interaction_modal.description.favourite": "С акаунт в Mastodon може да направите тази публикация като любима, за да известите автора, че я цените, и да я запазите за по-късно.", - "interaction_modal.description.follow": "Ако имате регистрация в Mastodon, то може да последвате {name}, за да виждате публикациите от този акаунт в началния си инфопоток.", - "interaction_modal.description.reblog": "Ако имате профил в Mastodon, можете да споделите тази публикация със своите последователи.", - "interaction_modal.description.reply": "Ако имате профил в Mastodon, можете да добавите отговор към тази публикация.", + "interaction_modal.description.follow": "С акаунт в Mastodon може да последвате {name}, за да получавате публикациите от този акаунт в началния си инфоканал.", + "interaction_modal.description.reblog": "С акаунт в Mastodon може да подсилите тази публикация, за да я споделите с последователите си.", + "interaction_modal.description.reply": "С акаунт в Mastodon може да добавите отговор към тази публикация.", "interaction_modal.on_another_server": "На различен сървър", "interaction_modal.on_this_server": "На този сървър", "interaction_modal.other_server_instructions": "Копипейстнете този URL адрес в полето за търсене на любимото си приложение Mastodon или мрежови интерфейс на своя Mastodon сървър.", "interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.", "interaction_modal.title.favourite": "Любими публикации на {name}", "interaction_modal.title.follow": "Последване на {name}", - "interaction_modal.title.reblog": "Споделете публикацията от {name}", + "interaction_modal.title.reblog": "Подсилване на публикацията на {name}", "interaction_modal.title.reply": "Отговаряне на публикацията на {name}", "intervals.full.days": "{number, plural, one {# ден} other {# дни}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}", "keyboard_shortcuts.back": "Навигиране назад", "keyboard_shortcuts.blocked": "Отваряне на списъка с блокирани потребители", - "keyboard_shortcuts.boost": "за споделяне", + "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.favourite": "Към любими публикации", "keyboard_shortcuts.favourites": "Отваряне на списъка с любими", "keyboard_shortcuts.federated": "Отваряне на федерирания инфопоток", "keyboard_shortcuts.heading": "Клавишни съчетания", @@ -389,7 +389,7 @@ "navigation_bar.public_timeline": "Федеративна хронология", "navigation_bar.search": "Търсене", "navigation_bar.security": "Сигурност", - "not_signed_in_indicator.not_signed_in": "Трябва да влезете за достъп до този ресурс.", + "not_signed_in_indicator.not_signed_in": "Трябва да влезете, за да имате достъп до този ресурс.", "notification.admin.report": "{name} докладва {target}", "notification.admin.sign_up": "{name} се регистрира", "notification.favourite": "{name} сложи в любими ваша публикация", @@ -398,7 +398,7 @@ "notification.mention": "{name} ви спомена", "notification.own_poll": "Анкетата ви приключи", "notification.poll": "Анкета, в която гласувахте, приключи", - "notification.reblog": "{name} сподели вашата публикация", + "notification.reblog": "{name} подсили ваша публикация", "notification.status": "{name} току-що публикува", "notification.update": "{name} промени публикация", "notifications.clear": "Изчистване на известията", @@ -415,7 +415,7 @@ "notifications.column_settings.mention": "Споменавания:", "notifications.column_settings.poll": "Резултати от анкета:", "notifications.column_settings.push": "Изскачащи известия", - "notifications.column_settings.reblog": "Споделяния:", + "notifications.column_settings.reblog": "Подсилвания:", "notifications.column_settings.show": "Показване в колоната", "notifications.column_settings.sound": "Пускане на звук", "notifications.column_settings.status": "Нови публикации:", @@ -423,7 +423,7 @@ "notifications.column_settings.unread_notifications.highlight": "Изтъкване на непрочетените известия", "notifications.column_settings.update": "Промени:", "notifications.filter.all": "Всичко", - "notifications.filter.boosts": "Споделяния", + "notifications.filter.boosts": "Подсилвания", "notifications.filter.favourites": "Любими", "notifications.filter.follows": "Последвания", "notifications.filter.mentions": "Споменавания", @@ -486,7 +486,7 @@ "report.close": "Готово", "report.comment.title": "Има ли нещо друго, което смятате, че трябва да знаем?", "report.forward": "Препращане до {target}", - "report.forward_hint": "Акаунтът е от друг сървър. Ще изпратите ли анонимно копие на доклада и там?", + "report.forward_hint": "Акаунтът е от друг сървър. Ще изпратите ли безимено копие на доклада и там?", "report.mute": "Заглушаване", "report.mute_explanation": "Няма да виждате публикациите на това лице. То още може да ви следва и да вижда публикациите ви и няма да знае, че е заглушено.", "report.next": "Напред", @@ -496,13 +496,13 @@ "report.reasons.other": "Нещо друго е", "report.reasons.other_description": "Проблемът не попада в нито една от другите категории", "report.reasons.spam": "Спам е", - "report.reasons.spam_description": "Зловредни връзки, фалшиви взаимодействия, или повтарящи се отговори", + "report.reasons.spam_description": "Зловредни връзки, фалшиви ангажименти, или повтарящи се отговори", "report.reasons.violation": "Нарушава правилата на сървъра", "report.reasons.violation_description": "Знаете, че нарушава особени правила", "report.rules.subtitle": "Изберете всичко, което да се прилага", "report.rules.title": "Кои правила са нарушени?", "report.statuses.subtitle": "Изберете всичко, което да се прилага", - "report.statuses.title": "Има ли някакви публикации, подкрепящи този доклад?", + "report.statuses.title": "Има ли някакви публикации, подкрепящи доклада?", "report.submit": "Подаване", "report.target": "Докладване на {target}", "report.thanks.take_action": "Ето възможностите ви за управление какво виждате в Mastodon:", @@ -511,7 +511,7 @@ "report.thanks.title_actionable": "Благодарности за докладването, ще го прегледаме.", "report.unfollow": "Стоп на следването на @{name}", "report.unfollow_explanation": "Последвали сте този акаунт. За да не виждате повече публикациите му в началния си инфопоток, спрете да го следвате.", - "report_notification.attached_statuses": "прикачено {count, plural, one {{count} публикация} other {{count} публикации}}", + "report_notification.attached_statuses": "{count, plural, one {прикаченa {count} публикация} other {прикачени {count} публикации}}", "report_notification.categories.other": "Друго", "report_notification.categories.spam": "Спам", "report_notification.categories.violation": "Нарушение на правилото", @@ -542,12 +542,12 @@ "sign_in_banner.sign_in": "Вход", "sign_in_banner.text": "Влезте, за да последвате профили или хаштагове, любимо, споделяне и отговаряне на публикации или взаимодействие от акаунта ви на друг сървър.", "status.admin_account": "Отваряне на интерфейс за модериране за @{name}", - "status.admin_domain": "Open moderation interface for {domain}", - "status.admin_status": "Отваряне на тази публикация в интерфейс на модериране", + "status.admin_domain": "Отваряне на модериращия интерфейс за {domain}", + "status.admin_status": "Отваряне на публикацията в интерфейса за модериране", "status.block": "Блокиране на @{name}", "status.bookmark": "Отмятане", - "status.cancel_reblog_private": "Отсподеляне", - "status.cannot_reblog": "Тази публикация не може да бъде споделена", + "status.cancel_reblog_private": "Край на подсилването", + "status.cannot_reblog": "Публикация не може да се подсили", "status.copy": "Копиране на връзката към публикация", "status.delete": "Изтриване", "status.detailed_status": "Подробен изглед на разговора", @@ -559,7 +559,7 @@ "status.favourite": "Любимо", "status.filter": "Филтриране на публ.", "status.filtered": "Филтрирано", - "status.hide": "Hide post", + "status.hide": "Скриване на публ.", "status.history.created": "{name} създаде {date}", "status.history.edited": "{name} редактира {date}", "status.load_more": "Зареждане на още", @@ -572,17 +572,17 @@ "status.pin": "Закачане в профила", "status.pinned": "Закачена публикация", "status.read_more": "Още за четене", - "status.reblog": "Споделяне", - "status.reblog_private": "Споделяне с оригинална видимост", - "status.reblogged_by": "{name} сподели", - "status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.", + "status.reblog": "Подсилване", + "status.reblog_private": "Подсилване с оригиналната видимост", + "status.reblogged_by": "{name} подсили", + "status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.", "status.redraft": "Изтриване и преработване", "status.remove_bookmark": "Премахване на отметката", "status.replied_to": "В отговор до {name}", "status.reply": "Отговор", "status.replyAll": "Отговор на нишка", "status.report": "Докладване на @{name}", - "status.sensitive_warning": "Чувствително съдържание", + "status.sensitive_warning": "Деликатно съдържание", "status.share": "Споделяне", "status.show_filter_reason": "Покажи въпреки това", "status.show_less": "Показване на по-малко", @@ -600,7 +600,7 @@ "subscribed_languages.target": "Смяна на езика за {target}", "suggestions.dismiss": "Отхвърляне на предложение", "suggestions.header": "Може да имате интерес от…", - "tabs_bar.federated_timeline": "Федерална", + "tabs_bar.federated_timeline": "Федеративен", "tabs_bar.home": "Начало", "tabs_bar.local_timeline": "Местни", "tabs_bar.notifications": "Известия", @@ -621,7 +621,7 @@ "units.short.thousand": "{count}хил", "upload_area.title": "Влачене и пускане за качване", "upload_button.label": "Добавете файл с образ, видео или звук", - "upload_error.limit": "Превишено ограничение за качване на файлове.", + "upload_error.limit": "Превишено ограничението за качване на файлове.", "upload_error.poll": "Качването на файлове не е позволено с анкети.", "upload_form.audio_description": "Опишете за хора, които са глухи или трудно чуват", "upload_form.description": "Опишете за хора, които са слепи или имат слабо зрение", @@ -636,7 +636,7 @@ "upload_modal.choose_image": "Избор на образ", "upload_modal.description_placeholder": "Ах, чудна българска земьо, полюшвай цъфтящи жита", "upload_modal.detect_text": "Откриване на текст от картина", - "upload_modal.edit_media": "Редакция на мултимедия", + "upload_modal.edit_media": "Промяна на мултимедия", "upload_modal.hint": "Щракнете или плъзнете кръга на визуализацията, за да изберете фокусна точка, която винаги ще бъде видима на всички миниатюри.", "upload_modal.preparing_ocr": "Подготовка за оптично разпознаване на знаци…", "upload_modal.preview_label": "Нагледно ({ratio})", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 2d6a3b47fe..e4e2404231 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "আরো জানুন", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "আপনার নিবন্ধনে তালা দেওয়া নেই, যে কেও আপনাকে অনুসরণ করতে পারবে এবং অনুশারকদের জন্য লেখা দেখতে পারবে।", "compose_form.lock_disclaimer.lock": "তালা দেওয়া", "compose_form.placeholder": "আপনি কি ভাবছেন ?", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 79cc8539eb..51523ab220 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -128,7 +128,7 @@ "compose.language.search": "Klask yezhoù...", "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h", "compose_form.encryption_warning": "Toudoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", - "compose_form.hashtag_warning": "Ne vo ket listennet an toud-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho toudoù prevez.", "compose_form.lock_disclaimer.lock": "prennet", "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index af829fe06e..dbc1af4b17 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -21,13 +21,13 @@ "account.browse_more_on_origin_server": "Navega més en el perfil original", "account.cancel_follow_request": "Retira la sol·licitud de seguiment", "account.direct": "Missatge directe a @{name}", - "account.disable_notifications": "No em notifiquis les publicacions de @{name}", + "account.disable_notifications": "Deixa de notificar-me els tuts de @{name}", "account.domain_blocked": "Domini blocat", "account.edit_profile": "Edita el perfil", - "account.enable_notifications": "Notifica'm les publicacions de @{name}", + "account.enable_notifications": "Notifica'm els tuts de @{name}", "account.endorse": "Recomana en el perfil", "account.featured_tags.last_status_at": "Darrera publicació el {date}", - "account.featured_tags.last_status_never": "No hi ha publicacions", + "account.featured_tags.last_status_never": "No hi ha tuts", "account.featured_tags.title": "etiquetes destacades de {name}", "account.follow": "Segueix", "account.followers": "Seguidors", @@ -57,7 +57,7 @@ "account.requested_follow": "{name} ha demanat de seguir-te", "account.share": "Comparteix el perfil de @{name}", "account.show_reblogs": "Mostra els impulsos de @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Publicació} other {{counter} Publicacions}}", + "account.statuses_counter": "{count, plural, one {{counter} Tut} other {{counter} Tuts}}", "account.unblock": "Desbloca @{name}", "account.unblock_domain": "Desbloca el domini {domain}", "account.unblock_short": "Desbloca", @@ -128,8 +128,8 @@ "compose.language.search": "Cerca idiomes...", "compose_form.direct_message_warning_learn_more": "Més informació", "compose_form.encryption_warning": "Els tuts a Mastodon no estant xifrats punt a punt. No comparteixis informació sensible mitjançant Mastodon.", - "compose_form.hashtag_warning": "Aquest tut no es mostrarà en cap etiqueta, ja que no està llistat. Només els tuts públics es poden cercar per etiqueta.", - "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure les publicacions de només per a seguidors.", + "compose_form.hashtag_warning": "Aquest tut no es mostrarà en cap etiqueta, ja que no és públic. Només els tuts públics es poden cercar per etiqueta.", + "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.", "compose_form.lock_disclaimer.lock": "blocat", "compose_form.placeholder": "Què et passa pel cap?", "compose_form.poll.add_option": "Afegeix una opció", @@ -165,7 +165,7 @@ "confirmations.logout.confirm": "Tanca la 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.explanation": "Això amagarà els tuts d'ells i els d'els que els mencionin, però encara els permetrà veure els teus tuts i seguir-te.", "confirmations.mute.message": "Segur que vols silenciar {name}?", "confirmations.redraft.confirm": "Elimina i reescriu-la", "confirmations.redraft.message": "Segur que vols eliminar aquesta publicació i tornar-la a escriure? Es perdran tots els impulsos i els favorits, i les respostes a la publicació original quedaran aïllades.", @@ -185,7 +185,7 @@ "directory.recently_active": "Actius recentment", "disabled_account_banner.account_settings": "Paràmetres del compte", "disabled_account_banner.text": "El teu compte {disabledAccount} està desactivat.", - "dismissable_banner.community_timeline": "Aquestes són les publicacions més recents d'usuaris amb el compte a {domain}.", + "dismissable_banner.community_timeline": "Aquests són els tuts públics més recents d'usuaris amb els seus comptes a {domain}.", "dismissable_banner.dismiss": "Ometre", "dismissable_banner.explore_links": "Gent d'aquest i d'altres servidors de la xarxa descentralitzada estan comentant ara mateix aquestes notícies.", "dismissable_banner.explore_statuses": "Aquests tuts d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.", @@ -259,7 +259,7 @@ "filter_modal.title.status": "Filtra un tut", "follow_recommendations.done": "Fet", "follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure els seus tuts! Aquí hi ha algunes recomanacions.", - "follow_recommendations.lead": "Les publicacions dels usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps d'Inici. No tinguis por de cometre errors, pots deixar de seguir-los en qualsevol moment!", + "follow_recommendations.lead": "Els tuts dels usuaris que segueixes es mostraran en ordre cronològic en la teva línia de temps Inici. No tinguis por en cometre errors, pots fàcilment deixar de seguir-los en qualsevol moment!", "follow_request.authorize": "Autoritza", "follow_request.reject": "Rebutja", "follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment d’aquests comptes.", @@ -289,7 +289,7 @@ "home.hide_announcements": "Amaga els anuncis", "home.show_announcements": "Mostra els anuncis", "interaction_modal.description.favourite": "Amb un compte a Mastodon pots afavorir aquesta publicació, que l'autor sàpiga que t'ha agradat i desar-la per a més endavant.", - "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre les seves publicacions en la teva línia de temps d'Inici.", + "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.", "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.", "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.", "interaction_modal.on_another_server": "A un altre servidor", @@ -418,7 +418,7 @@ "notifications.column_settings.reblog": "Impulsos:", "notifications.column_settings.show": "Mostra a la columna", "notifications.column_settings.sound": "Reprodueix so", - "notifications.column_settings.status": "Noves publicacions:", + "notifications.column_settings.status": "Nous tuts:", "notifications.column_settings.unread_notifications.category": "Notificacions no llegides", "notifications.column_settings.unread_notifications.highlight": "Destaca les notificacions no llegides", "notifications.column_settings.update": "Edicions:", @@ -475,7 +475,7 @@ "relative_time.today": "avui", "reply_indicator.cancel": "Cancel·la", "report.block": "Bloca", - "report.block_explanation": "No veuràs les seves publicacions. Ell no podran veure les teves ni seguir-te. Podran saber que estan blocats.", + "report.block_explanation": "No veuràs els seus tuts. Ells no podran veure els teus tuts ni et podran seguir. Podran saber que estan blocats.", "report.categories.other": "Altres", "report.categories.spam": "Brossa", "report.categories.violation": "El contingut viola una o més regles del servidor", @@ -488,7 +488,7 @@ "report.forward": "Reenvia a {target}", "report.forward_hint": "El compte és d'un altre servidor. Vols enviar-hi també una còpia anònima de l'informe?", "report.mute": "Silencia", - "report.mute_explanation": "No veuràs les seves publicacions. Encara pot seguir-te i veure les teves publicacions, però no sabrà que ha estat silenciat.", + "report.mute_explanation": "No veuràs els seus tuts. Encara poden seguir-te i veure els teus tuts, però no sabran que han estat silenciats.", "report.next": "Següent", "report.placeholder": "Comentaris addicionals", "report.reasons.dislike": "No m'agrada", @@ -510,7 +510,7 @@ "report.thanks.title": "No ho vols veure?", "report.thanks.title_actionable": "Gràcies per informar, ho investigarem.", "report.unfollow": "Deixa de seguir @{name}", - "report.unfollow_explanation": "Segueixes aquest compte. Per no veure les seves publicacions a la teva línia de temps d'Inici deixa de seguir-lo.", + "report.unfollow_explanation": "Estàs seguint aquest compte. Per no veure els seus tuts a la teva línia de temps d'Inici, deixa de seguir-lo.", "report_notification.attached_statuses": "{count, plural, one {{count} tut} other {{count} tuts}} adjunts", "report_notification.categories.other": "Altres", "report_notification.categories.spam": "Brossa", @@ -540,9 +540,9 @@ "server_banner.server_stats": "Estadístiques del servidor:", "sign_in_banner.create_account": "Registra'm", "sign_in_banner.sign_in": "Inicia sessió", - "sign_in_banner.text": "Inicia la sessió per seguir perfils o etiquetes, afavorir, compartir i respondre a publicacions o interactuar des del teu compte en un servidor diferent.", + "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts o interactuar des del teu compte en un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Obre la interfície de moderació per a @{domain}", "status.admin_status": "Obrir aquest tut a la interfície de moderació", "status.block": "Bloca @{name}", "status.bookmark": "Marca", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 64d1e0c00e..62c24583d1 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -128,7 +128,7 @@ "compose.language.search": "گەڕان بە زمانەکان...", "compose_form.direct_message_warning_learn_more": "زیاتر فێربه", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "ئەم توتە لە ژێر هیچ هاشتاگییەک دا ناکرێت وەک ئەوەی لە لیستەکەدا نەریزراوە. تەنها توتی گشتی دەتوانرێت بە هاشتاگی بگەڕێت.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.", "compose_form.lock_disclaimer.lock": "قفڵ دراوە", "compose_form.placeholder": "چی لە مێشکتدایە?", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 6c81b1e270..1820e511cd 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Amparà di più", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Stu statutu ùn hè \"Micca listatu\" è ùn sarà micca listatu indè e circate da hashtag. Per esse vistu in quesse, u statutu deve esse \"Pubblicu\".", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.", "compose_form.lock_disclaimer.lock": "privatu", "compose_form.placeholder": "À chè pensate?", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 0d68e144c2..0559cebf83 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -128,7 +128,7 @@ "compose.language.search": "Prohledat jazyky...", "compose_form.direct_message_warning_learn_more": "Zjistit více", "compose_form.encryption_warning": "Příspěvky na Mastodonu nejsou end-to-end šifrovány. Nesdílejte přes Mastodon žádné citlivé informace.", - "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, neboť je neveřejný. Pouze veřejné příspěvky mohou být vyhledány podle hashtagu.", + "compose_form.hashtag_warning": "Tento příspěvek nebude zobrazen pod žádným hashtagem, protože není veřejný. Podle hashtagu lze vyhledávat jen veřejné příspěvky.", "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": "zamčený", "compose_form.placeholder": "Co se vám honí hlavou?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Přihlásit se", "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbení, sdílení a odpovědí na příspěvky nebo interakci z vašeho účtu na jiném serveru.", "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Otevřít moderátorské rozhraní pro {domain}", "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní", "status.block": "Blokovat @{name}", "status.bookmark": "Přidat do záložek", @@ -559,7 +559,7 @@ "status.favourite": "Oblíbit", "status.filter": "Filtrovat tento příspěvek", "status.filtered": "Filtrováno", - "status.hide": "Hide post", + "status.hide": "Skrýt příspěvek", "status.history.created": "Uživatel {name} vytvořil {date}", "status.history.edited": "Uživatel {name} upravil {date}", "status.load_more": "Načíst více", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 9d6b839fe1..c854501fa6 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -128,7 +128,7 @@ "compose.language.search": "Chwilio ieithoedd...", "compose_form.direct_message_warning_learn_more": "Dysgu mwy", "compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth sensitif dros Mastodon.", - "compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.", + "compose_form.hashtag_warning": "Ni fydd y postiad hwn wedi ei restru o dan unrhyw hashnod gan nad yw'n gyhoeddus. Dim ond postiadau cyhoeddus y mae modd eu chwilio drwy hashnod.", "compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.", "compose_form.lock_disclaimer.lock": "wedi ei gloi", "compose_form.placeholder": "Beth sydd ar eich meddwl?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Mewngofnodi", "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ymateb i bostiadau, neu ryngweithio o'ch cyfrif ar weinydd gwahanol.", "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Agor rhyngwyneb cymedroli {domain}", "status.admin_status": "Agor y post hwn yn y rhyngwyneb goruwchwylio", "status.block": "Blocio @{name}", "status.bookmark": "Nod Tudalen", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 62bd7fd479..7438223664 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -128,7 +128,7 @@ "compose.language.search": "Søg efter sprog...", "compose_form.direct_message_warning_learn_more": "Få mere at vide", "compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information via Mastodon.", - "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, idet kun offentlige indlæg kan søges via hashtags.", + "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, da kun offentlige indlæg er søgbare via hashtags.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hvad tænker du på?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Log ind", "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, markere som favorit, dele og svare på indlæg eller interagere fra din konto på en anden server.", "status.admin_account": "Åbn modereringsbrugerflade for @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Åbn modereringsbrugerflade for {domain}", "status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen", "status.block": "Blokér @{name}", "status.bookmark": "Bogmærk", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index cf339e20cb..6659fb07f2 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -128,7 +128,7 @@ "compose.language.search": "Sprachen suchen …", "compose_form.direct_message_warning_learn_more": "Mehr erfahren", "compose_form.encryption_warning": "Beiträge auf Mastodon sind nicht Ende-zu-Ende-verschlüsselt. Teile keine sensiblen Informationen über Mastodon.", - "compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Timelines auf.", + "compose_form.hashtag_warning": "Dieser Beitrag wird unter keinem Hashtag sichtbar sein, weil er nicht öffentlich ist. Nur öffentliche Beiträge können nach Hashtags durchsucht werden.", "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere können dir folgen und deine Beiträge sehen, die nur für Follower bestimmt sind.", "compose_form.lock_disclaimer.lock": "geschützt", "compose_form.placeholder": "Was gibt's Neues?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Anmelden", "sign_in_banner.text": "Melde dich an, um Profilen oder Hashtags zu folgen, Beiträge zu favorisieren, zu teilen und auf sie zu antworten oder um von deinem Konto aus auf einem anderen Server zu interagieren.", "status.admin_account": "Moderationsoberfläche für @{name} öffnen", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Moderationsoberfläche für {domain} öffnen", "status.admin_status": "Diesen Beitrag in der Moderationsoberfläche öffnen", "status.block": "@{name} blockieren", "status.bookmark": "Beitrag als Lesezeichen setzen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 0b46b954b1..ad88129e93 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -128,7 +128,7 @@ "compose.language.search": "Αναζήτηση γλωσσών...", "compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα", "compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μην μοιράζεστε ευαίσθητες πληροφορίες μέσω του Mastodon.", - "compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.", "compose_form.lock_disclaimer.lock": "κλειδωμένο", "compose_form.placeholder": "Τι σκέφτεσαι;", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Σύνδεση", "sign_in_banner.text": "Συνδεθείτε για να ακολουθήσετε προφίλ ή ταμπέλες, αγαπημένα, να μοιραστείτε και να απαντήσετε σε δημοσιεύσεις ή να αλληλεπιδράσετε από το λογαριασμό σας σε διαφορετικό διακομιστή.", "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Άνοιγμα λειτουργίας διαμεσολάβησης για {domain}", "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης", "status.block": "Αποκλεισμός @{name}", "status.bookmark": "Σελιδοδείκτης", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index ecc84a5cf4..242569c4d0 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -295,7 +295,7 @@ "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", - "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.preamble": "Since Mastodon is decentralised, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", "interaction_modal.title.favourite": "Favourite {name}'s post", "interaction_modal.title.follow": "Follow {name}", "interaction_modal.title.reblog": "Boost {name}'s post", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index e875352bd2..de2f7e6709 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -81,7 +81,7 @@ "audio.hide": "Kaŝi aŭdion", "autosuggest_hashtag.per_week": "po {count} por semajno", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", - "bundle_column_error.copy_stacktrace": "Kopii la raporto de error", + "bundle_column_error.copy_stacktrace": "Kopii la eraran raporton", "bundle_column_error.error.body": "La petita paĝo ne povas redonitis. Eble estas eraro.", "bundle_column_error.error.title": "Ho, ve!", "bundle_column_error.network.body": "Okazis eraro dum ŝarĝado de ĉi tiu paĝo. Tion povas kaŭzi portempa problemo pri via retkonektado aŭ pri ĉi tiu servilo.", @@ -92,7 +92,7 @@ "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fermi", "bundle_modal_error.message": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", - "bundle_modal_error.retry": "Provu refoje", + "bundle_modal_error.retry": "Bonvolu reprovi", "closed_registrations.other_server_instructions": "Ĉar Mastodon estas malcentraliza, vi povas krei konton ĉe alia servilo kaj ankoraŭ komuniki kun ĉi tiu.", "closed_registrations_modal.description": "Krei konton ĉe {domain} aktuale ne eblas, tamen bonvole rimarku, ke vi ne bezonas konton specife ĉe {domain} por uzi Mastodon.", "closed_registrations_modal.find_another_server": "Trovi alian servilon", @@ -128,7 +128,7 @@ "compose.language.search": "Serĉi lingvojn...", "compose_form.direct_message_warning_learn_more": "Lerni pli", "compose_form.encryption_warning": "La afiŝoj en Mastodon ne estas tutvoje ĉifritaj. Ne kunhavigu tiklajn informojn ĉe Mastodon.", - "compose_form.hashtag_warning": "Ĉi tiu afiŝo ne estos listigita per ajna kradvorto. Nur publikaj afiŝoj estas serĉeblaj per kradvortoj.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn afiŝojn nur al la sekvantoj.", "compose_form.lock_disclaimer.lock": "ŝlosita", "compose_form.placeholder": "Kion vi pensas?", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 8bb9c4ae5f..cd6e91e679 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Iniciar sesión", "sign_in_banner.text": "Iniciá sesión para seguir cuentas o etiquetas, marcar mensajes como favoritos, compartirlos y responderlos o interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interface de moderación para @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Abrir interface de moderación para {domain}", "status.admin_status": "Abrir este mensaje en la interface de moderación", "status.block": "Bloquear a @{name}", "status.bookmark": "Marcar", @@ -559,7 +559,7 @@ "status.favourite": "Marcar como favorito", "status.filter": "Filtrar este mensaje", "status.filtered": "Filtrado", - "status.hide": "Hide post", + "status.hide": "Ocultar mensaje", "status.history.created": "Creado por {name} el {date}", "status.history.edited": "Editado por {name} el {date}", "status.load_more": "Cargar más", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 88938785d0..00c815554e 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -128,7 +128,7 @@ "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Aprender mas", "compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.", - "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag porque no está listada. Sólo las publicaciones públicas se pueden buscar por hashtag.", + "compose_form.hashtag_warning": "Este toot no será listado bajo ningún hashtag dado que no es público. Solo toots públicos pueden ser buscados 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?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Iniciar sesión", "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, marcar favorito, compartir y responder a publicaciones, o interactua desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir este estado en la interfaz de moderación", "status.block": "Bloquear a @{name}", "status.bookmark": "Añadir marcador", @@ -559,7 +559,7 @@ "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", - "status.hide": "Hide post", + "status.hide": "Ocultar toot", "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editado {date}", "status.load_more": "Cargar más", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 68f83bc8d0..3a0fcd30c3 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -128,7 +128,7 @@ "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Aprender más", "compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.", - "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag porque no está listada. Sólo las publicaciones públicas se pueden buscar por hashtag.", + "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ningún hashtag no está pública. Solo las publicaciones públicas se pueden buscar por hashtag.", "compose_form.lock_disclaimer": "Tu cuenta no está {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "¿En qué estás pensando?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Iniciar sesión", "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir este estado en la interfaz de moderación", "status.block": "Bloquear a @{name}", "status.bookmark": "Añadir marcador", @@ -559,7 +559,7 @@ "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", - "status.hide": "Hide post", + "status.hide": "Ocultar publicación", "status.history.created": "{name} creó {date}", "status.history.edited": "{name} editó {date}", "status.load_more": "Cargar más", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index f449d4d1b3..5b36f41e4e 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -6,7 +6,7 @@ "about.domain_blocks.preamble": "Mastodon lubab tavaliselt vaadata sisu ning suhelda kasutajatega ükskõik millisest teisest fediversumi serverist. Need on erandid, mis on paika pandud sellel kindlal serveril.", "about.domain_blocks.silenced.explanation": "Sa ei näe üldiselt profiile ja sisu sellelt serverilt, kui sa just tahtlikult seda ei otsi või jälgimise moel nõusolekut ei anna.", "about.domain_blocks.silenced.title": "Piiratud", - "about.domain_blocks.suspended.explanation": "Mitte mingeid andmeid sellelt serveritl ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse kasutajatega sellelt serverilt võimatuks.", + "about.domain_blocks.suspended.explanation": "Mitte mingeid andmeid sellelt serverilt ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse selle serveri kasutajatega võimatuks.", "about.domain_blocks.suspended.title": "Peatatud", "about.not_available": "See info ei ole sellel serveril saadavaks tehtud.", "about.powered_by": "Hajutatud sotsiaalmeedia, mille taga on {mastodon}", @@ -73,7 +73,7 @@ "admin.dashboard.retention.cohort": "Registreerumiskuu", "admin.dashboard.retention.cohort_size": "Uued kasutajad", "alert.rate_limited.message": "Palun proovi uuesti pärast {retry_time, time, medium}.", - "alert.rate_limited.title": "Piiratud", + "alert.rate_limited.title": "Kiiruspiirang", "alert.unexpected.message": "Tekkis ootamatu viga.", "alert.unexpected.title": "Oih!", "announcement.announcement": "Teadaanne", @@ -108,7 +108,7 @@ "column.favourites": "Lemmikud", "column.follow_requests": "Jälgimistaotlused", "column.home": "Kodu", - "column.lists": "Nimistud", + "column.lists": "Nimekirjad", "column.mutes": "Vaigistatud kasutajad", "column.notifications": "Teated", "column.pins": "Kinnitatud postitused", @@ -127,8 +127,8 @@ "compose.language.change": "Muuda keelt", "compose.language.search": "Otsi keeli...", "compose_form.direct_message_warning_learn_more": "Vaata täpsemalt", - "compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ärge jagage mingeid delikaatseid andmeid Mastodoni kaudu.", - "compose_form.hashtag_warning": "Seda postitust ei kuvata ühegi sildi all, sest see ei ole leitav avastustoimingute kaudu. Ainult avalikud postitused on sildi järgi otsitavad.", + "compose_form.encryption_warning": "Postitused Mastodonis ei ole otsast-otsani krüpteeritud. Ära jaga mingeid delikaatseid andmeid Mastodoni kaudu.", + "compose_form.hashtag_warning": "See postitus ei ilmu ühegi märksõna all, kuna pole avalik. Vaid avalikud postitused on märksõnade kaudu leitavad.", "compose_form.lock_disclaimer": "Su konto ei ole {locked}. Igaüks saab sind jälgida, et näha su ainult-jälgijatele postitusi.", "compose_form.lock_disclaimer.lock": "lukus", "compose_form.placeholder": "Millest mõtled?", @@ -159,7 +159,7 @@ "confirmations.delete_list.confirm": "Kustuta", "confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?", "confirmations.discard_edit_media.confirm": "Hülga", - "confirmations.discard_edit_media.message": "Teil on salvestamata muudatused meediakirjelduses või eelvaates, kas hülgame need?", + "confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?", "confirmations.domain_block.confirm": "Peida terve domeen", "confirmations.domain_block.message": "Oled ikka päris-päris kindel, et soovid blokeerida terve {domain}? Enamikel juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatavam. Sa ei näe selle domeeni sisu ühelgi avalikul ajajoonel või enda teadetes. Su jälgijad sellest domeenist eemaldatakse.", "confirmations.logout.confirm": "Välju", @@ -212,27 +212,27 @@ "empty_column.account_timeline": "Siin postitusi ei ole!", "empty_column.account_unavailable": "Profiil pole saadaval", "empty_column.blocks": "Blokeeritud kasutajaid pole.", - "empty_column.bookmarked_statuses": "Teil pole veel järjehoidjatesse lisatud postitusi. 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.bookmarked_statuses": "Järjehoidjatesse pole veel lisatud postitusi. Kui lisad mõne, näed neid siin.", + "empty_column.community": "Kohalik ajajoon on tühi. Kirjuta midagi avalikult, et pall veerema ajada!", + "empty_column.direct": "Ei ole 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.", "empty_column.explore_statuses": "Praegu pole ühtegi trendi. Tule hiljem tagasi!", - "empty_column.favourited_statuses": "Teil pole veel lemmikpostitusi. Kui märgite mõne, näete neid siin.", + "empty_column.favourited_statuses": "Pole veel lemmikpostitusi. Kui märgid mõne, näed neid siin.", "empty_column.favourites": "Keegi pole veel seda postitust lemmikuks märkinud. Kui seegi seda teeb, näed seda siin.", "empty_column.follow_recommendations": "Tundub, et sinu jaoks ei ole võimalik soovitusi luua. Proovi kasutada otsingut, et leida tuttavaid inimesi, või sirvi populaarseid silte.", - "empty_column.follow_requests": "Teil pole hetkel ühtegi jälgimistaotlust. Kui saate mõne, näete neid siin.", + "empty_column.follow_requests": "Pole hetkel ühtegi jälgimistaotlust. Kui saad mõne, näed neid siin.", "empty_column.hashtag": "Seda sildi all ei ole ühtegi postitust.", "empty_column.home": "Su koduajajoon on tühi. Jälgi rohkemaid inimesi, et seda täita {suggestions}", "empty_column.home.suggestions": "Vaata mõndasid soovitusi", "empty_column.list": "Siin loetelus pole veel midagi. Kui loetelu liikmed teevad uusi postitusi, näed neid siin.", - "empty_column.lists": "Teil pole 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.explanation_addons": "Seda lehte ei suudetud õigesti kuvada. See viga arvatavasti põhjustas mingi brauseri lisand või automaattõlke tööriist.", + "empty_column.lists": "Pole veel ühtegi nimekirja. Kui lood mõne, näed neid siin.", + "empty_column.mutes": "Sa pole veel ühtegi kasutajat vaigistanud.", + "empty_column.notifications": "Ei ole veel teateid. Kui keegi suhtleb sinuga, näed seda siin.", + "empty_column.public": "Siin pole midagi! Kirjuta midagi avalikku või jälgi ise kasutajaid täitmaks seda ruumi", + "error.unexpected_crash.explanation": "Meie poolse probleemi või veebilehitseja ühilduvusprobleemi tõttu ei suutnud me seda lehekülge korrektselt näidata.", + "error.unexpected_crash.explanation_addons": "Seda lehte ei suudetud õigesti kuvada. Selle vea põhjustas arvatavasti mõni lehitseja lisand või automaattõlke tööriist.", "error.unexpected_crash.next_steps": "Proovi lehekülge uuesti avada. Kui see ei aita, võib proovida kasutada Mastodoni mõne muu veebilehitseja või äpi kaudu.", - "error.unexpected_crash.next_steps_addons": "Proovi need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib olla võimalik Mastodoni kasutada mõne teise brauseri või rakendusega.", + "error.unexpected_crash.next_steps_addons": "Proovi need välja lülitada ja leht uuesti laadida. Kui sellest pole abi, võib siiski võimalik olla Mastodoni kasutada mõne teise lehitseja või rakendusega.", "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale", "errors.unexpected_crash.report_issue": "Teavita veast", "explore.search_results": "Otsitulemused", @@ -241,13 +241,13 @@ "explore.trending_links": "Uudised", "explore.trending_statuses": "Postitused", "explore.trending_tags": "Sildid", - "filter_modal.added.context_mismatch_explanation": "See filtrikategooria ei rakendu selles kontekstis, kuidas te postitusele jõudsite. Kui tahate postitust ka selles kontekstis filtreerida, võite muuta filtrit.", + "filter_modal.added.context_mismatch_explanation": "See filtrikategooria ei rakendu kontekstis, kuidas postituseni jõudsid. Kui tahad postitust ka selles kontekstis filtreerida, pead muutma filtrit.", "filter_modal.added.context_mismatch_title": "Konteksti mittesobivus!", - "filter_modal.added.expired_explanation": "Selle filtri kategooria on aegunud, peate muutma aegumiskuupäeva, kui tahate, et filter kehtiks.", + "filter_modal.added.expired_explanation": "Selle filtri kategooria on aegunud. pead muutma aegumiskuupäeva, kui tahad, et filter kehtiks.", "filter_modal.added.expired_title": "Aegunud filter!", - "filter_modal.added.review_and_configure": "Et vaadata üle ja täpsemalt seadistada seda filtrikategooriat, minge lehele {settings_link}.", + "filter_modal.added.review_and_configure": "Et vaadata üle ja täpsemalt seadistada seda filtrikategooriat, mine lehele {settings_link}.", "filter_modal.added.review_and_configure_title": "Filtrite sätted", - "filter_modal.added.settings_link": "sättete leht", + "filter_modal.added.settings_link": "sätete leht", "filter_modal.added.short_explanation": "See postitus on lisatud järgmisesse filtrikategooriasse: {title}.", "filter_modal.added.title": "Filter lisatud!", "filter_modal.select_filter.context_mismatch": "ei avaldu selles kontekstis", @@ -288,14 +288,14 @@ "home.column_settings.show_replies": "Näita vastuseid", "home.hide_announcements": "Peida teadaanded", "home.show_announcements": "Kuva teadaandeid", - "interaction_modal.description.favourite": "Mastodoni kontoga saate seda postitust lemmikuks märkida, et autor teaks, et te seda hindate ja hiljemaks alles jätta.", - "interaction_modal.description.follow": "Mastodoni kontoga saate jälgida kasutajat {name}, et tema postitusi oma kodu ajajoonel näha.", + "interaction_modal.description.favourite": "Mastodoni kontoga saad selle postituse lemmikuks märkida, et autor teaks, et sa hindad seda, ja hiljemaks alles jätta.", + "interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma kodu ajajoonel näha.", "interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.", - "interaction_modal.description.reply": "Mastodoni kontoga saate sellele postitusele vastata.", + "interaction_modal.description.reply": "Mastodoni kontoga saad sellele postitusele vastata.", "interaction_modal.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", - "interaction_modal.other_server_instructions": "Kopeeri ja aseta see URL oma lemmikusse Mastodoni äppi või oma Mastodoni serveri veebiliidesesse.", - "interaction_modal.preamble": "Kuna Mastodon on detsentraliseeritud, võite kasutada olemasolevat kontot, mis on teises Mastodoni servers või ühilduval platvormil, kui teil siin kontot ei ole.", + "interaction_modal.other_server_instructions": "Kopeeri ja kleebi see URL oma Mastodoni lemmikäppi või Mastodoni serveri veebiliidesesse.", + "interaction_modal.preamble": "Kuna Mastodon on detsentraliseeritud, saab kasutada teises Mastodoni serveris olevat kontot või ka ühilduval platvormil, kui siin serveril kontot ei ole.", "interaction_modal.title.favourite": "Lisa konto {name} postitus lemmikuks", "interaction_modal.title.follow": "Jälgi kontot {name}", "interaction_modal.title.reblog": "Jaga {name} postitust", @@ -327,7 +327,7 @@ "keyboard_shortcuts.open_media": "Ava meedia", "keyboard_shortcuts.pinned": "Ava kinnitatud postituste loetelu", "keyboard_shortcuts.profile": "Ava autori profiil", - "keyboard_shortcuts.reply": "vastamiseks", + "keyboard_shortcuts.reply": "Vasta postitusele", "keyboard_shortcuts.requests": "Ava jälgimistaotluste loetelu", "keyboard_shortcuts.search": "Fookus otsingule", "keyboard_shortcuts.spoilers": "Näita/peida CW väli", @@ -344,25 +344,25 @@ "lightbox.previous": "Eelmine", "limited_account_hint.action": "Näita profilli sellegipoolest", "limited_account_hint.title": "See profiil on peidetud {domain} moderaatorite poolt.", - "lists.account.add": "Lisa nimistusse", - "lists.account.remove": "Eemalda nimistust", - "lists.delete": "Kustuta nimistu", - "lists.edit": "Muuda nimistut", + "lists.account.add": "Lisa nimekirja", + "lists.account.remove": "Eemalda nimekirjast", + "lists.delete": "Kustuta nimekiri", + "lists.edit": "Muuda nimekirja", "lists.edit.submit": "Pealkirja muutmine", - "lists.new.create": "Lisa nimistu", - "lists.new.title_placeholder": "Uue nimistu pealkiri", + "lists.new.create": "Lisa nimekiri", + "lists.new.title_placeholder": "Uue nimekirja pealkiri", "lists.replies_policy.followed": "Igalt jälgitud kasutajalt", "lists.replies_policy.list": "Listi liikmetelt", - "lists.replies_policy.none": "Mitte kellegilt", + "lists.replies_policy.none": "Mitte kelleltki", "lists.replies_policy.title": "Näita vastuseid nendele:", "lists.search": "Otsi enda jälgitavate inimeste hulgast", - "lists.subheading": "Su loetelud", + "lists.subheading": "Sinu nimekirjad", "load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}", "loading_indicator.label": "Laeb..", "media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}", "missing_indicator.label": "Ei leitud", "missing_indicator.sublabel": "Seda ressurssi ei leitud", - "moved_to_account_banner.text": "Su kontot {disabledAccount} ei ole praegu võimalik kasutada, sest kolisid kontole {movedToAccount}.", + "moved_to_account_banner.text": "Kontot {disabledAccount} ei ole praegu võimalik kasutada, sest kolisid kontole {movedToAccount}.", "mute_modal.duration": "Kestus", "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.indefinite": "Lõpmatu", @@ -380,7 +380,7 @@ "navigation_bar.filters": "Vaigistatud sõnad", "navigation_bar.follow_requests": "Jälgimistaotlused", "navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad", - "navigation_bar.lists": "Nimistud", + "navigation_bar.lists": "Nimekirjad", "navigation_bar.logout": "Logi välja", "navigation_bar.mutes": "Vaigistatud kasutajad", "navigation_bar.personal": "Isiklik", @@ -389,7 +389,7 @@ "navigation_bar.public_timeline": "Föderatiivne ajajoon", "navigation_bar.search": "Otsing", "navigation_bar.security": "Turvalisus", - "not_signed_in_indicator.not_signed_in": "Peate logima sisse, et saada ligipääsu sellele ressursile.", + "not_signed_in_indicator.not_signed_in": "Pead sisse logima, et saada ligipääsu sellele ressursile.", "notification.admin.report": "{name} saatis teavituse {target} kohta", "notification.admin.sign_up": "{name} registreerus", "notification.favourite": "{name} märkis su postituse lemmikuks", @@ -397,7 +397,7 @@ "notification.follow_request": "{name} soovib teid jälgida", "notification.mention": "{name} mainis teid", "notification.own_poll": "Su küsitlus on lõppenud", - "notification.poll": "Küsitlus, milles osalesite, on lõppenud", + "notification.poll": "Küsitlus, milles osalesid, on lõppenud", "notification.reblog": "{name} jagas edasi postitust", "notification.status": "{name} just postitas", "notification.update": "{name} muutis postitust", @@ -428,16 +428,16 @@ "notifications.filter.follows": "Jälgib", "notifications.filter.mentions": "Mainimised", "notifications.filter.polls": "Küsitluse tulemused", - "notifications.filter.statuses": "Uuendused inimestelt, keda te jälgite", + "notifications.filter.statuses": "Uuendused inimestelt, keda jälgid", "notifications.grant_permission": "Anna luba.", "notifications.group": "{count} teated", "notifications.mark_as_read": "Märgi kõik teated loetuks", - "notifications.permission_denied": "Töölaua märguanded pole seadaval, kuna eelnevalt keelduti brauserile teavituste luba anda", + "notifications.permission_denied": "Töölauamärguanded pole saadaval, kuna eelnevalt keelduti lehitsejale teavituste luba andmast", "notifications.permission_denied_alert": "Töölaua märguandeid ei saa lubada, kuna brauseri luba on varem keeldutud", "notifications.permission_required": "Töölaua märguanded ei ole saadaval, kuna vajalik luba pole antud.", "notifications_permission_banner.enable": "Luba töölaua märguanded", - "notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tegevused tekitavad töölauamärguandeid kasutates selleks peale teavituste sisse lülitamist {icon} nuppu üleval.", - "notifications_permission_banner.title": "Ärge jääge millestki ilma", + "notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tüüpi tegevused tekitavad märguandeid, kasutates peale teadaannete sisse lülitamist üleval olevat nuppu {icon}.", + "notifications_permission_banner.title": "Ära jää millestki ilma", "picture_in_picture.restore": "Pane tagasi", "poll.closed": "Suletud", "poll.refresh": "Värskenda", @@ -461,7 +461,7 @@ "privacy_policy.title": "Isikuandmete kaitse", "refresh": "Värskenda", "regeneration_indicator.label": "Laeb…", - "regeneration_indicator.sublabel": "Su kodu voog on ettevalmistamisel!", + "regeneration_indicator.sublabel": "Su koduvoog on ettevalmistamisel!", "relative_time.days": "{number}p", "relative_time.full.days": "{number, plural, one {# päev} other {# päeva}} tagasi", "relative_time.full.hours": "{number, plural, one {# tund} other {# tundi}} tagasi", @@ -479,12 +479,12 @@ "report.categories.other": "Muud", "report.categories.spam": "Rämpspost", "report.categories.violation": "Sisu, mis rikub ühte või enamat serveri reeglit", - "report.category.subtitle": "Valige parim vaste", + "report.category.subtitle": "Vali parim vaste", "report.category.title": "Selgita, mis on selle {type} valesti", "report.category.title_account": "kontoga", "report.category.title_status": "postitusega", "report.close": "Valmis", - "report.comment.title": "Kas on midagi veel, mis te arvate, et me peaks teadma?", + "report.comment.title": "Kas arvad, et on veel midagi, mida me peaks teadma?", "report.forward": "Edasta kasutajale {target}", "report.forward_hint": "See kasutaja on teisest serverist. Kas saadan anonümiseeritud koopia sellest teatest sinna ka?", "report.mute": "Vaigista", @@ -492,25 +492,25 @@ "report.next": "Järgmine", "report.placeholder": "Lisaks kommentaarid", "report.reasons.dislike": "Mulle ei meeldi see", - "report.reasons.dislike_description": "Midagi sellist, mida te ei taha näha", + "report.reasons.dislike_description": "See on midagi sellist, mida sa näha ei taha", "report.reasons.other": "Midagi muud", "report.reasons.other_description": "Probleem ei sobi teistesse kategooriatesse", "report.reasons.spam": "See on rämpspost", "report.reasons.spam_description": "Pahatahtlikud lingid, võltssuhtlus või korduvad vastused", "report.reasons.violation": "Rikub serveri reegleid", - "report.reasons.violation_description": "Teate, et see rikub teatud reegleid", - "report.rules.subtitle": "Valige kõik, mis sobivad", + "report.reasons.violation_description": "Tead, et see rikub teatud reegleid", + "report.rules.subtitle": "Vali kõik, mis sobivad", "report.rules.title": "Milliseid reegleid rikutakse?", - "report.statuses.subtitle": "Valige kõik, mis sobivad", + "report.statuses.subtitle": "Vali kõik, mis sobivad", "report.statuses.title": "Kas on olemas postitusi, mis on sellele teavitusele tõenduseks?", "report.submit": "Esita", "report.target": "Teatamine {target} kohta", - "report.thanks.take_action": "Need on võimalused, mis teil on, et juhtida, mida Mastodonis näete:", - "report.thanks.take_action_actionable": "Kuniks me seda üle vaatame, võite teha need tegevused @{name} vastu:", + "report.thanks.take_action": "Need on su võimalused määrata, mida Mastodonis näed:", + "report.thanks.take_action_actionable": "Kuniks me seda üle vaatame, võid @{name} vastu teha need tegevused:", "report.thanks.title": "Ei taha seda näha?", "report.thanks.title_actionable": "Täname teavitamise eest, uurime seda.", "report.unfollow": "Lõpeta @{name} jälgimine", - "report.unfollow_explanation": "Te jälgite seda kontot. Et mitte näha tema postitusi oma kodu ajajoonel, lõpetage tema jälgimine.", + "report.unfollow_explanation": "Jälgid seda kontot. Et mitte näha tema postitusi oma kodu ajajoonel, lõpeta ta jälgimine.", "report_notification.attached_statuses": "{count, plural, one {{count} postitus} other {{count} postitust}} listatud", "report_notification.categories.other": "Muu", "report_notification.categories.spam": "Rämpspost", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Logi sisse", "sign_in_banner.text": "Logi sisse, et jälgida profiile või silte, märkida lemmikuks, jagada ja vastata postitustele või kasutada suhtlemiseks kontot teises serveris.", "status.admin_account": "Ava @{name} moderaatorivaates", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Ava {domain} modeereerimisliides", "status.admin_status": "Ava postitus moderaatorivaates", "status.block": "Blokeeri @{name}", "status.bookmark": "Järjehoidja", @@ -559,7 +559,7 @@ "status.favourite": "Lemmik", "status.filter": "Filtreeri seda postitust", "status.filtered": "Filtreeritud", - "status.hide": "Hide post", + "status.hide": "Peida postitus", "status.history.created": "{name} lõi {date}", "status.history.edited": "{name} muutis {date}", "status.load_more": "Lae rohkem", @@ -597,7 +597,7 @@ "status.unpin": "Eemalda profiilile kinnitus", "subscribed_languages.lead": "Pärast muudatust näed koduvaates ja loetelude ajajoontel postitusi valitud keeltes. Ära vali midagi, kui tahad näha postitusi kõikides keeltes.", "subscribed_languages.save": "Salvesta muudatused", - "subscribed_languages.target": "Muutke tellitud keeli {target} jaoks", + "subscribed_languages.target": "Muuda tellitud keeli {target} jaoks", "suggestions.dismiss": "Eira soovitust", "suggestions.header": "Teid võib huvitada…", "tabs_bar.federated_timeline": "Föderatiivne", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index c9115e4707..9f771a8115 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -128,7 +128,7 @@ "compose.language.search": "Bilatu hizkuntzak...", "compose_form.direct_message_warning_learn_more": "Ikasi gehiago", "compose_form.encryption_warning": "Mastodoneko bidalketak ez daude muturretik muturrera enkriptatuta. Ez partekatu informazio sentikorrik Mastodonen.", - "compose_form.hashtag_warning": "Bidalketa hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan bidalketa publikoak besterik ez dira agertzen.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.", "compose_form.lock_disclaimer.lock": "giltzapetuta", "compose_form.placeholder": "Zer duzu buruan?", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index c44051d3a1..a58d9824af 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -128,7 +128,7 @@ "compose.language.search": "جست‌وجوی زبان‌ها…", "compose_form.direct_message_warning_learn_more": "بیشتر بدانید", "compose_form.encryption_warning": "فرسته‌های ماستودون رمزگذاری سرتاسری نشده‌اند. هیچ اطّلاعات حساسی را روی ماستودون هم‌رسانی نکنید.", - "compose_form.hashtag_warning": "از آن‌جا که این فرسته فهرست نشده است، در نتایج جست‌وجوی هشتگ‌ها پیدا نخواهد شد. تنها فرسته‌های عمومی را می‌توان با جست‌وجوی هشتگ یافت.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.", "compose_form.lock_disclaimer.lock": "قفل‌شده", "compose_form.placeholder": "تازه چه خبر؟", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index cc7633f228..0f2428308f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -28,7 +28,7 @@ "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin viesti {date}", "account.featured_tags.last_status_never": "Ei viestejä", - "account.featured_tags.title": "{name} esillä olevat hashtagit", + "account.featured_tags.title": "Käyttäjän {name} esillä olevat aihetunnisteet", "account.follow": "Seuratut", "account.followers": "Seuraajat", "account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.", @@ -128,7 +128,7 @@ "compose.language.search": "Hae kieliä...", "compose_form.direct_message_warning_learn_more": "Lisätietoja", "compose_form.encryption_warning": "Mastodonin viestit eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.", - "compose_form.hashtag_warning": "Tätä julkaisua listata minkään hastagin alle, koska se on listaamaton. Ainoastaan julkisia julkaisuja etsiä hastageilla.", + "compose_form.hashtag_warning": "Tätä julkaisua ei voi liittää aihetunnisteisiin, koska se ei ole julkinen. Vain näkyvyydeltään julkisiksi määritettyjä julkaisuja voidaan hakea aihetunnisteiden avulla.", "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.", "compose_form.lock_disclaimer.lock": "lukittu", "compose_form.placeholder": "Mitä sinulla on mielessäsi?", @@ -189,7 +189,7 @@ "dismissable_banner.dismiss": "Hylkää", "dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", "dismissable_banner.explore_statuses": "Nämä viestit juuri nyt tältä ja muilta hajautetun verkon palvelimilta ovat saamassa vetoa tältä palvelimelta.", - "dismissable_banner.explore_tags": "Nämä hashtagit juuri nyt ovat saamassa vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", + "dismissable_banner.explore_tags": "Nämä aihetunnisteet saavat juuri nyt vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkisia viestejä ihmisiltä, jotka ovat tällä ja muilla hajautetun verkon palvelimilla, joista tämä palvelin tietää.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", @@ -219,7 +219,7 @@ "empty_column.explore_statuses": "Mikään ei ole nyt trendi. Tarkista myöhemmin!", "empty_column.favourited_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", - "empty_column.follow_recommendations": "Näyttää siltä, että sinulle ei voi luoda ehdotuksia. Voit yrittää etsiä ihmisiä, jotka saatat tuntea tai tutkia trendaavia aihesanoja.", + "empty_column.follow_recommendations": "Näyttää siltä, että sinulle ei voi luoda ehdotuksia. Voit yrittää etsiä ihmisiä, jotka saatat tuntea tai tutkia trendaavia aihetunnisteita.", "empty_column.follow_requests": "Et ole vielä vastaanottanut seurauspyyntöjä. Saamasi pyynnöt näytetään täällä.", "empty_column.hashtag": "Tällä hashtagilla ei ole vielä mitään.", "empty_column.home": "Kotisi aikajana on tyhjä! Seuraa lisää ihmisiä täyttääksesi sen. {suggestions}", @@ -281,8 +281,8 @@ "hashtag.column_settings.tag_mode.any": "Mikä tahansa näistä", "hashtag.column_settings.tag_mode.none": "Ei mitään näistä", "hashtag.column_settings.tag_toggle": "Sisällytä lisätunnisteet tähän sarakkeeseen", - "hashtag.follow": "Seuraa hashtagia", - "hashtag.unfollow": "Lopeta seuraaminen hashtagilla", + "hashtag.follow": "Seuraa aihetunnistetta", + "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä buustaukset", "home.column_settings.show_replies": "Näytä vastaukset", @@ -519,10 +519,10 @@ "search.placeholder": "Hae", "search.search_or_paste": "Etsi tai kirjoita URL-osoite", "search_popout.search_format": "Tarkennettu haku", - "search_popout.tips.full_text": "Tekstihaku listaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja hastagit.", + "search_popout.tips.full_text": "Tekstihaku listaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja aihetunnisteet.", "search_popout.tips.hashtag": "aihetunnisteet", "search_popout.tips.status": "julkaisu", - "search_popout.tips.text": "Tekstihaku listaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit", + "search_popout.tips.text": "Tekstihaku listaa hakua vastaavat nimimerkit, käyttäjänimet ja aihetunnisteet", "search_popout.tips.user": "käyttäjä", "search_results.accounts": "Ihmiset", "search_results.all": "Kaikki", @@ -540,9 +540,9 @@ "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", "sign_in_banner.sign_in": "Kirjaudu sisään", - "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai hashtageja, lisätäksesi suosikkeihin, jakaaksesi viestejä ja vastataksesi niihin tai ollaksesi vuorovaikutuksessa tililläsi toisella palvelimella.", + "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, lisätäksesi suosikkeihin, jakaaksesi julkaisuja ja vastataksesi niihin tai ollaksesi vuorovaikutuksessa tililläsi toisella palvelimella.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot", "status.admin_status": "Avaa julkaisu moderointinäkymässä", "status.block": "Estä @{name}", "status.bookmark": "Tallenna kirjanmerkki", @@ -559,7 +559,7 @@ "status.favourite": "Lisää suosikkeihin", "status.filter": "Suodata tämä viesti", "status.filtered": "Suodatettu", - "status.hide": "Hide post", + "status.hide": "Piilota viesti", "status.history.created": "{name} luotu {date}", "status.history.edited": "{name} muokkasi {date}", "status.load_more": "Lataa lisää", @@ -610,8 +610,8 @@ "time_remaining.moments": "Hetki jäljellä", "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä", "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.", - "timeline_hint.resources.followers": "Seuraajat", - "timeline_hint.resources.follows": "seurattua", + "timeline_hint.resources.followers": "Seuraajia", + "timeline_hint.resources.follows": "Seurattuja", "timeline_hint.resources.statuses": "Vanhemmat julkaisut", "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeisten {days, plural, one {päivän} other {{days} päivän}}", "trends.trending_now": "Suosittua nyt", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 48f9e9e4d0..1841df0583 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -128,7 +128,7 @@ "compose.language.search": "Leita eftir málum...", "compose_form.direct_message_warning_learn_more": "Fleiri upplýsingar", "compose_form.encryption_warning": "Postar á Mastodon eru ikki bronglaðir úr enda í annan. Lat vera við at deila viðkvæmar upplýsingar á Mastodon.", - "compose_form.hashtag_warning": "Hesin posturin verður ikki listaður undir nøkrum frámerki, tí hann er ólistaður. Tað ber einans til at leita eftir almennum postum eftir frámerki.", + "compose_form.hashtag_warning": "Hesin posturin verður ikki listaður undir nøkrum frámerki, tí hann er ikki almennur. Tað ber einans til at leita eftir almennum postum eftir frámerki.", "compose_form.lock_disclaimer": "Kontoin hjá tær er ikki {locked}. Øll kunnu fylgja tær og lesa tað, tú bert letur fyljgarar lesa.", "compose_form.lock_disclaimer.lock": "læst", "compose_form.placeholder": "Hvat hevur tú í huga?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Rita inn", "sign_in_banner.text": "Innrita fyri at fylgja vangum og frámerkjum, seta yndismerki á, deila og svara postum, ella at brúka kontuna til at samvirka á einum øðrum ambætara.", "status.admin_account": "Lat kjakleiðaramarkamót upp fyri @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Lat umsjónarmarkamót upp fyri {domain}", "status.admin_status": "Lat hendan postin upp í kjakleiðaramarkamótinum", "status.block": "Blokera @{name}", "status.bookmark": "Goym", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index d09c9e1ff5..89c3e7644d 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -128,7 +128,7 @@ "compose.language.search": "Rechercher des langues…", "compose_form.direct_message_warning_learn_more": "En savoir plus", "compose_form.encryption_warning": "Les publications sur Mastodon ne sont pas chiffrées de bout en bout. Veuillez ne partager aucune information sensible sur Mastodon.", - "compose_form.hashtag_warning": "Cette publication ne sera pas listée dans les recherches par hashtag car sa visibilité est réglée sur « non listée ». Seuls les publications avec visibilité « publique » peuvent être recherchées par hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos publications privés.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "À quoi pensez-vous?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Se connecter", "sign_in_banner.text": "Connectez-vous pour suivre les profils ou les hashtags, ajouter aux favoris, partager et répondre aux publications, ou interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", "status.admin_status": "Ouvrir ce message dans l’interface de modération", "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux signets", @@ -559,7 +559,7 @@ "status.favourite": "Ajouter aux favoris", "status.filter": "Filtrer cette publication", "status.filtered": "Filtrée", - "status.hide": "Hide post", + "status.hide": "Masquer la publication", "status.history.created": "créé par {name} {date}", "status.history.edited": "modifié par {name} {date}", "status.load_more": "Charger plus", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 938378d4d5..42085dc220 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -128,7 +128,7 @@ "compose.language.search": "Rechercher des langues …", "compose_form.direct_message_warning_learn_more": "En savoir plus", "compose_form.encryption_warning": "Les messages sur Mastodon ne sont pas chiffrés de bout en bout. Ne partagez aucune information sensible sur Mastodon.", - "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur « non listé ». Seuls les pouets avec une visibilité « publique » peuvent être recherchés par hashtag.", + "compose_form.hashtag_warning": "Ce message n'apparaîtra pas dans les listes de hashtags, car il n'est pas public. Seuls les messages publics peuvent appaître dans les recherches par hashtags.", "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos messages privés.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "Qu’avez-vous en tête ?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Se connecter", "sign_in_banner.text": "Connectez-vous pour suivre les profils ou les hashtags, ajouter aux favoris, partager et répondre aux messages, ou interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", "status.admin_status": "Ouvrir ce message dans l’interface de modération", "status.block": "Bloquer @{name}", "status.bookmark": "Ajouter aux marque-pages", @@ -559,7 +559,7 @@ "status.favourite": "Ajouter aux favoris", "status.filter": "Filtrer ce message", "status.filtered": "Filtré", - "status.hide": "Hide post", + "status.hide": "Masquer la publication", "status.history.created": "créé par {name} {date}", "status.history.edited": "édité par {name} {date}", "status.load_more": "Charger plus", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 33a2a59889..9cbf32e5c9 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -128,7 +128,7 @@ "compose.language.search": "Talen sykje…", "compose_form.direct_message_warning_learn_more": "Mear ynfo", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Dit berjocht falt net ûnder in hashtag te besjen, omdat dizze net op iepenbiere tiidlinen toand wurdt. Allinnich iepenbiere berjochten kinne fia hashtags fûn wurde.", + "compose_form.hashtag_warning": "Dit berjocht falt net ûnder in hashtag te besjen, omdat dizze net op iepenbier is. Allinnich iepenbiere berjochten kinne fia hashtags fûn wurde.", "compose_form.lock_disclaimer": "Jo account is net {locked}. Elkenien kin jo folgje en kin de berjochten sjen dy’t jo allinnich oan jo folgers rjochte hawwe.", "compose_form.lock_disclaimer.lock": "beskoattele", "compose_form.placeholder": "Wat wolle jo kwyt?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Oanmelde", "sign_in_banner.text": "Wannear’t jo in account op dizze server hawwe, kinne jo oanmelde om minsken of hashtags te folgjen, op berjochten te reagearjen of om dizze te dielen. Wannear’t jo in account op in oare server hawwe, kinne jo dêr oanmelde en dêr ynteraksje mei minsken op dizze server hawwe.", "status.admin_account": "Moderaasje-omjouwing fan @{name} iepenje", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Moderaasje-omjouwing fan {domain} iepenje", "status.admin_status": "Open this status in the moderation interface", "status.block": "@{name} blokkearje", "status.bookmark": "Blêdwizer tafoegje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index bd9a838533..b5e2fbd8ce 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -128,7 +128,7 @@ "compose.language.search": "Cuardaigh teangacha...", "compose_form.direct_message_warning_learn_more": "Tuilleadh eolais", "compose_form.encryption_warning": "Ní criptiú taobh-go-taobh déanta ar theachtaireachtaí ar Mhastodon. Ná roinn eolas íogair ar Mhastodon.", - "compose_form.hashtag_warning": "Ní áireofar an teachtaireacht seo faoi haischlib ar bith mar go bhfuil sí neamhliostaithe. Ní féidir ach teachtaireachtaí poiblí a chuardach de réir haischlib.", + "compose_form.hashtag_warning": "Ní áireofar an teachtaireacht seo faoi haischlib ar bith mar níl sí ar fáil don phobal. Ní féidir ach teachtaireachtaí poiblí a chuardach de réir haischlib.", "compose_form.lock_disclaimer": "Níl an cuntas seo {locked}. Féadfaidh duine ar bith tú a leanúint agus na postálacha atá dírithe agat ar do lucht leanúna amháin a fheiceáil.", "compose_form.lock_disclaimer.lock": "faoi ghlas", "compose_form.placeholder": "Cad atá ag tarlú?", @@ -240,7 +240,7 @@ "explore.title": "Féach thart", "explore.trending_links": "Nuacht", "explore.trending_statuses": "Postálacha", - "explore.trending_tags": "Hashtags", + "explore.trending_tags": "Haischlibeanna", "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", "filter_modal.added.context_mismatch_title": "Context mismatch!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", @@ -538,7 +538,7 @@ "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", "server_banner.learn_more": "Tuilleadh eolais", "server_banner.server_stats": "Server stats:", - "sign_in_banner.create_account": "Create account", + "sign_in_banner.create_account": "Cruthaigh cuntas", "sign_in_banner.sign_in": "Sinigh isteach", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", @@ -557,9 +557,9 @@ "status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}", "status.embed": "Leabaigh", "status.favourite": "Rogha", - "status.filter": "Filter this post", + "status.filter": "Déan scagadh ar an bpostáil seo", "status.filtered": "Filtered", - "status.hide": "Hide post", + "status.hide": "Cuir postáil i bhfolach", "status.history.created": "{name} created {date}", "status.history.edited": "Curtha in eagar ag {name} in {date}", "status.load_more": "Lódáil a thuilleadh", @@ -570,7 +570,7 @@ "status.mute_conversation": "Balbhaigh comhrá", "status.open": "Expand this status", "status.pin": "Pionnáil ar do phróifíl", - "status.pinned": "Pinned post", + "status.pinned": "Postáil pionnáilte", "status.read_more": "Léan a thuilleadh", "status.reblog": "Mol", "status.reblog_private": "Mol le léargas bunúsach", @@ -632,7 +632,7 @@ "upload_form.video_description": "Describe for people with hearing loss or visual impairment", "upload_modal.analyzing_picture": "Ag anailísiú íomhá…", "upload_modal.apply": "Cuir i bhFeidhm", - "upload_modal.applying": "Applying…", + "upload_modal.applying": "Á gcur i bhfeidhm…", "upload_modal.choose_image": "Roghnaigh íomhá", "upload_modal.description_placeholder": "Chuaigh bé mhórsách le dlúthspád fíorfhinn trí hata mo dhea-phorcáin bhig", "upload_modal.detect_text": "Detect text from picture", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index db03860ee4..995bb585dc 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -128,7 +128,7 @@ "compose.language.search": "Lorg cànan…", "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh", "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh dìomhair idir le Mastodon.", - "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais on a tha e falaichte o liostaichean. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Chan eil an cunntas agad {locked}. ’S urrainn do dhuine sam bith ’gad leantainn is na postaichean agad a tha ag amas air an luchd-leantainn agad a-mhàin a shealltainn.", "compose_form.lock_disclaimer.lock": "glaiste", "compose_form.placeholder": "Dè tha air d’ aire?", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index b08aad21e7..d430a5a8df 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -128,7 +128,7 @@ "compose.language.search": "Buscar idiomas...", "compose_form.direct_message_warning_learn_more": "Saber máis", "compose_form.encryption_warning": "As publicacións en Mastodon non están cifradas de extremo-a-extremo. Non compartas información sensible en Mastodon.", - "compose_form.hashtag_warning": "Esta publicación non aparecerá baixo ningún cancelo (hashtag) porque non está listada. Só se poden procurar publicacións públicas por cancelos.", + "compose_form.hashtag_warning": "Esta publicación non aparecerá incluída na lista dos cancelos xa que non é pública. Só se poden buscar cancelos nas publicacións públicas.", "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": "Que contas?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Acceder", "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorita, responder a publicacións ou interactuar con outro servidor desde a túa conta.", "status.admin_account": "Abrir interface de moderación para @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Abrir interface de moderación para {domain}", "status.admin_status": "Abrir esta publicación na interface de moderación", "status.block": "Bloquear a @{name}", "status.bookmark": "Marcar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 116bd2c5dd..eb558a8637 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -128,7 +128,7 @@ "compose.language.search": "חיפוש שפות...", "compose_form.direct_message_warning_learn_more": "מידע נוסף", "compose_form.encryption_warning": "הודעות במסטודון לא מוצפנות מקצה לקצה. אל תשתפו מידע רגיש במסטודון.", - "compose_form.hashtag_warning": "הודעה זו לא תרשם תחת תגיות הקבצה (האשטאגים) היות והנראות שלה היא 'לא רשום'. רק הודעות ציבוריות יכולות להימצא באמצעות תגיות הקבצה.", + "compose_form.hashtag_warning": "הודעה זו לא תרשם תחת תגיות הקבצה היות והנראות שלה איננה 'ציבורית'. רק הודעות ציבוריות ימצאו בחיפוש תגיות הקבצה.", "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.", "compose_form.lock_disclaimer.lock": "נעול", "compose_form.placeholder": "על מה את/ה חושב/ת ?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "התחברות", "sign_in_banner.text": "יש להתחבר כדי לעקוב אחרי משתמשים או תגיות, לחבב, לשתף ולענות לחצרוצים, או לנהל תקשורת מהחשבון שלך על שרת אחר.", "status.admin_account": "פתח/י ממשק ניהול עבור @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "פתיחת ממשק ניהול עבור {domain}", "status.admin_status": "Open this status in the moderation interface", "status.block": "חסימת @{name}", "status.bookmark": "סימניה", @@ -559,7 +559,7 @@ "status.favourite": "חיבוב", "status.filter": "סנן הודעה זו", "status.filtered": "סונן", - "status.hide": "החבא הודעה", + "status.hide": "הסתר הודעה", "status.history.created": "{name} יצר/ה {date}", "status.history.edited": "{name} ערך/ה {date}", "status.load_more": "עוד", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index d63838002e..70edbbe5ef 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -128,7 +128,7 @@ "compose.language.search": "भाषाएँ खोजें...", "compose_form.direct_message_warning_learn_more": "और जानें", "compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है। कोई भी व्यक्तिगत जानकारी मास्टोडॉन पर मत भेजें।", - "compose_form.hashtag_warning": "यह टूट् किसी भी हैशटैग के तहत सूचीबद्ध नहीं होगा क्योंकि यह अनलिस्टेड है। हैशटैग द्वारा केवल सार्वजनिक टूट्स खोजे जा सकते हैं।", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।", "compose_form.lock_disclaimer.lock": "लॉक्ड", "compose_form.placeholder": "What is on your mind?", @@ -300,8 +300,8 @@ "interaction_modal.title.follow": "फॉलो {name}", "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट", "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", + "intervals.full.days": "{number, plural,one {# दिन} other {# दिन}}", + "intervals.full.hours": "{number, plural,one {# घंटा} other {# घंटे}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "keyboard_shortcuts.back": "वापस जाने के लिए", "keyboard_shortcuts.blocked": "अवरुद्ध उपयोगकर्ताओं की सूची खोलने के लिए", @@ -363,7 +363,7 @@ "missing_indicator.label": "नहीं मिला", "missing_indicator.sublabel": "यह संसाधन नहीं मिल सका।", "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.", - "mute_modal.duration": "Duration", + "mute_modal.duration": "अवधि", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", "navigation_bar.about": "विवरण", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 2143d09cf7..5d38728b18 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -1,6 +1,6 @@ { "about.blocks": "Moderated servers", - "about.contact": "Contact:", + "about.contact": "Kontakt:", "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Reason not available", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", @@ -50,17 +50,17 @@ "account.mute_notifications": "Utišaj obavijesti od @{name}", "account.muted": "Utišano", "account.open_original_page": "Open original page", - "account.posts": "Tootovi", - "account.posts_with_replies": "Tootovi i odgovori", + "account.posts": "Objave", + "account.posts_with_replies": "Objave i odgovori", "account.report": "Prijavi @{name}", - "account.requested": "Čekanje na potvrdu. Kliknite za otkazivanje zahtjeva za praćenje", + "account.requested": "Čekanje na potvrdu. Kliknite za poništavanje zahtjeva za praćenje", "account.requested_follow": "{name} has requested to follow you", "account.share": "Podijeli profil @{name}", "account.show_reblogs": "Prikaži boostove od @{name}", "account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toota}}", "account.unblock": "Deblokiraj @{name}", "account.unblock_domain": "Deblokiraj domenu {domain}", - "account.unblock_short": "Unblock", + "account.unblock_short": "Deblokiraj", "account.unendorse": "Ne ističi na profilu", "account.unfollow": "Prestani pratiti", "account.unmute": "Poništi utišavanje @{name}", @@ -83,9 +83,9 @@ "boost_modal.combo": "Možete pritisnuti {combo} kako biste preskočili ovo sljedeći put", "bundle_column_error.copy_stacktrace": "Copy error report", "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", - "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.error.title": "Oh, ne!", "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", - "bundle_column_error.network.title": "Network error", + "bundle_column_error.network.title": "Greška mreže", "bundle_column_error.retry": "Pokušajte ponovno", "bundle_column_error.return": "Go back home", "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", @@ -124,11 +124,11 @@ "community.column_settings.local_only": "Samo lokalno", "community.column_settings.media_only": "Samo medijski sadržaj", "community.column_settings.remote_only": "Samo udaljeno", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Promijeni jezik", + "compose.language.search": "Pretraži jezike...", "compose_form.direct_message_warning_learn_more": "Saznajte više", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Ovaj toot neće biti prikazan ni pod jednim hashtagom jer je postavljen kao neprikazan. Samo javni tootovi mogu biti pretraživani pomoći hashtagova.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Vaš račun nije {locked}. Svatko Vas može pratiti kako bi vidjeli objave namijenjene Vašim pratiteljima.", "compose_form.lock_disclaimer.lock": "zaključan", "compose_form.placeholder": "Što ti je na umu?", @@ -138,10 +138,10 @@ "compose_form.poll.remove_option": "Ukloni ovu opciju", "compose_form.poll.switch_to_multiple": "Omogući višestruki odabir opcija ankete", "compose_form.poll.switch_to_single": "Omogući odabir samo jedne opcije ankete", - "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish": "Objavi", + "compose_form.publish_form": "Objavi", "compose_form.publish_loud": "{publish}!", - "compose_form.save_changes": "Save changes", + "compose_form.save_changes": "Spremi promjene", "compose_form.sensitive.hide": "Označi medijski sadržaj kao osjetljiv", "compose_form.sensitive.marked": "Medijski sadržaj označen je kao osjetljiv", "compose_form.sensitive.unmarked": "Medijski sadržaj nije označen kao osjetljiv", @@ -152,7 +152,7 @@ "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Sigurno želite blokirati {name}?", - "confirmations.cancel_follow_request.confirm": "Withdraw request", + "confirmations.cancel_follow_request.confirm": "Povuci zahtjev", "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Obriši", "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?", @@ -235,28 +235,28 @@ "error.unexpected_crash.next_steps_addons": "Pokušaj ih onemogućiti i osvježiti stranicu. Ako to ne pomogne, i dalje ćeš biti u mogućnosti koristiti Mastodon preko nekog drugog preglednika ili izvornog app-a.", "errors.unexpected_crash.copy_stacktrace": "Kopiraj stacktrace u međuspremnik", "errors.unexpected_crash.report_issue": "Prijavi problem", - "explore.search_results": "Search results", - "explore.suggested_follows": "For you", + "explore.search_results": "Rezultati pretrage", + "explore.suggested_follows": "Za vas", "explore.title": "Explore", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Novosti", + "explore.trending_statuses": "Objave", + "explore.trending_tags": "Hashtagovi", "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", "filter_modal.added.context_mismatch_title": "Context mismatch!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", "filter_modal.added.expired_title": "Expired filter!", "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", - "filter_modal.added.review_and_configure_title": "Filter settings", + "filter_modal.added.review_and_configure_title": "Postavke filtara", "filter_modal.added.settings_link": "settings page", "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", - "filter_modal.added.title": "Filter added!", + "filter_modal.added.title": "Filtar dodan!", "filter_modal.select_filter.context_mismatch": "does not apply to this context", "filter_modal.select_filter.expired": "expired", - "filter_modal.select_filter.prompt_new": "New category: {name}", - "filter_modal.select_filter.search": "Search or create", - "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", - "filter_modal.select_filter.title": "Filter this post", - "filter_modal.title.status": "Filter a post", + "filter_modal.select_filter.prompt_new": "Nova kategorija: {name}", + "filter_modal.select_filter.search": "Pretraži ili stvori", + "filter_modal.select_filter.subtitle": "Odaberite postojeću kategoriju ili stvorite novu", + "filter_modal.select_filter.title": "Filtriraj ovu objavu", + "filter_modal.title.status": "Filtriraj objavu", "follow_recommendations.done": "Učinjeno", "follow_recommendations.heading": "Zaprati osobe čije objave želiš vidjeti! Evo nekoliko prijedloga.", "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!", @@ -265,11 +265,11 @@ "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", "footer.about": "About", "footer.directory": "Profiles directory", - "footer.get_app": "Get the app", + "footer.get_app": "Preuzmi aplikaciju", "footer.invite": "Invite people", - "footer.keyboard_shortcuts": "Keyboard shortcuts", - "footer.privacy_policy": "Privacy policy", - "footer.source_code": "View source code", + "footer.keyboard_shortcuts": "Tipkovni prečaci", + "footer.privacy_policy": "Pravila o zaštiti privatnosti", + "footer.source_code": "Prikaz izvornog koda", "generic.saved": "Spremljeno", "getting_started.heading": "Počnimo", "hashtag.column_header.tag_mode.all": "i {additional}", @@ -281,8 +281,8 @@ "hashtag.column_settings.tag_mode.any": "Bilo koji navedeni", "hashtag.column_settings.tag_mode.none": "Nijedan navedeni", "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", + "hashtag.follow": "Prati hashtag", + "hashtag.unfollow": "Prestani pratiti hashtag", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži boostove", "home.column_settings.show_replies": "Pokaži odgovore", @@ -453,19 +453,19 @@ "privacy.direct.short": "Direct", "privacy.private.long": "Vidljivo samo pratiteljima", "privacy.private.short": "Followers-only", - "privacy.public.long": "Visible for all", + "privacy.public.long": "Vidljivo svima", "privacy.public.short": "Javno", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Neprikazano", - "privacy_policy.last_updated": "Last updated {date}", - "privacy_policy.title": "Privacy Policy", + "privacy_policy.last_updated": "Zadnje ažurirannje {date}", + "privacy_policy.title": "Pravila o zaštiti privatnosti", "refresh": "Osvježi", "regeneration_indicator.label": "Učitavanje…", "regeneration_indicator.sublabel": "Priprema se Vaša početna stranica!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago", "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago", - "relative_time.full.just_now": "just now", + "relative_time.full.just_now": "upravo sad", "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago", "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago", "relative_time.hours": "{number}h", @@ -474,29 +474,29 @@ "relative_time.seconds": "{number}s", "relative_time.today": "danas", "reply_indicator.cancel": "Otkaži", - "report.block": "Block", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", - "report.categories.other": "Other", + "report.block": "Blokiraj", + "report.block_explanation": "Nećete vidjeti njihove objave. Oni neće vidjeti vaše objave i neće vas moći pratiti. Moći će vidjeti da su blokirani.", + "report.categories.other": "Drugo", "report.categories.spam": "Spam", - "report.categories.violation": "Content violates one or more server rules", + "report.categories.violation": "Sadržaj krši jedno ili više pravila poslužitelja", "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", - "report.close": "Done", - "report.comment.title": "Is there anything else you think we should know?", + "report.category.title": "Recite nam što nije u redu s {type}", + "report.category.title_account": "profilom", + "report.category.title_status": "objavom", + "report.close": "Gotovo", + "report.comment.title": "Postoji li još nešto što bismo trebali znati?", "report.forward": "Proslijedi {target}", "report.forward_hint": "Račun je s drugog poslužitelja. Poslati anonimiziranu kopiju prijave i tamo?", - "report.mute": "Mute", - "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", - "report.next": "Next", + "report.mute": "Utišaj", + "report.mute_explanation": "Nećete vidjeti njihove objave. Oni će vas i dalje moći pratiti i vidjeti vaše objave i neće znati da su utišani.", + "report.next": "Sljedeće", "report.placeholder": "Dodatni komentari", - "report.reasons.dislike": "I don't like it", - "report.reasons.dislike_description": "It is not something you want to see", - "report.reasons.other": "It's something else", - "report.reasons.other_description": "The issue does not fit into other categories", - "report.reasons.spam": "It's spam", - "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", + "report.reasons.dislike": "Ne sviđa mi se", + "report.reasons.dislike_description": "Nije nešto što želiš vidjeti", + "report.reasons.other": "Nešto drugo", + "report.reasons.other_description": "Problem ne spada u nijednu drugu kategoriju", + "report.reasons.spam": "Spam je", + "report.reasons.spam_description": "Zlonamjerne poveznice, lažni angažman ili repetitivni odgovori", "report.reasons.violation": "It violates server rules", "report.reasons.violation_description": "You are aware that it breaks specific rules", "report.rules.subtitle": "Select all that apply", @@ -533,43 +533,43 @@ "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", - "server_banner.active_users": "active users", + "server_banner.active_users": "aktivni korisnici", "server_banner.administered_by": "Administered by:", "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", - "server_banner.learn_more": "Learn more", + "server_banner.learn_more": "Saznaj više", "server_banner.server_stats": "Server stats:", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.create_account": "Stvori račun", + "sign_in_banner.sign_in": "Prijavi se", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", "status.admin_status": "Open this status in the moderation interface", "status.block": "Block @{name}", - "status.bookmark": "Bookmark", + "status.bookmark": "Dodaj u favorite", "status.cancel_reblog_private": "Unboost", "status.cannot_reblog": "Ova objava ne može biti boostana", "status.copy": "Copy link to status", "status.delete": "Obriši", "status.detailed_status": "Detailed conversation view", "status.direct": "Direct message @{name}", - "status.edit": "Edit", - "status.edited": "Edited {date}", + "status.edit": "Uredi", + "status.edited": "Uređeno {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", - "status.embed": "Embed", + "status.embed": "Umetni", "status.favourite": "Označi favoritom", - "status.filter": "Filter this post", - "status.filtered": "Filtered", - "status.hide": "Hide post", - "status.history.created": "{name} created {date}", - "status.history.edited": "{name} edited {date}", + "status.filter": "Filtriraj ovu objavu", + "status.filtered": "Filtrirano", + "status.hide": "Sakrij objavu", + "status.history.created": "Kreirao/la {name} prije {date}", + "status.history.edited": "Uredio/la {name} prije {date}", "status.load_more": "Učitaj više", "status.media_hidden": "Sakriven medijski sadržaj", "status.mention": "Spomeni @{name}", - "status.more": "More", - "status.mute": "Mute @{name}", + "status.more": "Više", + "status.mute": "Utišaj @{name}", "status.mute_conversation": "Utišaj razgovor", "status.open": "Proširi ovaj toot", - "status.pin": "Pin on profile", + "status.pin": "Prikvači na profil", "status.pinned": "Pinned toot", "status.read_more": "Pročitajte više", "status.reblog": "Boostaj", @@ -578,25 +578,25 @@ "status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.", "status.redraft": "Izbriši i ponovno uredi", "status.remove_bookmark": "Ukloni knjižnu oznaku", - "status.replied_to": "Replied to {name}", + "status.replied_to": "Odgovorio/la je {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na niz", "status.report": "Prijavi @{name}", "status.sensitive_warning": "Osjetljiv sadržaj", "status.share": "Podijeli", - "status.show_filter_reason": "Show anyway", + "status.show_filter_reason": "Svejedno prikaži", "status.show_less": "Pokaži manje", "status.show_less_all": "Show less for all", "status.show_more": "Pokaži više", "status.show_more_all": "Show more for all", - "status.show_original": "Show original", - "status.translate": "Translate", - "status.translated_from_with": "Translated from {lang} using {provider}", + "status.show_original": "Prikaži original", + "status.translate": "Prevedi", + "status.translated_from_with": "Prevedno s {lang} koristeći {provider}", "status.uncached_media_warning": "Nije dostupno", "status.unmute_conversation": "Poništi utišavanje razgovora", "status.unpin": "Otkvači s profila", "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", - "subscribed_languages.save": "Save changes", + "subscribed_languages.save": "Spremi promjene", "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Odbaci prijedlog", "suggestions.header": "Možda Vas zanima…", @@ -625,23 +625,23 @@ "upload_error.poll": "Prijenos datoteka nije dopušten kod anketa.", "upload_form.audio_description": "Opišite za ljude sa slabim sluhom", "upload_form.description": "Opišite za ljude sa slabim vidom", - "upload_form.description_missing": "No description added", + "upload_form.description_missing": "Bez opisa", "upload_form.edit": "Uredi", "upload_form.thumbnail": "Promijeni pretpregled", "upload_form.undo": "Obriši", "upload_form.video_description": "Opišite za ljude sa slabim sluhom ili vidom", "upload_modal.analyzing_picture": "Analiza slike…", "upload_modal.apply": "Primijeni", - "upload_modal.applying": "Applying…", + "upload_modal.applying": "Primjenjivanje…", "upload_modal.choose_image": "Odaberite sliku", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.description_placeholder": "Gojazni đačić s biciklom drži hmelj i finu vatu u džepu nošnje", "upload_modal.detect_text": "Detektiraj tekst sa slike", "upload_modal.edit_media": "Uređivanje medija", "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.preparing_ocr": "Preparing OCR…", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Pretpregled ({ratio})", "upload_progress.label": "Prenošenje...", - "upload_progress.processing": "Processing…", + "upload_progress.processing": "Obrada…", "video.close": "Zatvori video", "video.download": "Preuzmi datoteku", "video.exit_fullscreen": "Izađi iz cijelog zaslona", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index c1c1dfb1c9..7c91ff5683 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -128,7 +128,7 @@ "compose.language.search": "Nyelv keresése...", "compose_form.direct_message_warning_learn_more": "Tudj meg többet", "compose_form.encryption_warning": "A bejegyzések Mastodonon nem használnak végpontok közötti titkosítást. Ne ossz meg semmilyen érzékeny információt Mastodonon.", - "compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel listázatlan. Csak a nyilvános bejegyzések kereshetők hashtaggel.", + "compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel nem nyilvános. Csak a nyilvános bejegyzések kereshetők hashtaggel.", "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.", "compose_form.lock_disclaimer.lock": "lezárva", "compose_form.placeholder": "Mi jár a fejedben?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Bejelentkezés", "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, bejegyzések megosztásához, megválaszolásához, vagy kommunikálj a fiókodból más kiszolgálókkal.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "A következő moderációs felületének megnyitása: @{domain}", "status.admin_status": "Bejegyzés megnyitása a moderációs felületen", "status.block": "@{name} letiltása", "status.bookmark": "Könyvjelzőzés", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 591144affa..137983cbce 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Իմանալ աւելին", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Այս գրառումը չի հաշուառուի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարաւոր է որոնել պիտակներով։", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Քո հաշիւը {locked} չէ։ Իւրաքանչիւրութիւն ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսուած գրառումները։", "compose_form.lock_disclaimer.lock": "փակ", "compose_form.placeholder": "Ի՞նչ կայ մտքիդ", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 34dc718363..7ed8a02abb 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -128,7 +128,7 @@ "compose.language.search": "Telusuri bahasa...", "compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya", "compose_form.encryption_warning": "Kiriman di Mastodon tidak dienkripsi end-to-end. Jangan bagikan informasi sensitif melalui Mastodon.", - "compose_form.hashtag_warning": "Kiriman ini tidak akan ada dalam daftar tagar mana pun karena telah diatur sebagai tidak terdaftar. Hanya kiriman publik yang bisa dicari dengan tagar.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Akun Anda tidak {locked}. Semua orang dapat mengikuti Anda untuk melihat kiriman khusus untuk pengikut Anda.", "compose_form.lock_disclaimer.lock": "terkunci", "compose_form.placeholder": "Apa yang ada di pikiran Anda?", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 33e780d3f6..e57d37787f 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -128,7 +128,7 @@ "compose.language.search": "Trovez linguo...", "compose_form.direct_message_warning_learn_more": "Lernez pluse", "compose_form.encryption_warning": "Posti en Mastodon ne intersequante chifrigesas. Ne partigez irga privata informo che Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Vua konto ne esas {locked}. Irgu povas sequar vu por vidar vua sequanto-nura posti.", "compose_form.lock_disclaimer.lock": "klefagesas", "compose_form.placeholder": "Quo esas en tua spirito?", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index d5a81ece59..f5271f2459 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -128,7 +128,7 @@ "compose.language.search": "Leita að tungumálum...", "compose_form.direct_message_warning_learn_more": "Kanna nánar", "compose_form.encryption_warning": "Færslur á Mastodon eru ekki enda-í-enda dulritaðar. Ekki deila viðkvæmum upplýsingum á Mastodon.", - "compose_form.hashtag_warning": "Þessi færsla verður ekki talin með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum færslum eftir myllumerkjum.", + "compose_form.hashtag_warning": "Þessi færsla verður ekki talin með undir nokkru myllumerki þar sem það er ekki opinbert. Einungis er hægt að leita að opinberum færslum eftir myllumerkjum.", "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.", "compose_form.lock_disclaimer.lock": "læstur", "compose_form.placeholder": "Hvað liggur þér á hjarta?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Skrá inn", "sign_in_banner.text": "Skráðu þig inn til að fylgjast með notendum eða myllumerkjum, svara færslum, deila þeim eða setja í eftirlæti, eða eiga í samskiptum á aðgangnum þínum á öðrum netþjónum.", "status.admin_account": "Opna umsjónarviðmót fyrir @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Opna umsjónarviðmót fyrir @{domain}", "status.admin_status": "Opna þessa færslu í umsjónarviðmótinu", "status.block": "Útiloka @{name}", "status.bookmark": "Bókamerki", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 577a274a2c..080bfafbd2 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -128,7 +128,7 @@ "compose.language.search": "Cerca lingue...", "compose_form.direct_message_warning_learn_more": "Scopri di più", "compose_form.encryption_warning": "I post su Mastodon non sono crittografati end-to-end. Non condividere alcuna informazione sensibile su Mastodon.", - "compose_form.hashtag_warning": "Questo post non sarà elencato sotto alcun hashtag, non avendo una lista. Solo i post pubblici possono esser cercati per hashtag.", + "compose_form.hashtag_warning": "Questo post non sarà elencato sotto alcun hashtag, poiché non è pubblico. Solo i post pubblici possono essere cercati per hashtag.", "compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque può seguirti per visualizzare i tuoi post per soli seguaci.", "compose_form.lock_disclaimer.lock": "bloccato", "compose_form.placeholder": "Cos'hai in mente?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Accedi", "sign_in_banner.text": "Accedi per seguire profili o hashtag, salvare tra i preferiti, condividere e rispondere ai post, o interagire dal tuo profilo su un server differente.", "status.admin_account": "Apri interfaccia di moderazione per @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Apri l'interfaccia di moderazione per {domain}", "status.admin_status": "Apri questo post nell'interfaccia di moderazione", "status.block": "Blocca @{name}", "status.bookmark": "Aggiungi segnalibro", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 96f250c3f1..4ea0715a1d 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -128,7 +128,7 @@ "compose.language.search": "言語を検索...", "compose_form.direct_message_warning_learn_more": "もっと詳しく", "compose_form.encryption_warning": "Mastodonの投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報をMastodonで共有しないでください。", - "compose_form.hashtag_warning": "この投稿は公開設定ではないのでハッシュタグの一覧に表示されません。公開投稿だけがハッシュタグで検索できます。", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。", "compose_form.lock_disclaimer.lock": "承認制", "compose_form.placeholder": "今なにしてる?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "ログイン", "sign_in_banner.text": "ログインしてプロファイルやハッシュタグ、お気に入りをフォローしたり、投稿を共有したり、返信したり、別のサーバーのアカウントと交流したりできます。", "status.admin_account": "@{name}さんのモデレーション画面を開く", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "{domain}のモデレーション画面を開く", "status.admin_status": "この投稿をモデレーション画面で開く", "status.block": "@{name}さんをブロック", "status.bookmark": "ブックマーク", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index d2212aeab7..64e7263218 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "გაიგე მეტი", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "ეს ტუტი არ მოექცევა ჰეშტეგების ქვეს, რამეთუ ის არაა მითითებული. მხოლოდ ღია ტუტები მოიძებნება ჰეშტეგით.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "თქვენი ანგარიში არაა {locked}. ნებისმიერს შეიძლია გამოგყვეთ, რომ იხილოს თქვენი მიმდევრებზე გათვლილი პოსტები.", "compose_form.lock_disclaimer.lock": "ჩაკეტილი", "compose_form.placeholder": "რაზე ფიქრობ?", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index a0bdd54906..609c295406 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -128,7 +128,7 @@ "compose.language.search": "Nadi tutlayin …", "compose_form.direct_message_warning_learn_more": "Issin ugar", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Amiḍan-ik·im ur yelli ara {locked}. Menwala yezmer ad k·kem-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik·im.", "compose_form.lock_disclaimer.lock": "yettwacekkel", "compose_form.placeholder": "D acu i itezzin deg wallaɣ?", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 73665788d9..d1f5faf6d9 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Көбірек білу", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Бұл пост іздеуде хэштегпен шықпайды, өйткені ол бәріне ашық емес. Тек ашық жазбаларды ғана хэштег арқылы іздеп табуға болады.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Аккаунтыңыз {locked} емес. Кез келген адам жазылып, сізді оқи алады.", "compose_form.lock_disclaimer.lock": "жабық", "compose_form.placeholder": "Не бөліскіңіз келеді?", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 4c6d8985af..c6f8322dfd 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 1ad6fe5083..a94801ad8b 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -128,7 +128,7 @@ "compose.language.search": "언어 검색...", "compose_form.direct_message_warning_learn_more": "더 알아보기", "compose_form.encryption_warning": "마스토돈의 게시물들은 종단간 암호화가 되지 않습니다. 민감한 정보를 마스토돈을 통해 전달하지 마세요.", - "compose_form.hashtag_warning": "이 게시물은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색 될 수 있습니다.", + "compose_form.hashtag_warning": "이 게시물은 전체공개가 아니기 때문에 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색될 수 있습니다.", "compose_form.lock_disclaimer": "이 계정은 {locked}상태가 아닙니다. 누구나 이 계정을 팔로우 하여 팔로워 전용의 게시물을 볼 수 있습니다.", "compose_form.lock_disclaimer.lock": "비공개", "compose_form.placeholder": "지금 무슨 생각을 하고 있나요?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "로그인", "sign_in_banner.text": "로그인을 통해 프로필이나 해시태그를 팔로우하거나 마음에 들어하거나 공유하고 답글을 달 수 있습니다, 혹은 다른 서버에 있는 본인의 계정을 통해 참여할 수도 있습니다.", "status.admin_account": "@{name}에 대한 중재 화면 열기", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "{domain}에 대한 중재 화면 열기", "status.admin_status": "중재 화면에서 이 게시물 열기", "status.block": "@{name} 차단", "status.bookmark": "북마크", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 24e8c04dd1..7dbb345910 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -128,7 +128,7 @@ "compose.language.search": "Li zimanan bigere...", "compose_form.direct_message_warning_learn_more": "Bêtir fêr bibe", "compose_form.encryption_warning": "Şandiyên li ser Mastodon dawî-bi-dawî ne şîfrekirî ne. Li ser Mastodon zanyariyên hestyar parve neke.", - "compose_form.hashtag_warning": "Ev şandî ji ber ku nehatiye tomarkirin dê di binê hashtagê de neyê tomar kirin. Tenê peyamên gelemperî dikarin bi hashtagê werin lêgerîn.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Ajimêrê te ne {locked}. Herkes dikare te bişopîne da ku şandiyên te yên tenê ji şopînerên re têne xuyakirin bibînin.", "compose_form.lock_disclaimer.lock": "girtî ye", "compose_form.placeholder": "Çi di hişê te derbas dibe?", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index 932944411c..f56974d2b0 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Dyski moy", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Ny vydh an post ma diskwedhys yn-dann vòlnos vyth awos y vos mes a rol. Ny yllir hwilas saw poblow postek dre vòlnos.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Nyns yw agas akont {locked}. Piwpynag a yll agas holya dhe weles agas postow holyoryon-hepken.", "compose_form.lock_disclaimer.lock": "Alhwedhys", "compose_form.placeholder": "Pyth eus yn agas brys?", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 476ade0ef4..1d49232542 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index a82b7d1ca8..a593ab5017 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -128,7 +128,7 @@ "compose.language.search": "Meklēt valodas...", "compose_form.direct_message_warning_learn_more": "Uzzināt vairāk", "compose_form.encryption_warning": "Ziņas vietnē Mastodon nav pilnībā šifrētas. Nedalies ar sensitīvu informāciju caur Mastodon.", - "compose_form.hashtag_warning": "Šo ziņu nebūs iespējams atrast tēmturos, jo tā ir nerindota. Tēmturos ir redzamas tikai publiskas ziņas.", + "compose_form.hashtag_warning": "Šī ziņa netiks norādīta zem nevienas atsauces, jo tā nav publiska. Tikai publiskās ziņās var meklēt pēc atsauces.", "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var tev piesekot un redzēt tikai sekotājiem paredzētos ziņojumus.", "compose_form.lock_disclaimer.lock": "slēgts", "compose_form.placeholder": "Kas tev padomā?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Pierakstīties", "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu ziņas izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.", "status.admin_account": "Atvērt @{name} moderēšanas saskarni", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Atvērt {domain} moderēšanas saskarni", "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē", "status.block": "Bloķēt @{name}", "status.bookmark": "Grāmatzīme", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 8563133abe..62be86557c 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Научи повеќе", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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": "заклучен", "compose_form.placeholder": "Што имате на ум?", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index c999b97ee4..ee33be4a4e 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -128,7 +128,7 @@ "compose.language.search": "ഭാഷകൾ തിരയുക...", "compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക", "compose_form.encryption_warning": "Mastodon-ലെ പോസ്റ്റുകൾ എൻഡ്-ടു-എൻഡ് എൻക്രിപ്റ്റ് ചെയ്തവയല്ല. അതിനാൽ Mastodon-ൽ പ്രധാനപ്പെട്ട വിവരങ്ങളൊന്നും പങ്കിടരുത്.", - "compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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": "ലോക്കുചെയ്തു", "compose_form.placeholder": "നിങ്ങളുടെ മനസ്സിൽ എന്താണ്?", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 686c5cd322..c0028e2d4c 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "अधिक जाणून घ्या", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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": "आपल्या मनात काय आहे?", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index be2412910e..715c59f7e0 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -128,7 +128,7 @@ "compose.language.search": "Cari bahasa...", "compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut", "compose_form.encryption_warning": "Hantaran pada Mastodon tidak disulitkan hujung ke hujung. Jangan berkongsi sebarang maklumat sensitif melalui Mastodon.", - "compose_form.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Akaun anda tidak {locked}. Sesiapa pun boleh mengikuti anda untuk melihat hantaran pengikut-sahaja anda.", "compose_form.lock_disclaimer.lock": "dikunci", "compose_form.placeholder": "Apakah yang sedang anda fikirkan?", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 9777b2f587..45ac3cdaf0 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -128,7 +128,7 @@ "compose.language.search": "Talen zoeken...", "compose_form.direct_message_warning_learn_more": "Meer leren", "compose_form.encryption_warning": "Berichten op Mastodon worden, net zoals op andere social media, niet end-to-end versleuteld. Deel daarom geen gevoelige informatie via Mastodon.", - "compose_form.hashtag_warning": "Dit bericht valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare berichten kunnen via hashtags gevonden worden.", + "compose_form.hashtag_warning": "Dit bericht valt niet onder een hashtag te bekijken, omdat deze niet op openbaar is. Alleen openbare berichten kunnen via hashtags gevonden worden.", "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.", "compose_form.lock_disclaimer.lock": "besloten", "compose_form.placeholder": "Wat wil je kwijt?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Inloggen", "sign_in_banner.text": "Wanneer je een account op deze server hebt, kun je inloggen om mensen of hashtags te volgen, op berichten te reageren of om deze te delen. Wanneer je een account op een andere server hebt, kun je daar inloggen en daar interactie met mensen op deze server hebben.", "status.admin_account": "Moderatie-omgeving van @{name} openen", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Moderatie-omgeving van {domain} openen", "status.admin_status": "Dit bericht in de moderatie-omgeving tonen", "status.block": "@{name} blokkeren", "status.bookmark": "Bladwijzer toevoegen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 116bf14913..e158f67b06 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -34,7 +34,7 @@ "account.followers.empty": "Ingen fylgjer denne brukaren enno.", "account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}", "account.following": "Fylgjer", - "account.following_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjar}}", + "account.following_counter": "{count, plural, one {Fylgjar {counter}} other {Fylgjar {counter}}}", "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", "account.follows_you": "Fylgjer deg", "account.go_to_profile": "Gå til profil", @@ -128,7 +128,7 @@ "compose.language.search": "Søk språk...", "compose_form.direct_message_warning_learn_more": "Lær meir", "compose_form.encryption_warning": "Innlegg på Mastodon er ikkje ende-til-ende-krypterte. Ikkje del eventuell ømtolig informasjon via Mastodon.", - "compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan ingen emneknagg er oppført. Det er kun emneknaggar som er søkbare i offentlege tutar.", + "compose_form.hashtag_warning": "Dette innlegget vert ikkje lista under nokre emneknaggar av di det ikkje er offentleg. Berre offentlege innlegg kan verte søkt opp med emneknagg.", "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Kva har du på hjarta?", @@ -178,7 +178,7 @@ "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopiér", + "copypaste.copy": "Kopier", "directory.federated": "Frå den kjende allheimen", "directory.local": "Berre frå {domain}", "directory.new_arrivals": "Nyleg tilkomne", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Logg inn", "sign_in_banner.text": "Logg inn for å fylgje profiler eller emneknaggar, markere, framheve og svare på innlegg – eller samhandle med aktivitet på denne tenaren frå kontoen din på ein annan tenar.", "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Opna moderatorgrensesnittet for {domain}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", "status.block": "Blokker @{name}", "status.bookmark": "Set bokmerke", @@ -559,7 +559,7 @@ "status.favourite": "Favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", - "status.hide": "Hide post", + "status.hide": "Skjul innlegget", "status.history.created": "{name} oppretta {date}", "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last inn meir", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 263bea9beb..53de4ce00f 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -2,21 +2,21 @@ "about.blocks": "Modererte tjenere", "about.contact": "Kontakt:", "about.disclaimer": "Mastodon er gratis, åpen kildekode-programvare og et varemerke fra Mastodon gGmbH.", - "about.domain_blocks.no_reason_available": "Årsak ikke oppgitt", - "about.domain_blocks.preamble": "Mastodon lar deg normalt sett se innholdet fra og samhandle med brukere fra enhver annen server i fødiverset. Dette er unntakene som har blitt lagt inn på denne serveren.", - "about.domain_blocks.silenced.explanation": "Du vil vanligvis ikke se profiler og innhold fra denne serveren, med mindre du eksplisitt søker dem opp eller velger å følge dem.", + "about.domain_blocks.no_reason_available": "Årsak ikke tilgjengelig", + "about.domain_blocks.preamble": "Mastodon lar deg normalt sett se innholdet fra og samhandle med brukere fra enhver annen tjener i fødiverset. Dette er unntakene som har blitt lagt inn på denne tjeneren.", + "about.domain_blocks.silenced.explanation": "Du vil vanligvis ikke se profiler og innhold fra denne tjeneren, med mindre du eksplisitt søker dem opp eller velger å følge dem.", "about.domain_blocks.silenced.title": "Begrenset", - "about.domain_blocks.suspended.explanation": "Ikke noe innhold fra denne serveren vil bli behandlet, lagret eller utvekslet. Det gjør det umulig å samhandle eller kommunisere med brukere fra denne serveren.", + "about.domain_blocks.suspended.explanation": "Ikke noe innhold fra denne tjeneren vil bli behandlet, lagret eller utvekslet. Det gjør det umulig å samhandle eller kommunisere med brukere fra denne tjeneren.", "about.domain_blocks.suspended.title": "Suspendert", - "about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne serveren.", + "about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne tjeneren.", "about.powered_by": "Desentraliserte sosiale medier drevet av {mastodon}", - "about.rules": "Regler for serveren", + "about.rules": "Regler for tjeneren", "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Legg til eller fjern fra lister", "account.badges.bot": "Bot", "account.badges.group": "Gruppe", - "account.block": "Blokkér @{name}", - "account.block_domain": "Blokkér domenet {domain}", + "account.block": "Blokker @{name}", + "account.block_domain": "Blokker domenet {domain}", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen", "account.cancel_follow_request": "Trekk tilbake følge-forespørselen", @@ -52,7 +52,7 @@ "account.open_original_page": "Gå til originalsiden", "account.posts": "Innlegg", "account.posts_with_replies": "Innlegg med svar", - "account.report": "Rapportér @{name}", + "account.report": "Rapporter @{name}", "account.requested": "Venter på godkjennelse. Klikk for å avbryte forespørselen", "account.requested_follow": "{name} har bedt om å få følge deg", "account.share": "Del @{name}s profil", @@ -128,7 +128,7 @@ "compose.language.search": "Søk etter språk...", "compose_form.direct_message_warning_learn_more": "Lær mer", "compose_form.encryption_warning": "Innlegg på Mastodon er ikke ende-til-ende-krypterte. Ikke del sensitive opplysninger via Mastodon.", - "compose_form.hashtag_warning": "Dette innlegget blir vist under noen emneknagger da det er uoppført. Kun offentlige innlegg kan søkes opp med emneknagg.", + "compose_form.hashtag_warning": "Dette innlegget blir ikke vist under noen emneknagger siden det ikke er offentlig. Bare offentlige innlegg kan søkes opp med emneknagger.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hva har du på hjertet?", @@ -260,13 +260,13 @@ "follow_recommendations.done": "Utført", "follow_recommendations.heading": "Følg folk du ønsker å se innlegg fra! Her er noen forslag.", "follow_recommendations.lead": "Innlegg fra mennesker du følger vil vises i kronologisk rekkefølge på hjemmefeed. Ikke vær redd for å gjøre feil, du kan slutte å følge folk like enkelt som alt!", - "follow_request.authorize": "Autorisér", + "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.", "footer.about": "Om", "footer.directory": "Profilkatalog", "footer.get_app": "Last ned appen", - "footer.invite": "Invitér folk", + "footer.invite": "Inviter folk", "footer.keyboard_shortcuts": "Hurtigtaster", "footer.privacy_policy": "Personvernregler", "footer.source_code": "Vis kildekode", @@ -448,7 +448,7 @@ "poll.votes": "{votes, plural, one {# stemme} other {# stemmer}}", "poll_button.add_poll": "Legg til en avstemning", "poll_button.remove_poll": "Fjern avstemningen", - "privacy.change": "Justér synlighet", + "privacy.change": "Juster synlighet", "privacy.direct.long": "Post kun til nevnte brukere", "privacy.direct.short": "Kun nevnte personer", "privacy.private.long": "Post kun til følgere", @@ -542,9 +542,9 @@ "sign_in_banner.sign_in": "Logg inn", "sign_in_banner.text": "Logg inn for å følge profiler eller hashtags, like, dele og svare på innlegg eller interagere fra din konto på en annen server.", "status.admin_account": "Åpne moderatorgrensesnittet for @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Åpne moderatorgrensesnittet for {domain}", "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet", - "status.block": "Blokkér @{name}", + "status.block": "Blokker @{name}", "status.bookmark": "Bokmerke", "status.cancel_reblog_private": "Fjern fremheving", "status.cannot_reblog": "Denne posten kan ikke fremheves", @@ -552,14 +552,14 @@ "status.delete": "Slett", "status.detailed_status": "Detaljert samtalevisning", "status.direct": "Send direktemelding til @{name}", - "status.edit": "Redigér", + "status.edit": "Rediger", "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", "status.favourite": "Marker som favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", - "status.hide": "Hide post", + "status.hide": "Skjul innlegg", "status.history.created": "{name} opprettet {date}", "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last mer", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 89835a19fd..4865843dd9 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -128,7 +128,7 @@ "compose.language.search": "Recercar de lengas...", "compose_form.direct_message_warning_learn_more": "Ne saber mai", "compose_form.encryption_warning": "Las publicacions sus Mastodon son pas chifradas del cap a la fin. Partegetz pas d’informacions sensiblas sus Mastodon.", - "compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo mond pòt vos sègre e veire los estatuts reservats als seguidors.", "compose_form.lock_disclaimer.lock": "clavat", "compose_form.placeholder": "A de qué pensatz ?", @@ -185,12 +185,12 @@ "directory.recently_active": "Actius fa res", "disabled_account_banner.account_settings": "Paramètres de compte", "disabled_account_banner.text": "Vòstre compte {disabledAccount} es actualament desactivat.", - "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.community_timeline": "Vaquí las publicacions mai recentas del monde amb un compte albergat per {domain}.", "dismissable_banner.dismiss": "Ignorar", - "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", - "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_links": "Aquestas istòrias ne parlan lo monde d’aqueste servidor e dels autres servidors del malhum descentralizat d’aquesta passa.", + "dismissable_banner.explore_statuses": "Aquí las publicacions d’aqueste servidor e dels autres del malhum descentralizat que ganhan en popularitat d’aquesta passa.", "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", - "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "dismissable_banner.public_timeline": "Vaquí las publicacions mai recentas del monde d’aqueste servidor e dels servidors descentralizats del malhum qu’aqueste servidor coneis.", "embed.instructions": "Embarcar aqueste estatut per lo far veire sus un site Internet en copiar lo còdi çai-jos.", "embed.preview": "Semblarà aquò :", "emoji_button.activity": "Activitats", @@ -539,7 +539,7 @@ "server_banner.learn_more": "Ne saber mai", "server_banner.server_stats": "Estatisticas del servidor :", "sign_in_banner.create_account": "Crear un compte", - "sign_in_banner.sign_in": "Se marcar", + "sign_in_banner.sign_in": "Se connectar", "sign_in_banner.text": "Connectatz-vos per sègre perfils o etiquetas, apondre als favorits, partejar e respondre als messatges o interagir de vòstre compte estant d’un autre servidor.", "status.admin_account": "Dobrir l’interfàcia de moderacion per @{name}", "status.admin_domain": "Open moderation interface for {domain}", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 34dafb5dcc..e646ef83c4 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index a9bc7ac798..ff14777a64 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -128,7 +128,7 @@ "compose.language.search": "Szukaj języków...", "compose_form.direct_message_warning_learn_more": "Dowiedz się więcej", "compose_form.encryption_warning": "Posty na Mastodon nie są szyfrowane end-to-end. Nie udostępniaj żadnych wrażliwych informacji przez Mastodon.", - "compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hasztagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hasztagów.", + "compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hasztagami, ponieważ jest oznaczony jako niepubliczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hasztagów.", "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię obserwuje, może wyświetlać Twoje wpisy przeznaczone tylko dla obserwujących.", "compose_form.lock_disclaimer.lock": "zablokowane", "compose_form.placeholder": "Co Ci chodzi po głowie?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Zaloguj się", "sign_in_banner.text": "Zaloguj się, aby obserwować profile lub hasztagi, jak również dodawaj wpisy do ulubionych, udostępniaj je dalej i odpowiadaj na nie lub wchodź w interakcje z kontem na innym serwerze.", "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Otwórz interfejs moderacyjny dla {domain}", "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym", "status.block": "Zablokuj @{name}", "status.bookmark": "Dodaj zakładkę", @@ -559,7 +559,7 @@ "status.favourite": "Dodaj do ulubionych", "status.filter": "Filtruj ten wpis", "status.filtered": "Filtrowany(-a)", - "status.hide": "Hide post", + "status.hide": "Ukryj post", "status.history.created": "{name} utworzył(a) {date}", "status.history.edited": "{name} edytował(a) {date}", "status.load_more": "Załaduj więcej", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index c27bb12fc9..6f1307d3cd 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -128,7 +128,7 @@ "compose.language.search": "Pesquisar idiomas...", "compose_form.direct_message_warning_learn_more": "Saiba mais", "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta-a-ponta. Não compartilhe nenhuma informação sensível no Mastodon.", - "compose_form.hashtag_warning": "Este toot não aparecerá em nenhuma hashtag porque está como não-listado. Somente toots públicos podem ser pesquisados por hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Seu perfil não está {locked}. Qualquer um pode te seguir e ver os toots privados.", "compose_form.lock_disclaimer.lock": "trancado", "compose_form.placeholder": "No que você está pensando?", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index a60742350c..6a75602624 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -28,7 +28,7 @@ "account.endorse": "Destacar no perfil", "account.featured_tags.last_status_at": "Última publicação em {date}", "account.featured_tags.last_status_never": "Sem publicações", - "account.featured_tags.title": "Hashtags destacadas por {name}", + "account.featured_tags.title": "#Etiquetas destacadas por {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Ainda ninguém segue este utilizador.", @@ -40,8 +40,8 @@ "account.go_to_profile": "Ir para o perfil", "account.hide_reblogs": "Esconder partilhas de @{name}", "account.joined_short": "Juntou-se a", - "account.languages": "Alterar idiomas subscritos", - "account.link_verified_on": "A posse deste link foi verificada em {date}", + "account.languages": "Alterar línguas subscritas", + "account.link_verified_on": "A posse desta ligação foi verificada em {date}", "account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem a pode seguir.", "account.media": "Média", "account.mention": "Mencionar @{name}", @@ -50,20 +50,20 @@ "account.mute_notifications": "Silenciar notificações de @{name}", "account.muted": "Silenciada", "account.open_original_page": "Abrir a página original", - "account.posts": "Toots", + "account.posts": "Publicações", "account.posts_with_replies": "Publicações e respostas", "account.report": "Denunciar @{name}", - "account.requested": "A aguardar aprovação. Clique para cancelar o pedido de seguidor", + "account.requested": "A aguardar aprovação. Clique para cancelar o pedido para seguir", "account.requested_follow": "{name} pediu para segui-lo", "account.share": "Partilhar o perfil @{name}", "account.show_reblogs": "Mostrar partilhas de @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.unblock": "Desbloquear @{name}", - "account.unblock_domain": "Mostrar {domain}", + "account.unblock_domain": "Desbloquear o domínio {domain}", "account.unblock_short": "Desbloquear", - "account.unendorse": "Não mostrar no perfil", + "account.unendorse": "Não destacar no perfil", "account.unfollow": "Deixar de seguir", - "account.unmute": "Não silenciar @{name}", + "account.unmute": "Deixar de silenciar @{name}", "account.unmute_notifications": "Deixar de silenciar @{name}", "account.unmute_short": "Deixar de silenciar", "account_note.placeholder": "Clique para adicionar nota", @@ -82,8 +82,8 @@ "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", "bundle_column_error.copy_stacktrace": "Copiar relatório de erros", - "bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Isto pode ser devido a uma falha no nosso código ou a um problema de compatibilidade com o navegador.", - "bundle_column_error.error.title": "Oh, não!", + "bundle_column_error.error.body": "A página solicitada não pôde ser sintetizada. Isto pode ser devido a uma falha no nosso código ou a um problema de compatibilidade com o navegador.", + "bundle_column_error.error.title": "Ó, não!", "bundle_column_error.network.body": "Houve um erro ao tentar carregar esta página. Isto pode ocorrer devido a um problema temporário com a sua conexão à internet ou a este servidor.", "bundle_column_error.network.title": "Erro de rede", "bundle_column_error.retry": "Tente de novo", @@ -96,48 +96,48 @@ "closed_registrations.other_server_instructions": "Visto que o Mastodon é descentralizado, pode criar uma conta noutro servidor e interagir com este na mesma.", "closed_registrations_modal.description": "Neste momento não é possível criar uma conta em {domain}, mas lembramos que não é preciso ter uma conta especificamente em {domain} para usar o Mastodon.", "closed_registrations_modal.find_another_server": "Procurar outro servidor", - "closed_registrations_modal.preamble": "O Mastodon é descentralizado, por isso não importa onde a sua conta é criada, continuará a poder acompanhar e interagir com qualquer um neste servidor. Pode até alojar o seu próprio servidor!", + "closed_registrations_modal.preamble": "O Mastodon é descentralizado, por isso não importa onde a sua conta é criada, pois continuará a poder acompanhar e interagir com qualquer um neste servidor. Pode até alojar o seu próprio servidor!", "closed_registrations_modal.title": "Inscrevendo-se no Mastodon", "column.about": "Sobre", "column.blocks": "Utilizadores Bloqueados", - "column.bookmarks": "Itens salvos", + "column.bookmarks": "Marcadores", "column.community": "Cronologia local", "column.direct": "Mensagens diretas", - "column.directory": "Procurar perfis", - "column.domain_blocks": "Domínios escondidos", - "column.favourites": "Favoritos", + "column.directory": "Explorar perfis", + "column.domain_blocks": "Domínios bloqueados", + "column.favourites": "Preferidos", "column.follow_requests": "Seguidores pendentes", "column.home": "Início", "column.lists": "Listas", "column.mutes": "Utilizadores silenciados", "column.notifications": "Notificações", - "column.pins": "Publicações fixas", + "column.pins": "Publicações afixadas", "column.public": "Cronologia federada", - "column_back_button.label": "Voltar", + "column_back_button.label": "Retroceder", "column_header.hide_settings": "Esconder configurações", "column_header.moveLeft_settings": "Mover coluna para a esquerda", "column_header.moveRight_settings": "Mover coluna para a direita", - "column_header.pin": "Fixar", + "column_header.pin": "Afixar", "column_header.show_settings": "Mostrar configurações", "column_header.unpin": "Desafixar", "column_subheading.settings": "Configurações", - "community.column_settings.local_only": "Local apenas", - "community.column_settings.media_only": "Somente media", - "community.column_settings.remote_only": "Remoto apenas", - "compose.language.change": "Alterar idioma", - "compose.language.search": "Pesquisar idiomas...", + "community.column_settings.local_only": "Apenas local", + "community.column_settings.media_only": "Apenas média", + "community.column_settings.remote_only": "Apenas remoto", + "compose.language.change": "Alterar língua", + "compose.language.search": "Pesquisar línguas...", "compose_form.direct_message_warning_learn_more": "Conhecer mais", - "compose_form.encryption_warning": "As publicações no Mastodon não são encriptadas ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.", - "compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.", + "compose_form.encryption_warning": "As publicações no Mastodon não são criptografadas de ponta a ponta. Não partilhe nenhuma informação sensível através do Mastodon.", + "compose_form.hashtag_warning": "Esta publicação não será listada em qualquer etiqueta, pois não é pública. Apenas as publicações públicas podem ser pesquisadas por etiquetas.", "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.", - "compose_form.lock_disclaimer.lock": "bloqueado", + "compose_form.lock_disclaimer.lock": "fechada", "compose_form.placeholder": "Em que está a pensar?", "compose_form.poll.add_option": "Adicionar uma opção", - "compose_form.poll.duration": "Duração da votação", + "compose_form.poll.duration": "Duração do inquérito", "compose_form.poll.option_placeholder": "Opção {number}", "compose_form.poll.remove_option": "Eliminar esta opção", - "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.poll.switch_to_multiple": "Alterar o inquérito para permitir várias respostas", + "compose_form.poll.switch_to_single": "Alterar o inquérito para permitir uma única resposta", "compose_form.publish": "Publicar", "compose_form.publish_form": "Publicar", "compose_form.publish_loud": "{publish}!", @@ -146,7 +146,7 @@ "compose_form.sensitive.marked": "Media marcada como sensível", "compose_form.sensitive.unmarked": "Media não está marcada como sensível", "compose_form.spoiler.marked": "Texto escondido atrás de aviso", - "compose_form.spoiler.unmarked": "O texto não está escondido", + "compose_form.spoiler.unmarked": "Juntar um aviso de conteúdo", "compose_form.spoiler_placeholder": "Escreva o seu aviso aqui", "confirmation_modal.cancel": "Cancelar", "confirmations.block.block_and_report": "Bloquear e Denunciar", @@ -159,16 +159,16 @@ "confirmations.delete_list.confirm": "Eliminar", "confirmations.delete_list.message": "Tens a certeza de que deseja eliminar permanentemente esta lista?", "confirmations.discard_edit_media.confirm": "Descartar", - "confirmations.discard_edit_media.message": "Tem alterações não salvas na descrição ou pré-visualização da media. Descartar mesmo assim?", + "confirmations.discard_edit_media.message": "Tem alterações por guardar na descrição ou pré-visualização do conteúdo. Descartar mesmo assim?", "confirmations.domain_block.confirm": "Esconder tudo deste domínio", "confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é suficiente e é o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.", "confirmations.logout.confirm": "Terminar sessão", - "confirmations.logout.message": "Deseja terminar a sessão?", + "confirmations.logout.message": "Tem a certeza de que quer terminar a sessão?", "confirmations.mute.confirm": "Silenciar", "confirmations.mute.explanation": "Isto irá esconder publicações deles ou publicações que os mencionem, mas irá permitir que vejam as suas publicações e sejam seus seguidores.", "confirmations.mute.message": "De certeza que queres silenciar {name}?", "confirmations.redraft.confirm": "Eliminar & reescrever", - "confirmations.redraft.message": "Tem a certeza que quer eliminar e reescrever esta publicação? Os favoritos e partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.", + "confirmations.redraft.message": "Tem a certeza de que quer eliminar e reescrever esta publicação? Os favoritos e partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder agora irá reescrever a mensagem que está a compor actualmente. Tem a certeza que quer continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", @@ -184,12 +184,12 @@ "directory.new_arrivals": "Recém chegados", "directory.recently_active": "Com actividade recente", "disabled_account_banner.account_settings": "Definições da conta", - "disabled_account_banner.text": "A sua conta {disabledAccount} está, no momento, desativada.", + "disabled_account_banner.text": "A sua conta {disabledAccount} está presentemente desativada.", "dismissable_banner.community_timeline": "Estas são as publicações públicas mais recentes de pessoas cujas contas são hospedadas por {domain}.", "dismissable_banner.dismiss": "Descartar", "dismissable_banner.explore_links": "Essas histórias de notícias estão, no momento, a ser faladas por pessoas neste e noutros servidores da rede descentralizada.", "dismissable_banner.explore_statuses": "Estas publicações, deste e de outros servidores na rede descentralizada, estão, neste momento, a ganhar atenção neste servidor.", - "dismissable_banner.explore_tags": "Estas hashtags estão, neste momento, a ganhar atenção entre as pessoas neste e outros servidores da rede descentralizada.", + "dismissable_banner.explore_tags": "Estas #etiquetas estão presentemente a ganhar atenção entre as pessoas neste e noutros servidores da rede descentralizada.", "dismissable_banner.public_timeline": "Estas são as publicações públicas mais recentes de pessoas neste e outros servidores da rede descentralizada que esse servidor conhece.", "embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.", "embed.preview": "Podes ver aqui como irá ficar:", @@ -200,7 +200,7 @@ "emoji_button.food": "Comida & Bebida", "emoji_button.label": "Inserir Emoji", "emoji_button.nature": "Natureza", - "emoji_button.not_found": "Não tem emojis!! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Nenhum emoji correspondente encontrado", "emoji_button.objects": "Objectos", "emoji_button.people": "Pessoas", "emoji_button.recent": "Utilizados regularmente", @@ -209,19 +209,19 @@ "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viagens & Lugares", "empty_column.account_suspended": "Conta suspensa", - "empty_column.account_timeline": "Sem toots por aqui!", + "empty_column.account_timeline": "Sem publicações 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 adicionou nenhum toot aos Itens salvos. Quando adicionar, eles serão exibidos aqui.", - "empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!", + "empty_column.bookmarked_statuses": "Ainda não tem nenhuma publicação nos seus marcadores. Quando tiver, serão exibidas aqui.", + "empty_column.community": "A cronologia local está vazia. Escreve algo público para começar!", "empty_column.direct": "Ainda não tem qualquer mensagem direta. Quando enviar ou receber alguma, ela irá aparecer aqui.", "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.", - "empty_column.explore_statuses": "Nada em destaque por agora. Volte mais tarde!", - "empty_column.favourited_statuses": "Ainda não tens quaisquer toots favoritos. Quando tiveres algum, ele irá aparecer aqui.", - "empty_column.favourites": "Ainda ninguém marcou este toot como favorito. Quando alguém o fizer, ele irá aparecer aqui.", - "empty_column.follow_recommendations": "Parece que não foi possível gerar nenhuma sugestão para si. Pode tentar utilizar a pesquisa para procurar pessoas que conheça ou explorar as hashtags em destaque.", + "empty_column.explore_statuses": "Nada está em alta no momento. Volte mais tarde!", + "empty_column.favourited_statuses": "Ainda não tens quaisquer publicações nos marcadores. Quando tiveres, aparecerão aqui.", + "empty_column.favourites": "Ainda ninguém tem esta publicação nos seus marcadores. Quando alguém o tiver, ele irá aparecer aqui.", + "empty_column.follow_recommendations": "Parece que não foi possível gerar nenhuma sugestão para si. Pode tentar utilizar a pesquisa para procurar pessoas que conheça ou explorar as #etiquetas em destaque.", "empty_column.follow_requests": "Ainda não tens nenhum pedido de seguidor. Quando receberes algum, ele irá aparecer aqui.", - "empty_column.hashtag": "Não foram encontradas publicações com essa hashtag.", + "empty_column.hashtag": "Não foram encontradas publicações com essa #etiqueta.", "empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.", "empty_column.home.suggestions": "Ver algumas sugestões", "empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.", @@ -240,7 +240,7 @@ "explore.title": "Explorar", "explore.trending_links": "Notícias", "explore.trending_statuses": "Publicações", - "explore.trending_tags": "Hashtags", + "explore.trending_tags": "#Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto em que acedeu a esta publicação. Se pretender que esta publicação seja filtrada também neste contexto, terá que editar o filtro.", "filter_modal.added.context_mismatch_title": "Contexto incoerente!", "filter_modal.added.expired_explanation": "Esta categoria de filtro expirou, necessita alterar a data de validade para que ele seja aplicado.", @@ -276,27 +276,27 @@ "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", "hashtag.column_settings.select.no_options_message": "Não foram encontradas sugestões", - "hashtag.column_settings.select.placeholder": "Introduzir as hashtags…", + "hashtag.column_settings.select.placeholder": "Inserir #etiquetas…", "hashtag.column_settings.tag_mode.all": "Todos estes", "hashtag.column_settings.tag_mode.any": "Qualquer destes", "hashtag.column_settings.tag_mode.none": "Nenhum destes", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna", - "hashtag.follow": "Seguir hashtag", - "hashtag.unfollow": "Parar de seguir hashtag", + "hashtag.follow": "Seguir #etiqueta", + "hashtag.unfollow": "Deixar de seguir #etiqueta", "home.column_settings.basic": "Básico", - "home.column_settings.show_reblogs": "Mostrar boosts", + "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", - "home.hide_announcements": "Ocultar anúncios", - "home.show_announcements": "Exibir anúncios", - "interaction_modal.description.favourite": "Com uma conta no Mastodon, pode adicionar esta publicação aos favoritos para que o autor saiba que gostou e salvá-la para mais tarde.", + "home.hide_announcements": "Ocultar comunicações", + "home.show_announcements": "Exibir comunicações", + "interaction_modal.description.favourite": "Com uma conta no Mastodon, pode adicionar esta publicação aos marcadores para que o autor saiba que gostou e guardá-la para mais tarde.", "interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.", "interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.", "interaction_modal.description.reply": "Com uma conta no Mastodon, pode responder a esta publicação.", "interaction_modal.on_another_server": "Num servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.other_server_instructions": "Copie e cole este URL no campo de pesquisa do seu aplicativo Mastodon favorito ou da interface web do seu servidor Mastodon.", - "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, pode utilizar a sua conta existente, hospedada em outro servidor Mastodon ou plataforma compatível, se não tiver uma conta neste servidor.", - "interaction_modal.title.favourite": "Adicionar a publicação de {name} aos favoritos", + "interaction_modal.other_server_instructions": "Copie e cole este URL no campo de pesquisa da sua aplicação Mastodon preferida, ou da interface web do seu servidor Mastodon.", + "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, caso não tenha uma conta neste servidor, pode utilizar a sua conta existente noutro servidor Mastodon ou plataforma compatível.", + "interaction_modal.title.favourite": "Adicionar a publicação de {name} aos marcadores", "interaction_modal.title.follow": "Seguir {name}", "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", "interaction_modal.title.reply": "Responder à publicação de {name}", @@ -305,17 +305,17 @@ "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "keyboard_shortcuts.back": "para voltar", "keyboard_shortcuts.blocked": "para abrir a lista de utilizadores bloqueados", - "keyboard_shortcuts.boost": "para partilhar", + "keyboard_shortcuts.boost": "Impulsionar a publicação", "keyboard_shortcuts.column": "para focar uma publicação numa das colunas", "keyboard_shortcuts.compose": "para focar na área de publicação", "keyboard_shortcuts.description": "Descrição", "keyboard_shortcuts.direct": "para abrir a coluna das mensagens diretas", "keyboard_shortcuts.down": "para mover para baixo na lista", "keyboard_shortcuts.enter": "para expandir uma publicação", - "keyboard_shortcuts.favourite": "para adicionar aos favoritos", - "keyboard_shortcuts.favourites": "para abrir a lista dos favoritos", + "keyboard_shortcuts.favourite": "Juntar aos marcadores", + "keyboard_shortcuts.favourites": "Abrir lista de marcadores", "keyboard_shortcuts.federated": "para abrir a cronologia federada", - "keyboard_shortcuts.heading": "Atalhos do teclado", + "keyboard_shortcuts.heading": "Atalhos de teclado", "keyboard_shortcuts.home": "para abrir a cronologia inicial", "keyboard_shortcuts.hotkey": "Atalho", "keyboard_shortcuts.legend": "para mostrar esta legenda", @@ -398,7 +398,7 @@ "notification.mention": "{name} mencionou-te", "notification.own_poll": "A sua votação terminou", "notification.poll": "Uma votação em que participaste chegou ao fim", - "notification.reblog": "{name} partilhou a tua publicação", + "notification.reblog": "{name} reforçou a tua publicação", "notification.status": "{name} acabou de publicar", "notification.update": "{name} editou uma publicação", "notifications.clear": "Limpar notificações", @@ -406,34 +406,34 @@ "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no ambiente de trabalho", - "notifications.column_settings.favourite": "Favoritos:", + "notifications.column_settings.favourite": "Marcadores:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias", "notifications.column_settings.filter_bar.category": "Barra de filtros rápidos", "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", "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.poll": "Resultados do inquérito:", "notifications.column_settings.push": "Notificações Push", - "notifications.column_settings.reblog": "Boosts:", + "notifications.column_settings.reblog": "Reforços:", "notifications.column_settings.show": "Mostrar na coluna", "notifications.column_settings.sound": "Reproduzir som", - "notifications.column_settings.status": "Novos toots:", - "notifications.column_settings.unread_notifications.category": "Notificações não lidas", - "notifications.column_settings.unread_notifications.highlight": "Destacar notificações não lidas", + "notifications.column_settings.status": "Novas publicações:", + "notifications.column_settings.unread_notifications.category": "Notificações por ler", + "notifications.column_settings.unread_notifications.highlight": "Destacar notificações por ler", "notifications.column_settings.update": "Edições:", "notifications.filter.all": "Todas", - "notifications.filter.boosts": "Boosts", - "notifications.filter.favourites": "Favoritos", + "notifications.filter.boosts": "Reforços", + "notifications.filter.favourites": "Marcadores", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menções", - "notifications.filter.polls": "Votações", + "notifications.filter.polls": "Resultados do inquérito", "notifications.filter.statuses": "Atualizações de pessoas que você segue", - "notifications.grant_permission": "Conceder permissões.", + "notifications.grant_permission": "Conceder permissão.", "notifications.group": "{count} notificações", "notifications.mark_as_read": "Marcar todas as notificações como lidas", "notifications.permission_denied": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão, solicitada pelo navegador, foi recusada anteriormente", - "notifications.permission_denied_alert": "Notificações no ambinente de trabalho não podem ser ativadas, pois a permissão do navegador foi recusada anteriormente", + "notifications.permission_denied_alert": "Notificações no ambiente de trabalho não podem ser ativadas, pois a permissão do navegador foi recusada anteriormente", "notifications.permission_required": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão necessária não foi concedida.", "notifications_permission_banner.enable": "Ativar notificações no ambiente de trabalho", "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no ambiente de trabalho. Depois da sua ativação, pode controlar precisamente quais tipos de interações geram notificações, através do botão {icon} acima.", @@ -447,7 +447,7 @@ "poll.voted": "Votaste nesta resposta", "poll.votes": "{votes, plural, one {# voto } other {# votos}}", "poll_button.add_poll": "Adicionar votação", - "poll_button.remove_poll": "Remover votação", + "poll_button.remove_poll": "Remover sondagem", "privacy.change": "Ajustar a privacidade da publicação", "privacy.direct.long": "Apenas para utilizadores mencionados", "privacy.direct.short": "Apenas pessoas mencionadas", @@ -458,7 +458,7 @@ "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação", "privacy.unlisted.short": "Não listar", "privacy_policy.last_updated": "Última atualização em {date}", - "privacy_policy.title": "Política de Privacidade", + "privacy_policy.title": "Política de privacidade", "refresh": "Actualizar", "regeneration_indicator.label": "A carregar…", "regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!", @@ -475,7 +475,7 @@ "relative_time.today": "hoje", "reply_indicator.cancel": "Cancelar", "report.block": "Bloquear", - "report.block_explanation": "Não verá as publicações deles. Eles não serão capazes de ver suas publicações ou de o seguir. Eles vão conseguir saber que estão bloqueados.", + "report.block_explanation": "Não verá as suas publicações. Eles deixarão de poder ver suas publicações ou segui-lo. Eles poderão perceber que estão bloqueados.", "report.categories.other": "Outro", "report.categories.spam": "Spam", "report.categories.violation": "O conteúdo viola uma ou mais regras do servidor", @@ -484,19 +484,19 @@ "report.category.title_account": "perfil", "report.category.title_status": "publicação", "report.close": "Concluído", - "report.comment.title": "Há algo mais que pensa que devemos saber?", - "report.forward": "Reenviar para {target}", - "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia anónima da denúncia para lá também?", + "report.comment.title": "Há algo mais que ache de que deveríamos saber?", + "report.forward": "Reencaminhar para {target}", + "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia da anónima da denúncia para lá também?", "report.mute": "Silenciar", - "report.mute_explanation": "Não verá as publicações deles. Eles ainda poderão segui-lo e ver as suas publicações e não saberão que estão silenciados.", + "report.mute_explanation": "Não verá as suas publicações. Eles ainda poderão segui-lo e ver as suas publicações, e não saberão que estão silenciados.", "report.next": "Seguinte", "report.placeholder": "Comentários adicionais", - "report.reasons.dislike": "Não gosto disso", + "report.reasons.dislike": "Não gosto disto", "report.reasons.dislike_description": "Não é algo que deseje ver", "report.reasons.other": "É outra coisa", "report.reasons.other_description": "O problema não se encaixa nas outras categorias", "report.reasons.spam": "É spam", - "report.reasons.spam_description": "Links maliciosos, contactos falsos, ou respostas repetitivas", + "report.reasons.spam_description": "Hiperligações maliciosas, contactos falsos, ou respostas repetitivas", "report.reasons.violation": "Viola as regras do servidor", "report.reasons.violation_description": "Está ciente de que infringe regras específicas", "report.rules.subtitle": "Selecione tudo o que se aplicar", @@ -508,7 +508,7 @@ "report.thanks.take_action": "Aqui estão as suas opções para controlar o que vê no Mastodon:", "report.thanks.take_action_actionable": "Enquanto revemos a sua denúncia, pode tomar medidas contra @{name}:", "report.thanks.title": "Não quer ver isto?", - "report.thanks.title_actionable": "Obrigado por reportar, vamos analisar.", + "report.thanks.title_actionable": "Obrigado por denunciar. Iremos analisar.", "report.unfollow": "Deixar de seguir @{name}", "report.unfollow_explanation": "Está a seguir esta conta. Para não ver mais as publicações desta conta na sua página inicial, deixe de segui-la.", "report_notification.attached_statuses": "{count, plural,one {{count} publicação} other {{count} publicações}} em anexo", @@ -519,17 +519,17 @@ "search.placeholder": "Pesquisar", "search.search_or_paste": "Pesquisar ou introduzir URL", "search_popout.search_format": "Formato avançado de pesquisa", - "search_popout.tips.full_text": "Texto simples devolve publicações que escreveu, marcou como favorita, partilhou ou em que foi mencionado, tal como nomes de utilizador, alcunhas e hashtags.", - "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.full_text": "Texto simples devolve publicações que escreveu, marcou, reforçou, ou em que foi mencionado, tal como nomes de utilizador, alcunhas e #etiquetas.", + "search_popout.tips.hashtag": "etiqueta", "search_popout.tips.status": "publicação", - "search_popout.tips.text": "O texto simples retorna a correspondência de nomes, utilizadores e hashtags", + "search_popout.tips.text": "O texto simples retorna a correspondência de nomes, utilizadores e #etiquetas", "search_popout.tips.user": "utilizador", "search_results.accounts": "Pessoas", "search_results.all": "Tudo", - "search_results.hashtags": "Hashtags", + "search_results.hashtags": "Etiquetas", "search_results.nothing_found": "Não foi possível encontrar resultados para as expressões pesquisadas", - "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "A pesquisa de toots pelo seu conteúdo não está disponível nesta instância Mastodon.", + "search_results.statuses": "Publicações", + "search_results.statuses_fts_disabled": "A pesquisa de publicações pelo seu conteúdo não está disponível nesta instância Mastodon.", "search_results.title": "Pesquisar por {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", "server_banner.about_active_users": "Pessoas que utilizaram este servidor nos últimos 30 dias (Utilizadores Ativos Mensais)", @@ -540,26 +540,26 @@ "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Criar conta", "sign_in_banner.sign_in": "Iniciar sessão", - "sign_in_banner.text": "Inicie sessão para seguir perfis ou hashtags, favoritos, partilhar e responder às publicações ou interagir através da sua conta noutro servidor.", + "sign_in_banner.text": "Inicie sessão para seguir perfis ou #etiquetas, ou marcadores, para partilhar ou responder às publicações, ou interagir através da sua conta noutro servidor.", "status.admin_account": "Abrir a interface de moderação para @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Abrir interface de moderação para {domain}", "status.admin_status": "Abrir esta publicação na interface de moderação", "status.block": "Bloquear @{name}", - "status.bookmark": "Salvar", - "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", + "status.bookmark": "Guardar nos marcadores", + "status.cancel_reblog_private": "Deixar de reforçar", + "status.cannot_reblog": "Não é possível reforçar esta publicação", + "status.copy": "Copiar ligação para a publicação", "status.delete": "Eliminar", - "status.detailed_status": "Vista de conversação detalhada", + "status.detailed_status": "Vista pormenorizada da conversa", "status.direct": "Mensagem direta @{name}", "status.edit": "Editar", "status.edited": "Editado em {date}", "status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}", - "status.embed": "Incorporar", - "status.favourite": "Adicionar aos favoritos", + "status.embed": "Embutir", + "status.favourite": "Adicionar aos marcadores", "status.filter": "Filtrar esta publicação", "status.filtered": "Filtrada", - "status.hide": "Hide post", + "status.hide": "Ocultar publicação", "status.history.created": "{name} criado em {date}", "status.history.edited": "{name} editado em {date}", "status.load_more": "Carregar mais", @@ -569,20 +569,20 @@ "status.mute": "Silenciar @{name}", "status.mute_conversation": "Silenciar conversa", "status.open": "Expandir", - "status.pin": "Fixar no perfil", - "status.pinned": "Publicação fixa", + "status.pin": "Afixar no perfil", + "status.pinned": "Publicação afixada", "status.read_more": "Ler mais", - "status.reblog": "Partilhar", - "status.reblog_private": "Fazer boost com a audiência original", - "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.reblog": "Reforçar", + "status.reblog_private": "Reforçar com a visibilidade de origem", + "status.reblogged_by": "{name} reforçou", + "status.reblogs.empty": "Ainda ninguém reforçou esta publicação. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", - "status.remove_bookmark": "Remover dos itens salvos", + "status.remove_bookmark": "Retirar dos marcadores", "status.replied_to": "Respondeu a {name}", "status.reply": "Responder", "status.replyAll": "Responder à conversa", "status.report": "Denunciar @{name}", - "status.sensitive_warning": "Conteúdo sensível", + "status.sensitive_warning": "Conteúdo problemático", "status.share": "Partilhar", "status.show_filter_reason": "Mostrar mesmo assim", "status.show_less": "Mostrar menos", @@ -592,14 +592,14 @@ "status.show_original": "Mostrar original", "status.translate": "Traduzir", "status.translated_from_with": "Traduzido do {lang} usando {provider}", - "status.uncached_media_warning": "Não disponível", + "status.uncached_media_warning": "Indisponível", "status.unmute_conversation": "Deixar de silenciar esta conversa", - "status.unpin": "Não fixar no perfil", - "subscribed_languages.lead": "Após a alteração, apenas as publicações nos idiomas selecionados aparecerão na sua página inicial e listas. Não selecione nenhuma para receber publicações de todos os idiomas.", + "status.unpin": "Desafixar do perfil", + "subscribed_languages.lead": "Após a alteração, apenas as publicações nas línguas seleccionadas aparecerão na sua página inicial e listas. Não selecione nenhuma para receber publicações de todas as línguas.", "subscribed_languages.save": "Guardar alterações", - "subscribed_languages.target": "Alterar idiomas subscritos para {target}", + "subscribed_languages.target": "Alterar línguas assinadas para {target}", "suggestions.dismiss": "Dispensar a sugestão", - "suggestions.header": "Tu podes estar interessado em…", + "suggestions.header": "Poderá estar interessado em…", "tabs_bar.federated_timeline": "Federada", "tabs_bar.home": "Início", "tabs_bar.local_timeline": "Local", @@ -612,17 +612,17 @@ "timeline_hint.remote_resource_not_displayed": "{resource} de outros servidores não são exibidos.", "timeline_hint.resources.followers": "Seguidores", "timeline_hint.resources.follows": "Seguindo", - "timeline_hint.resources.statuses": "Toots antigos", + "timeline_hint.resources.statuses": "Publicações mais antigas", "trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} {days, plural, one {no último dia} other {nos últimos {days} dias}}", - "trends.trending_now": "Tendências atuais", + "trends.trending_now": "Em alta neste momento", "ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.", "units.short.billion": "{count}MM", "units.short.million": "{count}M", "units.short.thousand": "{count}m", "upload_area.title": "Arraste e solte para enviar", - "upload_button.label": "Adicionar media", + "upload_button.label": "Juntar imagens, um vídeo, ou um ficheiro de som", "upload_error.limit": "Limite máximo do ficheiro a carregar excedido.", - "upload_error.poll": "Carregamento de ficheiros não é permitido em votações.", + "upload_error.poll": "O carregamento de ficheiros não é permitido em sondagens.", "upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva", "upload_form.description": "Descreva para pessoas com diminuição da acuidade visual", "upload_form.description_missing": "Nenhuma descrição adicionada", @@ -638,18 +638,18 @@ "upload_modal.detect_text": "Detectar texto na imagem", "upload_modal.edit_media": "Editar media", "upload_modal.hint": "Clique ou arraste o círculo na pré-visualização para escolher o ponto focal que será sempre visível em todas as miniaturas.", - "upload_modal.preparing_ocr": "A preparar OCR…", + "upload_modal.preparing_ocr": "A preparar o reconhecimento de caracteres (OCR)…", "upload_modal.preview_label": "Pré-visualizar ({ratio})", "upload_progress.label": "A enviar...", "upload_progress.processing": "A processar…", "video.close": "Fechar vídeo", "video.download": "Descarregar ficheiro", - "video.exit_fullscreen": "Sair de full screen", + "video.exit_fullscreen": "Sair do modo ecrã inteiro", "video.expand": "Expandir vídeo", "video.fullscreen": "Ecrã completo", "video.hide": "Esconder vídeo", "video.mute": "Silenciar", "video.pause": "Pausar", "video.play": "Reproduzir", - "video.unmute": "Remover de silêncio" + "video.unmute": "Deixar de silenciar" } diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 246262db31..6e5674bd10 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -128,7 +128,7 @@ "compose.language.search": "Căutare limbi…", "compose_form.direct_message_warning_learn_more": "Află mai multe", "compose_form.encryption_warning": "Postările pe Mastodon nu sunt criptate în ambele părți. Nu împărtășiți nici o informație sensibilă pe Mastodon.", - "compose_form.hashtag_warning": "Această postare nu va fi listată sub niciun hashtag deoarece este nelistată. Doar postările publice pot fi căutate cu un hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Contul tău nu este {locked}. Oricine se poate abona la tine pentru a îți vedea postările numai pentru abonați.", "compose_form.lock_disclaimer.lock": "privat", "compose_form.placeholder": "La ce te gândești?", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 72bd7d7913..998c6f05b1 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -128,7 +128,7 @@ "compose.language.search": "Поиск языков...", "compose_form.direct_message_warning_learn_more": "Подробнее", "compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь конфиденциальной информацией через Mastodon.", - "compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.", + "compose_form.hashtag_warning": "Этот пост не будет виден ни под одним из хэштегов, так как он не публичный. Только публичные посты можно найти по хэштегу.", "compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.", "compose_form.lock_disclaimer.lock": "не закрыта", "compose_form.placeholder": "О чём думаете?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Войти", "sign_in_banner.text": "Войдите, чтобы следить за профилями, хэштегами или избранным, делиться сообщениями и отвечать на них или взаимодействовать с вашей учётной записью на другом сервере.", "status.admin_account": "Открыть интерфейс модератора для @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Открыть интерфейс модерации {domain}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", "status.block": "Заблокировать @{name}", "status.bookmark": "Сохранить в закладки", @@ -559,7 +559,7 @@ "status.favourite": "В избранное", "status.filter": "Фильтровать этот пост", "status.filtered": "Отфильтровано", - "status.hide": "Hide post", + "status.hide": "Скрыть пост", "status.history.created": "{name} создал {date}", "status.history.edited": "{name} отредактировал(а) {date}", "status.load_more": "Загрузить остальное", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index e926f72f19..c4e51431bd 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "अधिकं ज्ञायताम्", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "न कस्मिन्नपि प्रचलितवस्तुषु सूचितमिदं दौत्यम् । केवलं सार्वजनिकदौत्यानि प्रचलितवस्तुचिह्नेन अन्वेषयितुं शक्यते ।", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि दौत्यानि द्रष्टुं शक्नोति ।", "compose_form.lock_disclaimer.lock": "अवरुद्धः", "compose_form.placeholder": "मनसि ते किमस्ति?", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 557a567020..f56f2d5bd4 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Àteras informatziones", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Custa publicatzione no at a èssere ammustrada in peruna eticheta, dae chi no est listada. Isceti is publicatziones pùblicas podent èssere chircadas cun etichetas.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Su contu tuo no est {locked}. Cale si siat persone ti podet sighire pro bìdere is messàgios tuos chi imbies a sa gente chi ti sighit.", "compose_form.lock_disclaimer.lock": "blocadu", "compose_form.placeholder": "A ite ses pensende?", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 0eb8c54722..5e13c89a53 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -128,7 +128,7 @@ "compose.language.search": "Seirch leids...", "compose_form.direct_message_warning_learn_more": "Lairn mair", "compose_form.encryption_warning": "Posts on Mastodon isnae en-tae-en encryptit. Dinnae share onie sensitive information ower Mastodon.", - "compose_form.hashtag_warning": "This post wulnae be listit unner onie hashtag seein it is no listit. Ainly public posts kin be seirchit oot bi hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Yer accoont isnae {locked}. Awbody kin follae ye for tae luik at yer follaer-ainly posts.", "compose_form.lock_disclaimer.lock": "lockit", "compose_form.placeholder": "Whit's on yer mind?", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 4a492eeab8..631fe3f31e 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -128,7 +128,7 @@ "compose.language.search": "භාෂා සොයන්න...", "compose_form.direct_message_warning_learn_more": "තව දැනගන්න", "compose_form.encryption_warning": "Mastodon හි පළ කිරීම් අන්තයේ සිට අවසානය දක්වා සංකේතනය කර නොමැත. Mastodon හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.", - "compose_form.hashtag_warning": "මෙම මෙවලම ලැයිස්තුගත කර නොමැති බැවින් කිසිදු හැෂ් ටැගය යටතේ ලැයිස්තුගත නොකෙරේ. හැෂ් ටැග් මගින් සෙවිය හැක්කේ පොදු මෙවලම් පමණි.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "ඔබගේ ගිණුම {locked}නොවේ. ඔබගේ අනුගාමිකයින්ට පමණක් පළ කිරීම් බැලීමට ඕනෑම කෙනෙකුට ඔබව අනුගමනය කළ හැක.", "compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත", "compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 96bd338f87..efbccdc388 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -54,7 +54,7 @@ "account.posts_with_replies": "Príspevky a odpovede", "account.report": "Nahlás @{name}", "account.requested": "Čaká na schválenie. Klikni pre zrušenie žiadosti", - "account.requested_follow": "{name} has requested to follow you", + "account.requested_follow": "{name} ťa žiada nasledovať", "account.share": "Zdieľaj @{name} profil", "account.show_reblogs": "Ukáž vyzdvihnutia od @{name}", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", @@ -128,7 +128,7 @@ "compose.language.search": "Hľadaj medzi jazykmi...", "compose_form.direct_message_warning_learn_more": "Zisti viac", "compose_form.encryption_warning": "Príspevky na Mastodon nie sú end-to-end šifrované. Nezdieľajte cez Mastodon žiadne citlivé informácie.", - "compose_form.hashtag_warning": "Tento toot nebude zobrazený pod žiadným haštagom lebo nieje listovaný. Iba verejné tooty môžu byť nájdené podľa haštagu.", + "compose_form.hashtag_warning": "Tento príspevok nebude zobrazený pod žiadným haštagom, lebo nieje verejne listovaný. Iba verejné príspevky môžu byť nájdené podľa haštagu.", "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.", "compose_form.lock_disclaimer.lock": "zamknutý", "compose_form.placeholder": "Čo máš na mysli?", @@ -236,11 +236,11 @@ "errors.unexpected_crash.copy_stacktrace": "Skopíruj stacktrace do schránky", "errors.unexpected_crash.report_issue": "Nahlás problém", "explore.search_results": "Výsledky hľadania", - "explore.suggested_follows": "For you", + "explore.suggested_follows": "Pre teba", "explore.title": "Objavuj", - "explore.trending_links": "News", - "explore.trending_statuses": "Posts", - "explore.trending_tags": "Hashtags", + "explore.trending_links": "Novinky", + "explore.trending_statuses": "Príspevky", + "explore.trending_tags": "Haštagy", "filter_modal.added.context_mismatch_explanation": "Táto kategória filtrov sa nevzťahuje na kontext, v ktorom ste získali prístup k tomuto príspevku. Ak chcete, aby sa príspevok filtroval aj v tomto kontexte, budete musieť filter upraviť.", "filter_modal.added.context_mismatch_title": "Nesúlad kontextu!", "filter_modal.added.expired_explanation": "Platnosť tejto kategórie filtra vypršala, aby sa použila, je potrebné zmeniť dátum vypršania platnosti.", @@ -514,10 +514,10 @@ "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", "report_notification.categories.other": "Ostatné", "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Rule violation", - "report_notification.open": "Open report", + "report_notification.categories.violation": "Porušenie pravidla", + "report_notification.open": "Otvor hlásenie", "search.placeholder": "Hľadaj", - "search.search_or_paste": "Search or paste URL", + "search.search_or_paste": "Hľadaj, alebo vlož URL adresu", "search_popout.search_format": "Pokročilé vyhľadávanie", "search_popout.tips.full_text": "Vráti jednoduchý textový výpis príspevkov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezývky, mená a haštagy.", "search_popout.tips.hashtag": "haštag", @@ -530,10 +530,10 @@ "search_results.nothing_found": "Could not find anything for these search terms", "search_results.statuses": "Príspevky", "search_results.statuses_fts_disabled": "Vyhľadávanie v obsahu príspevkov nieje na tomto Mastodon serveri povolené.", - "search_results.title": "Search for {q}", + "search_results.title": "Hľadaj {q}", "search_results.total": "{count, number} {count, plural, one {výsledok} many {výsledkov} other {výsledky}}", "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", - "server_banner.active_users": "active users", + "server_banner.active_users": "aktívni užívatelia", "server_banner.administered_by": "Správcom je:", "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", "server_banner.learn_more": "Zisti viac", @@ -557,9 +557,9 @@ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Vložiť", "status.favourite": "Páči sa mi", - "status.filter": "Filter this post", + "status.filter": "Filtrovanie tohto príspevku", "status.filtered": "Filtrované", - "status.hide": "Hide post", + "status.hide": "Skry príspevok", "status.history.created": "{name} vytvoril/a {date}", "status.history.edited": "{name} upravil/a {date}", "status.load_more": "Ukáž viac", @@ -641,7 +641,7 @@ "upload_modal.preparing_ocr": "Pripravujem OCR…", "upload_modal.preview_label": "Náhľad ({ratio})", "upload_progress.label": "Nahráva sa...", - "upload_progress.processing": "Processing…", + "upload_progress.processing": "Spracovávanie…", "video.close": "Zavri video", "video.download": "Stiahni súbor", "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 61ae1c41d0..0c9125acd3 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Prijava", "sign_in_banner.text": "Prijavite se, da sledite profilom ali ključnikom, dodajate med priljubljene, delite z drugimi ter odgovarjate na objave, pa tudi ostajate v interakciji iz svojega računa na drugem strežniku.", "status.admin_account": "Odpri vmesnik za moderiranje za @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Odpri vmesnik za moderiranje za {domain}", "status.admin_status": "Odpri to objavo v vmesniku za moderiranje", "status.block": "Blokiraj @{name}", "status.bookmark": "Dodaj med zaznamke", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 294354ef45..10176e3bce 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -128,7 +128,7 @@ "compose.language.search": "Kërkoni te gjuhët…", "compose_form.direct_message_warning_learn_more": "Mësoni më tepër", "compose_form.encryption_warning": "Postimet në Mastodon nuk fshehtëzohen skaj-më-skaj. Mos ndani me të tjerë gjëra me spec në Mastodon.", - "compose_form.hashtag_warning": "Ky mesazh s’do të paraqitet nën ndonjë hashtag, ngaqë s’i është caktuar ndonjë. Vetëm mesazhet publike mund të kërkohen sipas hashtagësh.", + "compose_form.hashtag_warning": "Ky postim s’do të paraqitet nën ndonjë hashtag, ngaqë s’është publik. Vetëm postimet publike mund të kërkohen sipas hashtag-ësh.", "compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.", "compose_form.lock_disclaimer.lock": "e kyçur", "compose_form.placeholder": "Ç’bluani në mendje?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Hyni", "sign_in_banner.text": "Që të ndiqni profile ose hashtag-ë, të pëlqeni, të ndani me të tjerë dhe të përgjigjeni në postime, apo të ndërveproni me llogarinë tuaj nga një shërbyes tjetër, bëni hyrjen.", "status.admin_account": "Hap ndërfaqe moderimi për @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Hap ndërfaqe moderimi për {domain}", "status.admin_status": "Hape këtë mesazh te ndërfaqja e moderimit", "status.block": "Blloko @{name}", "status.bookmark": "Faqeruaje", @@ -559,7 +559,7 @@ "status.favourite": "I parapëlqyer", "status.filter": "Filtroje këtë postim", "status.filtered": "I filtruar", - "status.hide": "Hide post", + "status.hide": "Fshihe postimin", "status.history.created": "{name} u krijua më {date}", "status.history.edited": "{name} u përpunua më {date}", "status.load_more": "Ngarko më tepër", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index a9a10488d9..0feb79691e 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -128,7 +128,7 @@ "compose.language.search": "Pretraga jezika...", "compose_form.direct_message_warning_learn_more": "Saznajte više", "compose_form.encryption_warning": "Objave na Mastodon-u nisu potpuno šifrovane. Nemojte deliti nikakve osetljive informacije preko Mastodon-a.", - "compose_form.hashtag_warning": "Ova objava neće biti navedena ni pod jednom heš oznakom jer je nenavedena. Samo javne objave mogu se pretraživati po heš oznakama.", + "compose_form.hashtag_warning": "Ova objava neće biti navedena ni pod jednom heš oznakom jer nije javna. Samo javne objave se mogu pretraživati po heš oznakama.", "compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da vas prati i da vidi vaše objave namenjene samo za vaše pratioce.", "compose_form.lock_disclaimer.lock": "zaključan", "compose_form.placeholder": "O čemu razmišljate?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Prijavi se", "sign_in_banner.text": "Prijavite se da pratite profile ili heštegove, stavite objave kao omiljene, delite i odgovarate na njih ili komunicirate sa svog naloga sa drugog servera.", "status.admin_account": "Otvori moderatorsko okruženje za @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Otvori moderatorsko okruženje za {domain}", "status.admin_status": "Otvori ovu objavu u moderatorskom okruženju", "status.block": "Blokiraj @{name}", "status.bookmark": "Dodaj u obeleživače", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index d69ec24576..ca0f04b34f 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -128,7 +128,7 @@ "compose.language.search": "Претрага језика...", "compose_form.direct_message_warning_learn_more": "Сазнајте више", "compose_form.encryption_warning": "Објаве на Mastodon-у нису потпуно шифроване. Немојте делити никакве осетљиве информације преко Mastodon-а.", - "compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер је ненаведена. Само јавне објаве могу се претраживати по хеш ознакама.", + "compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер није јавна. Само јавне објаве се могу претраживати по хеш ознакама.", "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да вас прати и да види ваше објаве намењене само за ваше пратиоце.", "compose_form.lock_disclaimer.lock": "закључан", "compose_form.placeholder": "О чему размишљате?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Пријави се", "sign_in_banner.text": "Пријавите се да пратите профиле или хештегове, ставите објаве као омиљене, делите и одговарате на њих или комуницирате са свог налога са другог сервера.", "status.admin_account": "Отвори модераторско окружење за @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Отвори модераторско окружење за {domain}", "status.admin_status": "Отвори ову објаву у модераторском окружењу", "status.block": "Блокирај @{name}", "status.bookmark": "Додај у обележиваче", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 1334e3bb67..940f58e86b 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -128,7 +128,7 @@ "compose.language.search": "Sök språk...", "compose_form.direct_message_warning_learn_more": "Läs mer", "compose_form.encryption_warning": "Inlägg på Mastodon är inte obrutet krypterade. Dela inte känslig information på Mastodon.", - "compose_form.hashtag_warning": "Detta inlägg kommer inte listas under någon hashtagg eftersom det är olistat. Endast offentliga inlägg kan eftersökas med hashtagg.", + "compose_form.hashtag_warning": "Inlägget listas inte under någon hashtag eftersom det inte är offentligt. Endast offentliga inlägg går att söka med en hashtag.", "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Vad tänker du på?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Logga in", "sign_in_banner.text": "Logga in för att följa profiler eller hashtaggar, favoritmarkera, dela och svara på inlägg eller interagera från ditt konto på en annan server.", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Öppet modereringsgränssnitt för @{domain}", "status.admin_status": "Öppna detta inlägg i modereringsgränssnittet", "status.block": "Blockera @{name}", "status.bookmark": "Bokmärk", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 34dafb5dcc..e646ef83c4 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index ec01aa613e..7013fdbb84 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -128,7 +128,7 @@ "compose.language.search": "தேடல் மொழிகள்...", "compose_form.direct_message_warning_learn_more": "மேலும் அறிய", "compose_form.encryption_warning": "Mastodonல் உள்ள பதிவுகள் முறையாக என்க்ரிப்ட்(encrypt) செய்யபடவில்லை. அதனால் முக்கிய தகவல்களை இங்கே பகிர வேண்டாம்.", - "compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "உங்கள் கணக்கு {locked} செய்யப்படவில்லை. உங்கள் பதிவுகளை யார் வேண்டுமானாலும் பின்தொடர்ந்து காணலாம்.", "compose_form.lock_disclaimer.lock": "பூட்டப்பட்டது", "compose_form.placeholder": "உங்கள் மனதில் என்ன இருக்கிறது?", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index b488f6b2a8..d39ca62ebe 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index cce7ebe97a..2e199fd397 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "మరింత తెలుసుకోండి", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "ఈ టూట్ అన్లిస్టెడ్ కాబట్టి ఏ హాష్ ట్యాగ్ క్రిందకూ రాదు. పబ్లిక్ టూట్ లను మాత్రమే హాష్ ట్యాగ్ ద్వారా శోధించవచ్చు.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "మీ ఖాతా {locked} చేయబడలేదు. ఎవరైనా మిమ్మల్ని అనుసరించి మీ అనుచరులకు-మాత్రమే పోస్ట్లను వీక్షించవచ్చు.", "compose_form.lock_disclaimer.lock": "బిగించబడినది", "compose_form.placeholder": "మీ మనస్సులో ఏముంది?", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 594a262dc2..a0247891fb 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -128,7 +128,7 @@ "compose.language.search": "ค้นหาภาษา...", "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม", "compose_form.encryption_warning": "โพสต์ใน Mastodon ไม่ได้เข้ารหัสแบบต้นทางถึงปลายทาง อย่าแบ่งปันข้อมูลที่ละเอียดอ่อนใด ๆ ผ่าน Mastodon", - "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากโพสต์ไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาได้โดยแฮชแท็ก", + "compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากโพสต์ไม่อยู่ในรายการไม่เป็นสาธารณะ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาได้โดยแฮชแท็ก", "compose_form.lock_disclaimer": "บัญชีของคุณไม่ได้ {locked} ใครก็ตามสามารถติดตามคุณเพื่อดูโพสต์สำหรับผู้ติดตามเท่านั้นของคุณ", "compose_form.lock_disclaimer.lock": "ล็อคอยู่", "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "ลงชื่อเข้า", "sign_in_banner.text": "ลงชื่อเข้าเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ หรือโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "เปิดส่วนติดต่อการควบคุมสำหรับ {domain}", "status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการควบคุม", "status.block": "ปิดกั้น @{name}", "status.bookmark": "เพิ่มที่คั่นหน้า", @@ -559,7 +559,7 @@ "status.favourite": "ชื่นชอบ", "status.filter": "กรองโพสต์นี้", "status.filtered": "กรองอยู่", - "status.hide": "Hide post", + "status.hide": "ซ่อนโพสต์", "status.history.created": "{name} ได้สร้างเมื่อ {date}", "status.history.edited": "{name} ได้แก้ไขเมื่อ {date}", "status.load_more": "โหลดเพิ่มเติม", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index f0f90be707..287ba5e630 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -128,7 +128,7 @@ "compose.language.search": "Dilleri ara...", "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin", "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifrelemeli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayın.", - "compose_form.hashtag_warning": "Bu gönderi liste dışı olduğu için hiç bir etikette yer almayacak. Sadece herkese açık gönderiler etiketlerde bulunabilir.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "Hesabın {locked} değil. Yalnızca takipçilere özel gönderilerini görüntülemek için herkes seni takip edebilir.", "compose_form.lock_disclaimer.lock": "kilitli", "compose_form.placeholder": "Aklında ne var?", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Giriş yap", "sign_in_banner.text": "Profilleri veya etiketleri izlemek, gönderileri beğenmek, paylaşmak ve yanıtlamak için veya başka bir sunucunuzdaki hesabınızla etkileşmek için giriş yapın.", "status.admin_account": "@{name} için denetim arayüzünü açın", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "{domain} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu gönderiyi açın", "status.block": "@{name} adlı kişiyi engelle", "status.bookmark": "Yer işareti ekle", @@ -559,7 +559,7 @@ "status.favourite": "Favorilerine ekle", "status.filter": "Bu gönderiyi filtrele", "status.filtered": "Filtrelenmiş", - "status.hide": "Hide post", + "status.hide": "Gönderiyi gizle", "status.history.created": "{name} oluşturdu {date}", "status.history.edited": "{name} düzenledi {date}", "status.load_more": "Daha fazlasını yükle", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 321a826654..d0aaba7e93 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 34dafb5dcc..e646ef83c4 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Learn more", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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?", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 97ae2afbd1..8276908b18 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -102,7 +102,7 @@ "column.blocks": "Заблоковані користувачі", "column.bookmarks": "Закладки", "column.community": "Локальна стрічка", - "column.direct": "Прямі повідомлення", + "column.direct": "Особисті повідомлення", "column.directory": "Переглянути профілі", "column.domain_blocks": "Заблоковані домени", "column.favourites": "Вподобане", @@ -371,7 +371,7 @@ "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальна стрічка", "navigation_bar.compose": "Написати новий допис", - "navigation_bar.direct": "Прямі повідомлення", + "navigation_bar.direct": "Особисті повідомлення", "navigation_bar.discover": "Дослідити", "navigation_bar.domain_blocks": "Заблоковані домени", "navigation_bar.edit_profile": "Редагувати профіль", @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Увійти", "sign_in_banner.text": "Увійдіть, щоб слідкувати за профілями або хештеґами, вподобаними, ділитися і відповідати на повідомлення або взаємодіяти з вашого облікового запису на іншому сервері.", "status.admin_account": "Відкрити інтерфейс модерації для @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Відкрити інтерфейс модерації для {domain}", "status.admin_status": "Відкрити цей допис в інтерфейсі модерації", "status.block": "Заблокувати @{name}", "status.bookmark": "Додати до закладок", @@ -559,7 +559,7 @@ "status.favourite": "Подобається", "status.filter": "Фільтрувати цей допис", "status.filtered": "Відфільтровано", - "status.hide": "Приховати повідомлення", + "status.hide": "Сховати допис", "status.history.created": "{name} створює {date}", "status.history.edited": "{name} змінює {date}", "status.load_more": "Завантажити більше", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index c7c7f038c7..e411e60155 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -128,7 +128,7 @@ "compose.language.search": "زبان تلاش کریں...", "compose_form.direct_message_warning_learn_more": "مزید جانیں", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "آپ کا اکاؤنٹ {locked} نہیں ہے. کوئی بھی آپ کے مخصوص برائے پیروکار ٹوٹ دیکھنے کی خاطر آپ کی پیروی کر سکتا ہے.", "compose_form.lock_disclaimer.lock": "مقفل", "compose_form.placeholder": "آپ کیا سوچ رہے ہیں؟", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 838b5f0e6d..7bc5054747 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "Đăng nhập", "sign_in_banner.text": "Đăng nhập để theo dõi người hoặc hashtag; cũng như thích, chia sẻ và trả lời tút.", "status.admin_account": "Mở giao diện quản trị @{name}", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "Mở giao diện quản trị @{domain}", "status.admin_status": "Mở tút này trong giao diện quản trị", "status.block": "Chặn @{name}", "status.bookmark": "Lưu", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 1b609d3c41..9b620cde80 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -128,7 +128,7 @@ "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "ⵙⵙⵏ ⵓⴳⴳⴰⵔ", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts 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": "ⵉⵜⵜⵓⵔⴳⵍ", "compose_form.placeholder": "ⵎⴰⵢⴷ ⵉⵍⵍⴰⵏ ⴳ ⵉⵅⴼ ⵏⵏⴽ?", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f54c697db1..195c631989 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "登录", "sign_in_banner.text": "登录以关注个人资料或话题标签、喜欢、分享和嘟文,或与在不同服务器上的账号进行互动。", "status.admin_account": "打开 @{name} 的管理界面", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "打开 {domain} 的管理界面", "status.admin_status": "打开此帖的管理界面", "status.block": "屏蔽 @{name}", "status.bookmark": "添加到书签", @@ -559,7 +559,7 @@ "status.favourite": "喜欢", "status.filter": "过滤此嘟文", "status.filtered": "已过滤", - "status.hide": "Hide post", + "status.hide": "隐藏嘟文", "status.history.created": "{name} 创建于 {date}", "status.history.edited": "{name} 编辑于 {date}", "status.load_more": "加载更多", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 9076a0568c..aa0530da35 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -128,7 +128,7 @@ "compose.language.search": "搜尋語言...", "compose_form.direct_message_warning_learn_more": "了解更多", "compose_form.encryption_warning": "Mastodon 上的帖文並未端對端加密。請不要透過 Mastodon 分享任何敏感資訊。", - "compose_form.hashtag_warning": "這文章因為不是公開,所以不會被標籤搜索。只有公開的文章才會被標籤搜索。", + "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "鎖定", "compose_form.placeholder": "你在想甚麼?", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index fdbe073cda..75e423d1cd 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -542,7 +542,7 @@ "sign_in_banner.sign_in": "登入", "sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文,或以您其他伺服器之帳號進行互動:", "status.admin_account": "開啟 @{name} 的管理介面", - "status.admin_domain": "Open moderation interface for {domain}", + "status.admin_domain": "開啟 {domain} 的管理介面", "status.admin_status": "在管理介面開啟此嘟文", "status.block": "封鎖 @{name}", "status.bookmark": "書籤", @@ -559,7 +559,7 @@ "status.favourite": "最愛", "status.filter": "過濾此嘟文", "status.filtered": "已過濾", - "status.hide": "Hide post", + "status.hide": "隱藏嘟文", "status.history.created": "{name} 於 {date} 建立", "status.history.edited": "{name} 於 {date} 修改", "status.load_more": "載入更多", diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml index ac58c22686..ddebd8f08c 100644 --- a/config/locales/activerecord.bg.yml +++ b/config/locales/activerecord.bg.yml @@ -19,7 +19,7 @@ bg: account: attributes: username: - invalid: трябва да има само букви, цифри и долни черти + invalid: трябва да е само букви, цифри и долни черти reserved: е запазено admin/webhook: attributes: diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml index a7104f3363..7e49ed1e16 100644 --- a/config/locales/activerecord.de.yml +++ b/config/locales/activerecord.de.yml @@ -4,16 +4,16 @@ de: attributes: poll: expires_at: Abstimmungsende - options: Wahlmöglichkeiten + options: Auswahlmöglichkeiten user: agreement: Service-Vereinbarung email: E-Mail-Adresse locale: Sprache password: Passwort user/account: - username: Profilname + username: Benutzername user/invite_request: - text: Grund + text: Begründung errors: models: account: @@ -36,19 +36,19 @@ de: status: attributes: reblog: - taken: des Beitrags existiert schon + taken: des Beitrags existiert bereits user: attributes: email: - blocked: verwendet einen nicht erlaubten E-Mail-Anbieter + blocked: verwendet einen unerlaubten E-Mail-Anbieter unreachable: scheint nicht zu existieren role_id: - elevated: Kann nicht höher als Ihre aktuelle Rolle sein + elevated: kann nicht höher als Ihre aktuelle Rolle sein user_role: attributes: permissions_as_keys: - dangerous: enthalte Berechtigungen, die für die Basisrolle nicht sicher sind - elevated: kann keine Berechtigungen enthalten, die deine aktuelle Rolle nicht besitzt + dangerous: enthält Berechtigungen, welche nicht sicher sind für die Basisrolle + elevated: kann nicht Berechtigungen beinhalten, die deine aktuelle Rolle nicht besitzt own_role: kann nicht mit deiner aktuellen Rolle geändert werden position: elevated: kann nicht höher sein als deine aktuelle Rolle diff --git a/config/locales/activerecord.et.yml b/config/locales/activerecord.et.yml index b76001ed9b..d98c6b611a 100644 --- a/config/locales/activerecord.et.yml +++ b/config/locales/activerecord.et.yml @@ -43,13 +43,13 @@ et: blocked: kasutab mitte lubatud e-posti teenusepakkujat unreachable: ei paista eksisteerivat role_id: - elevated: ei saa olla kõrgem kui teie enda roll + elevated: ei saa olla kõrgem kui enda roll user_role: attributes: permissions_as_keys: dangerous: hõlmata õiguseid, mis ei ole turvalised baasrollile - elevated: ei saa hõlmata õiguseid, mida teie praegune roll ei sisalda - own_role: ei saa muuta teie praeguse rolliga + elevated: ei saa hõlmata õiguseid, mida sinu praegune roll ei sisalda + own_role: ei saa muuta sinu praeguse rolliga position: - elevated: ei saa olla kõrgem, kui teie praegune roll - own_role: ei saa muuta teie praeguse rolliga + elevated: ei saa olla kõrgem, kui sinu praegune roll + own_role: ei saa muuta sinu praeguse rolliga diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 5d0df51070..9608fdbfb2 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -116,7 +116,7 @@ bg: redownloaded_msg: Успешно опреснен профил на %{username} от източника reject: Отхвърляне rejected_msg: Успешно отхвърлена заявка за регистрация на приложението на %{username} - remote_suspension_irreversible: Данните за този акаунт са изтрити безвъзвратно. + remote_suspension_irreversible: Данните на този акаунт са необратимо изтрити. remote_suspension_reversible_hint_html: Акаунтът е бил преустановен на своя сървър и данните ще бъдат напълно премахнати на %{date}. Дотогава отдалеченият сървър може да възстанови този акаунт без щети. Ако желаете да премахнете всички данни за акаунта незабавно, можете да го сторите по-долу. remove_avatar: Премахване на аватар remove_header: Премахване на заглавката @@ -208,8 +208,8 @@ bg: reject_appeal: Отхвърляне на обжалването reject_user: Отхвърляне на потребителя remove_avatar_user: Премахване на аватара - reopen_report: Повторно отваряне на доклад - resend_user: Повторно изпращане на имейла за потвърждение + reopen_report: Отваряне пак на доклад + resend_user: Изпращане пак на е-писмо за потвърждение reset_password_user: Задаване на нова парола resolve_report: Отстраняване на доклада sensitive_account: Деликатен акаунт @@ -247,13 +247,13 @@ bg: destroy_announcement_html: "%{name} изтри оповестяване %{target}" destroy_canonical_email_block_html: "%{name} отблокира имейла с хеш %{target}" destroy_custom_emoji_html: "%{name} изтри емоджито %{target}" - destroy_domain_allow_html: "%{name} отмени федерирането с домейн %{target}" + destroy_domain_allow_html: "%{name} забрани федерирация с домейн %{target}" destroy_domain_block_html: "%{name} отблокира домейн %{target}" destroy_email_domain_block_html: "%{name} отблокира домейн на имейл %{target}" destroy_instance_html: "%{name} прочисти домейн %{target}" destroy_ip_block_html: "%{name} изтри правило за IP %{target}" destroy_status_html: "%{name} премахна публикация от %{target}" - destroy_unavailable_domain_html: "%{name} възстанови доставянето до домейн %{target}" + destroy_unavailable_domain_html: "%{name} възобнови доставката до домейн %{target}" destroy_user_role_html: "%{name} изтри роля %{target}" disable_2fa_user_html: "%{name} изключи двуфакторното изискване за потребител %{target}" disable_custom_emoji_html: "%{name} изключи емоджито %{target}" @@ -280,11 +280,11 @@ bg: unsilence_account_html: "%{name} отмени ограниченията на акаунта на %{target}" unsuspend_account_html: "%{name} върна обратно акаунта на %{target}" update_announcement_html: "%{name} обнови оповестяването на %{target}" - update_custom_emoji_html: "%{name} обнови емоджито на %{target}" + update_custom_emoji_html: "%{name} обнови емоджито %{target}" update_domain_block_html: "%{name} обнови блокирането на домейна за %{target}" update_ip_block_html: "%{name} промени правило за IP на %{target}" update_status_html: "%{name} обнови публикация от %{target}" - update_user_role_html: "%{name} промени ролята на %{target}" + update_user_role_html: "%{name} промени ролята %{target}" deleted_account: изтрит акаунт empty: Няма намерени дневници. filter_by_action: Филтриране по действие @@ -362,7 +362,7 @@ bg: resolved_reports: разрешени доклади software: Софтуер sources: Източници на регистрации - space: Използвано пространство + space: Използвано място title: Табло за управление top_languages: Водещи дейни езици top_servers: Водещи дейни сървъри @@ -374,10 +374,10 @@ bg: domain_allows: add_new: Позволявам федерацията с домейна created_msg: Домейнът е успешно позволен за федерацията - destroyed_msg: Домейнът не е позволен за федерацията + destroyed_msg: Домейнът е забранен от федерацията export: Износ import: Внос - undo: Не позволявам федерацията с домейна + undo: Забрана на федерацията с домейна domain_blocks: add_new: Добавяне на ново блокиране за домейна created_msg: Блокирането на домейна се обработва @@ -397,8 +397,8 @@ bg: silence: Ограничаване suspend: Преустановяване title: Ново блокиране на домейн - no_domain_block_selected: Нищо не беше проемено, защото нямаше избрано блокиране на домейн - not_permitted: Нямате право да извършвате това действие + no_domain_block_selected: Нищо не е променяно, защото няма избрани блокирания на домейн + not_permitted: Нямате право да извършвате действието obfuscate: Замъгляване на името на домейна obfuscate_hint: Частично замъгляване на името на домейна в списъка, ако е включено рекламирането на списъка с ограничения на домейни private_comment: Личен коментар @@ -440,9 +440,9 @@ bg: existing_relationships_warning: Съществуващи отношения във вид на следване private_comment_description_html: 'За по-лесно проследяване откъде идват внесените блокирания, те ще се създадат със следния личен коментар: %{comment}' private_comment_template: Внесено от %{source} на %{date} - title: Импортиране на блокиранията на домейни + title: Внос на блокирания на домейни new: - title: Импортиране на блокиранията на домейни + title: Внос на блокирания на домейни no_file: Няма избран файл follow_recommendations: description_html: "Препоръките за следване помагат на новите потребители бързо да намерят ново съдържание. Когато един потребител не е създавал достатъчно връзки, за да формира свои собствени препоръки за следване, тези акаунти ще бъдат препоръчани. Акаунтите ще бъдат генерирани всеки ден на базата на най-голяма скорошна ангажираност и най-голям брой местни последователи за даден език." @@ -457,7 +457,7 @@ bg: description_html: one: Ако доставянето до домейна не е успешно за %{count} ден, няма да има последващи опити, докато не се получи доставка от домейна. other: Ако доставянето до домейна не е успешно за %{count} дни, няма да има последващи опити, докато не се получи доставка от домейна. - failure_threshold_reached: Прага за общ брой грешки е достигнат на %{date}. + failure_threshold_reached: Прагът за броя грешки е достигнат на %{date}. failures_recorded: one: Неуспешен опит в %{count} ден. other: Неуспешни опити в %{count} различни дни. @@ -499,7 +499,7 @@ bg: delivery_available: Доставката е налична delivery_error_days: Грешни дни на доставяне delivery_error_hint: Ако доставката не е възможна за %{count} дни, автоматично ще бъде маркирана като невъзможно за доставка. - destroyed_msg: Данните от %{domain} бяха поставени на опашка за незабавно изтриване. + destroyed_msg: Данните от %{domain} са добавени към опашката за незабавно изтриване. empty: Няма намерени домейни. known_accounts: one: "%{count} известен акаунт" @@ -518,7 +518,7 @@ bg: total_followed_by_us: Последвано от нас total_reported: Доклади за тях total_storage: Прикачена мултимедия - totals_time_period_hint_html: Общите стойности, показани по-долу, включват всички данни. + totals_time_period_hint_html: Общите стойности, показани по-долу, включват данни за всички времена. invites: deactivate_all: Деактивиране на всички filter: @@ -575,7 +575,7 @@ bg: mark_as_sensitive_description_html: Мултимедията в докладваните публикации ще се означи като деликатна, за да ви помогне при изострянето на бъдещи нарушения от същия акаунт. other_description_html: Показване на повече възможности за управляване на поведението на акаунта и за персонализиране на комуникацията с доклвадвания акаунт. resolve_description_html: Няма да се предприеме действие срещу докладвания акаунт, няма да се записва нарушение и докладът ще се затвори. - silence_description_html: Профилът ще бъде видим само за тези, които вече го следват или го търсят ръчно, което драстично ограничава обсега му. Настройката може да бъде променена по всяко време. + silence_description_html: Профилът ще е видим само за последователите му или търсещите го ръчно, което драстично ограничава обсега му. Настройката може да се промени по всяко време. suspend_description_html: Профилът и цялото му съдържание ще бъдат недостъпни, до евентуалното му изтриване. Няма да може да се взаимодейства с акаунта. Настройката може да се отмени в рамките на 30 дни. actions_description_html: Решете какво действие може да се предприеме, за да бъде отхвърлен докладът. Ако предприемете наказателно действие срещу докладвания акаунт, към него ще бъде изпратено известие по имейл, освен ако Спам категорията не е била избрана. add_to_report: Добавяне на още към доклада @@ -635,7 +635,7 @@ bg: special: Специални delete: Изтриване description_html: С потребителските роли може да персонализирате до кои функции и области на Mastodon имат достъп потребителите ви. - edit: Промяна на ролята на „%{name}“ + edit: Промяна на ролята „%{name}“ everyone: Разрешения по подразбиране everyone_full_description_html: Това е основната роля, засягаща всички потребители, дори тези без назначена роля. Всички други роли наследяват разрешения за достъп от нея. permissions_count: @@ -686,7 +686,7 @@ bg: rules: add_new: Добавяне на правило delete: Изтриване - description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Направете четенето на правилата за вашия сървър по-лесно, като ги представите като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в твърде много точки. + description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки. edit: Промяна на правило empty: Още няма определени правила на сървъра. title: Правила на сървъра @@ -703,8 +703,8 @@ bg: preamble: Брандирането на вашия сървър го различава от другите сървъри в мрежата. Тази информация може да се види на различни места, като уеб интерфейса на Mastodon, собствени приложения, в прегледите на линкове от други сайтове и в приложения за съобщения, и т.н. По тази причина е добре тази информация да е кратка и ясна. title: Брандиране content_retention: - preamble: Контрол върху това как съдържание, генерирано от потребители, се пази в Mastodon. - title: Съхранение на съдържание + preamble: Управление на това как съдържание, породено от потребители, се съхранява в Mastodon. + title: Задържане на съдържание default_noindex: desc_html: Влияе на всички потребители, които не са променили тази настройка за себе си title: По подразбиране изключете индексирането от търсачки за вашите потребители @@ -712,9 +712,9 @@ bg: follow_recommendations: Препоръки за следване preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. profile_directory: Директория на профила - public_timelines: Публични инфопотоци + public_timelines: Публични часови оси title: Откриване - trends: Актуални + trends: Налагащи се domain_blocks: all: До всеки disabled: До никого @@ -779,7 +779,7 @@ bg: action: Управление на правилата на сървъра message_html: Не сте определили никакви правила на сървъра. sidekiq_process_check: - message_html: Няма Sidekiq процес, който тече за %{value} опашка/и. Моля, прегледайте своите настройки за Sidekiq + message_html: Не работи процес Sidekiq за %{value} опашка/и. Прегледайте настройките си за Sidekiq tags: review: Преглед на състояние updated_msg: Успешно осъвременени настройки на хаштага @@ -796,16 +796,16 @@ bg: disallow_provider: Забраняване на публикуващия no_link_selected: Няма промяна, тъй като няма избрани линкове publishers: - no_publisher_selected: Няма промяна, тъй като няма избрани автори + no_publisher_selected: Няма промяна, тъй като няма избрани публикуващи shared_by_over_week: one: Споделено от един човек през последната седмица - other: Споделено от %{count} хора през последната седмица + other: Споделено от %{count} души през последната седмица title: Нашумели линкове usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера only_allowed: Само позволените pending_review: В очакване на преглед preview_card_providers: - allowed: Линкове от този автор могат да се включат в нашумели + allowed: Линкове от този публикуващ може да са нашумели description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни. rejected: Линкове от този автор няма да се включат в нашумели title: Публикуващи @@ -819,8 +819,8 @@ bg: no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация not_discoverable: Авторът не е избрал да е откриваем shared_by: - one: Споделена или маркирана като любима веднъж - other: Споделена или маркирана като любима %{friendly_count} пъти + one: Споделено или сложено веднъж в любими + other: Споделено или сложено в любими %{friendly_count} пъти title: Налагащи се публикации tags: current_score: Текущ резултат %{score} @@ -834,19 +834,19 @@ bg: listable: Може да бъде предложено no_tag_selected: Няма промяна, тъй като няма избран таг not_listable: Няма да бъде препоръчан - not_trendable: Няма да се покаже в актуални + not_trendable: Няма да се появи под налагащи се not_usable: Не може да се използва peaked_on_and_decaying: Връх на актуалността на %{date}, сега е в спад - title: Актуални хаштагове - trendable: Може да се покаже в актуални - trending_rank: 'Актуални #%{rank}' + title: Налагащи се хаштагове + trendable: Може да се появи под налагащи се + trending_rank: 'Налагащи се #%{rank}' usable: Може да се употребява usage_comparison: Използвано %{today} пъти днес, в сравнение с %{yesterday} пъти вчера used_by_over_week: one: Употребено от един човек през последната седмица other: Използвано от %{count} души през последната седмица - title: Актуални - trending: Актуални + title: Налагащи се + trending: Изгряващи warning_presets: add_new: Добавяне на ново delete: Изтриване @@ -861,7 +861,7 @@ bg: disabled: Деактивирано edit: Редактиране на крайната точка empty: Все още нямате настроени крайни точки за уеб обратни повиквания. - enable: Активиране + enable: Включване enabled: Активно enabled_events: one: Едно активирано събитие @@ -887,7 +887,7 @@ bg: next_steps: Можете да одобрите жалбата и да отмените модераторското решение или да я игнорирате. subject: "%{username} обжалва модераторското решение в %{instance}" new_pending_account: - body: Подробностите за новия акаунт са по-долу. Можете да приемете или отхвърлите молбата. + body: Подробностите за новия акаунт са по-долу. Може да одобрите или отхвърлите заявлението. subject: Нов акаунт за преглед на %{instance} (%{username}) new_report: body: "%{reporter} докладва %{target}" @@ -900,14 +900,14 @@ bg: new_trending_statuses: title: Налагащи се публикации new_trending_tags: - no_approved_tags: В момента няма одобрени актуални хаштагове. + no_approved_tags: Сега няма одобрени налагащи се хаштагове. requirements: 'Всеки от тези кандидати може да надмине #%{rank} одобрен актуален хаштаг, който в момента е #%{lowest_tag_name} с резултат %{lowest_tag_score}.' title: Нашумели хаштагове subject: Нови нашумели, готови за преглед в %{instance} aliases: - add_new: Създайте псевдоним - created_msg: Успешно създаване на нов псевдоним. Сега вече можете да започнете преместването от стария акаунт. - deleted_msg: Успешно премахване на псевдонима. Преместването от онзи акаунт към този вече не е възможно. + add_new: Създаване на псевдоним + created_msg: Успешно създадохте нов псевдоним. Сега вече може да започнете преместването от стария акаунт. + deleted_msg: Успешно премахнахте псевдонима. Преместването от онзи акаунт към този вече не е възможно. empty: Нямате псевдоними. hint_html: Ако желаете да се преместите от друг акаунт към този, тук можете да създадете псевдоним, което се изисква преди да можете да пристъпите към преместване на последователите си от стария акаунт към този. Това действие е безопасно и възстановимо. Миграцията към новия акаунт се инициира от стария акаунт. remove: Разкачвне на псевдонима @@ -926,7 +926,7 @@ bg: application_mailer: notification_preferences: Промяна на предпочитанията за имейл salutation: "%{name}," - settings: 'Промяна на предпочитанията за e-mail: %{link}' + settings: 'Промяна на предпочитанията за имейл: %{link}' view: 'Преглед:' view_profile: Преглед на профила view_status: Преглед на публикацията @@ -938,17 +938,17 @@ bg: warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого! your_token: Вашият код за достъп auth: - apply_for_account: Молба за акаунт + apply_for_account: Заявка за акаунт change_password: Парола delete_account: Изтриване на акаунта - delete_account_html: Ако желаете да изтриете акаунта си, можете да сторите това тук. Ще ви бъде поискано потвърждение. + delete_account_html: Ако желаете да изтриете акаунта си, може да сторите това тук. Ще ви се поиска потвърждение. description: prefix_invited_by_user: "@%{name} ви покани да се присъедините към този сървър на Mastodon!" prefix_sign_up: Регистрирайте се днес в Mastodon! suffix: Със свой акаунт ще можете да следвате хора, да публикувате актуализации, да обменяте съобщения с потребители от всеки сървър на Mastodon и много повече! - didnt_get_confirmation: Не получих инструкции за потвърждение + didnt_get_confirmation: Не сте ли получили указания за потвърждение? dont_have_your_security_key: Нямате ли си ключ за сигурност? - forgot_password: Забравих си паролата + forgot_password: Забравена парола invalid_reset_password_token: Кодът за възстановяване на паролата е невалиден или с изтекъл срок. Моля, поръчайте нов. link_to_otp: Въведете двуфакторния код от телефона си или кода за възстановяване link_to_webauth: Използвайте ключа си за сигурност на устройството @@ -965,7 +965,7 @@ bg: register: Регистрация registration_closed: "%{instance} не приема нови членуващи" resend_confirmation: Изпрати отново инструкции за потвърждение - reset_password: Подновяване на паролата + reset_password: Нулиране на паролата rules: preamble: Тези са зададени и наложени от модераторите на %{domain}. title: Някои основни правила. @@ -1309,9 +1309,9 @@ bg: poll: subject: Анкетата от %{name} приключи reblog: - body: 'Вашата публикация беше споделена от %{name}:' - subject: "%{name} сподели публикацията ти" - title: Ново споделяне + body: 'Ваша публикация беше подсилена от %{name}:' + subject: "%{name} подсили ваша публикация" + title: Ново подсилване status: subject: "%{name} току-що публикува" update: @@ -1473,7 +1473,7 @@ bg: video: one: "%{count} видео" other: "%{count} видеозаписа" - boosted_from_html: Споделено от %{acct_link} + boosted_from_html: Подсилено от %{acct_link} content_warning: 'Предупреждение за съдържание: %{warning}' default_language: Същият като езика на интерфейса disallowed_hashtags: @@ -1488,7 +1488,7 @@ bg: direct: Публикациите, които са видими само за споменати потребители не може да се закачат limit: Вече сте закачили максималния брой публикации ownership: Публикация на някого другиго не може да се закачи - reblog: Споделяне не може да бъде закачено + reblog: Подсилване не може да се закача poll: total_people: one: "%{count} човек" @@ -1517,9 +1517,9 @@ bg: exceptions: Изключения explanation: Тъй като изтриването на публикации е скъпа операция, това се прави бавно във времето, когато сървърът иначе не е зает. Поради тази причина публикациите ви може да се изтрият известно време след като достигнат възрастовия праг. ignore_favs: Игнориране на харесвания - ignore_reblogs: Игнориране на споделяния + ignore_reblogs: Игнориране на подсилвания interaction_exceptions: Изключения въз основа на взаимодействия - interaction_exceptions_explanation: Забележете, че няма гаранция, че публикации ще бъдат изтрити, ако паднат под прага на брой маркирания като любими/споделяния, след като са го надвишили. + interaction_exceptions_explanation: Забележете, че няма гаранция, че публикацията ще се изтрият, ако паднат под прага на брой маркирания като любими/подсилвания, след като са го надвишили. keep_direct: Запазване на директните съобщения keep_direct_hint: Директните ви съобщения не се изтриват keep_media: Задържане на публикации с прикачена мултимедия @@ -1548,7 +1548,7 @@ bg: min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния stream_entries: pinned: Закачена публикация - reblogged: споделено + reblogged: подсилено sensitive_content: Деликатно съдържание strikes: errors: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 09f5ca21a8..4bfb82f0af 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -19,9 +19,9 @@ ca: pin_errors: following: Has d'estar seguint la persona que vulguis avalar posts: - one: Publicació - other: Publicacions - posts_tab_heading: Publicacions + one: Tut + other: Tuts + posts_tab_heading: Tuts admin: account_actions: action: Realitza l'acció @@ -144,7 +144,7 @@ ca: targeted_reports: Informes realitzats per altres silence: Silenci silenced: Silenciat - statuses: Publicacions + statuses: Tuts strikes: Accions anteriors subscribe: Subscriu suspend: Suspèn @@ -392,7 +392,7 @@ ca: 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. severity: - desc_html: "Limitar farà que les publicacions dels comptes d'aquest domini siguin invisibles per a qualsevol persona que no les segueixi. Suspendre eliminarà del vostre servidor tot el contingut, multimèdia i perfil dels comptes d'aquest domini. Utilitza Cap si només vols rebutjar fitxers multimèdia." + desc_html: "Limitar farà que els tuts dels comptes d'aquest domini siguin invisibles per a qualsevol persona que no els segueixi. Suspendre eliminarà del vostre servidor tot el contingut, multimèdia i perfil dels comptes d'aquest domini. Utilitza Cap si només vols rebutjar fitxers multimèdia." noop: Cap silence: Limitar suspend: Suspensió @@ -488,7 +488,7 @@ ca: instance_languages_dimension: Idiomes principals instance_media_attachments_measure: adjunts multimèdia desats instance_reports_measure: informes sobre ells - instance_statuses_measure: publicacions desades + instance_statuses_measure: tuts desats delivery: all: Totes clear: Neteja els errors de lliurament @@ -547,11 +547,11 @@ ca: relays: add_new: Afegiu un nou relay delete: Elimina - description_html: Un relay de federació és un servidor intermediari que intercanvia grans volums de publicacions públiques entre servidors que se 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 se 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 se subscriurà a totes les publicacions públiques d'aquest relay i començarà a enviar-hi totes les publicacions 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 @@ -571,8 +571,8 @@ ca: action_log: Registre d'auditoria action_taken_by: Mesures adoptades per actions: - delete_description_html: Les publicacions reportades seran eliminades i un cop serà gravat per a ajudar-te a escalar en futures infraccions des del mateix compte. - mark_as_sensitive_description_html: Els mèdia de les publicacions reportades seran marcats com a sensibles i una acció serà gravada per ajudar a escalar en futures infraccions del mateix compte. + delete_description_html: Els tuts reportats seran eliminats i un cop serà gravat per a ajudar-te a escalar en futures infraccions des del mateix compte. + mark_as_sensitive_description_html: Els mèdia dels tuts reportats seran marcats com a sensibles i una acció serà gravada per ajudar a escalar en futures infraccions del mateix compte. other_description_html: Veu més opcions controlant el comportament del compte i personalitza la comunicació al compte reportat. resolve_description_html: No serà presa cap acció contra el compte reportat, cap cop serà gravat i l'informe es tancarà. silence_description_html: El perfil serà visible només per aquells que ja el seguien o en cerca manual, limitant severament el seu alcanç. Sempre pot ser revertit. @@ -758,9 +758,9 @@ ca: with_media: Amb contingut multimèdia strikes: actions: - delete_statuses: "%{name} ha eliminat les publicacions de %{target}" + delete_statuses: "%{name} ha eliminat els tuts de %{target}" disable: "%{name} ha congelat el compte de %{target}" - mark_statuses_as_sensitive: "%{name} ha marcat les publicacions de %{target} com a sensibles" + mark_statuses_as_sensitive: "%{name} ha marcat els tuts de %{target} com a sensibles" none: "%{name} ha enviat un avís a %{target}" sensitive: "%{name} ha marcat el compte de %{target} com a sensible" silence: "%{name} ha limitat el compte de %{target}" @@ -791,7 +791,7 @@ ca: links: allow: Permet enllaç allow_provider: Permet mitjà - description_html: Aquests són enllaços que ara mateix estan compartint molt els comptes dels quals el teu servidor veu les publicacions. Poden ajudar els teus usuaris a trobar què està passant en el món. Cap dels enllaços es mostra públicament fins que no aprovis el mitjà. També pots acceptar o rebutjar enllaços individuals. + description_html: Aquests són enllaços que ara mateix estan compartint molt els comptes dels quals el teu servidor veu els tuts. Poden ajudar els teus usuaris a trobar què està passant en el món. Cap dels enllaços es mostra públicament fins que no aprovis el mitjà. També pots acceptar o rebutjar enllaços individuals. disallow: No permetre l'enllaç disallow_provider: No permetre el mitjà no_link_selected: No s'ha canviat cap enllaç perquè cap ha estat seleccionat @@ -816,12 +816,12 @@ ca: description_html: Aquests són tuts que el teu servidor veu i que ara mateix s'estan compartint i afavorint molt. Poden ajudar als teus nous usuaris i als que retornen a trobar més gent a qui seguir. Cap tut es mostra públicament fins que no aprovis l'autor i l'autor permeti que el seu compte sigui suggerit a altres. També pots acceptar o rebutjar tuts individualment. disallow: Rebutja tut disallow_account: Rebutja autor - no_status_selected: No s'han canviat les publicacions en tendència perquè cap ha estat seleccionada + no_status_selected: No s'han canviat els tuts en tendència perquè cap ha estat seleccionat not_discoverable: L'autor no ha activat poder ser detectable shared_by: one: Compartit o afavorit una vegada other: Compartit i afavorit %{friendly_count} vegades - title: Publicacions en tendència + title: Tuts en tendència tags: current_score: Puntuació actual %{score} dashboard: @@ -830,7 +830,7 @@ ca: tag_servers_dimension: Els millors servidors tag_servers_measure: diferents servidors tag_uses_measure: total usos - description_html: Aquestes són les etiquetes que ara mateix estan apareixent en moltes publicacions que el teu servidor veu. Poden ajudar els teus usuaris a trobar de què està parlant majoritàriament la gent en aquest moment. Cap etiqueta es mostra públicament fins que no l'aprovis. + description_html: Aquestes són les etiquetes que ara mateix estan apareixent en molts tuts que el teu servidor veu. Poden ajudar els teus usuaris a trobar de què està parlant majoritàriament la gent en aquest moment. Cap etiqueta es mostra públicament fins que no l'aprovis. listable: Es pot suggerir no_tag_selected: No s'ha canviat cap etiqueta perquè cap ha estat seleccionada not_listable: No es pot suggerir @@ -876,9 +876,9 @@ ca: admin_mailer: new_appeal: actions: - delete_statuses: eliminar les seves publicacions + delete_statuses: eliminar els seus tuts disable: congelar els seus comptes - mark_statuses_as_sensitive: marcar les seves publicacions com a sensibles + mark_statuses_as_sensitive: marcar els seus tuts com a sensibles none: un avís sensitive: marcar els seus comptes com a sensibles silence: limitar els seus comptes @@ -898,7 +898,7 @@ ca: new_trending_links: title: Enllaços en tendència new_trending_statuses: - title: Publicacions en tendència + title: Tuts en tendència new_trending_tags: no_approved_tags: Actualment no hi ha etiquetes en tendència aprovades. requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} de la etiqueta en tendència aprovada, que actualment és "%{lowest_tag_name}" amb una puntuació de %{lowest_tag_score}.' @@ -922,7 +922,7 @@ ca: guide_link: https://crowdin.com/project/mastodon guide_link_text: Tothom hi pot contribuir. sensitive_content: Contingut sensible - toot_layout: Disseny de les publicacions + toot_layout: Disseny dels tuts application_mailer: notification_preferences: Canvia les preferències de correu salutation: "%{name}," @@ -1038,7 +1038,7 @@ ca: warning: before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:' caches: El contingut que ha estat memoritzat en la memòria cau per altres servidors pot persistir - data_removal: Les teves publicacions i altres dades seran permanentment eliminades + data_removal: Els teus tuts i altres dades seran permanentment eliminades email_change_html: Pots canviar la teva adreça de correu electrònic sense eliminar el teu compte email_contact_html: Si encara no arriba pots enviar un correu electrònic a %{email} per a demanar ajuda email_reconfirmation_html: Si no estàs rebent el correu electrònic de confirmació pots demanar-lo un altre cop @@ -1068,7 +1068,7 @@ ca: title_actions: delete_statuses: Eliminació de publicació disable: Congelació del compte - mark_statuses_as_sensitive: Marcatge de les publicacions com a sensibles + mark_statuses_as_sensitive: Marcatge dels tuts com a sensibles none: Avís sensitive: Marcatge del compte com a sensible silence: Limitació del compte @@ -1100,7 +1100,7 @@ ca: archive_takeout: date: Data download: Baixa l’arxiu - hint_html: Pots sol·licitar un arxiu de les teves publicacions 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·licitar el teu arxiu size: Mida @@ -1115,7 +1115,7 @@ ca: add_new: Afegir nova etiqueta 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 gràcies a 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 els teus tuts 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 @@ -1126,8 +1126,8 @@ ca: edit: add_keyword: Afegeix una paraula clau keywords: Paraules clau - statuses: Publicacions individuals - statuses_hint_html: Aquest filtre s'aplica a la selecció de publicacions individuals, independentment de si coincideixen amb les paraules clau següents. Revisa o elimina publicacions del filtre. + statuses: Tuts individuals + statuses_hint_html: Aquest filtre s'aplica a la selecció de tuts individuals, independentment de si coincideixen amb les paraules clau següents. Revisa o elimina tuts del filtre. title: Editar filtre errors: deprecated_api_multiple_keywords: Aquests paràmetres no poden ser canviats des d'aquesta aplicació perquè apliquen a més d'un filtre per paraula clau. Utilitza una aplicació més recent o la interfície web. @@ -1142,11 +1142,11 @@ ca: one: "%{count} paraula clau" other: "%{count} paraules clau" statuses: - one: "%{count} publicació" - other: "%{count} publicacions" + one: "%{count} tut" + other: "%{count} tuts" statuses_long: - one: "%{count} publicació individual ocultada" - other: "%{count} publicacions individuals ocultades" + one: "%{count} tut individual ocultat" + other: "%{count} tuts individuals ocultats" title: Filtres new: save: Desa el filtre nou @@ -1156,8 +1156,8 @@ ca: batch: remove: Eliminar del filtre index: - hint: Aquest filtre aplica als apunts seleccionats independentment d'altres criteris. Pots afegir més publicacions a aquest filtre des de la interfície Web. - title: Publicacions filtrades + hint: Aquest filtre aplica als tuts seleccionats independentment d'altres criteris. Pots afegir més tuts a aquest filtre des de la interfície Web. + title: Tuts filtrats footer: trending_now: En tendència generic: @@ -1391,10 +1391,10 @@ ca: content_warning: 'Avís de contingut:' descriptions: account: Publicacions des de @%{acct} - tag: 'Publicacions etiquetades #%{hashtag}' + tag: 'Tuts etiquetats #%{hashtag}' scheduled_statuses: - over_daily_limit: Has superat el límit de %{limit} publicacions programades per a avui - over_total_limit: Has superat el límit de %{limit} publicacions programades + over_daily_limit: Has superat el límit de %{limit} tuts programats per a avui + over_total_limit: Has superat el límit de %{limit} tuts programats too_soon: La data programada ha de ser futura sessions: activity: Última activitat @@ -1457,7 +1457,7 @@ ca: preferences: Preferències profile: Perfil relationships: Seguits i seguidors - statuses_cleanup: Esborrat automàtic de publicacions + statuses_cleanup: Esborrat automàtic de tuts strikes: Accions de mediació two_factor_authentication: Autenticació de dos factors webauthn_authentication: Claus de seguretat @@ -1485,8 +1485,8 @@ ca: open_in_web: Obre en la web over_character_limit: Límit de caràcters de %{max} superat pin_errors: - direct: Les publicacions que només són visibles per als usuaris mencionats no poden ser fixades - limit: Ja has fixat el màxim nombre de publicacions + direct: Els tuts que només són visibles per als usuaris mencionats no poden ser fixats + limit: Ja has fixat el màxim nombre de tuts ownership: No es pot fixar el tut d'algú altre reblog: No es pot fixar un impuls poll: @@ -1512,26 +1512,26 @@ ca: unlisted: No llistat unlisted_long: Tothom ho pot veure, però no es mostra en les línies de temps públiques statuses_cleanup: - enabled: Esborra automàticament publicacions antigues - enabled_hint: Suprimeix automàticament les teves publicacions quan arribin a un llindar d’edat especificat, tret que coincideixin amb una de les excepcions següents + enabled: Esborra automàticament tuts antics + enabled_hint: Suprimeix automàticament els teus tuts quan arribin a un llindar d’edat especificat, tret que coincideixin amb una de les excepcions següents exceptions: Excepcions - explanation: Com que suprimir publicacions és una operació cara, es fa lentament amb el pas del temps i quan el servidor no està ocupat. Per aquest motiu, és possible que les teves publicacions se suprimeixin un temps després d’assolir el llindar d’edat. + explanation: Com que suprimir tuts és una operació cara, es fa lentament amb el pas del temps i quan el servidor no està ocupat. Per aquest motiu, és possible que els teus tuts se suprimeixin un temps després d’assolir el llindar d’edat. ignore_favs: Ignora favorits ignore_reblogs: Ignora impulsos interaction_exceptions: Excepcions basades en interaccions - interaction_exceptions_explanation: Has de tenir en compte que no es garanteix que es suprimeixen les publicacions si passen per sota del llindar de favorit o impuls després d'haver-lo superat. + interaction_exceptions_explanation: Has de tenir en compte que no es garanteix que es suprimeixen els tuts si passen per sota del llindar de favorit o impuls després d'haver-lo superat. keep_direct: Mantenir missatges directes keep_direct_hint: No esborra cap dels teus missatges directes - keep_media: Mantenir les publicacions amb contingut gràfic - keep_media_hint: No esborra cap de les teves publicacions que tinguin adjunts multimèdia - keep_pinned: Mantenir les publicacions fixades - keep_pinned_hint: No esborra cap de les teves publicacions fixades + keep_media: Mantenir els tuts amb contingut gràfic + keep_media_hint: No esborra cap dels teus tuts que tinguin adjunts multimèdia + keep_pinned: Mantenir els tuts fixats + keep_pinned_hint: No esborra cap dels teus tuts fixats keep_polls: Mantenir enquestes keep_polls_hint: No esborra cap de les teves enquestes - keep_self_bookmark: Mantenir les publicacions que has desat a les adreces d'interès - keep_self_bookmark_hint: No esborra les teves pròpies publicacions si les has desat en les adreces d'interès - keep_self_fav: Mantenir les publicacions que has afavorit - keep_self_fav_hint: No esborra les teves pròpies publicacions si les has afavorit + keep_self_bookmark: Mantenir els tuts que has desat a les adreces d'interès + keep_self_bookmark_hint: No esborra els teus propis tuts si els has desat en les adreces d'interès + keep_self_fav: Mantenir els tuts que has afavorit + keep_self_fav_hint: No esborra els teus propis tuts si les has afavorit min_age: '1209600': 2 setmanes '15778476': 6 mesos @@ -1542,8 +1542,8 @@ ca: '63113904': 2 anys '7889238': 3 mesos min_age_label: Antiguitat - min_favs: Mantenir les publicacions afavorides més de - min_favs_hint: No suprimeix cap de les teves publicacions que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per suprimir publicacions independentment del nombre de favorits que tinguin + min_favs: Mantenir els tuts afavorits més de + min_favs_hint: No suprimeix cap dels teus tuts que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per a suprimir tuts independentment del nombre de favorits que tinguin min_reblogs: Mantenir les publicacions impulsades més de min_reblogs_hint: No suprimeix cap de les teves publicacions que s'hagin impulsat més que aquest nombre de vegades. Deixa-ho en blanc per a suprimir les publicacions independentment del nombre d'impulsos que tinguin. stream_entries: diff --git a/config/locales/de.yml b/config/locales/de.yml index 246a8a9fb5..b6b2638fa6 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -264,7 +264,7 @@ de: enable_user_html: "%{name} hat den Zugang für %{target} aktiviert" memorialize_account_html: "%{name} hat das Konto von %{target} in eine Gedenkseite umgewandelt" promote_user_html: "%{name} hat %{target} befördert" - reject_appeal_html: "%{name} hat die Moderationsbeschlüsse von %{target} abgelehnt" + reject_appeal_html: "%{name} hat den Moderations-Beschlussantrag von %{target} abgelehnt" reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt" remove_avatar_user_html: "%{name} hat das Profilbild von %{target} entfernt" reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet" @@ -366,7 +366,7 @@ de: title: Übersicht top_languages: Häufigste Sprachen top_servers: Aktivste Server - website: Webseite + website: Website disputes: appeals: empty: Keine Einsprüche gefunden. @@ -376,7 +376,7 @@ de: created_msg: Domain wurde erfolgreich zur Whitelist hinzugefügt destroyed_msg: Domain wurde von der Whitelist entfernt export: Exportieren - import: Importieren + import: Import undo: Von der Whitelist entfernen domain_blocks: add_new: Neue Domain-Sperre hinzufügen @@ -820,7 +820,7 @@ de: not_discoverable: Autor*in hat sich dafür entschieden, nicht entdeckt zu werden shared_by: one: Einmal geteilt oder favorisiert - other: "%{friendly_count}-mal geteilt oder favorisiert" + other: "%{friendly_count} mal geteilt oder favorisiert" title: Angesagte Beiträge tags: current_score: Aktuelle Punktzahl %{score} diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml index bdc5a076a1..d3d5e9b702 100644 --- a/config/locales/devise.bg.yml +++ b/config/locales/devise.bg.yml @@ -2,7 +2,7 @@ bg: devise: confirmations: - confirmed: Вашият имейл адрес беше успешно потвърден. + confirmed: Успешно потвърден е адресът на имейла ви. send_instructions: Ще получите имейл с указания как да потвърдите своя имейл адреса след няколко минути. Моля, проверете спам папката си, ако не сте получили такъв имейл. send_paranoid_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите имейл с указания как да потвърдите имейл адреса си след няколко минути. Проверете спам папката си, ако не сте получили такъв имейл. failure: @@ -13,18 +13,18 @@ bg: locked: Вашият акаунт е заключен. not_found_in_database: Невалиден %{authentication_keys} или парола. pending: Вашият акаунт все още е в процес на проверка. - timeout: Сесията ви изтече. Влезте пак, за да продължите. + timeout: Заседанието ви изтече. Влезте пак, за да продължите. unauthenticated: Преди да продължите, трябва да влезете или да се регистрирате. unconfirmed: Преди да продължите, трябва да потвърдите имейл адреса си. mailer: confirmation_instructions: - action: Потвърдете своя имейл адрес + action: Потвърдете адреса на имейла action_with_app: Потвърдете и се върнете към %{app} explanation: Създали сте акаунт на %{host} с този имейл адрес. Само на едно щракване разстояние сте от активирането му. Ако това не сте били вие, моля, игнорирайте този имейл. explanation_when_pending: Кандидатствахте за покана до %{host} с този имейл адрес. След като потвърдите своя имейл адрес, ние ще разгледаме вашето заявление. Можете да влезете, за да промените данните си или да изтриете акаунта си, но нямате достъп до повечето функции, докато акаунтът ви не бъде одобрен. Ако вашето заявление бъде отхвърлено, вашите данни ще бъдат премахнати, така че няма да се изискват допълнителни действия от вас. Ако това не сте били вие, моля, игнорирайте този имейл. extra_html: Проверете правилата на сървъра и условията ни за обслужване. subject: 'Mastodon: Указания за потвърждаване за %{instance}' - title: Потвърдете имейл адреса + title: Потвърдете адреса на имейла email_changed: explanation: 'Имейл адресът на вашия акаунт се променя на:' extra: Ако не сте сменили имейла си, вероятно някой е получил достъп до вашия акаунт. Моля, сменете паролата си незабавно или се свържете с администратора на сървъра, ако сте блокирани от акаунта си. @@ -51,12 +51,12 @@ bg: subject: 'Mastodon: Двуфакторното удостоверяване е деактивирано' title: Двуфакторното изключено two_factor_enabled: - explanation: За вашия акаунт е активирано двуфакторно удостоверяване. За влизане ще е необходим ключ, генериран от сдвоеното приложение за TOTP. - subject: 'Mastodon: Двуфакторното удостоверяване е активирано' + explanation: За акаунта ви е включено двуфакторно удостоверяване. Отсега нататък ще ви трябва и временен код от сдвоеното приложение за удостоверяване TOTP, за да влезете. + subject: 'Mastodon: Включено двуфакторно удостоверяване' title: 2FA активирано two_factor_recovery_codes_changed: explanation: Предишните кодове за възстановяване са анулирани и се пораждат нови. - subject: 'Mastodon: Генерирани отново са двуфакторни кодове за възстановяване' + subject: 'Mastodon: Породени пак са двуфакторни кодове за възстановяване' title: Кодове за 2 факт. удост. за възстановяване са променени unlock_instructions: subject: 'Mastodon: указания за отключване' @@ -66,35 +66,35 @@ bg: subject: 'Mastodon: Нов ключ за сигурност' title: Добавен е нов ключ за сигурност deleted: - explanation: Следният ключ за сигурност е изтрит от вашия акаунт + explanation: Следният ключ за сигурност е изтрит от акаунта ви subject: 'Mastodon: Ключът за сигурност е изтрит' title: Един от ключовете ви за сигурност е изтрит webauthn_disabled: explanation: Удостоверяването с ключове за сигурност е изключено за акаунта ви. Влизането вече е възможно, използвайки само ключа, породен от сдвоеното приложение TOTP. - subject: 'Mastodon: Удостоверяването с ключове за сигурност е деактивирано' + subject: 'Mastodon: Изключено удостоверяване с ключове за сигурност' title: Ключовете за сигурност са деактивирани webauthn_enabled: explanation: Удостоверяването с ключ за сигурност е активирано за вашия акаунт. Вашият ключ за сигурност вече може да се използва за вход. subject: 'Mastodon: Активирано удостоверяване с ключ за сигурност' title: Ключовете за сигурност са активирани omniauth_callbacks: - failure: Не успяхме да те упълномощим чрез %{kind}, защото "%{reason}". + failure: Не успяхме да ви упълномощим от %{kind}, защото "%{reason}". success: Успешно упълномощаване от акаунт на %{kind}. passwords: no_token: Не можете да осъществите достъп до тази страница, ако не сте я отворили чрез линк от получен имейл за възстановяване на паролата. Ако сте отворили линка за възстановяване на паролата от имейл, моля, уверете се, че сте използвали целия предоставен URL адрес. - send_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. - send_paranoid_instructions: Ако вашият имейл адрес съществува в нашата база данни, ще получите линк за възстановяване на парола на същия адрес до няколко минути. Моля, проверете спам папката си, ако не сте получили този имейл. - updated: Паролата ви беше променена успешно. Влязохте в профила си. + send_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. + send_paranoid_instructions: Ако адресът на имейла ви съществува в базата ни данни, то ще получите връзка за възстановяване на парола на е-пощата си до няколко минути. Проверете си папката за спам, ако не сте получили това е-писмо. + updated: Паролата ви беше променена успешно. Сега сте влезли. updated_not_active: Паролата ви беше променена успешно. registrations: destroyed: Довиждане! Вашият акаунт беше успешно изтрит. Надяваме се скоро да ви видим пак. signed_up: Добре дошли! Успешно се регистрирахте. - signed_up_but_inactive: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви все още не е активиран. + signed_up_but_inactive: Регистрирахте се успешно. Въпреки това, не може да влезете, тъй като акаунтът ви още не е задействан. signed_up_but_locked: Регистрирахте се успешно. Въпреки това, не можете да влезете, тъй като акаунтът ви е заключен. - signed_up_but_pending: На вашия имейл адрес е изпратено съобщение с връзка за потвърждение. След като щракнете върху линка, ние ще прегледаме вашето заявление. Ще бъдете уведомени, ако то е одобрено. + signed_up_but_pending: Изпратено е съобщение до адреса на имейла ви с връзка за потвърждение. След като щракнете върху линка, ние ще прегледаме заявлението ви. Ще бъдете уведомени при одобрение. signed_up_but_unconfirmed: Съобщение с линк за потвърждение беше изпратено до вашия имейл адрес. Последвайте линка, за да задействате акаунта си. Проверете спам папката си, ако не сте получили такъв имейл. update_needs_confirmation: Успешно обновихте акаунта си, но трябва да потвърдим вашия нов имейл адрес. Проверете електронната си поща и отворете отворете линка за потвърждение на новия си имейл адрес. Проверете спам папката си, ако не сте получили имейл за потвърждение. - updated: Вашият акаунт беше успешно обновен. + updated: Акаунтът ви е успешно осъвременен. sessions: already_signed_out: Успешно излизане от профила. signed_in: Успешно влизане. @@ -105,8 +105,8 @@ bg: unlocked: Акаунтът ви е успешно отключен. Влезте, за да продължите. errors: messages: - already_confirmed: е вече потвърден, моля опитайте да влезете в профила си с него - confirmation_period_expired: трябва да се потвърди в рамките на %{period}, моля направи нова заявка за потвърждение + already_confirmed: е вече потвърден, опитайте се да влезете + confirmation_period_expired: трябва да се потвърди в рамките на %{period}, направете нова заявка за потвърждение expired: е изтекъл, моля заяви нов not_found: не е намерен not_locked: не бе заключен diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml index d6eed695d9..9fd54d1422 100644 --- a/config/locales/devise.et.yml +++ b/config/locales/devise.et.yml @@ -2,31 +2,31 @@ et: devise: confirmations: - 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. + confirmed: Sinu e-postiaadress on edukalt kinnitatud. + send_instructions: Saad paari minuti pärast juhistega e-kirja, kuidas oma e-posti aadress kinnitada. Palun kontrolli oma rämpsposti kausta, kui selline e-kiri ei saabunud. + send_paranoid_instructions: Kui sinu e-postiaadress on meie andmebaasis, saad paari minuti pärast juhistega e-kirja, kuidas oma e-posti aadress kinnitada. Palun kontrolli oma rämpsposti kausta, kui selline e-kiri ei saabunud. failure: already_authenticated: Oled juba sisse loginud. - inactive: Teie konto pole veel aktiveeritud. + inactive: Sinu konto pole veel aktiveeritud. invalid: Valed %{authentication_keys} või salasõna. - last_attempt: Teil on veel üks katse kuni teie konto on lukustatud. - locked: Teie konto on lukustatud. + last_attempt: Sul on veel üks katse, enne kui konto lukustatakse. + locked: Konto on lukustatud. not_found_in_database: Valed %{authentication_keys} või salasõna. - pending: Teie konto on siiani läbivaatlusel. - timeout: Teie sessioon on aegunud. Jätkamiseks palun sisenege uuesti. - unauthenticated: Te peate sisenema või looma konto enne jätkamist. - unconfirmed: Te peate kinnitama oma e-postiaadressi enne jätkamist. + pending: Sinu konto on siiani läbivaatamisel. + timeout: Sinu sessioon on aegunud. Jätkamiseks palun sisene uuesti. + unauthenticated: Pead sisenema või looma konto enne kui jätkad. + unconfirmed: Pead kinnitama oma e-postiaadressi enne kui jätkad. mailer: confirmation_instructions: - action: Kinnitage e-postiaadress + action: Kinnita e-postiaadress action_with_app: Kinnita ja naase %{app} - explanation: Oled loonud %{host} konto selle e-postiaadressiga. Oled ühe kliki kaugusel selle aktiveerimisest. Kui see polnud sina, palun eira seda kirja. - explanation_when_pending: "Selle e-postiaadressiga on esitatud taotlus saada %{host} kasutajaks. E-postiaadress vajab kinnitamist. Pärast seda vaatame me taotluse üle. Võib siseneda, et oma andmeid muuta või konto kustutada, aga enamustele tegevustele ei pääse ligi enne, kui konto on meie moderaatorite poolt kinnitatud. Kui konto on kinnitatud, saabub selle kohta eraldi e-kiri.\nKui taotlus lükatakse aga tagasi, kustutatakse ka andmed ja mingit järeltegevust pole vaja. \nKui see polnud Teie, siis palume seda kirja eirata." + explanation: Oled loonud %{host} konto selle e-postiaadressiga. Oled konto aktiveerimisest ühe kliki kaugusel. Kui see polnud sina, palun eira seda kirja. + explanation_when_pending: "Selle e-postiaadressiga on esitatud taotlus saada %{host} kasutajaks. E-postiaadress vajab kinnitamist. Pärast seda vaatame me taotluse üle. Saad siseneda, et oma andmeid muuta või konto kustutada, aga enamustele tegevustele ei pääse enne ligi, kui konto on meie moderaatorite poolt kinnitatud. Kui konto on kinnitatud, saabub selle kohta eraldi e-kiri.\nKui taotlus lükatakse aga tagasi, kustutatakse ka andmed ja mingit järeltegevust pole vaja. \nKui see polnud sina, siis palume seda kirja eirata." extra_html: Palun tutvu meie serveri reeglitega ning meie kasutustingimustega. subject: 'Mastodon: %{instance} kinnitamisjuhised' title: Kinnita e-postiaadress email_changed: - explanation: 'Teie konto e-postiaadress muudetakse:' + explanation: 'Sinu konto e-postiaadress muudetakse:' extra: Kui sa ei muutnud oma e-posti, on tõenäoline, et kellelgi on ligipääs su kontole. Palun muuda koheselt oma salasõna. Kui oled aga oma kontost välja lukustatud, võta ühendust oma serveri administraatoriga. subject: 'Mastodon: e-post muudetud' title: Uus e-postiaadress @@ -37,8 +37,8 @@ et: title: Salasõna muudetud reconfirmation_instructions: explanation: Kinnita uus aadress, et oma e-posti aadress muuta. - extra: Kui see muudatus pole teie poolt alustatud, palun eirake seda kirja. E-postiaadress sellele Mastodoni kontole ei muutu, kuni te vajutate üleval asuvale lingile. - subject: 'Mastodon: kinnitake e-postiaadress %{instance} jaoks' + extra: Kui see muudatus pole sinu poolt algatatud, palun eira seda kirja. Selle Mastodoni konto e-postiaadress ei muutu enne, kui vajutad üleval olevale lingile. + subject: 'Mastodon: kinnita e-postiaadress %{instance} jaoks' title: Kinnita e-postiaadress reset_password_instructions: action: Salasõna muutmine @@ -47,11 +47,11 @@ et: subject: 'Mastodon: salasõna lähtestamisjuhendid' title: Salasõna lähtestamine two_factor_disabled: - explanation: Kontol on kahe-etapine autentimine välja lülitatud. Sisenemine on võimalik ainult kasutades e-postiaadressi ja salasõna. + explanation: Kontol on kaheastmeline autentimine välja lülitatud. Sisenemine on võimalik ainult kasutades e-postiaadressi ja salasõna. subject: 'Mastodon: Kahe-etapine autentimine välja lülitatud' title: 2FA keelatud two_factor_enabled: - explanation: Kontol on sisse lülitatud kahe-etapine autentimine. Sisenemiseks on vajalik ühekordne aeguv võti TOTP-rakenduse poolt. + explanation: Kontol on sisse lülitatud kaheastmeline autentimine. Sisenemiseks on vajalik ühekordne aeguv võti TOTP-rakenduse poolt. subject: 'Mastodon: Kahe-etapine autentimine sisse lülitatud' title: 2FA lubatud two_factor_recovery_codes_changed: @@ -62,19 +62,19 @@ et: subject: 'Mastodon: Lahti lukustamis juhendid' webauthn_credential: added: - explanation: Järgnev turvavõti on lisatud teie kontole + explanation: Kontole on lisatud järgnev turvavõti subject: 'Mastodon: uus turvavõti' title: Uus turvavõti on lisatud deleted: - explanation: Järgnev turvavõti on teie kontolt kustutatud + explanation: Järgnev turvavõti on kontolt kustutatud subject: 'Mastodon: turvavõti kustutatud' - title: Üks teie turvavõtmetest on kustutatud + title: Üks sinu turvavõtmetest on kustutatud webauthn_disabled: - explanation: Autentimine turvavõtmetega on teie kontol välja lülitatud. Sisse logimine on nüüd võimalik ainult kasutades TOTP rakenduse poolt tekitatud võtmega. + explanation: Autentimine turvavõtmetega on kontol välja lülitatud. Sisse logimine on nüüd võimalik ainult kasutades seotud TOTP rakenduse poolt genereeritud võtit. subject: 'Mastodon: autentimine turvavõtmega on välja lülitatud' title: Turvavõtmed on välja lülitatud webauthn_enabled: - explanation: Turvavõtme autentimine on teie kontol nüüd sisse lülitatud. Teie turvavõtit saab nüüd kasutada sisse logimiseks. + explanation: Turvavõtmega autentimine on nüüd kontol sisse lülitatud. Nüüd saab kasutada sisse logimiseks sinu turvavõtit. subject: 'Mastodon: turvavõtme autentimine sisse lülitatud' title: Turvavõtmed on sisse lülitatud omniauth_callbacks: @@ -82,32 +82,32 @@ et: success: Tuvastamine %{kind} konto järgi õnnestus. passwords: no_token: Sellele leheküljele ei pääse tulemata salasõna lähtestamise e-kirjast. Kui tuled salasõna lähtestamise e-kirjast, palun veendu, et kasutasid tervet saadetud URLi. - send_instructions: Kui teie e-postiaadress eksisteerib meie andmebaasis, saate paari minuti pärast e-kirja juhistega, kuidas oma salasõna taastada. 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 salasõna taastada. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. + send_instructions: Kui sinu e-postiaadress on meie andmebaasis, saad paari minuti pärast juhistega e-kirja, kuidas oma salasõna taastada. Palun kontrolli rämpsposti kausta, kui selline e-kiri ei saabunud. + send_paranoid_instructions: Kui sinu e-postiaadress on meie andmebaasis, saad paari minuti pärast juhistega e-kirja, kuidas oma salasõna taastada. Palun kontrolli rämpsposti kausta, kui selline e-kiri ei saabunud. updated: Salasõna muutmine õnnestus. Oled nüüd sisse logitud. - updated_not_active: Teie salasõna muutmine õnnestus. + updated_not_active: Sinu salasõna muutmine õnnestus. registrations: - destroyed: Nägemist! Teie konto sulgemine õnnestus. Me loodame teid varsti taas näha. - signed_up: Tere tulemast! Teie konto loomine õnnestus. - signed_up_but_inactive: Teie konto loodi edukalt, kuid me ei saanud teid sisse logida, kuna teie konto pole veel aktiveeritud. - signed_up_but_locked: Teie konto loodi edukalt, kuid me ei saanud teid sisse logida, kuna teie konto on lukustatud. - signed_up_but_pending: Kiri kinnituslingiga saadeti teie e-postile. Pärast seda, kui te vajutate lingile, vaatame me teie taotluse üle. Teid teavitatakse, kui see on vastu võetud. - signed_up_but_unconfirmed: Kiri kinnituslingiga saadeti teie e-postile. Palun järgige linki, et aktiveerida oma konto. Palun kontrollige oma rämpsposti, kui te ei saanud seda e-kirja. - update_needs_confirmation: Konto uuendamine õnnestus, kuid e-postiaadress tuleb veel kinnitada. Palun kontrolli oma e-posti ning järgi kirjas olevat linki, et e-postiaadress kinnitada. Palun kontrolli rämpsposti, kui selline e-kiri ei saabunud. + destroyed: Nägemist! sinu konto sulgemine õnnestus. Me loodame sind varsti taas näha. + signed_up: Tere tulemast! Sinu konto loomine õnnestus. + signed_up_but_inactive: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto pole veel aktiveeritud. + signed_up_but_locked: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto on lukustatud. + signed_up_but_pending: Kiri kinnituslingiga saadeti sinu e-postile. Pärast seda, kui oled vajutanud kinnituslingile, vaatame me taotluse üle. Saad teavituse, kui taotlus on vastu võetud. + signed_up_but_unconfirmed: Kiri kinnituslingiga saadeti sinu e-postile. Palun järgi linki, et oma konto aktiveerida. Palun kontrolli rämpspostikausta, kui selline kiri ei saabunud. + update_needs_confirmation: Konto uuendamine õnnestus, kuid e-postiaadress tuleb veel kinnitada. Palun kontrolli oma e-posti ning järgi kirjas olevat kinnituslinki, et e-postiaadress kinnitada. Palun kontrolli rämpspostikausta, kui selline kiri ei saabunud. updated: Konto uuendamine õnnestus. sessions: already_signed_out: Väljumine õnnestus. signed_in: Sisenemine õnnestus. signed_out: Väljumine õnnestus. unlocks: - send_instructions: Te saate paari minuti pärast e-kirja juhistega, kuidas oma konto lukust lahti teha. Palun kontrollige oma rämpsposti kausta juhul, kui te ei saanud seda e-kirja. + send_instructions: Saad paari minuti pärast juhistega e-kirja, kuidas oma konto lukust lahti teha. Palun kontrolli oma rämpsposti kausta, kui selline kiri ei saabunud. send_paranoid_instructions: Kui konto on olemas, saabub paari minuti pärast e-kiri juhistega, kuidas konto lukust lahti teha. Palun kontrolli rämpsposti kausta, kui selline e-kiri ei saabunud. unlocked: Sinu konto avamine õnnestus. Jätkamiseks palun logi sisse. errors: messages: already_confirmed: on juba kinnitatud, palun proovi sisse logida - confirmation_period_expired: peab olema kinnitatud ajavahemikus %{period}, palun taotlege uuesti - expired: on aegunud, palun taotlege uuesti + confirmation_period_expired: peab olema kinnitatud ajavahemikus %{period}, palun taotle uuesti + expired: on aegunud, palun taotle uuesti not_found: ei leitud not_locked: ei olnud lukustatud not_saved: diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml index ba19ea313f..9a6aaf92f3 100644 --- a/config/locales/doorkeeper.bg.yml +++ b/config/locales/doorkeeper.bg.yml @@ -84,7 +84,7 @@ bg: credential_flow_not_configured: Resource Owner Password Credentials предизвика грешка, заради това, че настройките за Doorkeeper.configure.resource_owner_from_credentials липсват. invalid_client: Удостоверяването на клиента предизвика грешка, поради непознат клиент, липсващо клиентско удостоверяване, или заради това, че методът на удостоверяване не се поддържа. invalid_grant: Предоставеното удостоверение за достъп е невалидно, изтекло, отхвърлено, не съвпада с пренасочващото URI, използвано в заявката за удостоверение, или е бил издадено от друг клиент. - invalid_redirect_uri: Включеният пренасочващ URI адрес е невалиден. + invalid_redirect_uri: Включеният пренасочващ Uri е невалиден. invalid_request: missing_param: 'Липсва задължителен параметър: %{value}.' request_not_authorized: Заявката трябва да бъде упълномощена. Необходимият параметър за разрешаване на заявка липсва или е невалиден. @@ -111,7 +111,7 @@ bg: notice: Приложението е обновено. authorized_applications: destroy: - notice: Приложението е отказано. + notice: Анулирано приложение. grouped_scopes: access: read: Достъп само за четене @@ -143,7 +143,7 @@ bg: admin: nav: applications: Приложения - oauth2_provider: OAuth2 доставчик + oauth2_provider: Доставчик OAuth2 application: title: Нужно е упълномощаване по OAuth scopes: @@ -184,7 +184,7 @@ bg: write:blocks: блокиране на акаунти и домейни write:bookmarks: отмятане на публикации write:conversations: заглушаване и изтриване на разговорите - write:favourites: харесани публикации + write:favourites: любими публикации write:filters: създаване на филтри write:follows: последване на хора write:lists: създаване на списъци diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index 6ecfb0131e..13f0dbef07 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -138,7 +138,7 @@ ca: push: Notificacions push reports: Informes search: Cerca - statuses: Publicacions + statuses: Tuts layouts: admin: nav: @@ -178,13 +178,13 @@ ca: read:notifications: mira les teves notificacions read:reports: mira els teus informes read:search: cerca en nom teu - read:statuses: mira tots les publicacions + read:statuses: veure tots els tuts write: modifica totes les dades del teu compte write:accounts: modifica el teu perfil write:blocks: bloca comptes i dominis - write:bookmarks: marca publicacions + write:bookmarks: marca tuts write:conversations: silencia i esborra converses - write:favourites: afavoreix publicacions + write:favourites: afavoreix tuts write:filters: crea filtres write:follows: segueix gent write:lists: crea llistes @@ -192,4 +192,4 @@ ca: write:mutes: silencia usuaris i converses write:notifications: esborra les teves notificacions write:reports: informa sobre altres persones - write:statuses: fes publicacions + write:statuses: publica tuts diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 6e7ae458c9..dbd760f052 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -149,19 +149,19 @@ es: scopes: admin:read: leer todos los datos en el servidor admin:read:accounts: leer información sensible de todas las cuentas - admin:read:canonical_email_blocks: leer información sensible de todos los bloques de correo canónico + admin:read:canonical_email_blocks: leer información sensible de todos los bloqueos de correo canónico admin:read:domain_allows: leer información sensible de todos los dominios permitidos - admin:read:domain_blocks: leer información sensible de todos los bloques de dominio - admin:read:email_domain_blocks: leer información sensible de todos los bloques de dominio de correo electrónico - admin:read:ip_blocks: leer información sensible de todos los bloques IP + admin:read:domain_blocks: leer información sensible de todos los bloqueos de dominio + admin:read:email_domain_blocks: leer información sensible de todos los bloqueos de dominio de correo electrónico + admin:read:ip_blocks: leer información sensible de todos los bloqueos de IP admin:read:reports: leer información sensible de todos los informes y cuentas reportadas admin:write: modificar todos los datos en el servidor admin:write:accounts: realizar acciones de moderación en cuentas - admin:write:canonical_email_blocks: realizar acciones de moderación en bloques de correo canónico - admin:write:domain_allows: realizar acciones de moderación en el dominio permitido - admin:write:domain_blocks: realizar acciones de moderación en bloques de dominio - admin:write:email_domain_blocks: realizar acciones de moderación en bloques de dominio de correo electrónico - admin:write:ip_blocks: realizar acciones de moderación en bloques IP + admin:write:canonical_email_blocks: ejecutar acciones de moderación en bloqueos canónicos de correo electrónico + admin:write:domain_allows: ejecutar acciones de moderación en los dominios permitidos + admin:write:domain_blocks: ejecutar acciones de moderación en bloqueos de dominio + admin:write:email_domain_blocks: ejecutar acciones de moderación en bloqueos de dominio de correo electrónico + admin:write:ip_blocks: ejecutar acciones de moderación en bloqueos de IP admin:write:reports: realizar acciones de moderación en informes crypto: usar cifrado de extremo a extremo follow: seguir, bloquear, desbloquear y dejar de seguir cuentas diff --git a/config/locales/doorkeeper.et.yml b/config/locales/doorkeeper.et.yml index 654447e003..8749121e17 100644 --- a/config/locales/doorkeeper.et.yml +++ b/config/locales/doorkeeper.et.yml @@ -29,16 +29,16 @@ et: edit: title: Avalduse muutmine form: - error: Oih! Kontrollige oma vormi võimalikest vigadest + error: Oih! Kontrolli vormi, ehk on mõni viga sees help: - native_redirect_uri: Kasutage %{native_redirect_uri} kohalikeks testideks + native_redirect_uri: Kasuta %{native_redirect_uri} kohalikeks testideks redirect_uri: Kasuta ühte rida iga URI jaoks scopes: Eralda ulatused tühikutega. Jäta tühjaks, et kasutada vaikimisi ulatusi. index: application: Rakendus callback_url: Ümbersuunamise URL delete: Kustuta - empty: Teil pole rakendusi. + empty: Sul pole rakendusi. name: Nimi new: Uus rakendus scopes: Ulatused @@ -60,7 +60,7 @@ et: error: title: Ilmnes viga new: - prompt_html: "%{client_name} soovib luba kontole juurdepääsuks. See on kolmanda osapoole rakendus. Kui pole usaldusväärne, siis ei tohiks seda lubada." + prompt_html: "%{client_name} soovib luba kontole juurdepääsuks. See on kolmanda osapoole rakendus. Kui see pole usaldusväärne, siis ei tohiks seda lubada." review_permissions: Lubade ülevaade title: Autoriseerimine vajalik show: @@ -82,7 +82,7 @@ et: messages: access_denied: Ressursi omanik või autoriseerimisserver lükkas taotluse tagasi. credential_flow_not_configured: Resource Owner Password Credentials vool ebaõnnestus, kuna Doorkeeper.configure.resource_owner_from_credentials ei ole seadistatud. - invalid_client: Kliendi autentimine ebaõnnestus, kuna tundmatu klient, puudulik autentimine või mitte toetatud autentimismeetod. + invalid_client: Kliendi autentimine ebaõnnestus. Põhjus kas tundmatu klient, puudulik autentimine või toetamata autentimismeetod. invalid_grant: Antud autoriseerimisluba on vale, aegunud, tagasi võetud, ei kattu kasutatud ümbersuunamise URLid või oli antud teisele kliendile. invalid_redirect_uri: Antud ümbersuunamise URL ei ole õige. invalid_request: @@ -131,7 +131,7 @@ et: filters: Filtrid follow: Seosed follows: Jälgimised - lists: Nimistud + lists: Nimekirjad media: Lisatud meedia mutes: Vaigistused notifications: Teavitused @@ -154,7 +154,7 @@ et: admin:read:domain_blocks: loe kõigi domeenide blokeeringute tundlikku infot admin:read:email_domain_blocks: loe kõigi e-posti blokeeringute tundlikku infot admin:read:ip_blocks: loe kõigi IP-blokeeringute tundlikku infot - admin:read:reports: lugeda privaatset informatsiooni kõikide teavituste ja teavitatud kasutajate kohta + admin:read:reports: lugeda privaatset infot kõikide teavituste ja teavitatud kasutajate kohta admin:write: muuta kõiki andmeid serveril admin:write:accounts: teostada moderaatori tegevusi kontodel admin:write:canonical_email_blocks: modereeri kanoonilisi e-posti blokeeringuid @@ -171,13 +171,13 @@ et: read:blocks: näha su 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 - read:lists: näha Teie nimekirju - read:mutes: näha Teie vaigistusi - read:notifications: näha Teie teateid - read:reports: näha Teie teavitusi - read:search: otsida Teie nimel + read:filters: näha su filtreid + read:follows: näha su jälgimisi + read:lists: näha su nimekirju + read:mutes: näha su vaigistusi + read:notifications: näha teateid + read:reports: näha teavitusi + read:search: otsida sinu nimel read:statuses: näha kõiki postitusi write: muuta kogu konto andmeid write:accounts: muuta profiili diff --git a/config/locales/et.yml b/config/locales/et.yml index 746fe032eb..61aefe6bde 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -17,7 +17,7 @@ et: link_verified_on: Selle lingi autorsust kontrolliti %{date} nothing_here: Siin pole midagi! pin_errors: - following: Te peate juba olema selle kasutaja jälgija, keda te soovitate + following: Pead olema juba selle kasutaja jälgija, keda soovitad posts: one: Postitus other: Postitused @@ -96,10 +96,10 @@ et: suspended: Kustutatud title: Modereerimine moderation_notes: Modereerimisteated - most_recent_activity: Kõige hiljutisem aktiivsus - most_recent_ip: Kõige hiljutisem IP - no_account_selected: Mitte ühtegi kontot muudeti sest midagi polnud valitud - no_limits_imposed: Mitte ühtegi limiiti kehtestatud + most_recent_activity: Viimatine aktiivsus + most_recent_ip: Viimatine IP + no_account_selected: Ühtegi kontot ei muudetud, sest midagi polnud valitud + no_limits_imposed: Pole kehtestatud ühtegi piirangut no_role_assigned: Ühtegi rolli pole määratud not_subscribed: Ei ole tellitud pending: Ootab ülevaatamist @@ -171,7 +171,7 @@ et: approve_appeal: Rahulda vaidlustus approve_user: Kinnita kasutaja assigned_to_self_report: Määras Teavituse - change_email_user: Kasutaja muutis e-postiaadressit + change_email_user: Kasutaja muutis e-postiaadressi change_role_user: Muuda kasutaja rolli confirm_user: Kasutaja kinnitatud create_account_warning: Lisas hoiatuse @@ -312,7 +312,7 @@ et: by_domain: Domeen copied_msg: Kohaliku koopia loomine emotikonist õnnestus copy: Kopeeri - copy_failed_msg: Kohaliku koopia loomine sellest emotikonist ebaõnnestus + copy_failed_msg: Sellest emotikonist kohaliku koopia loomine nurjus create_new_category: Loo uus kategooria created_msg: Emotikoni loomine õnnestus! delete: Kustuta @@ -330,7 +330,7 @@ et: new: title: Lisa uus emotikon no_emoji_selected: Emotikone ei muudetud, kuna ühtegi polnud valitud - not_permitted: Teil puudub õigus selle tegevuse jaoks + not_permitted: Sul puudub selle tegevuse jaoks õigus overwrite: Kirjuta üle shortcode: Lühikood shortcode_hint: Vähemalt 2 tähemärki, ainult tähted, numbrid ja alakriipsud @@ -385,7 +385,7 @@ et: domain: Domeen edit: Muuda domeeniblokeeringut existing_domain_block: Kasutajale %{name} on juba karmimad piirangud kehtestatud. - existing_domain_block_html: Te olete juba lisanud domeenile %{name} piiranguid, palun eemaldage blokeering enne jätkamist. + existing_domain_block_html: Oled juba lisanud domeenile %{name} piiranguid, palun eemalda enne jätkamist eemalda blokeering. export: Eksport import: Import new: @@ -400,7 +400,7 @@ et: no_domain_block_selected: Ühtegi domeeni keeldu ei muudetud, kuna midagi polnud valitud not_permitted: Puudub õigus seda teha obfuscate: Domeeninime varjamine - obfuscate_hint: Varja osaliselt domeeni nimi nimekirjas, kui domeenipiirangute nimistu avaldamine on sisse lülitatud + obfuscate_hint: Varja osaliselt domeeni nimi nimekirjas, kui domeenipiirangute nimekirja avaldamine on sisse lülitatud private_comment: Privaatne kommentaar private_comment_hint: Kommenteeri selle domeeni limiteerimise kohta moderaatoritele. public_comment: Avalik kommentaar @@ -445,7 +445,7 @@ et: title: Domeenikeeldude import no_file: Faili pole valitud follow_recommendations: - description_html: "Jälgimissoovitused aitavad uutel kasutajatel kiirelt leida huvipakkuvat sisu. Kui kasutaja pole teistega piisavalt läbi käinud, et kujuneks personaalsed soovitused, soovitatakse neid kontosid. Need arvutatakse ümber igapäevaselt populaarseimate postituste ja enim jälgitavate kontode seast antud keeles." + description_html: "Jälgimissoovitused aitavad uutel kasutajatel kiirelt leida huvipakkuvat sisu. Kui kasutaja pole teistega piisavalt läbi käinud, et saaks luua personaalseid soovitusi, soovitatakse neid kontosid. Need arvutatakse ümber igapäevaselt konkreetse keele populaarseimate postituste ja enim jälgitavate kontode seast." language: Keel status: Olek suppress: Eemalda jälgimissoovitus @@ -545,21 +545,21 @@ et: relationships: title: "%{acct}-i suhted" relays: - add_new: Lisa uus relee + add_new: Lisa uus vahendaja delete: Kustuta - description_html: "Födereerumisrelee on vahendav server, mis kannab üle suures koguses avalikke postitusi nende serverite vahel, mis on sellega liitunud ja edastavad sellele oma postitusi. See aitab väikestel ja keskmistel serveritel avastada födiversumi sellist sisu, mis muidu eeldaks kohalikelt kasutajatelt nende serverite kasutajate jälgitavaks märkimist." + description_html: "Födereerumisvahendaja on vahendav server, mis kannab üle suures koguses avalikke postitusi nende serverite vahel, mis on sellega liitunud ja edastavad sellele oma postitusi. See aitab väikestel ja keskmistel serveritel avastada födiversumi sellist sisu, mis muidu eeldaks kohalikelt kasutajatelt nende serverite kasutajate jälgitavaks märkimist." disable: Keela disabled: Keelatud enable: Luba - enable_hint: Kui lubatud, siis server tellib kõik avalikud postitused sellelt releelt ning hakkab ka enda avalikke postitusi sellele saatma. + enable_hint: Kui lubatud, siis server tellib sellelt vahendajalt kõik avalikud postitused ning hakkab ka enda avalikke postitusi sellele saatma. enabled: Lubatud - inbox_url: Relee URL - pending: Ootab relee nõusolekut + inbox_url: Vahendaja URL + pending: Ootab vahendaja nõusolekut save_and_enable: Salvesta ja luba - setup: Sea üles releeühendus - signatures_not_enabled: Releed ei tööta korrektselt kuniks turvarežiim või lubatud nimekirja režiim on sisse lülitatud + setup: Sea üles vahendav ühendus + signatures_not_enabled: Vahendamine ei tööta korrektselt kuniks turvarežiim või lubatud nimekirja režiim on sisse lülitatud status: Olek - title: Releed + title: Vahendajad report_notes: created_msg: Teade edukalt koostatud! destroyed_msg: Teade edukalt kustutatud! @@ -667,13 +667,13 @@ et: manage_rules: Reeglite haldamine manage_rules_description: Lubab kasutajatel muuta serveri reegleid manage_settings: Halda sätteid - manage_settings_description: Lubab kasutajatel muute lehekülje sätteid + manage_settings_description: Lubab kasutajatel muuta lehekülje sätteid manage_taxonomies: Halda taksonoomiaid manage_taxonomies_description: Luba kasutajatel populaarset sisu üle vaadata ning uuendada siltide sätteid - manage_user_access: Halda kasutaja ligipääsu - manage_user_access_description: Lubab kasutajail eemaldada teiste kahe-etapise autentimise nõude, muuta nende e-postiaadresse ja lähtestada salasõnu + manage_user_access: Halda kasutajate ligipääsu + manage_user_access_description: Lubab kasutajail keelata teiste kaheastmelise autentimise, muuta nende e-postiaadresse ja lähtestada salasõnu manage_users: Kasutajate haldamine - manage_users_description: Lubab kasutajail näha teiste kasutajate detailandmeid ja teha modereerimisotsuseid + manage_users_description: Lubab kasutajail näha teiste kasutajate üksikasju ja teha nende suhtes modereerimisotsuseid manage_webhooks: Halda webhook'e manage_webhooks_description: Lubab kasutajatel administratiivseteks sündmusteks webhook'e seadistada view_audit_log: Auditilogi vaatamine @@ -686,7 +686,7 @@ et: rules: add_new: Lisa reegel delete: Kustuta - description_html: Kuigi enamik väidab, et on teenusetingimused läbi lugenud ja nõustub nendega, loevad inimesed tavaliselt need läbi alles pärast probleemi tekkimist. Hõlbustage oma serveri reeglite ühe pilguga nägemist, esitades need lihtsa täpploendina. Püüdke hoida üksikud reeglid lühikesed ja lihtsad, kuid ärge jagage neid ka paljudeks eraldi üksusteks. + description_html: Kuigi enamik väidab, et on teenusetingimused läbi lugenud ja nõustub nendega, loevad inimesed tavaliselt need läbi alles pärast probleemi tekkimist. Muuda oma serveri reeglite ühe pilguga haaramine hõlpsaks, esitades need lihtsa täpploendina. Püüa hoida reegli punktid lühikesed ja lihtsad, kuid ära jaga neid ka paljudeks eraldi üksusteks. edit: Reegli muutmine empty: Serveri reegleid pole veel defineeritud. title: Serveri reeglid @@ -703,7 +703,7 @@ et: preamble: Serveri bränding eristab seda teistest serveritest võrgus. Seda teavet võidakse kuvada erinevates keskkondades, näiteks Mastodoni veebiliideses, rakendustes, viitade eelvaadetes teistel veebisaitidel, sõnumsiderakendustes jne. Sel põhjusel on kõige parem hoida see teave selge, lühike ja ülevaatlik. title: Märgistus content_retention: - preamble: Juhi kuidas kasutajate loodud sisu Mastodon'is talletatakse. + preamble: Määra, kuidas kasutajate loodud sisu Mastodonis talletatakse. title: Sisu talletamine default_noindex: desc_html: Mõjub kasutajatele, kes pole seda sätet ise muutnud @@ -887,7 +887,7 @@ et: next_steps: Võid modereeringu tagasi pööramiseks vaidlustuse rahuldada, või ka mitte. subject: "%{username} on vaidlustanud %{instance} modereerimisotsuse" new_pending_account: - body: Uue konto üksikasjad on allpool. Te saate vastu võtta või tagasi lükata seda taotlust. + body: Uue konto üksikasjad on allpool. Saad taotluse vastu võtta või tagasi lükata. subject: Uus konto valmis ülevaatluseks serveril %{instance} (%{username}) new_report: body: "%{reporter} teavitas kasutajast %{target}" @@ -908,7 +908,7 @@ et: add_new: Pane kolimiseks valmis created_msg: Konto on valmis vastu võtma jälgijaid. Logi sisse oma vanale kontole ja käivita kolimine sealt. deleted_msg: Edukalt kustutasime teise nime. Kolimine sellelt kontolt praegusele on nüüdsest võimatu. - empty: Teil puuduvad teised nimed. + empty: Sul pole aliaseid. hint_html: Kui soovid konto siia üle kolida, pead esmalt siin määrama kolitava konto aadressi. Seejärel on konto valmis võtma vastu jälgijaid vanalt kontolt. Kolitava konto aadressi määramine on iseenesest kahjutu ja tagasipööratav. Jälgijate tegelik kolimine käivitatakse vanalt kontolt. remove: Loobu suunamise vastuvõtmisest appearance: @@ -945,18 +945,18 @@ et: description: prefix_invited_by_user: "@%{name} kutsub Teid liituma selle Mastodoni serveriga!" prefix_sign_up: Loo Mastodoni konto juba täna! - suffix: Kasutajakontoga saate jälgida inimesi, postitada uudiseid ning teha kirjavahetust üks kõik millisest Mastodoni serverist kasutajatega ja muud! + suffix: Kasutajakontoga saad jälgida inimesi, postitada uudiseid ning pidada kirjavahetust ükskõik millise Mastodoni serveri kasutajatega ja muudki! didnt_get_confirmation: Ei saanud kinnituse juhendeid? dont_have_your_security_key: Pole turvavõtit? forgot_password: Salasõna ununenud? invalid_reset_password_token: Salasõna lähtestusvõti on vale või aegunud. Palun taotle uus. - link_to_otp: Kahe-etapine kood telefonist või taastekood + link_to_otp: Kaheastmeline kood telefonist või taastekood link_to_webauth: Turvavõtmete seadme kasutamine log_in_with: Sisene kasutades login: Logi sisse logout: Logi välja migrate_account: Teisele kontole ära kolimine - migrate_account_html: Kui soovid selle konto siit ära kolida, saad seda teha siin. + migrate_account_html: Kui soovid konto siit ära kolida, saad seda teha siin. or_log_in_with: Või logi sisse koos privacy_policy_agreement_html: Olen tutvunud isikuandmete kaitse põhimõtetega ja nõustun nendega providers: @@ -972,11 +972,11 @@ et: security: Turvalisus set_new_password: Uue salasõna määramine setup: - email_below_hint_html: Kui allolev e-posti aadress on vale, saate Te muuta seda siin ning Teile saadetakse uus kinnituskiri. - email_settings_hint_html: Kinnituskiri saadeti e-posti aadressile %{email}. Kui see aadress pole õige, saate Te muuta seda oma konto sätetest. + email_below_hint_html: Kui allolev e-posti aadress on vale, saad seda muuta siin. Seejärel saadetakse uus kinnituskiri. + email_settings_hint_html: Kinnituskiri saadeti e-posti aadressile %{email}. Kui see aadress pole õige, saad muuta seda oma konto sätetest. title: Seadistamine sign_in: - preamble_html: Logige sisse oma %{domain} volitustega. Kui konto asub teises serveris, ei saa te siin sisse logida. + preamble_html: Logi sisse oma %{domain} volitustega. Kui konto asub teises serveris, ei saa siin sisse logida. title: Logi sisse kohta %{domain} sign_up: preamble: Selle kontoga saad jälgida ja suhelda kõigi teiste kasutajatega erinevates Mastodoni serverites. @@ -985,20 +985,20 @@ et: account_status: Konto olek confirming: Ootan e-posti kinnitust. functional: Konto on täies mahus kasutatav. - pending: Taotlus ootab ülevaatamist meie personali poolt. See võib võtta mõnda aega. Kui taotlus on vastu võetud, saadetakse sulle e-kiri. + pending: Taotlus ootab ülevaatamist meie personali poolt. See võib võtta mõne aja. Kui taotlus on vastu võetud, saadetakse sulle e-kiri. redirecting_to: See konto pole aktiivne, sest on suunatud aadressile %{acct}. view_strikes: Vaata enda eelnevaid juhtumeid too_fast: Vorm esitatud liiga kiirelt, proovi uuesti. use_security_key: Kasuta turvavõtit authorize_follow: - already_following: Te juba jälgite seda kontot - already_requested: Te juba saatsite jälgimistaotluse sellele kontole + already_following: Juba jälgid seda kontot + already_requested: Saatsid juba sellele kontole jälgimistaotluse error: Kahjuks ilmus viga kasutaja kaugserverist otsimisel follow: Jälgi follow_request: 'Oled saatnud jälgimistaotluse kasutajale:' - following: 'Õnnestus! Te nüüd jälgite kasutajat:' + following: 'Õnnestus! Jälgid nüüd kasutajat:' post_follow: - close: Või Te saate lihtsalt sulgeda seda akent. + close: Või sulge lihtsalt see aken. return: Näita kasutaja profiili web: Mine veebi title: Jälgi %{acct} @@ -1030,18 +1030,18 @@ et: x_months: "%{count}k" x_seconds: "%{count}s" deletes: - challenge_not_passed: Informatsioon, mida sisestasite, oli vale + challenge_not_passed: Info, mille sisestasid, oli ebakorrektne confirm_password: Praegune salasõna isikusamasuse kinnitamiseks - confirm_username: Sisestage oma kasutajanimi protseduuri kinnitamiseks + confirm_username: Sisesta tegevuse kinnitamiseks oma kasutajanimi proceed: Kustuta konto success_msg: Konto kustutamine õnnestus warning: before: 'Veendu, et saad aru, mida toob plaanitav muudatus kaasa:' caches: Teiste serverite poolt talletatud sisu võib jääda kättesaadavaks data_removal: Sinu postitused ning kontoandmed kustutatakse jäädavalt - email_change_html: Te saate muuta oma e-postiaadressi kontot kustutamata - email_contact_html: Kui see ikkagi ei saabu, saatke abi saamiseks kiri aadressile %{email} - email_reconfirmation_html: Kui Te ei saanud kinnituskirja, saate selle uuesti küsida + email_change_html: Saad muuta oma e-postiaadressi kontot kustutamata + email_contact_html: Kui see ikkagi ei saabu, saada abi saamiseks kiri aadressile %{email} + email_reconfirmation_html: Kui kinnituskiri ei saabunud, saab selle uuesti küsida irreversible: Kustutatud kontot ei saa taastada ega uuesti aktiveerida more_details_html: Konto kustutamise kohta loe täpsemalt isikuandmete kaitse põhimõtetest. username_available: Kasutajanimi muutub uuesti kasutatavaks @@ -1059,7 +1059,7 @@ et: approve_appeal: Rahulda vaidlustus associated_report: Seotud raport created_at: Kuupäev - description_html: See on käesoleva konto hoiatuste ja tegevuste ajalugu, mis on %{instance} haldajate poolt ette võetud. + description_html: See on %{instance} haldajate poolt käesoleva konto suhtes tehtud hoiatuste ja tegevuste ajalugu. recipient: Adressaat reject_appeal: Lükka vaidlustus tagasi status: 'Postitus #%{id}' @@ -1068,7 +1068,7 @@ et: title_actions: delete_statuses: Postituste eemaldamine disable: Konto lukustamine - mark_statuses_as_sensitive: Postituste tundlikena märkimine + mark_statuses_as_sensitive: Postituste märkimine tundlikena none: Hoiatus sensitive: Konto tundlikuna märkimine silence: Konto piirang @@ -1085,7 +1085,7 @@ et: '406': See lehekülg ei ole soovitavas formaadis saadaval. '410': Soovitud lehekülge pole enam siin. '422': - content: Turvalisuse kontroll ebaõnnestus. Kas Te blokeerite küpsiseid? + content: Turvalisuse kontroll ebaõnnestus. Kas blokeerid küpsiseid? title: Turvalisuse kontroll ebaõnnestus '429': Aeglustatud '500': @@ -1108,7 +1108,7 @@ et: bookmarks: Järjehoidjad csv: CSV domain_blocks: Domeeni blokeeringud - lists: Nimistud + lists: Nimekirjad mutes: Oled vaigistanud storage: Meedia hoidla featured_tags: @@ -1130,12 +1130,12 @@ et: statuses_hint_html: See filter rakendub üksikute postituste valimisel olenemata sellest, kas need vastavad allolevatele märksõnadele. Filtri postituste ülevaatamine või kustutamine. title: Muuda filtrit errors: - deprecated_api_multiple_keywords: Neid parameetreid ei saa selles rakenduses muuta, kuna need kehtivad rohkem kui ühele filtri märksõnale. Kasutage uuemat rakendust või veebiliidest. + deprecated_api_multiple_keywords: Neid parameetreid ei saa selles rakenduses muuta, kuna need kehtivad rohkem kui ühele filtri märksõnale. Kasuta uuemat rakendust või veebiliidest. invalid_context: Puudulik või vale kontekst index: contexts: Filtrid %{contexts} delete: Kustuta - empty: Teil pole filtreid. + empty: Sul pole filtreid. expires_in: Aegub %{distance} expires_on: Aegub %{date} keywords: @@ -1193,7 +1193,7 @@ et: merge_long: Hoia olemasolevad andmed ja lisa uusi overwrite: Kirjuta üle overwrite_long: Vaheta praegused andmed uute vastu - preface: Te saate importida mis tahes andmeid, mis on eksporditud teisest serverist. Näiteks nimekiri inimestest, keda jälgid ja keda blokeerid. + preface: Saad importida mistahes andmeid, mis on eksporditud teisest serverist. Näiteks nimekirja inimestest, keda jälgid ja keda blokeerid. success: Andmete üleslaadimine õnnestus ning neid töödeldakse types: blocking: Blokeeringute nimekiri @@ -1229,11 +1229,11 @@ et: limit: Oled jõudnud loetelude lubatud maksimumarvuni login_activities: authentication_methods: - otp: kahe-etapise autentimise rakendus + otp: kaheastmelise autentimise rakendus password: salasõna sign_in_token: e-posti turvakood webauthn: turvavõtmed - description_html: Kui paistab tundmatauid tegevusi, tuleks vahetada salasõna ja aktiveerida kahe-etapine autentimine. + description_html: Kui paistab tundmatuid tegevusi, tuleks vahetada salasõna ja aktiveerida kaheastmeline autentimine. empty: Autentimisajalugu pole saadaval failed_sign_in_html: Nurjunud sisenemine meetodiga %{method} aadressilt %{ip} (%{browser}) successful_sign_in_html: Edukas sisenemine meetodiga %{method} aadressilt %{ip} (%{browser}) @@ -1269,7 +1269,7 @@ et: backreference_required: Uus konto peab olema esmalt seadistatud võtma vastu siinse konto jälgijaid before: 'Veendu, et saad aru, mida toob plaanitav muudatus kaasa:' cooldown: Kolimisele järgneb ooteaeg, mille vältel kontot mõnda aega ümber kolida ei saa - disabled_account: Pärast kolimist ei ole konto kasutamine täielikult võimalik. Säilib andmete eksportimise ja konto taasaktiveerimise võimalus. + disabled_account: Pärast seda ei ole konto täielik kasutamine võimalik. Säilib andmete eksportimise ja konto taasaktiveerimise võimalus. followers: See käsklus kolib kõik siinse konto jälgijad üle sinu uue konto jälgijateks only_redirect_html: Teine võimalus on märkida konto ümbersuunatuks. other_data: Muid kontoandmeid, sh postitusi automaatselt üle ei kanta @@ -1318,7 +1318,7 @@ et: subject: "%{name} muutis postitust" notifications: email_events: E-posti teadete sündmused - email_events_hint: 'Valige sündmused, millest soovite teavitusi:' + email_events_hint: 'Vali sündmused, mille kohta soovid teavitusi:' other_settings: Muud teadete sätted number: human: @@ -1332,7 +1332,7 @@ et: trillion: trn otp_authentication: code_hint: Kinnituseks autentimisrakenduse loodud kood - description_html: Kui aktiveerda kahe-etapine autentimine autentimisrakenduse abil, on sisselogimiseks tarvis telefoni, mis loob sisenemiseks võtmeid. + description_html: Kui aktiveerida kaheastmeline autentimine autentimisrakenduse abil, on sisselogimiseks tarvis telefoni, mis loob sisenemiseks võtmeid. enable: Luba instructions_html: "See QR-kood on võimalik skannida telefoni Google Authenticatori või sarnasesse ühekordsete aeguvate salasõnade (TOTP) rakendusse. Nüüdsest genereerib see rakendus koode, mille peab sisenemisel sisestama." manual_instructions: 'Kui pole võimalik QR-koodi skaneerida, on salavõti võimalik sisestada tavatekstina:' @@ -1383,7 +1383,7 @@ et: remove_selected_follows: Lõpeta valitud kasutajate jälgimine status: Konto olek remote_follow: - missing_resource: Ei suutnud konto jaoks leida vajalikku suunamise URLi + missing_resource: Ei ole võimalik leida konto jaoks vajalikku suunamise URLi reports: errors: invalid_rules: ei viita kehtivatele reeglitele @@ -1459,7 +1459,7 @@ et: relationships: Jälgitud ja jälgijad statuses_cleanup: Automaatne kustutamine strikes: Modereerimisjuhtumid - two_factor_authentication: Kahe-etapine autentimine + two_factor_authentication: Kaheastmeline autentimine webauthn_authentication: Turvavõtmed statuses: attached: @@ -1543,7 +1543,7 @@ et: '7889238': 3 kuud min_age_label: Ajalimiit min_favs: Säilita postitused, meeldimistega vähemalt - min_favs_hint: Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuid. Postituste kustutamiseks, olenemata nende lemmikute arvust, jätke tühjaks + min_favs_hint: Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust, jäta tühjaks min_reblogs: Säilita postitused jagatud vähemalt min_reblogs_hint: Ei kustuta postitusi, kui need on jagatud vähemalt nii mitu korda. Tühjaks jättes kustuvad postitused olenemata jagamistest stream_entries: @@ -1567,13 +1567,13 @@ et: two_factor_authentication: add: Lisa disable: Keela 2FA - disabled_success: Kahe-etapine autentimine keelatud + disabled_success: Kaheastmeline autentimine keelatud edit: Muuda - enabled: Kahe-etapine autentimine on lubatud - enabled_success: Kahe-etapine autentimine lubatud + enabled: Kaheastmeline autentimine on lubatud + enabled_success: Kaheastmeline autentimine lubatud generate_recovery_codes: Loo taastekoodid lost_recovery_codes: Taastekoodide abil on võimalik telefoni kaotsimineku puhul kontole siseneda. Taastekoodide puudumisel saab need siin luua. Eelnevad taastekoodid kaotavad kehtivuse. - methods: Kahe-etapised meetodid + methods: Kaheastmelised meetodid otp: Autentimisrakendus recovery_codes: Taastekoodide varundamine recovery_codes_regenerated: Taastekoodid edukalt taasloodud @@ -1590,14 +1590,14 @@ et: subject: "%{date} esitatud vaidlustus on tagasi lükatud" title: Vaidlustus tagasi lükatud backup_ready: - explanation: Te taotlesite varukoopia oma Mastodoni kontost. See on nüüd valmis allalaadimiseks! + explanation: Taotlesid oma Mastodoni konto varukoopiat. See on nüüd valmis allalaadimiseks! subject: Arhiiv on allalaadimiseks valmis title: Arhiivi väljavõte suspicious_sign_in: change_password: muuta oma salasõna details: 'Sisenemise üksikasjad:' explanation: Täheldasime kontole sisenemise uuelt IP-aadressilt. - further_actions_html: Kui see tuleb üllatusena, soovitame viivitamata %{action} ja lülitada konto turvamiseks sisse kahe-etapine autentimine. + further_actions_html: Kui see tuleb üllatusena, soovitame viivitamata %{action} ja lülitada konto turvamiseks sisse kaheastmeline autentimine. subject: Kontole sisenemine uuelt IP-aadressilt title: Uus sisenemine warning: @@ -1645,9 +1645,9 @@ et: subject: Tere tulemast Mastodoni title: Tere tulemast, %{name}! users: - follow_limit_reached: Te ei saa jälgida rohkem kui %{limit} inimest - invalid_otp_token: Vale kahe-etapine võti - otp_lost_help_html: Kui Te kaotasite ligipääsu mõlemale, saate võtta ühendust %{email}-iga + follow_limit_reached: Ei saa jälgida rohkem kui %{limit} inimest + invalid_otp_token: Vale kaheastmeline võti + otp_lost_help_html: Kui kaotasid ligipääsu mõlemale, saad võtta ühendust %{email}-iga seamless_external_login: Välise teenuse kaudu sisse logides pole salasõna ja e-posti sätted saadaval. signed_in_as: 'Sisse logitud kasutajana:' verification: @@ -1668,5 +1668,5 @@ et: nickname_hint: Uue turvavõtme hüüdnimi not_enabled: Veebiautentimine pole sisse lülitatud not_supported: See veebilehitseja ei toeta turvavõtmeid - otp_required: Turvavõtmete kasutamiseks tuleb eelnevalt sisse lülitada kahe-etapine autentimine. + otp_required: Turvavõtmete kasutamiseks tuleb eelnevalt sisse lülitada kaheastmeline autentimine. registered_on: Registreeritud %{date} diff --git a/config/locales/fi.yml b/config/locales/fi.yml index ca3db27846..00540a1d5d 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -355,7 +355,7 @@ fi: other: "%{count} odottavat raportit" pending_tags_html: one: "%{count} odottava hashtagi" - other: "%{count} odottavat hashtagit" + other: "%{count} odottavaa aihetunnistetta" pending_users_html: one: "%{count} odottava käyttäjä" other: "%{count} odottavat käyttäjät" @@ -669,7 +669,7 @@ fi: manage_settings: Hallita asetuksia manage_settings_description: Salli käyttäjien muuttaa sivuston asetuksia manage_taxonomies: Hallita luokittelua - manage_taxonomies_description: Sallii käyttäjien tarkistaa trendillisen sisällön ja päivittää hashtag-asetuksia + manage_taxonomies_description: Sallii käyttäjien tarkistaa nousussa olevan sisällön ja päivittää aihetunnisteiden asetuksia manage_user_access: Hallita käyttäjän oikeuksia manage_user_access_description: Sallii käyttäjien poistaa käytöstä muiden käyttäjien kaksivaiheisen todennuksen, muuttaa heidän sähköpostiosoitettaan ja nollata heidän salasanansa manage_users: Hallita käyttäjiä @@ -782,7 +782,7 @@ fi: message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset tags: review: Tarkista tila - updated_msg: Hashtagin asetukset päivitetty onnistuneesti + updated_msg: Aihetunnisteen asetukset päivitetty onnistuneesti title: Ylläpito trends: allow: Salli @@ -830,7 +830,7 @@ fi: tag_servers_dimension: Suosituimmat palvelimet tag_servers_measure: eri palvelimet tag_uses_measure: käyttökerrat - description_html: Nämä ovat hashtageja, jotka näkyvät tällä hetkellä monissa viesteissä, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään hashtageja ei näytetä julkisesti ennen kuin hyväksyt ne. + description_html: Nämä ovat aihetunnisteita, jotka näkyvät tällä hetkellä monissa julkaisuissa, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään aihetunnisteita ei näytetä julkisesti, ennen kuin hyväksyt ne. listable: Voidaan ehdottaa no_tag_selected: Yhtään tagia ei muutettu, koska yhtään ei valittu not_listable: Ei tulla ehdottamaan @@ -900,9 +900,9 @@ fi: new_trending_statuses: title: Suositut viestit new_trending_tags: - no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä hashtageja. - requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään hashtagin, joka on tällä hetkellä #%{lowest_tag_name} arvosanalla %{lowest_tag_score}.' - title: Suositut hashtagit + no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä aihetunnisteita. + requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään aihetunnisteen, joka on tällä hetkellä #%{lowest_tag_name} arvosanalla %{lowest_tag_score}.' + title: Suositut aihetunnisteet subject: Uusia trendejä tarkistettavaksi instanssissa %{instance} aliases: add_new: Luo alias @@ -1114,8 +1114,8 @@ fi: featured_tags: add_new: Lisää uusi errors: - limit: Olet jo lisännyt enimmäismäärän hashtageja - hint_html: "Mitkä ovat näkyvillä olevat hashtagit? Ne ovat näkyvästi julkisessa profiilissasi ja niiden avulla ihmiset voivat selata julkisia viestejäsi nimenomaan näiden hashtagien alla. Ne ovat loistava luovan työn työkalu tai pitkäaikaisten projektien seurantaan." + limit: Olet jo lisännyt enimmäismäärän aihetunnisteita + hint_html: "Mitä ovat näkyvillä olevat hashtagit eli aihetunnisteet? Ne ovat näkyvissä julkisessa profiilissasi ja niiden avulla ihmiset voivat selata julkisia viestejäsi nimenomaan näiden aihetunnisteiden alla. Ne auttavat esimerkiksi luovan työn tai pitkäaikaisten projektien seurannassa." filters: contexts: account: Profiilit @@ -1636,7 +1636,7 @@ fi: edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat ennen kuin he saavat seurata sinua. explanation: Näillä vinkeillä pääset alkuun final_action: Ala julkaista - final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja hashtageilla. Kannattaa myös esittäytyä! Käytä hashtagia #esittely.' + final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä! Käytä aihetunnistetta #esittely.' full_handle: Koko käyttäjätunnuksesi full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta. subject: Tervetuloa Mastodoniin diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 14dd73b85c..c40fd93170 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1598,7 +1598,7 @@ fr: details: 'Voici les détails de la connexion :' explanation: Nous avons détecté une connexion à votre compte à partir d’une nouvelle adresse IP. further_actions_html: Si ce n’était pas vous, nous vous recommandons de %{action} immédiatement et d’activer l’authentification à deux facteurs afin de garder votre compte sécurisé. - subject: Votre compte a été accédé à partir d'une nouvelle adresse IP + subject: Une nouvelle adresse IP a accédé à votre compte title: Une nouvelle connexion warning: appeal: Faire appel diff --git a/config/locales/ga.yml b/config/locales/ga.yml index c09238535d..767c9f2460 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -66,6 +66,9 @@ ga: remote: Cian memorialize: Déan cuntas chuimhneacháin de memorialized: Cuntas chuimhneacháin + moderation: + all: Uile + perform_full_suspension: Fionraí previous_strikes: Cionta roimhe seo promote: Ardaigh protocol: Prótacal @@ -81,9 +84,13 @@ ga: resubscribe: Athchláraigh role: Ról search: Cuardaigh + security_measures: + only_password: Pasfhocal amháin + silenced: Teoranta statuses: Postálacha subscribe: Cláraigh title: Cuntais + warn: Rabhadh a thabhairt web: Gréasán action_logs: action_types: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index c6c2ca0183..c14becfbf8 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -996,9 +996,9 @@ gl: error: Desgraciadamente, algo fallou ao buscar a conta remota follow: Seguir follow_request: 'Enviaches unha petición de seguimento a:' - following: 'Parabéns! Está a seguir a:' + following: 'Parabéns! Agora segues a:' post_follow: - close: Ou, pode pechar esta ventá. + close: Ou, podes pechar esta ventá. return: Mostrar o perfil da usuaria web: Ir á web title: Seguir %{acct} diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 5677159b6c..3457d78013 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -493,6 +493,8 @@ oc: registration_closed: "%{instance} accepta pas de nòus membres" resend_confirmation: Tornar mandar las instruccions de confirmacion reset_password: Reïnicializar lo senhal + rules: + title: Unas règlas de basa. security: Seguretat set_new_password: Picar un nòu senhal setup: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index cb1fb5832f..dbc2701f0d 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1,11 +1,11 @@ --- pt-PT: about: - about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail. - contact_missing: Não configurado + about_mastodon_html: 'A rede social do futuro: sem publicidade, e sem vigilância empresarial; desenho ético, e descentralizado! Tome posse dos seus dados com o Mastodon!' + contact_missing: Por definir contact_unavailable: n.d. hosted_on: Mastodon em %{domain} - title: Sobre + title: Acerca de accounts: follow: Seguir followers: @@ -14,10 +14,10 @@ pt-PT: following: A seguir instance_actor_flash: Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. É usada para motivos de federação e não deve ser suspenso. last_active: última vez activo - link_verified_on: A posse deste link foi verificada em %{date} + link_verified_on: A posse desta hiperligação foi verificada em %{date} nothing_here: Não há nada aqui! pin_errors: - following: Tu tens de estar a seguir a pessoa que pretendes apoiar + following: Tem de estar a seguir a pessoa que pretende apoiar posts: one: Publicação other: Publicações @@ -27,18 +27,18 @@ pt-PT: action: Executar acção title: Executar acção de moderação em %{acct} account_moderation_notes: - create: Criar nota - created_msg: Nota de moderação criada com sucesso! - destroyed_msg: Nota de moderação excluída com sucesso! + create: Deixar uma nota + created_msg: Nota de moderação correctamente criada! + destroyed_msg: Nota de moderação destruída! accounts: - add_email_domain_block: Adicionar o domínio de e-mail à lista negra + add_email_domain_block: Bloquear este domínio de correio electrónico approve: Aprovar - approved_msg: Inscrição de %{username} aprovada com sucesso + approved_msg: Inscrição de %{username} aprovada correctamente are_you_sure: Tens a certeza? - avatar: Imagem de Perfil + avatar: Imagem de perfil by_domain: Domínio change_email: - changed_msg: E-mail alterado com sucesso! + changed_msg: Endereço de correio electrónico alterado! current_email: E-mail atual label: Alterar e-mail new_email: Novo e-mail @@ -59,17 +59,17 @@ pt-PT: destroyed_msg: Os dados de %{username} estão agora em fila de espera para serem eliminados de imediato disable: Congelar disable_sign_in_token_auth: Desativar token de autenticação por e-mail - disable_two_factor_authentication: Desativar 2FA + disable_two_factor_authentication: Desactivar autenticação por dois factores (2FA) disabled: Congelada display_name: Nome a mostrar domain: Domínio edit: Editar - email: E-mail + email: Correio electrónico email_status: Estado do e-mail enable: Descongelar enable_sign_in_token_auth: Ativar token de autenticação por e-mail enabled: Ativado - enabled_msg: Descongelou com sucesso a conta %{username} + enabled_msg: Descongelou a conta %{username} followers: Seguidores follows: A seguir header: Cabeçalho @@ -85,7 +85,7 @@ pt-PT: title: Local login_status: Estado de início de sessão media_attachments: Anexos de media - memorialize: Converter em memorial + memorialize: Converter num memorial memorialized: Em memória memorialized_msg: Conta %{username} transformada com sucesso em memorial moderation: @@ -104,78 +104,78 @@ pt-PT: not_subscribed: Não inscrito pending: Pendente de revisão perform_full_suspension: Fazer suspensão completa - previous_strikes: Punições anteriores + previous_strikes: Reprimendas anteriores previous_strikes_description_html: - one: Esta conta tem 1 punição. - other: Esta conta tem %{count} punições. + one: Esta conta tem 1 reprimenda. + other: Esta conta tem %{count} reprimendas. promote: Promover protocol: Protocolo public: Público push_subscription_expires: A Inscrição PuSH expira redownload: Atualizar perfil - redownloaded_msg: Atualizado com sucesso o perfil de %{username} da origem + redownloaded_msg: Perfil de %{username} correctamente actualizado a partir da origem reject: Rejeitar - rejected_msg: Inscrição de %{username} rejeitada com sucesso + rejected_msg: Inscrição de %{username} correctamente rejeitada remote_suspension_irreversible: Os dados desta conta foram eliminados irreversivelmente. remote_suspension_reversible_hint_html: A conta foi suspensa no servidor de origem e os seus dados serão totalmente eliminados em %{date}. Até lá, o servidor de origem poderá recuperar esta conta sem quaisquer efeitos negativos. Se desejar eliminar todos os dados desta conta imediatamente, pode fazê-lo em baixo. remove_avatar: Remover a imagem de perfil remove_header: Remover o cabeçalho - removed_avatar_msg: Imagem de perfil de %{username} removida com sucesso - removed_header_msg: Imagem de cabeçalho de %{username} removida com sucesso + removed_avatar_msg: Imagem de perfil de %{username} removida + removed_header_msg: Imagem de cabeçalho de %{username} removida resend_confirmation: already_confirmed: Este utilizador já está confirmado send: Reenviar um e-mail de confirmação - success: E-mail de confirmação enviado com sucesso! - reset: Restaurar - reset_password: Reset palavra-passe + success: E-mail de confirmação enviado! + reset: Reiniciar + reset_password: Criar nova palavra-passe resubscribe: Reinscrever role: Função search: Pesquisar - search_same_email_domain: Outros utilizadores com o mesmo domínio de e-mail + search_same_email_domain: Outros utilizadores com o mesmo domínio de correio electrónico search_same_ip: Outros utilizadores com o mesmo IP security_measures: only_password: Apenas palavra-passe password_and_2fa: Palavra-passe e 2FA - sensitive: Marcar como sensível - sensitized: marcada como sensível + sensitive: Marcar como problemático + sensitized: Marcada como problemática shared_inbox_url: URL da caixa de entrada compartilhada show: created_reports: Denúncias realizadas targeted_reports: Denunciada por outros - silence: Silêncio - silenced: Silenciada - statuses: Status - strikes: Punições anteriores + silence: Limitar + silenced: Limitado + statuses: Publicações + strikes: Reprimendas anteriores subscribe: Inscrever-se suspend: Suspender suspended: Suspensa - suspension_irreversible: Os dados desta conta foram eliminados irreversivelmente. Pode cancelar a suspensão da conta para torná-la utilizável, mas ela não irá recuperar os dados que possuía anteriormente. + suspension_irreversible: Os dados desta conta foram eliminados irreversivelmente. Pode cancelar a suspensão da conta para torná-la utilizável, mas não irá recuperar os dados que possuía anteriormente. suspension_reversible_hint_html: A conta foi suspensa e os dados serão totalmente eliminados em %{date}. Até lá, a conta poderá ser recuperada sem quaisquer efeitos negativos. Se deseja eliminar todos os dados desta conta imediatamente, pode fazê-lo em baixo. title: Contas unblock_email: Desbloquear endereço de e-mail - unblocked_email_msg: Endereço de e-mail de %{username} desbloqueado com sucesso - unconfirmed_email: E-mail não confirmado - undo_sensitized: Desmarcar como sensível + unblocked_email_msg: Endereço de e-mail de %{username} desbloqueado + unconfirmed_email: Correio electrónico por confirmar + undo_sensitized: Desmarcar como problemático undo_silenced: Desfazer silenciar undo_suspension: Desfazer supensão - unsilenced_msg: Removeu com sucesso as limitações da conta %{username} + unsilenced_msg: Removeu as limitações da conta %{username} unsubscribe: Cancelar inscrição - unsuspended_msg: Removeu com sucesso a suspensão da conta %{username} - username: Utilizador + unsuspended_msg: Removeu a suspensão da conta %{username} + username: Nome de utilizador view_domain: Ver resumo do domínio - warn: Aviso - web: Web - whitelisted: Está na lista branca + warn: Advertir + web: Teia + whitelisted: Permitido para a federação action_logs: action_types: - approve_appeal: Aprovar Recurso - approve_user: Aprovar Utilizador + approve_appeal: Aprovar recurso + approve_user: Aprovar utilizador assigned_to_self_report: Atribuir Denúncia - change_email_user: Alterar E-mail do Utilizador + change_email_user: Alterar correio electrónico do utilizador change_role_user: Alterar Função do Utilizador confirm_user: Confirmar Utilizador create_account_warning: Criar Aviso - create_announcement: Criar Anúncio + create_announcement: Criar comunicado create_canonical_email_block: Criar Bloqueio de E-mail create_custom_emoji: Criar Emoji Personalizado create_domain_allow: Criar Permissão de Domínio @@ -185,7 +185,7 @@ pt-PT: create_unavailable_domain: Criar Domínio Indisponível create_user_role: Criar Função demote_user: Despromover Utilizador - destroy_announcement: Eliminar Anúncio + destroy_announcement: Apagar comunicado destroy_canonical_email_block: Eliminar Bloqueio de E-mail destroy_custom_emoji: Eliminar Emoji Personalizado destroy_domain_allow: Eliminar Permissão de Domínio @@ -203,7 +203,7 @@ pt-PT: enable_custom_emoji: Ativar Emoji Personalizado enable_sign_in_token_auth_user: Ativar token de autenticação por e-mail para Utilizador enable_user: Ativar Utilizador - memorialize_account: Memorizar Conta + memorialize_account: Tornar conta num memorial promote_user: Promover Utilizador reject_appeal: Rejeitar Recurso reject_user: Rejeitar Utilizador @@ -212,15 +212,15 @@ pt-PT: resend_user: Reenviar E-mail de Confirmação reset_password_user: Repor Password resolve_report: Resolver Denúncia - sensitive_account: Marcar a media na sua conta como sensível - silence_account: Silenciar Conta - suspend_account: Suspender Conta + sensitive_account: Marcar a media na sua conta como problemática + silence_account: Limitar conta + suspend_account: Suspender conta unassigned_report: Desatribuir Denúncia unblock_email_account: Desbloquear endereço de e-mail - unsensitive_account: Desmarcar a media na sua conta como sensível + unsensitive_account: Desmarcar a conta como problemática unsilence_account: Deixar de Silenciar Conta unsuspend_account: Retirar Suspensão à Conta - update_announcement: Atualizar Anúncio + update_announcement: Atualizar comunicado update_custom_emoji: Atualizar Emoji Personalizado update_domain_block: Atualizar Bloqueio de Domínio update_ip_block: Atualizar regra de IP @@ -285,28 +285,28 @@ pt-PT: update_ip_block_html: "%{name} alterou regra para IP %{target}" update_status_html: "%{name} atualizou o estado de %{target}" update_user_role_html: "%{name} alterou a função %{target}" - deleted_account: conta excluída + deleted_account: conta apagada empty: Não foram encontrados registos. filter_by_action: Filtrar por ação filter_by_user: Filtrar por utilizador title: Registo de auditoria announcements: - destroyed_msg: Anúncio eliminado com sucesso! + destroyed_msg: Comunicado correctamente eliminado! edit: - title: Editar anúncio - empty: Nenhum anúncio encontrado. - live: Em exibição + title: Editar comunicado + empty: Nenhum comunicado encontrado. + live: Em directo new: - create: Criar anúncio - title: Novo anúncio + create: Criar comunicado + title: Novo comunicado publish: Publicar - published_msg: Anúncio publicado com sucesso! + published_msg: Comunicado correctamente publicado! scheduled_for: Agendado para %{time} - scheduled_msg: Anúncio agendado para publicação! - title: Anúncios + scheduled_msg: Comunicado agendado para publicação! + title: Comunicados unpublish: Anular publicação - unpublished_msg: Anúncio retirado de exibição com sucesso! - updated_msg: Anúncio atualizado com sucesso! + unpublished_msg: Comunicado correctamente retirado de publicação! + updated_msg: Comunicado correctamente actualizado! custom_emojis: assign_category: Atribuir categoria by_domain: Domínio @@ -326,20 +326,20 @@ pt-PT: enabled_msg: Ativado com sucesso este emoji image_hint: PNG ou GIF até %{size} list: Lista - listed: Listado + listed: Inventariado new: - title: Adicionar novo emoji customizado + title: Adicionar novo emoji personalizado no_emoji_selected: Nenhum emojis foi alterado, pois nenhum foi selecionado not_permitted: Não está autorizado a executar esta ação - overwrite: Sobrescrever + overwrite: Escrever por cima shortcode: Código de atalho shortcode_hint: Pelo menos 2 caracteres, apenas caracteres alfanuméricos e underscores - title: Emojis customizados - uncategorized: Sem categoria + title: Emojis personalizados + uncategorized: Não categorizados unlist: Não listar - unlisted: Não listado + unlisted: Não inventariado update_failed_msg: Não foi possível atualizar esse emoji - updated_msg: Emoji atualizado com sucesso! + updated_msg: Emoji correctamente actualizado! upload: Enviar dashboard: active_users: utilizadores activos @@ -354,8 +354,8 @@ pt-PT: one: "%{count} denuncia pendente" other: "%{count} denuncias pendentes" pending_tags_html: - one: "%{count} hashtag pendente" - other: "%{count} hashtags pendentes" + one: "%{count} etiqueta pendente" + other: "%{count} etiquetas pendentes" pending_users_html: one: "%{count} utilizador pendente" other: "%{count} utilizadores pendentes" @@ -364,52 +364,52 @@ pt-PT: sources: Origem de inscrições space: Utilização do espaço title: Painel de controlo - top_languages: Principais idiomas activos + top_languages: Principais línguas activas top_servers: Servidores mais activos - website: Website + website: Página na teia disputes: appeals: empty: Nenhum recurso encontrado. title: Recursos 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 + add_new: Permitir federação com o domínio + created_msg: Permissão correctamente atribuída para federação + destroyed_msg: Revogada a permissão de federação para o domínio export: Exportar import: Importar - undo: Remover da lista branca + undo: Revogar federação com o domínio domain_blocks: - add_new: Adicionar novo + add_new: Adicionar novo bloqueio de domínio created_msg: Bloqueio do domínio está a ser processado - destroyed_msg: Bloqueio de domínio está a ser removido + destroyed_msg: Retirado o bloqueio de domínio domain: Domínio edit: Editar bloqueio de domínio - existing_domain_block: Já impôs limites mais rigorosos a %{name}. - existing_domain_block_html: Você já impôs limites mais restritivos a %{name}, é necessário primeiro desbloqueá-lo. + existing_domain_block: Já tinha imposto limites mais rigorosos a %{name}. + existing_domain_block_html: Já tinha imposto limites mais restritivos a %{name}. Primeiro, precisa de o desbloquear. export: Exportar import: Importar 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. + hint: O bloqueio por domínio não vai prevenir a criação de contas na base de dados, mas irá retroactiva e automaticamente aplicar certos métodos de moderação nessas contas. severity: desc_html: "Limitar tornará as mensagens das contas neste domínio invisíveis a qualquer pessoa que não as esteja a seguir. Suspender removerá do seu servidor todo o conteúdo, media, e dados de perfil das contas deste domínio. Utilize Nenhum se apenas quiser rejeitar ficheiros media." noop: Nenhum silence: Limitar suspend: Suspender title: Novo bloqueio de domínio - no_domain_block_selected: Nenhum bloqueio de domínio foi alterado pois nenhum foi selecionado + no_domain_block_selected: Nenhum bloqueio de domínio foi alterado, pois nenhum foi seleccionado not_permitted: Não está autorizado a executar esta ação obfuscate: Ofuscar nome de domínio - obfuscate_hint: Ofuscar parcialmente o nome de domínio na lista, se estiverem habilitadas as limitações na publicação da lista de domínios + obfuscate_hint: Ofuscar parcialmente o nome de domínio na lista, caso estejam definidas limitações na publicação da lista de domínios 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 arquivos de media armazenados localmente e rejeita descarregar novos arquivos no futuro. Irrelevante para suspensões - reject_reports: Rejeitar denúncia - reject_reports_hint: Ignorar todos as denúncias provenientes deste domínio. Irrelevante para suspensões - undo: Anular + reject_media_hint: Remove ficheiros de media armazenados localmente, e rejeita a descarga de novos ficheiros no futuro. Sem pertinência para suspensões + reject_reports: Rejeitar denúncias + reject_reports_hint: Ignorar todas as denúncias provenientes deste domínio. Sem pertinência para suspensões + undo: Anular o bloqueio por domínio view: Ver domínios bloqueados email_domain_blocks: add_new: Adicionar novo @@ -446,7 +446,7 @@ pt-PT: no_file: Nenhum ficheiro selecionado follow_recommendations: description_html: "Recomendações de quem seguir ajudam novos utilizadores a encontrar conteúdo interessante rapidamente.. Quando um utilizador não interage com outros o suficiente para formar recomendações personalizadas, estas contas são recomendadas. Elas são recalculadas diariamente a partir de uma mistura de contas com mais atividade recente e maior número de seguidores locais para um determinado idioma." - language: Para o idioma + language: Para a língua status: Estado suppress: Suprimir recomendação de contas a seguir suppressed: Suprimida @@ -455,7 +455,7 @@ pt-PT: instances: availability: description_html: - one: Se a transmissão ao domínio falhar %{count} dia sem sucesso, nenhuma tentativa de transmissão será feita a menos que uma transmissão proveniente do domínio seja recebida. + one: Se a transmissão ao domínio falhar ao final de %{count} dia(s), não será feita mais nenhuma tentativa de transmissão a menos que seja recebida uma transmissão proveniente desse domínio. other: Se a transmissão ao domínio falhar em %{count} dias diferentes sem sucesso, nenhuma tentativa de transmissão será feita a menos que uma transmissão proveniente do domínio seja recebida. failure_threshold_reached: Limite de falhas atingido em %{date}. failures_recorded: @@ -468,7 +468,7 @@ pt-PT: back_to_limited: Limitadas back_to_warning: Aviso by_domain: Domínio - confirm_purge: Tem a certeza que deseja eliminar permanentemente os dados deste domínio? + confirm_purge: Tem a certeza de que deseja eliminar permanentemente os dados deste domínio? content_policies: comment: Nota interna description_html: Pode definir políticas de conteúdo que serão aplicadas a todas as contas deste domínio e a qualquer um dos seus subdomínios. @@ -485,7 +485,7 @@ pt-PT: instance_accounts_measure: contas armazenadas instance_followers_measure: nossos seguidores lá instance_follows_measure: os seus seguidores aqui - instance_languages_dimension: Idiomas mais populares + instance_languages_dimension: Liderança de línguas instance_media_attachments_measure: anexos de media armazenados instance_reports_measure: denúncias sobre eles instance_statuses_measure: publicações armazenadas @@ -511,11 +511,11 @@ pt-PT: private_comment: Comentários privados public_comment: Comentários públicos purge: Purgar - purge_description_html: Se acredita que este domínio está definitivamente offline, pode excluir todos os registos de contas e dados associados a ele do seu armazenamento. Isso pode demorar algum tempo. - title: Instâncias conhecidas - total_blocked_by_us: Bloqueadas por nós - total_followed_by_them: Seguidas por eles - total_followed_by_us: Seguidas por nós + purge_description_html: Se crê que este domínio está definitivamente fora de linha, pode apagar todos os seus registos de contas e dados associados do seu armazenamento. Isso pode demorar algum tempo. + title: Federação + total_blocked_by_us: Bloqueado(s) por nós + total_followed_by_them: Seguido(s) por eles + total_followed_by_us: Seguido(s) por nós total_reported: Denúncias sobre eles total_storage: Anexos de media totals_time_period_hint_html: Os totais exibidos abaixo incluem dados referentes ao tempo total. @@ -529,7 +529,7 @@ pt-PT: title: Convites ip_blocks: add_new: Criar regra - created_msg: Nova regra de IP adicionada com sucesso + created_msg: Nova regra de IP correctamente adicionada delete: Eliminar expires_in: '1209600': 2 semanas @@ -551,13 +551,13 @@ pt-PT: disable: Desativar disabled: Desactivado enable: Activar - enable_hint: Uma vez ativado, a tua instância irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele. + enable_hint: Uma vez ativado, a tua instância irá assinar todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para lá. enabled: Ativado inbox_url: URL do repetidor 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 lista branca estiverem ativados + signatures_not_enabled: Os repetidores não funcionarão correctamente enquanto o modo seguro ou o modo de lista branca estiverem activados status: Estado title: Retransmissores report_notes: @@ -571,11 +571,11 @@ pt-PT: action_log: Registo de auditoria action_taken_by: Ação tomada por actions: - delete_description_html: As publicações denunciadas serão eliminadas e uma punição será registada para ajudá-lo a escalar ações em futuras infrações pela mesma conta. - mark_as_sensitive_description_html: A media nas publicações denunciadas será marcada como sensível e uma punição será registada para ajudá-lo a escalar ações em futuras infrações pela mesma conta. + delete_description_html: As publicações denunciadas serão eliminadas, e será registada uma reprimenda para ajudá-lo a tomar medidas em futuras infrações pela mesma conta. + mark_as_sensitive_description_html: A media nas publicações denunciadas será marcada como problemática, e uma reprimenda será registada para ajudá-lo a tomar medidas em futuras infrações pela mesma conta. other_description_html: Ver mais opções para controlar o comportamento da conta e personalizar a comunicação para a conta denunciada. - resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma punição será registada, e a denuncia será fechada. - silence_description_html: O perfil será visível apenas para aqueles que já o seguem ou o procurem manualmente, limitando severamente o seu alcance. Pode sempre ser revertido. + resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, não será registada nenhuma reprimenda, e a denúncia será fechada. + silence_description_html: O perfil será visível apenas para aqueles que já o seguem ou o procurem manualmente, limitando fortemente o seu alcance. Pode sempre ser revertido. suspend_description_html: O perfil e todo o seu conteúdo tornar-se-ão inacessíveis até serem eventualmente apagados. A interacção com a conta será impossível. Reversível no prazo de 30 dias. actions_description_html: Decida a ação a tomar para resolver esta denúncia. Se decidir por uma ação punitiva contra a conta denunciada, um e-mail de notificação será enviado, excetuando quando selecionada a categoria Spam. add_to_report: Adicionar mais à denúncia @@ -593,8 +593,8 @@ pt-PT: forwarded: Encaminhado forwarded_to: Encaminhado para %{domain} mark_as_resolved: Marcar como resolvido - mark_as_sensitive: Marcar como sensível - mark_as_unresolved: Marcar como não resolvido + mark_as_sensitive: Marcar como problemático + mark_as_unresolved: Marcar como por resolver no_one_assigned: Ninguém notes: create: Adicionar nota @@ -603,15 +603,15 @@ pt-PT: delete: Eliminar placeholder: Descreve as ações que foram tomadas ou quaisquer outras atualizações relacionadas... title: Notas - notes_description_html: Visualize e deixe anotações para outros moderadores e para sí no futuro - quick_actions_description_html: 'Tome uma ação rápida ou role para baixo para ver o conteúdo denunciado:' + notes_description_html: Visualize e deixe anotações para outros moderadores e para si próprio no futuro + quick_actions_description_html: 'Tome uma ação rápida ou deslize para baixo para ver o conteúdo denunciado:' remote_user_placeholder: o utilizador remoto de %{instance} reopen: Reabrir denúncia report: 'Denúncia #%{id}' reported_account: Conta denunciada reported_by: Denunciado por resolved: Resolvido - resolved_msg: Denúncia resolvida com sucesso! + resolved_msg: Denúncia correctamente resolvida! skip_to_actions: Passar para as ações status: Estado statuses: Conteúdo denunciado @@ -634,7 +634,7 @@ pt-PT: moderation: Moderação special: Especiais delete: Eliminar - description_html: Com as funções de utilizador, pode personalizar quais funções e áreas do Mastodon os seus utilizadores podem aceder. + description_html: Com as funções de utilizador, pode personalizar quais as funções e áreas do Mastodon a que os seus utilizadores podem aceder. edit: Editar função '%{name}' everyone: Permissões padrão everyone_full_description_html: Esta é a função base que afeta todos os utilizadores, mesmo aqueles sem uma função atribuída. Todas as outras funções herdam as permissões desta. @@ -645,31 +645,31 @@ pt-PT: administrator: Administrador administrator_description: Utilizadores com esta permissão irão contornar todas as permissões delete_user_data: Eliminar Dados de Utilizador - delete_user_data_description: Permite que os utilizadores eliminem os dados de outros utilizadores sem atraso + delete_user_data_description: Permite que os utilizadores eliminem os dados doutros utilizadores sem tempo de espera invite_users: Convidar Utilizadores invite_users_description: Permite aos utilizadores convidar pessoas novas para o servidor - manage_announcements: Gerir Anúncios - manage_announcements_description: Permite aos utilizadores gerir anúncios no servidor - manage_appeals: Gerir Recursos + manage_announcements: Gerir comunicados + manage_announcements_description: Permite aos utilizadores gerirem os comunicados no servidor + manage_appeals: Gerir apelos manage_appeals_description: Permite aos utilizadores rever recursos de moderação manage_blocks: Gerir Bloqueios - manage_blocks_description: Permite aos utilizadores bloquear provedores de e-mail e endereços IP + manage_blocks_description: Permite aos utilizadores bloquear fornecedores de e-mail e endereços IP manage_custom_emojis: Gerir Emojis Personalizados - manage_custom_emojis_description: Permite aos utilizadores gerir os emojis personalizados do servidor + manage_custom_emojis_description: Permite aos utilizadores gerirem os emojis personalizados do servidor manage_federation: Gerir Federação manage_federation_description: Permite aos utilizadores bloquear ou permitir federação com outros domínios e controlar a entregabilidade manage_invites: Gerir Convites - manage_invites_description: Permite aos utilizadores pesquisar e desativar links de convite + manage_invites_description: Permite aos utilizadores pesquisarem e desativarem ligações de convite manage_reports: Gerir Relatórios manage_reports_description: Permite aos utilizadores rever relatórios e executar ações de moderação contra eles manage_roles: Gerir Funções - manage_roles_description: Permite aos usuários gerir e atribuir funções abaixo das deles + manage_roles_description: Permite aos utilizadores a gestão e atribuição de funções abaixo dos seus manage_rules: Gerir Regras manage_rules_description: Permite aos utilizadores alterar as regras do servidor manage_settings: Gerir Configurações - manage_settings_description: Permite aos utilizadores alterar as configurações do site + manage_settings_description: Permite aos utilizadores alterar as configurações do sítio na teia manage_taxonomies: Gerir Taxonomias - manage_taxonomies_description: Permite aos utilizadores rever o conteúdo em tendência e atualizar as configurações de hashtag + manage_taxonomies_description: 'Permite aos utilizadores avaliar o conteúdo em alta e atualizar as configurações de #etiquetas' manage_user_access: Gerir Acesso de Utilizador manage_user_access_description: Permite aos utilizadores desativar a autenticação em duas etapas de outros utilizadores, alterar o seu endereço de e-mail e redefinir a sua palavra-passe manage_users: Gerir Utilizadores @@ -679,14 +679,14 @@ pt-PT: view_audit_log: Ver Registo de Auditoria view_audit_log_description: Permite aos utilizadores ver um histórico de ações administrativas no servidor view_dashboard: Ver Painel de Controlo - view_dashboard_description: Permite aos utilizadores aceder ao painel de controlo e várias métricas + view_dashboard_description: Permite aos utilizadores acederem ao painel de controlo e a várias estatísticas view_devops: DevOps view_devops_description: Permite aos utilizadores aceder aos painéis de controlo do Sidekiq e pgHero title: Funções rules: add_new: Adicionar regra delete: Eliminar - description_html: Embora a maioria afirme ter lido e concordado com os termos de serviço, geralmente as pessoas só leem depois de surgir um problema. Dê uma olhada nas regras do seu servidor fornecendo-as em uma lista de marcadores planos. Tente manter as regras individuais curtas e simples, mas tente também não dividi-las em muitos itens separados. + description_html: Embora a maioria afirme ter lido e concordado com os termos de serviço, geralmente as pessoas só os leem depois de lhes surgir um problema. Torne fácil a leitura rápida das regras do seu servidor, apresentando-as numa lista de tópicos. Tente que cada regra seja sucinta e simples, mas tente também não dividi-las num número excessivo de tópicos separados. edit: Editar regra empty: Nenhuma regra de instância foi ainda definida. title: Regras da instância @@ -695,12 +695,12 @@ pt-PT: manage_rules: Gerir regras do servidor preamble: Forneça informações aprofundadas sobre como o servidor é operado, moderado, financiado. rules_hint: Existe uma área dedicada às regras a que os seus utilizadores devem aderir. - title: Sobre + title: Acerca de appearance: preamble: Personalize a interface web do Mastodon. title: Aspeto branding: - preamble: A marca do seu servidor diferencia-a de outros servidores na rede. Essa informação pode ser exibida em vários ambientes, como a interface web do Mastodon, aplicativos nativos, visualizações de links em outros sites e dentro de aplicativos de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa. + preamble: A marca do seu servidor diferencia-a doutros servidores na rede. Essa informação pode ser exibida em vários contexos, como a interface na teia do Mastodon, aplicações nativas, visualizações de hiperligações noutros sites, em aplicações de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa. title: Marca content_retention: preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon. @@ -714,7 +714,7 @@ pt-PT: profile_directory: Diretório de perfis public_timelines: Cronologias públicas title: Descobrir - trends: Tendências + trends: Em alta domain_blocks: all: Para toda a gente disabled: Para ninguém @@ -730,7 +730,7 @@ pt-PT: title: Definições do Servidor site_uploads: delete: Eliminar arquivo carregado - destroyed_msg: Upload do site eliminado com sucesso! + destroyed_msg: Envio de sítio na teia correctamente eliminado! statuses: account: Autor application: Aplicação @@ -740,36 +740,36 @@ pt-PT: remove_from_report: Remover da denúncia report: Denúncia deleted: Eliminado - favourites: Favoritos + favourites: Marcadores history: Histórico de versões in_reply_to: A responder a - language: Idioma + language: Língua media: title: Media metadata: Metadados no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado open: Abrir publicação original_status: Publicação original - reblogs: Reblogs + reblogs: Re-publicacões status_changed: Publicação alterada title: Estado das contas - trending: Em destaque + trending: Em alta visibility: Visibilidade with_media: Com media strikes: actions: delete_statuses: "%{name} eliminou a publicação de %{target}" disable: "%{name} congelou a conta de %{target}" - mark_statuses_as_sensitive: "%{name} marcou as publicações de %{target} como sensíveis" + mark_statuses_as_sensitive: "%{name} marcou as publicações de %{target} como problemáticas" none: "%{name} enviou uma advertência a %{target}" - sensitive: "%{name} marcou a conta de %{target} como sensível" + sensitive: "%{name} marcou a conta de %{target} como problemática" silence: "%{name} limitou a conta de %{target}" suspend: "%{name} suspendeu a conta de %{target}" appeal_approved: Recorrido appeal_pending: Recurso pendente system_checks: database_schema_check: - message_html: Existem migrações de base de dados pendentes. Por favor, execute-as para garantir que o aplicativo se comporte como esperado + message_html: Há migrações de base de dados pendentes. Queira executá-las, para garantir que a aplicação se comporta como o esperado elasticsearch_running_check: message_html: Não foi possível conectar ao Elasticsearch. Por favor, verifique se está em execução, ou desabilite a pesquisa de texto completo elasticsearch_version_check: @@ -782,32 +782,32 @@ pt-PT: message_html: Nenhum processo Sidekiq em execução para a(s) fila(s) %{value}. Reveja a configuração do seu Sidekiq tags: review: Estado da revisão - updated_msg: Definições de hashtags actualizadas com sucesso + updated_msg: 'Definições de #etiquetas correctamente actualizadas' title: Administração trends: allow: Permitir approved: Aprovado disallow: Não permitir links: - allow: Permitir link + allow: Permitir ligação allow_provider: Permitir editor - description_html: Estes são links que atualmente estão a ser frequentemente partilhados por contas visiveis pelo seu servidor. Eles podem ajudar os seus utilizador a descobrir o que está a acontecer no mundo. Nenhum link é exibido publicamente até que aprove o editor. Também pode permitir ou rejeitar links individualmente. - disallow: Não permitir link + description_html: Estas são as ligações que presentemente estão a ser muito partilhadas por contas visíveis pelo seu servidor. Estas podem ajudar os seus utilizador a descobrir o que está a acontecer no mundo. Nenhuma ligação é exibida publicamente até que o editor a aprove. Também pode permitir ou rejeitar ligações em avulso. + disallow: Não permitir ligação disallow_provider: Não permitir editor - no_link_selected: Nenhum link foi alterado, pois nenhum foi selecionado + no_link_selected: Nenhuma ligação foi alterada, pois nenhuma foi selecionada publishers: no_publisher_selected: Nenhum editor foi alterado, pois nenhum foi selecionado shared_by_over_week: one: Partilhado por uma pessoa na última semana other: Partilhado por %{count} pessoas na última semana - title: Links em destaque + title: Ligações em alta usage_comparison: Partilhado %{today} vezes hoje, em comparação com %{yesterday} ontem only_allowed: Apenas permitidos pending_review: Pendente de revisão preview_card_providers: - allowed: Links deste editor poderão ser incluídos nos destaques - description_html: Estes são domínios a partir dos quais links são frequentemente partilhados no seu servidor. Estes links não serão colocados em destaque a menos que o seu domínio de origem seja aprovado. A sua aprovação (ou rejeição) estende-se a subdomínios. - rejected: Links deste editor não serão incluídos nos destaques + allowed: Ligações deste editor poderão vir a ficar em alta + description_html: Estes são os domínios a partir dos quais ligações são frequentemente partilhadas no seu servidor. As suas ligações não serão colocadas em alta a menos que o seu domínio de origem seja aprovado. A sua aprovação (ou rejeição) estende-se a subdomínios. + rejected: Ligações deste editor não serão postas em alta title: Editores rejected: Rejeitado statuses: @@ -816,37 +816,37 @@ pt-PT: description_html: Estas são publicações que o seu servidor conhece e que atualmente estão a ser frequentemente partilhadas e adicionadas aos favoritos. Isto pode ajudar os seus utilizadores, novos e retornados, a encontrar mais pessoas para seguir. Nenhuma publicação será exibida publicamente até que aprove o autor, e o autor permita que a sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individualmente. disallow: Não permitir publicação disallow_account: Não permitir autor - no_status_selected: Nenhuma publicação em tendência foi alterada, pois nenhuma foi selecionada + no_status_selected: Nenhuma publicação em alta foi alterada, pois nenhuma foi selecionada not_discoverable: O autor optou por não permitir que a sua conta seja sugerida a outros shared_by: - one: Partilhado ou adicionado aos favoritos uma vez - other: Partilhado e adicionado aos favoritos %{friendly_count} vezes - title: Publicações em destaque + one: Partilhado ou adicionado aos marcadores uma vez + other: Partilhado e adicionado aos marcadores %{friendly_count} vezes + title: Publicações em alta tags: current_score: Pontuação atual %{score} dashboard: tag_accounts_measure: utilizadores únicos - tag_languages_dimension: Idiomas mais populares - tag_servers_dimension: Servidores mais populares + tag_languages_dimension: Liderança de línguas + tag_servers_dimension: Topo de servidores tag_servers_measure: servidores diferentes tag_uses_measure: utilizações totais - description_html: Estas são hashtags que aparecem atualmente com frequência em publicações visíveis pelo seu servidor. Isto pode ajudar os seus utilizadores a descobrir o que está ser mais falado no momento. Nenhuma hashtag é exibida publicamente até que a aprove. + description_html: 'Estas são as #etiquetas que aparecem atualmente com frequência em publicações visíveis pelo seu servidor. Isto pode ajudar os seus utilizadores a descobrir o que está ser mais falado no momento. Nenhuma #etiqueta será exibida publicamente até que a aprove.' listable: Pode ser sugerida no_tag_selected: Nenhuma etiqueta foi alterada, pois nenhuma foi selecionada not_listable: Não será sugerida not_trendable: Não aparecerá nas tendências not_usable: Não pode ser utilizada peaked_on_and_decaying: Máximo em %{date}, agora a decair - title: Hashtags em destaque - trendable: Pode aparecer nas tendências - trending_rank: 'Tendência #%{rank}' + title: Etiquetas em alta + trendable: Pode aparecer em alta + trending_rank: 'Em alta #%{rank}' usable: Pode ser utilizada usage_comparison: Utilizada %{today} vezes hoje, em comparação com %{yesterday} ontem used_by_over_week: one: Utilizada por uma pessoa na última semana other: Utilizada por %{count} pessoas na última semana - title: Tendências - trending: Em destaque + title: Em alta + trending: Em alta warning_presets: add_new: Adicionar novo delete: Eliminar @@ -856,7 +856,7 @@ pt-PT: webhooks: add_new: Adicionar endpoint delete: Eliminar - description_html: Um webhook possibilita que o Mastodon envie notificações em tempo real de eventos seleccionados, para um seu aplicativo, para que este possa acionar ações automaticamente. + description_html: Um webhook possibilita que o Mastodon envie notificações em tempo real de eventos seleccionados, para uma aplicação sua, de modo que esta possa espoletar ações automaticamente. disable: Desativar disabled: Desativado edit: Editar endpoint @@ -876,18 +876,18 @@ pt-PT: admin_mailer: new_appeal: actions: - delete_statuses: para elimintar as suas publicações + delete_statuses: para eliminar as suas publicações disable: para congelar a sua conta - mark_statuses_as_sensitive: marcar as suas publicações como sensíveis + mark_statuses_as_sensitive: para marcar as suas publicações como problemáticas none: uma advertência - sensitive: marcação da sua conta como sensível - silence: limitação da sua conta - suspend: suspensão da sua conta + sensitive: para marcar a sua conta como problemática + silence: para limitar a sua conta + suspend: para suspender a sua conta body: "%{target} está a recorrer de uma decisão de moderação de %{action_taken_by} a %{date}, que consistiu em %{type}. Escreveu:" next_steps: Pode aprovar o recurso para reverter a decisão de moderação, ou ignorá-lo. subject: "%{username} está a recorrer da decisão de moderação em %{instance}" new_pending_account: - body: Em baixo, estão os detalhes da nova conta. Pode aprovar ou rejeitar esta inscrição. + body: Abaixo, estão os pormenores da nova conta. Pode aprovar ou rejeitar esta inscrição. subject: Nova conta para revisão em %{instance} (%{username}) new_report: body: "%{reporter} denunciou %{target}" @@ -896,33 +896,33 @@ pt-PT: new_trends: body: 'Os seguintes itens precisam ser revistos antes de poderem ser exibidos publicamente:' new_trending_links: - title: Links em destaque + title: Ligações em alta new_trending_statuses: - title: Publicações em destaque + title: Publicações em alta new_trending_tags: - no_approved_tags: Não existem, atualmente, hashtags aprovadas em destaque. - requirements: 'Qualquer um destes candidatos pode ultrapassar a #%{rank} hashtag aprovada em destaque, que é atualmente #%{lowest_tag_name} com uma pontuação de %{lowest_tag_score}.' - title: Hashtags em destaque + no_approved_tags: 'Neste momento, não existem #etiquetas aprovadas para destaque.' + requirements: 'Qualquer um destes candidatos pode ultrapassar a #%{rank} etiqueta aprovada em destaque, que é atualmente #%{lowest_tag_name} com uma pontuação de %{lowest_tag_score}.' + title: Etiquetas em alta subject: Novas tendências para revisão em %{instance} 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: O pseudónimo foi eliminado com sucesso. Migrar dessa conta para esta não será mais possível. + deleted_msg: O pseudónimo foi correctamente eliminado. Não será mais possível migrar a partir dessa conta. empty: Não tem pseudónimos. 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.' + 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 etiquetas.' animations_and_accessibility: Animações e acessibilidade confirmation_dialogs: Caixas de confirmação discovery: Descobrir localization: - body: Mastodon é traduzido por voluntários. + body: O Mastodon é traduzido por voluntários. guide_link: https://pt.crowdin.com/project/mastodon/ guide_link_text: Todos podem contribuir. - sensitive_content: Conteúdo sensível - toot_layout: Disposição do Toot + sensitive_content: Conteúdo problemático + toot_layout: Disposição da publicação application_mailer: notification_preferences: Alterar preferências de e-mail salutation: "%{name}," @@ -931,8 +931,8 @@ pt-PT: view_profile: Ver perfil view_status: Ver publicação applications: - created: Aplicação criada com sucesso - destroyed: Aplicação eliminada com sucesso + created: Aplicação correctamente criada + destroyed: Aplicação correctamente eliminada regenerate_token: Regenerar token de acesso token_regenerated: Token de acesso regenerado com sucesso warning: Cuidado com estes dados. Não partilhar com ninguém! @@ -948,9 +948,9 @@ pt-PT: suffix: Com uma conta, poderá seguir pessoas, publicar atualizações e trocar mensagens com utilizadores de qualquer instância Mastodon e muito mais! didnt_get_confirmation: Não recebeu o e-mail de confirmação? dont_have_your_security_key: Não tem a sua chave de segurança? - forgot_password: Esqueceste a palavra-passe? + forgot_password: Esqueceu-se da palavra-passe? invalid_reset_password_token: Token de modificação da palavra-passe é inválido ou expirou. Por favor, solicita um novo. - link_to_otp: Insira um código de autenticação em duas etapas do seu telemóvel ou um código de recuperação + link_to_otp: Insira um código de autenticação em duas etapas do seu telemóvel, ou um código de recuperação link_to_webauth: Usa o teu dispositivo de chave de segurança log_in_with: Iniciar sessão com login: Entrar @@ -967,7 +967,7 @@ pt-PT: resend_confirmation: Reenviar instruções de confirmação reset_password: Criar nova palavra-passe rules: - preamble: Estas são definidos e aplicadas pelos moderadores de %{domain}. + preamble: Estas são definidas e aplicadas pelos moderadores de %{domain}. title: Algumas regras básicas. security: Alterar palavra-passe set_new_password: Editar palavra-passe @@ -976,7 +976,7 @@ pt-PT: 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, pode alterá-lo nas definições da conta. title: Configuração sign_in: - preamble_html: Iniciar sessão com as suas credenciais de %{domain}. Se a sua conta estiver hospedada noutro servidor, não poderá inciar sessão aqui. + preamble_html: Iniciar sessão com as suas credenciais de %{domain}. Se a sua conta estiver hospedada noutro servidor, não poderá iniciar sessão aqui. title: Iniciar sessão em %{domain} sign_up: preamble: Com uma conta neste servidor Mastodon, poderá seguir qualquer outra pessoa na rede, independentemente do servidor onde a conta esteja hospedada. @@ -987,8 +987,8 @@ pt-PT: 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}. - view_strikes: Veja as punições anteriores contra a sua conta - too_fast: Formulário enviado muito rapidamente, tente novamente. + view_strikes: Veja as reprimendas anteriores sobre a sua conta + too_fast: Formulário enviado demasiado rapidamente, tente novamente. use_security_key: Usar chave de segurança authorize_follow: already_following: Tu já estás a seguir esta conta @@ -999,8 +999,8 @@ pt-PT: following: 'Sucesso! Agora estás a seguir a:' post_follow: close: Ou podes simplesmente fechar esta janela. - return: Voltar ao perfil do utilizador - web: Voltar à página inicial + return: Mostrar perfil do utilizador + web: Ir para a página na teia title: Seguir %{acct} challenge: confirm: Continuar @@ -1021,91 +1021,91 @@ pt-PT: about_x_months: "%{count} meses" about_x_years: "%{count} anos" almost_x_years: "%{count} anos" - half_a_minute: Justo agora + half_a_minute: Agora mesmo less_than_x_minutes: "%{count} meses" - less_than_x_seconds: Justo agora + less_than_x_seconds: Agora mesmo over_x_years: "%{count} anos" x_days: "%{count} dias" x_minutes: "%{count} minutos" x_months: "%{count} meses" x_seconds: "%{count} segundos" deletes: - challenge_not_passed: A informação que introduziu não estava correta - confirm_password: Introduza a sua palavra-passe atual para verificar a sua identidade - confirm_username: Introduza o seu nome de utilizador para confirmar o procedimento + challenge_not_passed: A informação que inseriu não estava correcta + confirm_password: Insira sua palavra-passe atual para verificar a sua identidade + confirm_username: Insira seu nome de utilizador para confirmar o procedimento proceed: Eliminar conta - success_msg: A sua conta foi eliminada com sucesso + success_msg: A sua conta foi correctamente eliminada warning: before: 'Antes de continuar, por favor leia cuidadosamente estas notas:' - caches: O conteúdo que foi armazenado em cache por outras instâncias pode persistir + caches: O conteúdo que foi armazenado em cache por outras instâncias pode perdurar data_removal: As suas publicações e outros dados serão eliminados 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. + more_details_html: Para mais pormenores, 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 disputes: strikes: action_taken: Ação tomada appeal: Recorrer - appeal_approved: Esta punição foi alvo de recurso, bem sucedido, pelo que já não é válida + appeal_approved: Esta reprimenda foi alvo dum recurso entretanto deferido, pelo que já não é válida appeal_rejected: O recurso foi rejeitado appeal_submitted_at: Recurso submetido appealed_msg: O seu recurso foi submetido. Se ele for aprovado, será notificado. appeals: submit: Submeter recurso - approve_appeal: Aprovar recurso + approve_appeal: Deferir recurso associated_report: Denúncia associada created_at: Data description_html: Estas são ações tomadas contra a sua conta e avisos que lhe foram enviados pela equipa de %{instance}. recipient: Endereçado a - reject_appeal: Rejeitar recurso + reject_appeal: Indeferir recurso status: 'Publicação #%{id}' status_removed: Publicação já eliminada do sistema title: "%{action} de %{date}" title_actions: delete_statuses: Remoção de publicação disable: Congelamento da conta - mark_statuses_as_sensitive: Marcação das publicações como sensíveis + mark_statuses_as_sensitive: Marcação das publicações como problemáticas none: Advertência - sensitive: Marcação da conta como sensível + sensitive: Marcação da conta como problemática silence: Limitação da conta suspend: Suspensão da conta - your_appeal_approved: O seu recurso foi aprovado + your_appeal_approved: O seu recurso foi deferido your_appeal_pending: Submeteu um recurso - your_appeal_rejected: O seu recurso foi rejeitado + your_appeal_rejected: O seu recurso foi indeferido domain_validator: invalid_domain: não é um nome de domínio válido errors: '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. + '404': A página que procura não existe. '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. + '410': A página que procura já não existe. '422': content: "A verificação de segurança falhou. \nDesativaste o uso de cookies?" title: A verificação de segurança falhou - '429': Desacelerado + '429': Demasiados pedidos '500': - content: Desculpe, mas algo correu mal. + content: Desculpe, mas algo correu mal da nossa parte. title: Esta página não está correta '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. + noscript_html: Para usar a aplicação da teia do Mastodon, por favor active o JavaScript. Em alternativa, experimenta uma das aplicações nativas do Mastodon para a 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 - download: Descarregar o teu arquivo - hint_html: Pode pedir um arquivo das suas publicações e ficheiros de media carregados. Os dados no ficheiro exportado estarão no formato ActivityPub, que pode ser lido com qualquer software compatível. Pode solicitar um arquivo a cada 7 dias. + download: Descarregar o seu arquivo + hint_html: Pode pedir um arquivo das suas publicações e ficheiros de media carregados. Os dados no ficheiro exportado estarão no formato ActivityPub, que pode ser lido com qualquer programa compatível. Pode solicitar um arquivo a cada 7 dias. in_progress: A compilar o seu arquivo... - request: Pede o teu arquivo + request: Peça o seu arquivo size: Tamanho blocks: Bloqueaste - bookmarks: Itens Salvos + bookmarks: Marcadores csv: CSV domain_blocks: Bloqueios de domínio lists: Listas @@ -1114,8 +1114,8 @@ pt-PT: featured_tags: 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." + limit: Já atingiste o limite máximo de etiquetas + hint_html: "O que são etiquetas em destaque? Exibidas de forma bem visível no seu perfil público, permitem que as pessoas consultem as suas publicações públicas especificamente sob essas etiquetas. São uma óptima ferramenta para dar seguimento a trabalhos criativos ou projectos de longo prazo." filters: contexts: account: Perfis @@ -1130,7 +1130,7 @@ pt-PT: statuses_hint_html: Este filtro aplica-se a publicações individuais selecionadas independentemente de estas corresponderem às palavras-chave abaixo. Reveja ou remova publicações do filtro. title: Editar filtros errors: - deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir deste aplicativo porque se aplicam a mais de um filtro de palavra-chave. Use um aplicativo mais recente ou a interface web. + deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir desta aplicação porque se aplicam a mais que um filtro de palavra-chave. Use uma aplicação mais recente ou a interface na teia. invalid_context: Inválido ou nenhum contexto fornecido index: contexts: Filtros em %{contexts} @@ -1149,17 +1149,17 @@ pt-PT: other: "%{count} publicações individuais ocultadas" title: Filtros new: - save: Salvar novo filtro + save: Guardar novo filtro title: Adicionar novo filtro statuses: back_to_filter: Voltar ao filtro batch: - remove: Remover do filtro + remove: Retirar do filtro index: hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web. title: Publicações filtradas footer: - trending_now: Tendências atuais + trending_now: Em alta neste momento generic: all: Tudo all_items_on_page_selected_html: @@ -1180,8 +1180,8 @@ pt-PT: other: Selecione todos os %{count} items que correspondem à sua pesquisa. today: hoje 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 + one: Algo não está correcto. Por favor analise o erro abaixo + other: Algo não está bem. Queira analisar os %{count} erros abaixo html_validator: invalid_markup: 'contém marcação HTML inválida: %{error}' imports: @@ -1194,14 +1194,14 @@ pt-PT: overwrite: Escrever por cima overwrite_long: Substituir os registos atuais pelos novos preface: Podes importar dados que tenhas exportado de outra instância, como a lista de pessoas que segues ou bloqueadas. - success: Os teus dados foram enviados com sucesso e serão processados em breve + success: Os teus dados foram enviados correctamente e serão processados em breve types: blocking: Lista de bloqueio bookmarks: Itens salvos domain_blocking: Lista de domínios bloqueados following: Lista de pessoas que estás a seguir muting: Lista de utilizadores silenciados - upload: Enviar + upload: Carregar invites: delete: Desativar expired: Expirados @@ -1213,8 +1213,8 @@ pt-PT: '604800': 1 semana '86400': 1 dia expires_in_prompt: Nunca - generate: Gerar - invited_by: 'Tu foste convidado por:' + generate: Gerar hiperligação de convite + invited_by: 'Foi convidado por:' max_uses: one: 1 uso other: "%{count} usos" @@ -1231,28 +1231,28 @@ pt-PT: authentication_methods: otp: aplicação de autenticação em duas etapas password: palavra-passe - sign_in_token: código de segurança por e-mail + sign_in_token: código de segurança por correio electrónico webauthn: chaves de segurança description_html: Se vê atividade que não reconhece, considere alterar a sua palavra-passe e ativar a autenticação em duas etapas. empty: Sem histórico de autenticação disponível failed_sign_in_html: Tentativa falhada de início de sessão com %{method} de %{ip} (%{browser}) - successful_sign_in_html: Iniciada sessão com sucesso com %{method} de %{ip} (%{browser}) + successful_sign_in_html: Sessão correctamente iniciada com %{method} de %{ip} (%{browser}) title: Histórico de autenticação media_attachments: validations: images_and_video: Não é possível anexar um vídeo a uma publicação que já contém imagens - not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco! - too_many: Não é possível anexar mais de 4 arquivos + not_ready: Não é possível anexar ficheiros que ainda não acabaram de ser processados. Tente outra vez daqui a pouco! + too_many: Não é possível anexar mais de 4 ficheiros migrations: - acct: username@domain da nova conta + acct: Mudou-se para 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. + cancelled_msg: Cancelou correctamente o redireccionamento. errors: already_moved: é a mesma conta para a qual já migrou - missing_also_known_as: não está a referenciar esta conta + missing_also_known_as: não é um pseudónimo dessa conta move_to_self: não pode ser conta atual - not_found: não pode ser encontrado + not_found: não foi 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 @@ -1281,7 +1281,7 @@ pt-PT: carry_mutes_over_text: Este utilizador migrou de %{acct}, que você tinha silenciado. copy_account_note_text: 'Este utilizador migrou de %{acct}, aqui estão as suas notas anteriores sobre ele:' navigation: - toggle_menu: Abrir/fechar menu + toggle_menu: Alternar o menu notification_mailer: admin: report: @@ -1289,9 +1289,9 @@ pt-PT: sign_up: subject: "%{name} inscreveu-se" favourite: - body: 'O teu post foi adicionado aos favoritos por %{name}:' - subject: "%{name} adicionou o teu post aos favoritos" - title: Novo favorito + body: 'A sua publicação foi adicionada aos marcadores por %{name}:' + subject: "%{name} adicionou a sua publicação aos marcadores" + title: Novo marcador follow: body: "%{name} é teu seguidor!" subject: "%{name} começou a seguir-te" @@ -1307,18 +1307,18 @@ pt-PT: subject: "%{name} mencionou-te" title: Nova menção poll: - subject: Uma votação realizada por %{name} terminou + subject: A sondagem de %{name} encerrou reblog: - body: 'O teu post foi partilhado por %{name}:' - subject: "%{name} partilhou o teu post" - title: Nova partilha + body: 'A sua publicação foi reforçada por %{name}:' + subject: "%{name} reforçou a sua publicação" + title: Novo reforço status: subject: "%{name} acabou de publicar" update: subject: "%{name} editou uma publicação" notifications: email_events: Eventos para notificações por e-mail - email_events_hint: 'Selecione os eventos para os quais deseja receber notificações:' + email_events_hint: 'Selecione os casos para os quais deseja receber notificações:' other_settings: Outras opções de notificações number: human: @@ -1334,8 +1334,8 @@ pt-PT: code_hint: Introduz o código gerado pela tua aplicação de autenticação para confirmar description_html: Se ativar a autenticação em duas etapas, para entrar na sua conta terá de ter consigo o seu telefone, que vai gerar os tokens necessários à validação do seu acesso. enable: Ativar - instructions_html: "Digitalize este código QR no Google Authenticator ou num aplicativo TOTP similar no seu telefone. A partir de agora, esse aplicativo irá gerar tokens que você terá que introduzir para aceder à sua conta." - manual_instructions: 'Se você não consegue digitalizar o código QR e precisa introduzi-lo manualmente, aqui está o código em texto:' + instructions_html: "Digitalize este código QR no Google Authenticator ou numa aplicação TOTP semelhante a partir do seu telemóvel. A partir desse momento, essa aplicação irá gerar tokens que terá que inserir para aceder à sua conta." + manual_instructions: 'Se não conseguir digitalizar o código QR e precisar de o inserir manualmente, eis o código por extenso:' setup: Configurar wrong_code: O código introduzido é inválido! A hora do servidor e a hora do dispositivo estão corretos? pagination: @@ -1349,7 +1349,7 @@ pt-PT: already_voted: Tu já votaste nesta sondagem duplicate_options: contém itens duplicados duration_too_long: está demasiado à frente no futuro - duration_too_short: é demasiado cedo + duration_too_short: é demasiado em cima da hora 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 @@ -1363,7 +1363,7 @@ pt-PT: title: Política de Privacidade reactions: errors: - limit_reached: Limite de reações diferentes atingido + limit_reached: Alcançado limite de reações diferentes unrecognized_emoji: não é um emoji reconhecido relationships: activity: Atividade da conta @@ -1383,7 +1383,7 @@ pt-PT: remove_selected_follows: Deixar de seguir os utilizadores selecionados status: Estado da conta remote_follow: - missing_resource: Não foi possível achar a URL de redirecionamento para sua conta + missing_resource: Não foi possível encontrar o URL de redireccionamento para a sua conta reports: errors: invalid_rules: não faz referência a regras válidas @@ -1429,13 +1429,13 @@ pt-PT: firefox_os: SO Firefox ios: iOS linux: Linux - mac: Mac - other: Plataforma desconhecida + 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_success: Sessão correctamente revogada title: Sessões view_authentication_history: Ver histórico de autenticação da sua conta settings: @@ -1443,13 +1443,13 @@ pt-PT: account_settings: Definições da conta aliases: Pseudónimos da conta appearance: Aspecto - authorized_apps: Aplicativos autorizados + authorized_apps: Aplicações autorizadas back: Voltar ao Mastodon delete: Eliminação da conta development: Desenvolvimento edit_profile: Editar perfil export: Exportar dados - featured_tags: Hashtags destacadas + featured_tags: Etiquetas destacadas import: Importar import_and_export: Importar e exportar migrate: Migração de conta @@ -1473,22 +1473,22 @@ pt-PT: video: one: "%{count} vídeo" other: "%{count} vídeos" - boosted_from_html: Partilhadas de %{acct_link} + boosted_from_html: Reforçado por %{acct_link} content_warning: 'Aviso de conteúdo: %{warning}' - default_language: Mesmo do idioma da interface + default_language: A mesma língua que a da interface disallowed_hashtags: - one: 'continha uma hashtag proibida: %{tags}' + one: 'continha uma #etiqueta proibida: %{tags}' other: 'continha as hashtags proibidas: %{tags}' edited_at_html: Editado em %{date} errors: in_reply_not_found: A publicação a que está a tentar responder parece não existir. - open_in_web: Abrir no browser + open_in_web: Abrir na Teia over_character_limit: limite de caracter excedeu %{max} pin_errors: - direct: Publicações visíveis apenas para utilizadores mencionados não podem ser fixados - limit: Já fixaste a quantidade máxima de publicações - ownership: Posts de outras pessoas não podem ser fixados - reblog: Não podes fixar uma partilha + direct: Publicações visíveis apenas para utilizadores mencionados não podem ser afixadas + limit: Já afixaste a quantidade máxima de publicações + ownership: Não podem ser afixadas publicações doutras pessoas + reblog: Não pode afixar um reforço poll: total_people: one: "%{count} pessoa" @@ -1505,33 +1505,33 @@ pt-PT: title: '%{name}: "%{quote}"' visibilities: direct: Direto - private: Mostrar apenas para seguidores - private_long: Mostrar apenas para seguidores + private: Só para seguidores + private_long: Mostrar só aos seguidores public: Público public_long: Todos podem ver - unlisted: Público, mas não mostre no timeline público - unlisted_long: Todos podem ver, porém não será postado nas timelines públicas + unlisted: Não inventariado + unlisted_long: Todos podem ver, mas não será inventariado nas cronologias públicas statuses_cleanup: enabled: Apagar publicações antigas automaticamente - enabled_hint: Apaga automaticamente as suas publicações assim que atingirem um limite de idade específico, a não ser que correspondam a uma das exceções abaixo + enabled_hint: Apaga automaticamente as suas publicações assim que atingirem um certo limite de tempo, a não ser que correspondam a uma das seguintes excepções exceptions: Exceções - explanation: Como excluir publicações é uma operação cara, isto é realizado lentamente ao longo do tempo, quando o servidor não está ocupado de outra forma. Por esta razão, as suas publicações podem ser apagadas um pouco depois de atingirem o limite de idade. - ignore_favs: Ignorar favoritos - ignore_reblogs: Ignorar partilhas + explanation: Como apagar publicações é uma operação custosa, isto é feito lentamente ao longo do tempo, quando o servidor não está ocupado. Por esta razão, as suas publicações podem ser apagadas um pouco depois de atingirem o limite de idade definido. + ignore_favs: Ignorar marcadores + ignore_reblogs: Ignorar reforços interaction_exceptions: Exceções baseadas em interações interaction_exceptions_explanation: Note que não há garantia de que as publicações sejam excluídas se ficarem abaixo do limite de favoritos ou partilhas após as ter verificado uma vez. keep_direct: Manter mensagens diretas keep_direct_hint: Não apaga nenhuma das suas mensagens diretas keep_media: Manter publicações com anexos de multimédia - keep_media_hint: Não exclui nenhuma das suas publicações com multimédia anexada - keep_pinned: Manter publicações fixadas - keep_pinned_hint: Não apagar nenhuma das suas publicações fixadas - keep_polls: Manter enquetes - keep_polls_hint: Não apaga nenhuma das suas enquetes + keep_media_hint: Não apaga nenhuma das suas publicações com multimédia anexada + keep_pinned: Manter publicações afixadas + keep_pinned_hint: Não apagar nenhuma das suas publicações afixadas + keep_polls: Manter sondagens + keep_polls_hint: Não apaga nenhuma das suas sondagens keep_self_bookmark: Manter as publicações que guardou keep_self_bookmark_hint: Não apaga as suas próprias publicações se as tiver guardado - keep_self_fav: Manter as publicações que gostou - keep_self_fav_hint: Não apaga as suas próprias publicações se as tiver favoritado + keep_self_fav: Manter as publicações que marcou + keep_self_fav_hint: Não apaga as suas próprias publicações se as tiver marcado min_age: '1209600': 2 semanas '15778476': 6 meses @@ -1542,22 +1542,22 @@ pt-PT: '63113904': 2 anos '7889238': 3 meses min_age_label: Limite de idade - min_favs: Manter as publicações favoritas mais de + min_favs: Manter pelo menos as publicações dos marcadores min_favs_hint: Não apaga nenhuma das suas publicações que tenha recebido mais do que esta quantidade de favoritos. Deixe em branco para apagar as publicações, independentemente do número de favoritos - min_reblogs: Manter as publicações partilhadas mais de + min_reblogs: Manter as publicações reforçadas mais de min_reblogs_hint: Não apaga nenhuma das suas publicações que tenha sido partilhada mais do que este número de vezes. Deixe em branco para apagar as publicações, independentemente do número de partilhas stream_entries: - pinned: Toot fixado - reblogged: partilhado - sensitive_content: Conteúdo sensível + pinned: Publicação afixada + reblogged: reforçada + sensitive_content: Conteúdo problemático strikes: errors: - too_late: É tarde demais para apelar desta punição + too_late: É tarde demais para recorrer desta reprimenda tags: does_not_match_previous_name: não coincide com o nome anterior themes: contrast: Mastodon (Elevado contraste) - default: Mastodon + default: Mastodon (Escuro) mastodon-light: Mastodon (Claro) time: formats: @@ -1566,32 +1566,32 @@ pt-PT: time: "%H:%M" two_factor_authentication: add: Adicionar - disable: Desativar - disabled_success: Autenticação em duas etapas desativada com sucesso + disable: Desactivar autenticação por dois factores (2FA) + disabled_success: Autenticação em duas etapas correctamente desactivada edit: Editar enabled: A autenticação em duas etapas está ativada - enabled_success: Autenticação em duas etapas ativada com sucesso + enabled_success: Autenticação em duas etapas correctamente activada generate_recovery_codes: Gerar códigos para recuperar conta - lost_recovery_codes: Códigos de recuperação permite que você recupere o acesso a sua conta se você perder seu telefone. Se você perder os códigos de recuperação, você pode regera-los aqui. Seus códigos antigos serão invalidados. + lost_recovery_codes: Os códigos de recuperação permitem que recupere o acesso à sua conta caso perca o seu telemóvel. Se perder os códigos de recuperação, pode criar uns novos aqui. Os seus códigos antigos serão revogados. methods: Métodos de autenticação em duas etapas otp: Aplicação de autenticação recovery_codes: Cópia de segurança dos códigos de recuperação - recovery_codes_regenerated: Códigos de recuperação foram gerados com sucesso - recovery_instructions_html: Se tu alguma vez perderes o teu smartphone, to poderás usar um dos códigos de recuperação para voltares a ter acesso à tua conta. Mantém os códigos de recuperação seguros. Por exemplo, tu podes imprimi-los e guardá-los junto a outros documentos importantes. + recovery_codes_regenerated: Códigos de recuperação foram correctamente gerados + recovery_instructions_html: Se perder o seu telemóvel, poderá usar um dos códigos de recuperação para voltar a ter acesso à sua conta. Guarde os códigos de recuperação em lugar seguro. Por exemplo, pode imprimi-los e guardá-los junto doutros documentos importantes. webauthn: Chaves de segurança user_mailer: appeal_approved: action: Ir para a sua conta - explanation: O recurso à punição contra a sua conta de %{strike_date}, o qual submeteu a %{appeal_date}, foi aprovado. A sua conta encontra-se novamente em situação regular. - subject: O seu recurso de %{date} foi aprovado - title: Recurso aprovado + explanation: O recurso à reprimenda contra a sua conta de %{strike_date}, enviado a %{appeal_date}, foi deferido. A sua conta encontra-se novamente em situação regular. + subject: O seu recurso de %{date} foi deferido + title: Recurso deferido appeal_rejected: - explanation: O recurso à punição contra a sua conta de %{strike_date}, o qual submeteu a %{appeal_date}, foi rejeitado. - subject: O seu recurso de %{date} foi rejeitado - title: Recurso rejeitado + explanation: O recurso à punição contra a sua conta de %{strike_date}, submetido em %{appeal_date}, foi indeferido. + subject: O seu recurso de %{date} foi indeferido + title: Recurso indeferido backup_ready: - explanation: Pediste uma cópia completa da tua conta Mastodon. Ela já está pronta para descarregares! - subject: O teu arquivo está pronto para descarregar + explanation: Pediu uma cópia integral de salvaguarda da sua conta Mastodon. Já está pronta para descarregar! + subject: O seu arquivo está pronto para descarregar title: Arquivo de ficheiros suspicious_sign_in: change_password: alterar a sua palavra-passe @@ -1636,7 +1636,7 @@ pt-PT: edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil, alterando o nome a exibir, entre outras opções. Pode optar por rever os novos seguidores antes de estes o poderem seguir. explanation: Aqui estão algumas dicas para começar final_action: Começar a publicar - final_step: 'Comece a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.' + final_step: 'Comece a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, como por exemplo na cronologia local e em etiquetas. Pense em apresentar-se usando a etiqueta #apresentações.' full_handle: O seu nome completo full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância. subject: Bem-vindo ao Mastodon diff --git a/config/locales/ru.yml b/config/locales/ru.yml index e955afc30a..9e0b3d54ad 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -470,6 +470,11 @@ ru: unsuppress: Восстановить рекомендацию instances: availability: + description_html: + few: Если доставка в домен завершается сбоем %{count} дня, дальнейшие попытки доставки предприниматься не будут, пока не будет получена доставка из домена. + many: Если доставка в домен завершается сбоем %{count} дней, дальнейшие попытки доставки предприниматься не будут, пока не будет получена доставка из домена. + one: Если доставка в домен завершается сбоем %{count} день, дальнейшие попытки доставки предприниматься не будут, пока не будет получена доставка из домена. + other: Если доставка в домен завершается сбоем на протяжении %{count} различных дней, дальнейшие попытки доставки предприниматься не будут, пока не будет получена доставка из домена. failure_threshold_reached: Порог отказа достиг %{date}. failures_recorded: few: Попытки неудачны уже %{count} дня. @@ -838,6 +843,7 @@ ru: statuses: allow: Разрешить пост allow_account: Разрешить автора + description_html: Это посты, которыми на вашем сервере в данный момент часто делятся и предпочитают, что может помочь вашим новым и постоянным пользователям найти больше людей, чтобы на них подписаться. Посты не будут отображаться публично, пока вы не одобрите автора, а автор не разрешит предлагать его аккаунт другим. Вы также можете разрешить или отклонить отдельные сообщения. disallow: Запретить пост disallow_account: Запретить автора no_status_selected: Тенденции не были изменены, так как ни одна запись не была выбрана @@ -1005,6 +1011,7 @@ ru: email_settings_hint_html: Письмо с подтверждением было отправлено на %{email}. Если адрес указан неправильно, его можно поменять в настройках учётной записи. title: Установка sign_in: + preamble_html: Войдите, используя ваши учётные данные %{domain}. Если ваша учётная запись размещена на другом сервере, вы не сможете здесь войти. title: Войти в %{domain} sign_up: preamble: С учётной записью на этом сервере Mastodon вы сможете следить за любым другим пользователем в сети, независимо от того, где размещён их аккаунт. @@ -1196,6 +1203,16 @@ ru: trending_now: Актуально сейчас generic: all: Любой + all_items_on_page_selected_html: + few: "%{count} элемента выбрано на странице." + many: "%{count} элементов выбрано на странице." + one: "%{count} элемент выбран на странице." + other: Все %{count} элементов выбраны на странице. + all_matching_items_selected_html: + few: Выбрано %{count} элемента, соответствующих вашему запросу. + many: Выбрано %{count} элементов, соответствующих вашему запросу. + one: Выбран %{count} элемент, соответствующий вашему запросу. + other: Выбраны все %{count} элементов, соответствующих вашему запросу. changes_saved_msg: Изменения успешно сохранены! copy: Копировать delete: Удалить diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 4be3716bf4..36741108ff 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -34,7 +34,7 @@ bg: avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят context: Един или повече контексти, към които да се приложи филтърът - current_password: От съображения за сигуроност, въведете паролата на текущия профил + current_password: От съображения за сигурност, въведете паролата на текущия акаунт current_username: Въведете потребителското име на текущия профил, за да потвърдите digest: Изпраща се само след дълъг период на бездействие и само ако сте получили лични съобщения във ваше отсъствие discoverable: Позволяване на странници да откриват вашия акаунт чрез препоръки, нашумели и други неща @@ -48,7 +48,7 @@ bg: password: Използвайте поне 8 символа phrase: Ще съвпадне без значение дали са главни или малки букви, или ако е предупреждение към публикация scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални. - setting_aggregate_reblogs: Скриване на нови споделяния за публикации, които са били споделени наскоро (засяга само новополучени споделяния) + setting_aggregate_reblogs: Без показване на нови подсилвания за публикации, които са неотдавна подсилени (засяга само новополучени подсилвания) setting_always_send_emails: Обикновено известия по имейл няма да бъдат изпратени при активно използване на Mastodon setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване setting_display_media_default: Скриване на мултимедия отбелязана като деликатна @@ -95,7 +95,7 @@ bg: trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие. trends: В секцията Нашумели се показват публикации, хаштагове и новини, набрали популярност на вашия сървър. form_challenge: - current_password: Навлизате в защитена зона + current_password: Влизате в сигурна зона imports: data: CSV файл, експортиран от друга инстанция на Mastodon invite_request: @@ -106,8 +106,8 @@ bg: ip: Въведете адреси IPv4 или IPv6. Може да блокирате цели обхвати с помощта на синтаксиса CIDR. Внимавайте да не се самозаключите! severities: no_access: Блокиране на достъп до всички ресурси - sign_up_block: Забрана на нови регистрации - sign_up_requires_approval: Ще трябва да одобрите новопостъпващи регистрации + sign_up_block: Нови регистрации няма да са възможни + sign_up_requires_approval: Новите регистрации ще изискват одобрението ви severity: Изберете какво да се случва със заявките от този IP rule: text: Опишете правило или изискване за потребителите на този сървър. Опитайте се да го направите кратко и просто @@ -159,7 +159,7 @@ bg: starts_at: Начало на събитието text: Оповестяване appeal: - text: Обяснете защо това решение трябва да се отхвърли + text: Обяснете защо решението трябва да се отхвърли defaults: autofollow: Поканете за следване на акаунта ви avatar: Аватар @@ -188,10 +188,10 @@ bg: password: Парола phrase: Ключова дума или фраза setting_advanced_layout: Включване на разширен уеб интерфейс - setting_aggregate_reblogs: Групиране на споделянията в инфопотока - setting_always_send_emails: Винаги да се изпращат известия по имейл + setting_aggregate_reblogs: Групиране на подсилванията в часовите оси + setting_always_send_emails: Винаги изпращане на известия по имейл setting_auto_play_gif: Самопускащи се анимирани гифчета - setting_boost_modal: Показване на диалога за потвърждение преди споделяне + setting_boost_modal: Показване на прозорец за потвърждение преди подсилване setting_crop_images: Изрязване на образи в неразгънати публикации до 16x9 setting_default_language: Език на публикуване setting_default_privacy: Поверителност на публикуване @@ -216,12 +216,12 @@ bg: severity: Тежест sign_in_token_attempt: Код за сигурност title: Заглавие - type: Тип на импортиране + type: Тип на внасяне username: Потребителско име username_or_email: Потребителско име или имейл whole_word: Цяла дума email_domain_block: - with_dns_records: Включване не MX записи и IP на домейна + with_dns_records: Включване не записи MX и IP-та на домейна featured_tag: name: Хаштаг filters: @@ -251,7 +251,7 @@ bg: thumbnail: Миниобраз на сървъра timeline_preview: Позволяване на неупълномощен достъп до публични часови оси trendable_by_default: Без преглед на нашумели - trends: Включване на нашумели + trends: Включване на налагащи се interactions: must_be_follower: Блокирай известия от не-последователи must_be_following: Блокиране на известия от неследваните @@ -264,19 +264,19 @@ bg: comment: Коментар ip: IP адрес severities: - no_access: Блокиране на адреса + no_access: Блокиране на достъпа sign_up_block: Блокиране на регистрации sign_up_requires_approval: Ограничаване на регистриране severity: Правило notification_emails: appeal: Някой възразява срещу решение на модератора digest: Изпращай извлечения на съобщенията - favourite: Някой маркира ваша публикация като любима + favourite: Някой направи ваша публикация като любима follow: Някой ви последва follow_request: Някой пожела да ви последва mention: Някой ви спомена pending_account: Новите акаунти трябва да се прегледат - reblog: Изпращай e-mail, когато някой сподели твоя публикация + reblog: Някой подсили ваша публикация report: Новият доклад е подаден trending_tag: Изискване на преглед за новонашумели rule: diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 977fe3dbc6..8e5fd73fa8 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -10,15 +10,15 @@ ca: text: Pots usar totes les sintaxis, com ara URL, etiquetes i mencions title: Opcional. No és visible per al destinatari admin_account_action: - include_statuses: L'usuari veurà quines publicacions han provocat que s'hagi moderat o avisat + 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. En les publicacions, pots usar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps + text_html: Opcional. En els tuts, pots usar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps type_html: Tria què fer amb %{acct} types: disable: Evita que l'usuari faci servir el seu compte, però no n'esborris ni amaguis el contingut. none: Fes servir això per a enviar un avís a l'usuari sense desencadenar cap altra acció. sensitive: Obliga a marcar tots els fitxers multimèdia adjunts com a sensibles. - silence: Evita que l'usuari pugui publicar amb visibilitat pública, amagar les seves publicacions i les notificacions d'usuaris que no el segueixin. + silence: Evita que l'usuari pugui publicar amb visibilitat pública, amagar els seus tuts i les notificacions d'usuaris que no el segueixin. suspend: Evita qualsevol interacció des de o cap a aquest compte i esborra els seus continguts. Reversible en un termini de 30 dies. warning_preset_id: Opcional. Encara pots afegir text personalitzat al final de la configuració predefinida announcement: @@ -26,7 +26,7 @@ ca: ends_at: Opcional. En aquest moment, l'anunci no es publicarà automàticament scheduled_at: Deixa-ho en blanc per a publicar l’anunci immediatament starts_at: Opcional. En cas que el teu anunci estigui vinculat a un interval de temps específic - text: Pots fer servir la sintaxi de publicacions. Tingues en compte l’espai que l’anunci ocuparà a la pantalla de l’usuari + text: Pots fer servir la sintaxi dels tuts. Tingues en compte l’espai que l’anunci ocuparà a la pantalla de l’usuari appeal: text: Només pots emetre una apel·lació per cada acció defaults: @@ -42,13 +42,13 @@ ca: fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil header: PNG, GIF o JPG de com a màxim %{size}. S'escalarà a %{dimensions}px inbox_url: Copia l'URL de la pàgina principal del relay que vols usar - irreversible: Les publicacions filtrades desapareixeran de manera irreversible, fins i tot si el filtre s'elimina més tard + irreversible: Els tuts filtrats desapareixeran de manera irreversible, fins i tot si el filtre es retira més tard locale: L'idioma de la interfície d’usuari, els correus i les notificacions push locked: Controla manualment qui et pot seguir, aprovant sol·licituds 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 tut scopes: API permeses per a accedir a l'aplicació. Si selecciones un àmbit de nivell superior, no cal que en seleccionis un d'individual. - setting_aggregate_reblogs: No mostris els nous impulsos de les publicacions que ja s'han impulsat recentment (només afecta els nous impulsos rebuts) + setting_aggregate_reblogs: No mostra els nous impulsos dels tuts que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_always_send_emails: Normalment, no s'enviarà cap notificació per correu electrònic mentre facis servir Mastodon setting_default_sensitive: El contingut sensible està ocult per defecte i es pot mostrar fent-hi clic setting_display_media_default: Amaga el contingut gràfic marcat com a sensible @@ -56,7 +56,7 @@ ca: setting_display_media_show_all: Mostra sempre el contingut gràfic setting_hide_network: Qui segueixes i els que et segueixen 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à en la vista detallada de les publicacions + 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ò n'enfosqueixen els detalls setting_use_pending_items: Amaga les actualitzacions de la línia de temps després de fer un clic, en lloc de desplaçar-les automàticament username: El teu nom d'usuari serà únic a %{domain} @@ -77,7 +77,7 @@ ca: backups_retention_period: Manté els arxius d'usuari generats durant el nombre de dies especificats. bootstrap_timeline_accounts: Aquests comptes es fixaran en la part superior de les recomanacions de seguiment dels nous usuaris. closed_registrations_message: Mostrat quan el registres estan tancats - content_cache_retention_period: Les publicacions d'altres servidors se suprimiran després del nombre de dies especificat quan s'estableix un valor positiu. Això pot ser irreversible. + content_cache_retention_period: Els tuts d'altres servidors se suprimiran després del nombre de dies especificat quan s'estableix un valor positiu. Això pot ser irreversible. custom_css: Pots aplicar estils personalitzats en la versió web de Mastodon. mascot: Anul·la la il·lustració en la interfície web avançada. media_cache_retention_period: Els fitxers multimèdia descarregats s'esborraran després del nombre de dies especificat quan el valor configurat és positiu, i tornats a descarregats sota demanda. @@ -91,9 +91,9 @@ ca: site_title: Com pot la gent referir-se al teu servidor a part del seu nom de domini. theme: El tema que els visitants i els nous usuaris veuen. thumbnail: Una imatge d'aproximadament 2:1 que es mostra al costat la informació del teu servidor. - timeline_preview: Els visitants amb sessió no iniciada seran capaços de navegar per les publicacions més recents en el teu servidor. + timeline_preview: Els visitants amb sessió no iniciada seran capaços de navegar per els tuts més recents en el teu servidor. trendable_by_default: Omet la revisió manual del contingut en tendència. Els articles individuals poden encara ser eliminats després del fet. - trends: Les tendències mostren quines publicacions, etiquetes i notícies estan guanyant força al vostre servidor. + trends: Les tendències mostren quins tuts, etiquetes i notícies estan guanyant força en el teu servidor. form_challenge: current_password: Estàs entrant en una àrea segura imports: @@ -117,7 +117,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 les publicacions en 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 role: El rol controla quines permissions té l'usuari user_role: color: Color que s'usarà per al rol a tota la interfície d'usuari, com a RGB en format hexadecimal @@ -141,7 +141,7 @@ ca: text: Text predefinit title: Títol admin_account_action: - include_statuses: Inclou les publicacions reportades en el correu electrònic + include_statuses: Inclou tuts reportats en el correu electrònic send_email_notification: Notifica l'usuari per correu electrònic text: Avís personalitzat type: Acció @@ -192,9 +192,9 @@ ca: setting_always_send_emails: Envia'm sempre notificacions per correu electrònic setting_auto_play_gif: Reprodueix automàticament els GIF animats setting_boost_modal: Mostra la finestra de confirmació abans d'impulsar - setting_crop_images: Retalla les imatges en publicacions no ampliades a 16x9 - setting_default_language: Idioma de les publicacions - setting_default_privacy: Privacitat de les publicacions + setting_crop_images: Retalla les imatges en tuts no ampliats a 16x9 + setting_default_language: Llengua dels tuts + setting_default_privacy: Privacitat dels tuts setting_default_sensitive: Marcar sempre el contingut gràfic com a sensible setting_delete_modal: Mostra la finestra de confirmació abans d'esborrar un tut setting_disable_swiping: Desactiva les animacions @@ -202,11 +202,11 @@ ca: 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: Desplega sempre les publicacions marcades amb advertències de contingut + setting_expand_spoilers: Desplega sempre els tuts marcats amb advertències de contingut setting_hide_network: Amaga la teva xarxa setting_noindex: Desactiva la indexació dels motors de cerca setting_reduce_motion: Redueix el moviment de les animacions - setting_show_application: Revelar l'aplicació utilitzada per fer les publicacions + setting_show_application: Revela l'aplicació utilitzada per enviar tuts setting_system_font_ui: Usa la lletra predeterminada del sistema setting_theme: Tema del lloc setting_trends: Mostra les tendències d'avui @@ -285,7 +285,7 @@ ca: listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils name: Etiqueta trendable: Permet que aquesta etiqueta aparegui en les tendències - usable: Permetre a les publicacions emprar aquesta etiqueta + usable: Permet als tuts emprar aquesta etiqueta user: role: Rol user_role: diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 5e8a5b3a9c..7bcb55b5fe 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -13,7 +13,7 @@ de: include_statuses: Die Person sieht, welche Beiträge die Moderationsmaßnahme oder Warnung verursacht haben send_email_notification: Benutzer*in wird eine Erklärung erhalten, was mit dem Konto geschehen ist text_html: Optional. Du kannst Beitragssyntax verwenden. Du kannst Warnvorlagen hinzufügen, um Zeit zu sparen - type_html: Wähle aus, was du mit %{acct} machen möchtest + type_html: Wähle aus, wie mit %{acct} vorgegangen werden soll types: disable: Benutzer*in daran hindern, das Konto verwenden zu können, aber die Inhalte nicht löschen oder ausblenden. none: Verwende dies, um dem Account eine Warnung zu schicken, ohne dabei eine andere Aktion vorzunehmen. @@ -43,7 +43,7 @@ de: header: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert inbox_url: Kopiere die URL von der Startseite des gewünschten Relays irreversible: Bereinigte Beiträge verschwinden unwiderruflich für dich, auch dann, wenn dieser Filter zu einem späteren wieder entfernt wird - locale: Die Sprache der Oberfläche, E-Mails und Push-Benachrichtigungen + locale: Die Sprache der Benutzeroberfläche, E-Mails und Push-Benachrichtigungen locked: Wer dir folgen und deine Inhalte sehen möchte, muss dein Follower sein und dafür um deine Erlaubnis bitten password: Verwende mindestens 8 Zeichen phrase: Wird unabhängig von der Groß- und Kleinschreibung im Text oder der Inhaltswarnung eines Beitrags abgeglichen @@ -95,17 +95,17 @@ de: trendable_by_default: Manuelles Überprüfen angesagter Inhalte überspringen. Einzelne Elemente können später noch aus den Trends entfernt werden. trends: Trends zeigen, welche Beiträge, Hashtags und Nachrichten auf deinem Server immer beliebter werden. form_challenge: - current_password: Du betrittst einen sicheren Bereich + current_password: Du betrittst einen gesicherten Bereich imports: - data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde + data: CSV-Datei, exportiert von einem anderen Mastodon-Server invite_request: - text: Dies wird uns helfen deine Anmeldungsanfrage besser zu verarbeiten + text: Dies wird uns bei der Überprüfung deiner Anmeldung behilflich sein ip_block: comment: Optional. Zur Erinnerung, weshalb du diese Regel eingeführt hast. expires_in: IP-Adressen sind eine begrenzte Ressource. Sie können außerdem auf viele Computer aufgeteilt sein und auch die Zuordnungen ändern sich. Deshalb werden unbestimmte IP-Blöcke nicht empfohlen. - ip: Gib eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht aussperrst! + ip: Gib eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht selbst aussperrst! severities: - no_access: Zugriff auf alle Ressourcen blockieren + no_access: Blockiere Zugriff auf alle Ressourcen sign_up_block: Neue Registrierungen werden nicht möglich sein sign_up_requires_approval: Neue Registrierungen müssen genehmigt werden severity: Wähle aus, was mit Anfragen von dieser IP-Adresse geschehen soll @@ -124,9 +124,9 @@ de: highlighted: Dies macht die Rolle öffentlich im Profil sichtbar name: Name der Rolle, der auch öffentlich als Badge angezeigt wird, sofern dies unten aktiviert ist permissions_as_keys: Benutzer*innen mit dieser Rolle haben Zugriff auf... - position: Die höhere Rolle entscheidet über die Konfliktlösung in bestimmten Situationen. Bestimmte Aktionen können nur in Rollen mit geringerer Priorität ausgeführt werden + position: Höhere Rollen entscheiden über Konfliktlösungen zu gewissen Situationen. Bestimmte Aktionen können nur mit geringfügigeren Rollen durchgeführt werden webhook: - events: Zu sendende Ereignisse auswählen + events: Wähle die zu sendenden Termine url: Wo Ereignisse hingesendet werden labels: account: @@ -134,24 +134,24 @@ de: name: Bezeichnung value: Inhalt account_alias: - acct: Adresse des alten Kontos + acct: Betreiber des alten Kontos account_migration: - acct: Adresse des neuen Kontos + acct: Betreiber des neuen Kontos account_warning_preset: text: Vorlagentext title: Titel admin_account_action: - include_statuses: Gemeldete Beiträge der E-Mail beifügen + include_statuses: Beitragsmeldungen in die E-Mail mit anfügen send_email_notification: Nutzer*in per E-Mail benachrichtigen - text: Eigene Warnung + text: Benutzerdefinierte Warnung type: Aktion types: disable: Einfrieren - none: Nichts tun + none: Warnung senden sensitive: Inhaltswarnung - silence: Stummschalten + silence: Einschränkung suspend: Sperren - warning_preset_id: Benutze eine Warnungsvorlage + warning_preset_id: Warnungsvorlage verwenden announcement: all_day: Ganztägiges Ereignis ends_at: Ende der Ankündigung @@ -159,11 +159,11 @@ de: starts_at: Beginn der Ankündigung text: Ankündigung appeal: - text: Erkläre, warum diese Entscheidung rückgängig gemacht werden soll + text: Teile mit, warum diese Entscheidung zurückgenommen werden soll defaults: - autofollow: Meinem Profil automatisch folgen + autofollow: Lade ein, um deinem Konto zu folgen avatar: Profilbild - bot: Dieses Profil ist ein Bot + bot: Dies ist ein Bot-Konto chosen_languages: Sprachen einschränken confirm_new_password: Neues Passwort bestätigen confirm_password: Passwort bestätigen @@ -181,22 +181,22 @@ de: irreversible: Endgültig, nicht nur temporär ausblenden locale: Sprache des Webinterface locked: Geschütztes Profil - max_uses: Maximale Verwendungen + max_uses: Maximale Anzahl der Nutzer new_password: Neues Passwort note: Über mich otp_attempt: Zwei-Faktor-Authentisierung password: Passwort phrase: Wort oder Formulierung setting_advanced_layout: Erweitertes Webinterface verwenden - setting_aggregate_reblogs: Geteilte Beiträge in den Timelines gruppieren + setting_aggregate_reblogs: Boosts in der Timeline gruppieren setting_always_send_emails: Benachrichtigungen immer senden setting_auto_play_gif: Animierte GIFs automatisch abspielen - setting_boost_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag geteilt wird + setting_boost_modal: Bestätigung vor dem Teilen einholen setting_crop_images: Bilder in nicht ausgeklappten Beiträgen auf 16:9 zuschneiden setting_default_language: Beitragssprache setting_default_privacy: Beitragssichtbarkeit setting_default_sensitive: Eigene Medien immer mit einer Inhaltswarnung versehen - setting_delete_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag gelöscht wird + setting_delete_modal: Bestätigung anzeigen, bevor ein Beitrag gelöscht wird setting_disable_swiping: Wischgesten deaktivieren setting_display_media: Medien-Anzeige setting_display_media_default: Standard @@ -242,7 +242,7 @@ de: show_domain_blocks: Anzeigen, welche Domains gesperrt wurden show_domain_blocks_rationale: Anzeigen, weshalb Domains gesperrt wurden site_contact_email: E-Mail-Adresse - site_contact_username: Profilname + site_contact_username: Kontakt Benutzername site_extended_description: Detaillierte Beschreibung site_short_description: Serverbeschreibung site_terms: Datenschutzerklärung diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index b425b6ab44..6d216bb80e 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -63,6 +63,34 @@ en-GB: whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word domain_allow: domain: This domain will be able to fetch data from this server and incoming data from it will be processed and stored + email_domain_block: + domain: This can be the domain name that shows up in the e-mail address or the MX record it uses. They will be checked upon sign-up. + with_dns_records: An attempt to resolve the given domain's DNS records will be made and the results will also be blocked + featured_tag: + name: 'Here are some of the hashtags you used the most recently:' + filters: + action: Chose which action to perform when a post matches the filter + actions: + hide: Completely hide the filtered content, behaving as if it did not exist + warn: Hide the filtered content behind a warning mentioning the filter's title + form_admin_settings: + backups_retention_period: Keep generated user archives for the specified number of days. + bootstrap_timeline_accounts: These accounts will be pinned to the top of new users' follow recommendations. + closed_registrations_message: Displayed when sign-ups are closed + content_cache_retention_period: Posts from other servers will be deleted after the specified number of days when set to a positive value. This may be irreversible. + custom_css: You can apply custom styles on the web version of Mastodon. + mascot: Overrides the illustration in the advanced web interface. + media_cache_retention_period: Downloaded media files will be deleted after the specified number of days when set to a positive value, and re-downloaded on demand. + profile_directory: The profile directory lists all users who have opted-in to be discoverable. + require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional + site_contact_email: How people can reach you for legal or support inquiries. + site_contact_username: How people can reach you on Mastodon. + site_extended_description: Any additional information that may be useful to visitors and your users. Can be structured with Markdown syntax. + site_short_description: A short description to help uniquely identify your server. Who is running it, who is it for? + site_terms: Use your own privacy policy or leave blank to use the default. Can be structured with Markdown syntax. + site_title: How people may refer to your server besides its domain name. + theme: Theme that logged out visitors and new users see. + thumbnail: A roughly 2:1 image displayed alongside your server information. labels: ip_block: ip: IP @@ -93,6 +121,15 @@ en-GB: role: Role user_role: color: Badge colour + name: Name + permissions_as_keys: Permissions + position: Priority + webhook: + events: Enabled events + url: Endpoint URL + 'no': 'No' + not_recommended: Not recommended + recommended: Recommended required: mark: "*" text: required diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index abb05aed3d..f658eff20a 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -7,7 +7,7 @@ et: account_migration: acct: Sisesta kasutajanimi@domeen, kuhu soovid konto siit kolida account_warning_preset: - text: Te saate kasutada postituse süntaksi, näiteks URLe, silte ja mainimisi + text: Saab kasutada postituse süntaksi, näiteks URLe, silte ja mainimisi title: Valikuline. Ei ole nähtav saajale admin_account_action: include_statuses: Kasutaja näeb, millised postitused on põhjustanud moderaatori otsuse või hoiatuse @@ -18,15 +18,15 @@ et: disable: Keela kasutajal konto kasutamine, sisu kustutamata või varjamata. none: Hoiatuse saatmine kasutajale, ilma täiendavate tegevuste käivitamiseta. sensitive: Kogu kasutaja meediasisu märgitakse kui tundlik sisu. - silence: Takistab kasutajal avaliku nähtavusega postitamist, peidab tema postitused ja märguanded inimeste eest, kes ei jälgi. + silence: Takistab kasutajal avaliku nähtavusega postitamist, peidab tema postitused ja märguanded inimeste eest, kes teda ei jälgi. suspend: Takistamaks suhtlust selle kontoga ja kustutamaks kogu sisu. Tagasivõetav 30 päeva jooksul. - warning_preset_id: Valikuline. Te saate ikka lisada mis tahes teksti eelseadistuse lõppu + warning_preset_id: Valikuline. Saad ikka lisada mis tahes teksti eelseadistuse lõppu announcement: all_day: Kui valitud, kuvatakse vaid selle ajavahemiku kuupäevi ends_at: Valikuline. Teadaanne eemaldatakse automaatselt sellel ajal scheduled_at: Jäta tühjaks, et avaldada teadaande koheselt - starts_at: Valikuline. Juhul, kui teadaanne on limiteeritud kindlale ajavahemikule - text: Te saate kasutada postituse süntaksi. Tuleks silmas pidada, kui palju ruumi teadaanne võtab kasutaja ekraanil + starts_at: Valikuline. Juhul, kui teadaanne on piiratud kindla ajavahemikuga + text: Saad kasutada postituse süntaksi. Tuleks silmas pidada, kui palju teadaanne kasutaja ekraanil ruumi võtab appeal: text: Otsust on võimalik vaidlustada vaid 1 kord defaults: @@ -35,19 +35,19 @@ et: bot: Teavita teisi, et see konto teeb enamjaolt automatiseeritud tegevusi ja ei pruugi olla järelvalve all context: Üks või mitu konteksti, mille vastu see filter peaks rakenduma current_password: Sisesta turvalisuse huvides oma siinse konto salasõna - current_username: Kinnitamiseks palun sisestage oma konto kasutajanimi - digest: Saadetakse ainult pärast pikka perioodi tegevusetust ja ainult siis, kui Teile on saadetud privaatseid sõnumeid + current_username: Kinnitamiseks palun sisesta oma konto kasutajanimi + digest: Saadetakse ainult pärast pikka tegevusetuse perioodi ja ainult siis, kui on saadetud otsesõnumeid discoverable: Konto on leitav võhivõõraste jaoks soovituste ja trendide sirvimise teel vm sarnaste vahenditega - email: Teile saadetakse kinnituskiri e-posti teel - fields: Te saate oma profiilil tabelina kuvada kuni 4 asja + email: Sulle saadetakse e-posti teel kinnituskiri + fields: Saad oma profiilil tabelina kuvada kuni 4 asja header: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini - inbox_url: Kopeerige soovitud relee avalehe URL + inbox_url: Kopeeri soovitud vahendaja avalehe URL irreversible: Filtreeritud postitused kaovad taastamatult, isegi kui filter on hiljem eemaldatud - locale: Kasutajaliidese, e-kirjade ja push-teadete keel + locale: Kasutajaliidese, e-kirjade ja tõuketeadete keel locked: Nõuab käsitsi jälgijate kinnitamist password: Vajalik on vähemalt 8 märki phrase: Kattub olenemata postituse teksti suurtähtedest või sisuhoiatusest - scopes: Milliseid API-sid see rakendus tohib kasutada. Kui Te valite kõrgeima taseme, ei pea Te valima individuaalseid. + scopes: Milliseid API-sid see rakendus tohib kasutada. Kui valid kõrgeima taseme, ei pea üksikuid eraldi valima. setting_aggregate_reblogs: Ära kuva uusi postituste jagamisi, mis on hiljuti jagatud (kehtib vaid uutele jagamistele) setting_always_send_emails: Mastodoni aktiivsel kasutamisel sulle tavaliselt meilile teavitusi ei saadeta setting_default_sensitive: Tundlik meedia on vaikimisi peidetud ning seda saab avada sellele klikkides @@ -55,11 +55,11 @@ et: setting_display_media_hide_all: Alati peida kõik meedia setting_display_media_show_all: Alati näita tundlikuks märgistatud meedia setting_hide_network: Profiilil ei kuvata Keda sa jälgid ja kes jälgib sind - setting_noindex: Mõjutab su avalikku profiili ja postituste lehekülgi + setting_noindex: Mõjutab avalikku profiili ja postituste lehekülgi setting_show_application: Postitamiseks kasutatud rakenduse infot kuvatakse postituse üksikasjavaates setting_use_blurhash: Värvid põhinevad peidetud visuaalidel, kuid hägustavad igasuguseid detaile setting_use_pending_items: Voo automaatse kerimise asemel peida ajajoone uuendused kliki taha - username: Su kasutajanimi on %{domain}-il unikaalne + username: Sinu kasutajanimi on %{domain}-il unikaalne whole_word: Kui võtmesõna või fraas on ainult tähtnumbriline, rakendub see ainult siis, kui see kattub terve sõnaga domain_allow: domain: See domeen saab tõmmata andmeid sellelt serverilt ning sissetulevad andmed sellelt domeenilt töödeldakse ning salvestatakse @@ -99,7 +99,7 @@ et: imports: data: CSV fail eksporditi teisest Mastodoni serverist invite_request: - text: See aitab meil su taotlust üle vaadata + text: See aitab meil sinu taotlust üle vaadata ip_block: comment: Valikuline. Talletamaks reegli lisamise põhjust. expires_in: IP-aadressid on lõplik ressurss ja on tihtipeale ühiskasutuses või vahetub kasutaja. Sel põhjusel pole kestvad IP-piirangud soovituslikud. @@ -112,10 +112,10 @@ et: rule: text: Reegli või nõude kirjeldus selle serveri kasutajatele. Võimalikult lühidalt ja lihtsalt sessions: - otp: 'Kahe-etapise autentimise kood telefonirakendusest või mõni taastekood:' + otp: 'Kaheastmelise autentimise kood telefonirakendusest või mõni taastekood:' webauthn: Kui see on USB-võti, sisesta see ning vajadusel aktiveeri. tag: - name: Te saate ainult muuta tähtede tõstetust, näiteks selleks, et muuta seda rohkem loetavaks + name: Saad muuta ainult tähtede suurtähelisust, näiteks selleks, et muuta seda loetavamaks user: chosen_languages: Keelte valimisel näidatakse avalikel ajajoontel ainult neis keeltes postitusi role: See roll kontrollib, millised õigused kasutajal on @@ -170,21 +170,21 @@ et: context: Filtreeri kontekste current_password: Kehtiv salasõna data: Andmed - discoverable: Lisage see konto kataloogi + discoverable: Lisa see konto kataloogi display_name: Kuvanimi email: E-posti aadress expires_in: Aegu pärast fields: Veebiviited header: Päis honeypot: "%{label} (ära sisesta)" - inbox_url: Relee sisendkausta URL + inbox_url: Vahendaja sisendkausta URL irreversible: Kustuta selle asemel, et peita locale: Kasutajaliidese keel locked: Lukusta konto max_uses: Maksimum kasutajate arv new_password: Uus salasõna note: Elulugu - otp_attempt: Kahe-etapine kood + otp_attempt: Kaheastmeline kood password: Salasõna phrase: Võtmesõna või fraas setting_advanced_layout: Aktiveeri kohandatud veebiliides @@ -272,7 +272,7 @@ et: appeal: Moderaatori otsus on vaidlustatud digest: Saada ülevaatlike e-kirju favourite: Saada e-kiri, kui keegi lisab su postituse lemmikuks - follow: Saada e-kiri, kui keegi alustab Teie jälgimist + follow: Saada e-kiri, kui keegi alustab jälgimist follow_request: Saada e-kiri, kui keegi soovib Teid jälgida mention: Saada e-kiri, kui keegi mainib Teid pending_account: Saada e-kiri, kui uus konto vajab ülevaatlust diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index cd9a034b58..5ef0151238 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -7,7 +7,7 @@ fi: account_migration: acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus, johon haluat siirtyä account_warning_preset: - text: Voit käyttää julkaisun syntaksia, kuten URL-osoitteita, hashtageja ja mainintoja + text: Voit käyttää julkaisun syntaksia, kuten URL-osoitteita, aihetunnisteita ja mainintoja title: Vapaaehtoinen. Ei näytetä vastaanottajalle admin_account_action: include_statuses: Käyttäjä näkee mitkä viestit johtivat toimenpiteeseen tai varoitukseen @@ -93,7 +93,7 @@ fi: thumbnail: Noin 2:1 kuva näytetään palvelimen tietojen rinnalla. timeline_preview: Uloskirjautuneet vierailijat voivat selata uusimpia julkisia viestejä, jotka ovat saatavilla palvelimella. trendable_by_default: Ohita suositun sisällön manuaalinen tarkistus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen. - trends: Trendit osoittavat, mitkä viestit, hashtagit ja uutiset ovat saamassa vetoa palvelimellasi. + trends: Trendit osoittavat, mitkä julkaisut, aihetunnisteet ja uutiset ovat saamassa vetoa palvelimellasi. form_challenge: current_password: Olet menossa suojatulle alueelle imports: @@ -282,10 +282,10 @@ fi: rule: text: Sääntö tag: - listable: Salli tämän hashtagin näkyä hauissa ja ehdotuksissa + listable: Salli tämän aihetunnisteen näkyä hauissa ja ehdotuksissa name: Aihetunniste trendable: Salli tämän aihetunnisteen näkyä trendeissä - usable: Salli postauksien käyttää tätä aihetunnistetta + usable: Salli julkaisujen käyttää tätä aihetunnistetta user: role: Rooli user_role: diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index 211a2fac4a..25361218b3 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -7,7 +7,7 @@ pt-PT: account_migration: acct: Especifique o utilizador@domínio da conta para onde você deseja migrar account_warning_preset: - text: Tu podes usar sintaxe de escrita, como URLs, hashtags e referências + text: Pode usar sintaxe de escrita, como URL, etiquetas, e referências title: Opcional. Não visível para o destinatário admin_account_action: include_statuses: O utilizador verá quais toots causaram a ação de moderação ou aviso @@ -67,7 +67,7 @@ pt-PT: domain: Este pode ser o nome de domínio que aparece no endereço de e-mail ou o registo MX por ele utilizado. Eles serão verificados aquando da inscrição. with_dns_records: Será feita uma tentativa de resolver os registos DNS do domínio em questão e os resultados também serão colocados na lista negra featured_tag: - name: 'Aqui estão algumas das hashtags que utilizou recentemente:' + name: 'Eis algumas das etiquetas que utilizou recentemente:' filters: action: Escolha qual a ação a executar quando uma publicação corresponde ao filtro actions: @@ -93,7 +93,7 @@ pt-PT: thumbnail: Uma imagem de aproximadamente 2:1, exibida ao lado da informação do seu servidor. timeline_preview: Os visitantes sem sessão iniciada poderão consultar as publicações públicas mais recentes disponíveis no servidor. trendable_by_default: Ignorar a revisão manual do conteúdo das tendências. Itens individuais ainda poderão ser removidos das tendências após a sua exibição. - trends: As tendências mostram quais as publicações, hashtags e notícias estão a ganhar destaque no seu servidor. + trends: As tendências mostram quais as publicações, etiquetas e notícias que estão a ganhar destaque no seu servidor. form_challenge: current_password: Está a entrar numa área restrita imports: @@ -179,7 +179,7 @@ pt-PT: honeypot: "%{label} (não preencher)" inbox_url: URL da caixa de entrada do repetidor irreversible: Expandir em vez de esconder - locale: Idioma + locale: Língua da interface locked: Trancar conta max_uses: Número máximo de utilizações new_password: Nova palavra-passe @@ -223,7 +223,7 @@ pt-PT: email_domain_block: with_dns_records: Incluir registos MX e IPs do domínio featured_tag: - name: Hashtag + name: Etiqueta filters: actions: hide: Ocultar por completo @@ -282,10 +282,10 @@ pt-PT: rule: text: Regra 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 + listable: Permitir que esta etiqueta apareça em pesquisas e no diretório de perfis + name: Etiqueta + trendable: Permitir que esta etiqueta apareça em destaque + usable: Permitir as publicações usem esta etiqueta user: role: Função user_role: diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 06b2f91002..48593c99ea 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -255,7 +255,7 @@ uk: interactions: must_be_follower: Блокувати сповіщення від непідписаних людей must_be_following: Блокувати сповіщення від людей, на яких ви не підписані - must_be_following_dm: Заблокувати прямі сповіщення від людей, на яких ви не підписані + must_be_following_dm: Блокувати особисті повідомлення від людей, за якими ви не слідкуєте invite: comment: Коментар invite_request: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 064d44d20d..e1e2afd4d7 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -216,6 +216,7 @@ sk: change_email_user_html: "%{name} zmenil/a emailovú adresu užívateľa %{target}" confirm_user_html: "%{name} potvrdil/a emailovú adresu používateľa %{target}" create_account_warning_html: "%{name} poslal/a upozornenie užívateľovi %{target}" + deleted_account: zmazaný účet filter_by_action: Filtruj podľa úkonu filter_by_user: Trieď podľa užívateľa title: Kontrólny záznam @@ -267,6 +268,7 @@ sk: upload: Nahraj dashboard: active_users: aktívni užívatelia + interactions: interakcií media_storage: Úložisko médií new_users: noví užívatelia opened_reports: otvorené hlásenia @@ -281,6 +283,7 @@ sk: add_new: Povolená doména created_msg: Doména bola úspešne povolená destroyed_msg: Doména bola odstránená zo zoznamu povolených + import: Nahraj undo: Odober zo zoznamu povolených domain_blocks: add_new: Blokuj novú doménu @@ -289,6 +292,8 @@ sk: domain: Doména edit: Uprav blokovanie domény existing_domain_block_html: Pre účet %{name} si už nahodil/a přísnejšie obmedzenie, najskôr ho teda musíš odblokovať. + export: Exportuj + import: Nahraj new: 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é. @@ -336,6 +341,7 @@ sk: comment: Interná poznámka policies: reject_media: Zamietni médiá + reject_reports: Zamietni hlásenia suspend: Vylúč policy: Zásady reason: Verejné odôvodnenie @@ -344,6 +350,7 @@ sk: instance_accounts_dimension: Najsledovanejšie účty delivery: all: Všetko + failing: Zlyhávajúce unavailable: Nedostupné delivery_available: Je v dosahu doručovania moderation: From 973e4756e88bbf302a9de79146917a51badcd51b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:44:07 +0900 Subject: [PATCH 069/176] Bump utf-8-validate from 5.0.10 to 6.0.0 (#23017) Bumps [utf-8-validate](https://github.com/websockets/utf-8-validate) from 5.0.10 to 6.0.0. - [Release notes](https://github.com/websockets/utf-8-validate/releases) - [Commits](https://github.com/websockets/utf-8-validate/compare/v5.0.10...v6.0.0) --- updated-dependencies: - dependency-name: utf-8-validate dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3c0ffdc1b5..5afdc9d2a2 100644 --- a/package.json +++ b/package.json @@ -168,6 +168,6 @@ }, "optionalDependencies": { "bufferutil": "^4.0.7", - "utf-8-validate": "^5.0.10" + "utf-8-validate": "^6.0.0" } } diff --git a/yarn.lock b/yarn.lock index 8f637ae5e2..011e7c39c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10916,10 +10916,10 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf-8-validate@^5.0.10: - version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== +utf-8-validate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.0.tgz#91a169e91ee5441a2bab5f059f4a39cdd402caf2" + integrity sha512-OCJuwxQsnG51swYmNloViggxNOFO/leOZpnb/vVeoastJbrzrZZU7lGsYlUcdkCl9nsBu2nkKLjpljb3Ckvb/Q== dependencies: node-gyp-build "^4.3.0" From a66cf524485df9e1b6d73f56f5634118b3b254c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:45:37 +0900 Subject: [PATCH 070/176] Bump jsdom from 20.0.3 to 21.0.0 (#23018) Bumps [jsdom](https://github.com/jsdom/jsdom) from 20.0.3 to 21.0.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/master/Changelog.md) - [Commits](https://github.com/jsdom/jsdom/compare/20.0.3...21.0.0) --- updated-dependencies: - dependency-name: jsdom dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5afdc9d2a2..0f6bc05a2c 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "intl-relativeformat": "^6.4.3", "is-nan": "^1.3.2", "js-yaml": "^4.1.0", - "jsdom": "^20.0.3", + "jsdom": "^21.0.0", "lodash": "^4.17.21", "mark-loader": "^0.1.6", "marky": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 011e7c39c5..81e91bf27e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6670,7 +6670,7 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^20.0.0, jsdom@^20.0.3: +jsdom@^20.0.0: version "20.0.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== @@ -6702,6 +6702,38 @@ jsdom@^20.0.0, jsdom@^20.0.3: ws "^8.11.0" xml-name-validator "^4.0.0" +jsdom@^21.0.0: + version "21.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.0.0.tgz#33e22f2fc44286e50ac853c7b7656c8864a4ea45" + integrity sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" From 2f4dae26ee528e96b2c0f0735a295efbd8d65a99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:46:07 +0900 Subject: [PATCH 071/176] Bump postcss from 8.4.20 to 8.4.21 (#23019) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.20 to 8.4.21. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.20...8.4.21) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0f6bc05a2c..ecaf08d616 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "object.values": "^1.1.6", "path-complete-extname": "^1.0.0", "pg": "^8.5.0", - "postcss": "^8.4.20", + "postcss": "^8.4.21", "postcss-loader": "^3.0.0", "promise.prototype.finally": "^3.1.4", "prop-types": "^15.8.1", diff --git a/yarn.lock b/yarn.lock index 81e91bf27e..d08e02109a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8513,10 +8513,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.2.15, postcss@^8.4.19, postcss@^8.4.20: - version "8.4.20" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" - integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== +postcss@^8.2.15, postcss@^8.4.19, postcss@^8.4.21: + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" From 167b073087ed178c65b7b71d1c39f0e7c3f0504a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:47:00 +0900 Subject: [PATCH 072/176] Bump immutable from 4.2.1 to 4.2.2 (#23021) Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/immutable-js/immutable-js/releases) - [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/immutable-js/immutable-js/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: immutable dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ecaf08d616..712cef15f4 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "glob": "^8.0.3", "history": "^4.10.1", "http-link-header": "^1.1.0", - "immutable": "^4.2.1", + "immutable": "^4.2.2", "imports-loader": "^1.2.0", "intersection-observer": "^0.12.2", "intl": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index d08e02109a..7ec65d3e76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5629,10 +5629,10 @@ ignore@^5.2.0, ignore@^5.2.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -immutable@^4.0.0, immutable@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" - integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== +immutable@^4.0.0, immutable@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16" + integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og== import-cwd@^2.0.0: version "2.1.0" From f0fd8c5c38f298a00c427be2c8c13abfea4bd0d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:49:39 +0900 Subject: [PATCH 073/176] Bump prettier from 2.8.1 to 2.8.2 (#23022) Bumps [prettier](https://github.com/prettier/prettier) from 2.8.1 to 2.8.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.8.1...2.8.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 712cef15f4..ce216f09ec 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "postcss-scss": "^4.0.6", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", diff --git a/yarn.lock b/yarn.lock index 7ec65d3e76..bb12a9ec79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8554,10 +8554,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== +prettier@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" + integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" From f9655d6850eefb990fa51b6831f4ee8dcf940705 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:50:01 +0900 Subject: [PATCH 074/176] Bump @babel/core from 7.20.7 to 7.20.12 (#23020) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.7 to 7.20.12. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.12/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index ce216f09ec..0d296943bb 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.20.7", + "@babel/core": "^7.20.12", "@babel/plugin-proposal-decorators": "^7.20.7", "@babel/plugin-transform-react-inline-elements": "^7.18.6", "@babel/plugin-transform-runtime": "^7.19.6", diff --git a/yarn.lock b/yarn.lock index bb12a9ec79..fc4790941f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -47,25 +47,25 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== -"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.7", "@babel/core@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" - integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.12", "@babel/core@^7.7.2": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" "@babel/helpers" "^7.20.7" "@babel/parser" "^7.20.7" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" + "@babel/traverse" "^7.20.12" "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" + json5 "^2.2.2" semver "^6.3.0" "@babel/eslint-parser@^7.19.1": @@ -194,7 +194,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.7": +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== @@ -1045,10 +1045,10 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" - integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" + integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== dependencies: "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" @@ -6793,10 +6793,10 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^4.0.0: version "4.0.0" From 7101bc534cdd92ff21e3b58ca4515ae43f7db2ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 22:02:06 +0900 Subject: [PATCH 075/176] Bump ws from 8.11.0 to 8.12.0 (#23023) Bumps [ws](https://github.com/websockets/ws) from 8.11.0 to 8.12.0. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/8.11.0...8.12.0) --- updated-dependencies: - dependency-name: ws dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0d296943bb..c8143f8a51 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "workbox-strategies": "^6.5.4", "workbox-webpack-plugin": "^6.5.4", "workbox-window": "^6.5.4", - "ws": "^8.10.0" + "ws": "^8.12.0" }, "devDependencies": { "@babel/eslint-parser": "^7.19.1", diff --git a/yarn.lock b/yarn.lock index fc4790941f..33268a5865 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11581,10 +11581,10 @@ ws@^7.3.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@^8.10.0, ws@^8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@^8.11.0, ws@^8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== xml-name-validator@^4.0.0: version "4.0.0" From 2ba14097ffb377d1a07fb08612ba3d7727ae437e Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 11 Jan 2023 21:51:43 +0100 Subject: [PATCH 076/176] Change trending tags admin interface to always show batch actions (#23013) Fixes #22565 --- app/views/admin/trends/tags/index.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/trends/tags/index.html.haml b/app/views/admin/trends/tags/index.html.haml index bde32a2952..1ea34c9e3f 100644 --- a/app/views/admin/trends/tags/index.html.haml +++ b/app/views/admin/trends/tags/index.html.haml @@ -23,7 +23,7 @@ - Trends::TagFilter::KEYS.each do |key| = hidden_field_tag key, params[key] if params[key].present? - .batch-table.optional + .batch-table .batch-table__toolbar %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false From a65f86ae5596d9c51a76cb05a3ebf5cd965df6ef Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 11 Jan 2023 21:53:11 +0100 Subject: [PATCH 077/176] Fix `$` not being escaped in `.env.production` file generated by `mastodon:setup` (#23012) * Fix `$` not being escaped in `.env.production` file generated by `mastodon:setup` * Improve robustness of dotenv escaping --- lib/tasks/mastodon.rake | 61 +++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 3c891a07f0..cd6d1bcabc 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -395,18 +395,11 @@ namespace :mastodon do incompatible_syntax = false env_contents = env.each_pair.map do |key, value| - if value.is_a?(String) && value =~ /[\s\#\\"]/ - incompatible_syntax = true + value = value.to_s + escaped = dotenv_escape(value) + incompatible_syntax = true if value != escaped - if value =~ /[']/ - value = value.to_s.gsub(/[\\"\$]/) { |x| "\\#{x}" } - "#{key}=\"#{value}\"" - else - "#{key}='#{value}'" - end - else - "#{key}=#{value}" - end + escaped end.join("\n") generated_header = "# Generated with mastodon:setup on #{Time.now.utc}\n\n".dup @@ -519,3 +512,49 @@ def disable_log_stdout! HttpLog.configuration.logger = dev_null Paperclip.options[:log] = false end + +def dotenv_escape(value) + # Dotenv has its own parser, which unfortunately deviates somewhat from + # what shells actually do. + # + # In particular, we can't use Shellwords::escape because it outputs a + # non-quotable string, while Dotenv requires `#` to always be in quoted + # strings. + # + # Therefore, we need to write our own escape code… + # Dotenv's parser has a *lot* of edge cases, and I think not every + # ASCII string can even be represented into something Dotenv can parse, + # so this is a best effort thing. + # + # In particular, strings with all the following probably cannot be + # escaped: + # - `#`, or ends with spaces, which requires some form of quoting (simply escaping won't work) + # - `'` (single quote), preventing us from single-quoting + # - `\` followed by either `r` or `n` + + # No character that would cause Dotenv trouble + return value unless /[\s\#\\"'$]/.match?(value) + + # As long as the value doesn't include single quotes, we can safely + # rely on single quotes + return "'#{value}'" unless /[']/.match?(value) + + # If the value contains the string '\n' or '\r' we simply can't use + # a double-quoted string, because Dotenv will expand \n or \r no + # matter how much escaping we add. + double_quoting_disallowed = /\\[rn]/.match?(value) + + value = value.gsub(double_quoting_disallowed ? /[\\"'\s]/ : /[\\"']/) { |x| "\\#{x}" } + + # Dotenv is especially tricky with `$` as unbalanced + # parenthesis will make it not unescape `\$` as `$`… + + # Variables + value = value.gsub(/\$(?!\()/) { |x| "\\#{x}" } + # Commands + value = value.gsub(/\$(?\((?:[^()]|\g)+\))/) { |x| "\\#{x}" } + + value = "\"#{value}\"" unless double_quoting_disallowed + + value +end From ae62e5fa533831c936b7bbeb12f5b7605125ce54 Mon Sep 17 00:00:00 2001 From: Kaspar V Date: Wed, 11 Jan 2023 21:57:24 +0100 Subject: [PATCH 078/176] Fix/remove calling private method with send in model (#22951) * fix(status): remove send usage for private unlink_from_conversations - make unlink_from_conversations public method - rename unlink_from_conversations to unlink_from_conversations! - fix send call on private method in statuses_vacuum and batched_remove_status_service * fix(feeds_vacuum): replace find_in_batches with in_batches because active record query results should be a little more efficient than itterating with map and each. Postgres can grasp such lists of ids much quicker than ruby can. Will probably make allmost no difference, but cannot hurt either. --- app/lib/vacuum/feeds_vacuum.rb | 8 +++--- app/lib/vacuum/statuses_vacuum.rb | 5 +--- app/models/status.rb | 28 +++++++++---------- app/services/batched_remove_status_service.rb | 4 +-- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/app/lib/vacuum/feeds_vacuum.rb b/app/lib/vacuum/feeds_vacuum.rb index f46bcf75f7..fb0b8a8472 100644 --- a/app/lib/vacuum/feeds_vacuum.rb +++ b/app/lib/vacuum/feeds_vacuum.rb @@ -9,14 +9,14 @@ class Vacuum::FeedsVacuum private def vacuum_inactive_home_feeds! - inactive_users.select(:id, :account_id).find_in_batches do |users| - feed_manager.clean_feeds!(:home, users.map(&:account_id)) + inactive_users.select(:id, :account_id).in_batches do |users| + feed_manager.clean_feeds!(:home, users.pluck(:account_id)) end end def vacuum_inactive_list_feeds! - inactive_users_lists.select(:id).find_in_batches do |lists| - feed_manager.clean_feeds!(:list, lists.map(&:id)) + inactive_users_lists.select(:id).in_batches do |lists| + feed_manager.clean_feeds!(:list, lists.ids) end end diff --git a/app/lib/vacuum/statuses_vacuum.rb b/app/lib/vacuum/statuses_vacuum.rb index d1c4e71973..28c087b1c2 100644 --- a/app/lib/vacuum/statuses_vacuum.rb +++ b/app/lib/vacuum/statuses_vacuum.rb @@ -19,10 +19,7 @@ class Vacuum::StatusesVacuum # as the search index, must be handled first. statuses.direct_visibility .includes(mentions: :account) - .find_each do |status| - # TODO: replace temporary solution - call of private model method - status.send(:unlink_from_conversations) - end + .find_each(&:unlink_from_conversations!) remove_from_search_index(statuses.ids) if Chewy.enabled? # Foreign keys take care of most associated records for us. diff --git a/app/models/status.rb b/app/models/status.rb index 2fe9f2de01..fa9fb9fad3 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -29,7 +29,7 @@ # class Status < ApplicationRecord - before_destroy :unlink_from_conversations + before_destroy :unlink_from_conversations! include Discard::Model include Paginable @@ -309,14 +309,14 @@ class Status < ApplicationRecord after_create_commit :store_uri, if: :local? after_create_commit :update_statistics, if: :local? - around_create Mastodon::Snowflake::Callbacks - before_validation :prepare_contents, if: :local? before_validation :set_reblog before_validation :set_visibility before_validation :set_conversation before_validation :set_local + around_create Mastodon::Snowflake::Callbacks + after_create :set_poll_id class << self @@ -447,6 +447,17 @@ class Status < ApplicationRecord update_attribute(:deleted_at, discard_time) end + def unlink_from_conversations! + return unless direct_visibility? + + inbox_owners = mentioned_accounts.local + inbox_owners += [account] if account.local? + + inbox_owners.each do |inbox_owner| + AccountConversation.remove_status(inbox_owner, self) + end + end + private def update_status_stat!(attrs) @@ -524,15 +535,4 @@ class Status < ApplicationRecord reblog&.decrement_count!(:reblogs_count) if reblog? thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && distributable? end - - def unlink_from_conversations - return unless direct_visibility? - - inbox_owners = mentioned_accounts.local - inbox_owners += [account] if account.local? - - inbox_owners.each do |inbox_owner| - AccountConversation.remove_status(inbox_owner, self) - end - end end diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb index 5000062e41..54e5f10a4f 100644 --- a/app/services/batched_remove_status_service.rb +++ b/app/services/batched_remove_status_service.rb @@ -19,9 +19,7 @@ class BatchedRemoveStatusService < BaseService ActiveRecord::Associations::Preloader.new.preload(statuses_with_account_conversations, [mentions: :account]) - statuses_with_account_conversations.each do |status| - status.send(:unlink_from_conversations) - end + statuses_with_account_conversations.each(&:unlink_from_conversations!) # We do not batch all deletes into one to avoid having a long-running # transaction lock the database, but we use the delete method instead From fd33bcb3b25d3eaf593ade0aa8709a1184fc254e Mon Sep 17 00:00:00 2001 From: Peter Simonsson Date: Wed, 11 Jan 2023 21:58:46 +0100 Subject: [PATCH 079/176] Fix dropdown menu positions when scrolling (#22916) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update react-overlays to latest version * Fix breaking changes in dropdown menus * Use react-overlays built-in arrow positioning feature * Re-implemented `.dropdown-menu__arrow` to have a defined width and height to improve positioning * Moved wrapping div (`.dropdown-menu` from `DropdownMenu` to `Dropdown`) * Wrap button in a span to solve issue with ref * Temporarily remove animations * Fix breaking changes in emoji picker * Wrap EmojiPickerMenu in a div where react-overlays’ ref is added * Fix breaking changes in language dropdown * Fix breaking changes in privacy dropdown * Fix breaking changes in search form * Add animations back using `@keyframes` * Fix arrow color in light theme * Fix linting issue * Remove unused `mounted` state * Remove `placement` state from components and redux And remove the placement state from props of the menu components. * Remove abolution position to fix flip issue * Remove z-index to fix modals and overlay positions * Fix lint issues * Set placement in privacy and language components Copy the placement state into the `PrivacyDropdown` and `LanguageDropdown` components, to apply correct styling to the buttons depending on which placement the Overlay has. * Move `placement` state to correct component --- .../mastodon/actions/dropdown_menu.js | 4 +- .../mastodon/components/dropdown_menu.js | 100 +++++++----------- .../containers/dropdown_menu_container.js | 5 +- .../containers/dropdown_menu_container.js | 5 +- .../components/emoji_picker_dropdown.js | 39 ++++--- .../compose/components/language_dropdown.js | 81 +++++++------- .../compose/components/privacy_dropdown.js | 83 +++++++-------- .../features/compose/components/search.js | 47 ++++---- .../mastodon/reducers/dropdown_menu.js | 4 +- .../styles/mastodon-light/diff.scss | 18 +--- .../styles/mastodon/components.scss | 87 ++++++++++----- package.json | 2 +- yarn.lock | 97 +++++++++++------ 13 files changed, 301 insertions(+), 271 deletions(-) diff --git a/app/javascript/mastodon/actions/dropdown_menu.js b/app/javascript/mastodon/actions/dropdown_menu.js index fb6e55612e..023151d4bf 100644 --- a/app/javascript/mastodon/actions/dropdown_menu.js +++ b/app/javascript/mastodon/actions/dropdown_menu.js @@ -1,8 +1,8 @@ export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN'; export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE'; -export function openDropdownMenu(id, placement, keyboard, scroll_key) { - return { type: DROPDOWN_MENU_OPEN, id, placement, keyboard, scroll_key }; +export function openDropdownMenu(id, keyboard, scroll_key) { + return { type: DROPDOWN_MENU_OPEN, id, keyboard, scroll_key }; } export function closeDropdownMenu(id) { diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js index 4b4ad83555..5897aada89 100644 --- a/app/javascript/mastodon/components/dropdown_menu.js +++ b/app/javascript/mastodon/components/dropdown_menu.js @@ -2,9 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import IconButton from './icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from '../features/ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import { CircularProgress } from 'mastodon/components/loading_indicator'; @@ -24,9 +22,6 @@ class DropdownMenu extends React.PureComponent { scrollable: PropTypes.bool, onClose: PropTypes.func.isRequired, style: PropTypes.object, - placement: PropTypes.string, - arrowOffsetLeft: PropTypes.string, - arrowOffsetTop: PropTypes.string, openedViaKeyboard: PropTypes.bool, renderItem: PropTypes.func, renderHeader: PropTypes.func, @@ -35,11 +30,6 @@ class DropdownMenu extends React.PureComponent { static defaultProps = { style: {}, - placement: 'bottom', - }; - - state = { - mounted: false, }; handleDocumentClick = e => { @@ -56,8 +46,6 @@ class DropdownMenu extends React.PureComponent { if (this.focusedItem && this.props.openedViaKeyboard) { this.focusedItem.focus({ preventScroll: true }); } - - this.setState({ mounted: true }); } componentWillUnmount () { @@ -139,40 +127,28 @@ class DropdownMenu extends React.PureComponent { } render () { - const { items, style, placement, arrowOffsetLeft, arrowOffsetTop, scrollable, renderHeader, loading } = this.props; - const { mounted } = this.state; + const { items, scrollable, renderHeader, loading } = this.props; let renderItem = this.props.renderItem || this.renderItem; return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
-
+
+ {loading && ( + + )} -
- {loading && ( - - )} - - {!loading && renderHeader && ( -
- {renderHeader(items)} -
- )} - - {!loading && ( -
    - {items.map((option, i) => renderItem(option, i, { onClick: this.handleClick, onKeyPress: this.handleItemKeyPress }))} -
- )} -
+ {!loading && renderHeader && ( +
+ {renderHeader(items)}
)} - + + {!loading && ( +
    + {items.map((option, i) => renderItem(option, i, { onClick: this.handleClick, onKeyPress: this.handleItemKeyPress }))} +
+ )} +
); } @@ -197,7 +173,6 @@ export default class Dropdown extends React.PureComponent { isUserTouching: PropTypes.func, onOpen: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired, - dropdownPlacement: PropTypes.string, openDropdownId: PropTypes.number, openedViaKeyboard: PropTypes.bool, renderItem: PropTypes.func, @@ -213,13 +188,11 @@ export default class Dropdown extends React.PureComponent { id: id++, }; - handleClick = ({ target, type }) => { + handleClick = ({ type }) => { if (this.state.id === this.props.openDropdownId) { this.handleClose(); } else { - const { top } = target.getBoundingClientRect(); - const placement = top * 2 < innerHeight ? 'bottom' : 'top'; - this.props.onOpen(this.state.id, this.handleItemClick, placement, type !== 'click'); + this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click'); } } @@ -303,7 +276,6 @@ export default class Dropdown extends React.PureComponent { disabled, loading, scrollable, - dropdownPlacement, openDropdownId, openedViaKeyboard, children, @@ -314,7 +286,6 @@ export default class Dropdown extends React.PureComponent { const open = this.state.id === openDropdownId; const button = children ? React.cloneElement(React.Children.only(children), { - ref: this.setTargetRef, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleButtonKeyDown, @@ -326,7 +297,6 @@ export default class Dropdown extends React.PureComponent { active={open} disabled={disabled} size={size} - ref={this.setTargetRef} onClick={this.handleClick} onMouseDown={this.handleMouseDown} onKeyDown={this.handleButtonKeyDown} @@ -336,19 +306,27 @@ export default class Dropdown extends React.PureComponent { return ( - {button} - - - + + {button} + + + {({ props, arrowProps, placement }) => ( +
+
+
+ +
+
+ )} ); diff --git a/app/javascript/mastodon/components/edited_timestamp/containers/dropdown_menu_container.js b/app/javascript/mastodon/components/edited_timestamp/containers/dropdown_menu_container.js index e30c18372e..16fe77a73b 100644 --- a/app/javascript/mastodon/components/edited_timestamp/containers/dropdown_menu_container.js +++ b/app/javascript/mastodon/components/edited_timestamp/containers/dropdown_menu_container.js @@ -4,7 +4,6 @@ import { fetchHistory } from 'mastodon/actions/history'; import DropdownMenu from 'mastodon/components/dropdown_menu'; const mapStateToProps = (state, { statusId }) => ({ - dropdownPlacement: state.getIn(['dropdown_menu', 'placement']), openDropdownId: state.getIn(['dropdown_menu', 'openId']), openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']), items: state.getIn(['history', statusId, 'items']), @@ -13,9 +12,9 @@ const mapStateToProps = (state, { statusId }) => ({ const mapDispatchToProps = (dispatch, { statusId }) => ({ - onOpen (id, onItemClick, dropdownPlacement, keyboard) { + onOpen (id, onItemClick, keyboard) { dispatch(fetchHistory(statusId)); - dispatch(openDropdownMenu(id, dropdownPlacement, keyboard)); + dispatch(openDropdownMenu(id, keyboard)); }, onClose (id) { diff --git a/app/javascript/mastodon/containers/dropdown_menu_container.js b/app/javascript/mastodon/containers/dropdown_menu_container.js index c45bab40bb..bedd1c63f4 100644 --- a/app/javascript/mastodon/containers/dropdown_menu_container.js +++ b/app/javascript/mastodon/containers/dropdown_menu_container.js @@ -6,13 +6,12 @@ import DropdownMenu from '../components/dropdown_menu'; import { isUserTouching } from '../is_mobile'; const mapStateToProps = state => ({ - dropdownPlacement: state.getIn(['dropdown_menu', 'placement']), openDropdownId: state.getIn(['dropdown_menu', 'openId']), openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']), }); const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({ - onOpen(id, onItemClick, dropdownPlacement, keyboard) { + onOpen(id, onItemClick, keyboard) { if (status) { dispatch(fetchRelationships([status.getIn(['account', 'id'])])); } @@ -21,7 +20,7 @@ const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({ status, actions: items, onClick: onItemClick, - }) : openDropdownMenu(id, dropdownPlacement, keyboard, scrollKey)); + }) : openDropdownMenu(id, keyboard, scrollKey)); }, onClose(id) { 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 8cca8af2a8..76c9cda81d 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components'; -import Overlay from 'react-overlays/lib/Overlay'; +import Overlay from 'react-overlays/Overlay'; import classNames from 'classnames'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { supportsPassiveEvents } from 'detect-passive-events'; @@ -154,9 +154,6 @@ class EmojiPickerMenu extends React.PureComponent { onClose: PropTypes.func.isRequired, onPick: PropTypes.func.isRequired, style: PropTypes.object, - placement: PropTypes.string, - arrowOffsetLeft: PropTypes.string, - arrowOffsetTop: PropTypes.string, intl: PropTypes.object.isRequired, skinTone: PropTypes.number.isRequired, onSkinTone: PropTypes.func.isRequired, @@ -324,14 +321,13 @@ class EmojiPickerDropdown extends React.PureComponent { state = { active: false, loading: false, - placement: null, }; setRef = (c) => { this.dropdown = c; } - onShowDropdown = ({ target }) => { + onShowDropdown = () => { this.setState({ active: true }); if (!EmojiPicker) { @@ -346,9 +342,6 @@ class EmojiPickerDropdown extends React.PureComponent { this.setState({ loading: false, active: false }); }); } - - const { top } = target.getBoundingClientRect(); - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); } onHideDropdown = () => { @@ -382,7 +375,7 @@ class EmojiPickerDropdown extends React.PureComponent { render () { const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; const title = intl.formatMessage(messages.emoji); - const { active, loading, placement } = this.state; + const { active, loading } = this.state; return (
@@ -394,16 +387,22 @@ class EmojiPickerDropdown extends React.PureComponent { />}
- - + + {({ props, placement })=> ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.js index bf56fd0fae..4254a4926b 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.js @@ -2,9 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { injectIntl, defineMessages } from 'react-intl'; import TextIconButton from './text_icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from 'mastodon/features/ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import { languages as preloadedLanguages } from 'mastodon/initial_state'; @@ -22,10 +20,8 @@ const listenerOptions = supportsPassiveEvents ? { passive: true } : false; class LanguageDropdownMenu extends React.PureComponent { static propTypes = { - style: PropTypes.object, value: PropTypes.string.isRequired, frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string).isRequired, - placement: PropTypes.string.isRequired, onClose: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, languages: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)), @@ -37,7 +33,6 @@ class LanguageDropdownMenu extends React.PureComponent { }; state = { - mounted: false, searchValue: '', }; @@ -50,7 +45,6 @@ class LanguageDropdownMenu extends React.PureComponent { componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); - this.setState({ mounted: true }); // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need // to wait for a frame before focusing @@ -222,29 +216,22 @@ class LanguageDropdownMenu extends React.PureComponent { } render () { - const { style, placement, intl } = this.props; - const { mounted, searchValue } = this.state; + const { intl } = this.props; + const { searchValue } = this.state; const isSearching = searchValue !== ''; const results = this.search(); return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
-
- - -
+
+
+ + +
-
- {results.map(this.renderItem)} -
-
- )} - +
+ {results.map(this.renderItem)} +
+
); } @@ -266,14 +253,11 @@ class LanguageDropdown extends React.PureComponent { placement: 'bottom', }; - handleToggle = ({ target }) => { - const { top } = target.getBoundingClientRect(); - + handleToggle = () => { if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); this.setState({ open: !this.state.open }); } @@ -293,13 +277,25 @@ class LanguageDropdown extends React.PureComponent { onChange(value); } + setTargetRef = c => { + this.target = c; + } + + findTarget = () => { + return this.target; + } + + handleOverlayEnter = (state) => { + this.setState({ placement: state.placement }); + } + render () { const { value, intl, frequentlyUsedLanguages } = this.props; const { open, placement } = this.state; return ( -
-
+
+
- - + + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js index 1f0e998d36..09bbc8e996 100644 --- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.js @@ -2,9 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { injectIntl, defineMessages } from 'react-intl'; import IconButton from '../../../components/icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from '../../ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import Icon from 'mastodon/components/icon'; @@ -29,15 +27,10 @@ class PrivacyDropdownMenu extends React.PureComponent { style: PropTypes.object, items: PropTypes.array.isRequired, value: PropTypes.string.isRequired, - placement: PropTypes.string.isRequired, onClose: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, }; - state = { - mounted: false, - }; - handleDocumentClick = e => { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); @@ -101,7 +94,6 @@ class PrivacyDropdownMenu extends React.PureComponent { document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); if (this.focusedItem) this.focusedItem.focus({ preventScroll: true }); - this.setState({ mounted: true }); } componentWillUnmount () { @@ -118,31 +110,23 @@ class PrivacyDropdownMenu extends React.PureComponent { } render () { - const { mounted } = this.state; - const { style, items, placement, value } = this.props; + const { style, items, value } = this.props; return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
- {items.map(item => ( -
-
- -
+
+ {items.map(item => ( +
+
+ +
-
- {item.text} - {item.meta} -
-
- ))} +
+ {item.text} + {item.meta} +
- )} - + ))} +
); } @@ -168,7 +152,7 @@ class PrivacyDropdown extends React.PureComponent { placement: 'bottom', }; - handleToggle = ({ target }) => { + handleToggle = () => { if (this.props.isUserTouching && this.props.isUserTouching()) { if (this.state.open) { this.props.onModalClose(); @@ -179,11 +163,9 @@ class PrivacyDropdown extends React.PureComponent { }); } } else { - const { top } = target.getBoundingClientRect(); if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); this.setState({ open: !this.state.open }); } } @@ -247,6 +229,18 @@ class PrivacyDropdown extends React.PureComponent { } } + setTargetRef = c => { + this.target = c; + } + + findTarget = () => { + return this.target; + } + + handleOverlayEnter = (state) => { + this.setState({ placement: state.placement }); + } + render () { const { value, container, disabled, intl } = this.props; const { open, placement } = this.state; @@ -255,7 +249,7 @@ class PrivacyDropdown extends React.PureComponent { return (
-
+
- - + + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.js index 8254fb607a..5820f8ca2e 100644 --- a/app/javascript/mastodon/features/compose/components/search.js +++ b/app/javascript/mastodon/features/compose/components/search.js @@ -1,9 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from '../../ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { searchEnabled } from '../../../initial_state'; import Icon from 'mastodon/components/icon'; @@ -14,31 +12,20 @@ const messages = defineMessages({ class SearchPopout extends React.PureComponent { - static propTypes = { - style: PropTypes.object, - }; - render () { - const { style } = this.props; const extraInformation = searchEnabled ? : ; return ( -
- - {({ opacity, scaleX, scaleY }) => ( -
-

+
+

-
    -
  • #example
  • -
  • @username@domain
  • -
  • URL
  • -
  • URL
  • -
+
    +
  • #example
  • +
  • @username@domain
  • +
  • URL
  • +
  • URL
  • +
- {extraInformation} -
- )} - + {extraInformation}
); } @@ -115,6 +102,10 @@ class Search extends React.PureComponent { this.setState({ expanded: false }); } + findTarget = () => { + return this.searchForm; + } + render () { const { intl, value, submitted } = this.props; const { expanded } = this.state; @@ -140,8 +131,14 @@ class Search extends React.PureComponent {
- - + + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/mastodon/reducers/dropdown_menu.js b/app/javascript/mastodon/reducers/dropdown_menu.js index a78a11acca..51bf9375bf 100644 --- a/app/javascript/mastodon/reducers/dropdown_menu.js +++ b/app/javascript/mastodon/reducers/dropdown_menu.js @@ -4,12 +4,12 @@ import { DROPDOWN_MENU_CLOSE, } from '../actions/dropdown_menu'; -const initialState = Immutable.Map({ openId: null, placement: null, keyboard: false, scroll_key: null }); +const initialState = Immutable.Map({ openId: null, keyboard: false, scroll_key: null }); export default function dropdownMenu(state = initialState, action) { switch (action.type) { case DROPDOWN_MENU_OPEN: - return state.merge({ openId: action.id, placement: action.placement, keyboard: action.keyboard, scroll_key: action.scroll_key }); + return state.merge({ openId: action.id, keyboard: action.keyboard, scroll_key: action.scroll_key }); case DROPDOWN_MENU_CLOSE: return state.get('openId') === action.id ? state.set('openId', null).set('scroll_key', null) : state; default: diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 928af8453e..123fe0c674 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -285,22 +285,8 @@ html { .dropdown-menu { background: $white; - &__arrow { - &.left { - border-left-color: $white; - } - - &.top { - border-top-color: $white; - } - - &.bottom { - border-bottom-color: $white; - } - - &.right { - border-right-color: $white; - } + &__arrow::before { + background-color: $white; } &__item { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 0439156f14..ad59303f45 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -363,8 +363,8 @@ } } -.dropdown-menu { - position: absolute; +body > [data-popper-placement] { + z-index: 3; } .invisible { @@ -1932,6 +1932,42 @@ a.account__display-name { text-decoration: none; } +.dropdown-animation { + animation: dropdown 300ms cubic-bezier(0.1, 0.7, 0.1, 1); + + @keyframes dropdown { + from { + opacity: 0; + transform: scaleX(0.85) scaleY(0.75); + } + + to { + opacity: 1; + transform: scaleX(1) scaleY(1); + } + } + + &.top { + transform-origin: bottom; + } + + &.right { + transform-origin: left; + } + + &.bottom { + transform-origin: top; + } + + &.left { + transform-origin: right; + } + + .reduce-motion & { + animation: none; + } +} + .dropdown { display: inline-block; } @@ -2016,36 +2052,42 @@ a.account__display-name { .dropdown-menu__arrow { position: absolute; - width: 0; - height: 0; - border: 0 solid transparent; - &.left { - right: -5px; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: $ui-secondary-color; + &::before { + content: ''; + display: block; + width: 14px; + height: 5px; + background-color: $ui-secondary-color; + mask-image: url("data:image/svg+xml;utf8,"); } &.top { bottom: -5px; - margin-left: -7px; - border-width: 5px 7px 0; - border-top-color: $ui-secondary-color; + + &::before { + transform: rotate(180deg); + } + } + + &.right { + left: -9px; + + &::before { + transform: rotate(-90deg); + } } &.bottom { top: -5px; - margin-left: -7px; - border-width: 0 7px 5px; - border-bottom-color: $ui-secondary-color; } - &.right { - left: -5px; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: $ui-secondary-color; + &.left { + right: -9px; + + &::before { + transform: rotate(90deg); + } } } @@ -4524,7 +4566,6 @@ a.status-card.compact:hover { } .privacy-dropdown__dropdown { - position: absolute; background: $simple-background-color; box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); border-radius: 4px; @@ -4630,7 +4671,6 @@ a.status-card.compact:hover { .language-dropdown { &__dropdown { - position: absolute; background: $simple-background-color; box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); border-radius: 4px; @@ -4877,7 +4917,6 @@ a.status-card.compact:hover { .modal-root__modal { pointer-events: auto; display: flex; - z-index: 9999; } .video-modal__container { diff --git a/package.json b/package.json index c8143f8a51..93ed7ea87f 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "react-intl": "^2.9.0", "react-motion": "^0.5.2", "react-notification": "^6.8.5", - "react-overlays": "^0.9.3", + "react-overlays": "^5.2.1", "react-redux": "^7.2.9", "react-redux-loading-bar": "^5.0.4", "react-router-dom": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 33268a5865..6e56f51d14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1029,7 +1029,7 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== @@ -1562,11 +1562,23 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71" integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA== +"@popperjs/core@^2.11.6": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + "@rails/ujs@^6.1.7": version "6.1.7" resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.7.tgz#b09dc5b2105dd267e8374c47e4490240451dc7f6" integrity sha512-0e7WQ4LE/+LEfW2zfAw9ppsB6A8RmxbdAUPAF++UT80epY+7emuQDkKXmaK0a9lp6An50RvzezI0cIQjp1A58w== +"@restart/hooks@^0.4.7": + version "0.4.7" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.7.tgz#d79ca6472c01ce04389fc73d4a79af1b5e33cd39" + integrity sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A== + dependencies: + dequal "^2.0.2" + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -1880,6 +1892,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@>=16.9.11": + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -1919,6 +1940,11 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== +"@types/warning@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" + integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA== + "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" @@ -3967,6 +3993,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +dequal@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -4072,7 +4103,7 @@ dom-accessibility-api@^0.5.6: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== -dom-helpers@^3.2.1, dom-helpers@^3.4.0: +dom-helpers@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== @@ -4087,6 +4118,14 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.6.3" csstype "^2.6.7" +dom-helpers@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -8630,14 +8669,6 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.4" -prop-types-extra@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" - integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== - dependencies: - react-is "^16.3.2" - warning "^4.0.0" - prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -8874,7 +8905,7 @@ react-intl@^2.9.0: intl-relativeformat "^2.1.0" invariant "^2.1.1" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.6: +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -8910,17 +8941,19 @@ react-notification@^6.8.5: dependencies: prop-types "^15.6.2" -react-overlays@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.9.3.tgz#5bac8c1e9e7e057a125181dee2d784864dd62902" - integrity sha512-u2T7nOLnK+Hrntho4p0Nxh+BsJl0bl4Xuwj/Y0a56xywLMetgAfyjnDVrudLXsNcKGaspoC+t3C1V80W9QQTdQ== +react-overlays@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-5.2.1.tgz#49dc007321adb6784e1f212403f0fb37a74ab86b" + integrity sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA== dependencies: - classnames "^2.2.5" - dom-helpers "^3.2.1" - prop-types "^15.5.10" - prop-types-extra "^1.0.1" - react-transition-group "^2.2.1" - warning "^3.0.0" + "@babel/runtime" "^7.13.8" + "@popperjs/core" "^2.11.6" + "@restart/hooks" "^0.4.7" + "@types/warning" "^3.0.0" + dom-helpers "^5.2.0" + prop-types "^15.7.2" + uncontrollable "^7.2.1" + warning "^4.0.3" react-redux-loading-bar@^5.0.4: version "5.0.4" @@ -9059,16 +9092,6 @@ react-toggle@^4.1.3: dependencies: classnames "^2.2.5" -react-transition-group@^2.2.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - react-transition-group@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683" @@ -10788,6 +10811,16 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -11062,7 +11095,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.0, warning@^4.0.1: +warning@^4.0.1, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== From 0c689b9d014324aba5b8751dacec4c0fc20b2038 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Wed, 11 Jan 2023 21:59:13 +0100 Subject: [PATCH 080/176] fix: allow verification when page size exceeds 1MB (using HTML5 parser) (#22879) * fix: allow verification when page size exceeds 1MB Truncates the page after 1MB instead Closes #15316 * switch to HTML5 parser, fix rubocop errors * undo rubocop fixes Co-authored-by: Chris Zubak-Skees --- app/lib/request.rb | 14 ++++++++---- app/services/verify_link_service.rb | 2 +- spec/lib/request_spec.rb | 5 +++++ spec/services/verify_link_service_spec.rb | 27 +++++++++++++++++++++++ 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/app/lib/request.rb b/app/lib/request.rb index b2819c8edc..0508169dcb 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -154,9 +154,7 @@ class Request end module ClientLimit - def body_with_limit(limit = 1.megabyte) - raise Mastodon::LengthValidationError if content_length.present? && content_length > limit - + def truncated_body(limit = 1.megabyte) if charset.nil? encoding = Encoding::BINARY else @@ -173,11 +171,19 @@ class Request contents << chunk chunk.clear - raise Mastodon::LengthValidationError if contents.bytesize > limit + break if contents.bytesize > limit end contents end + + def body_with_limit(limit = 1.megabyte) + raise Mastodon::LengthValidationError if content_length.present? && content_length > limit + + contents = truncated_body(limit) + raise Mastodon::LengthValidationError if contents.bytesize > limit + contents + end end if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production? diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb index 7496fe2d51..d049b52d16 100644 --- a/app/services/verify_link_service.rb +++ b/app/services/verify_link_service.rb @@ -26,7 +26,7 @@ class VerifyLinkService < BaseService def link_back_present? return false if @body.blank? - links = Nokogiri::HTML(@body).xpath('//a[contains(concat(" ", normalize-space(@rel), " "), " me ")]|//link[contains(concat(" ", normalize-space(@rel), " "), " me ")]') + links = Nokogiri::HTML5(@body).xpath('//a[contains(concat(" ", normalize-space(@rel), " "), " me ")]|//link[contains(concat(" ", normalize-space(@rel), " "), " me ")]') if links.any? { |link| link['href']&.downcase == @link_back.downcase } true diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb index 5eccf32014..8539944e28 100644 --- a/spec/lib/request_spec.rb +++ b/spec/lib/request_spec.rb @@ -120,6 +120,11 @@ describe Request do expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError end + it 'truncates large monolithic body' do + stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Content-Length' => 2.megabytes }) + expect(subject.perform { |response| response.truncated_body.bytesize }).to be < 2.megabytes + end + it 'uses binary encoding if Content-Type does not tell encoding' do stub_request(:any, 'http://example.com').to_return(body: '', headers: { 'Content-Type' => 'text/html' }) expect(subject.perform { |response| response.body_with_limit.encoding }).to eq Encoding::BINARY diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb index 52ba454cce..391560f1ce 100644 --- a/spec/services/verify_link_service_spec.rb +++ b/spec/services/verify_link_service_spec.rb @@ -73,6 +73,33 @@ RSpec.describe VerifyLinkService, type: :service do end end + context 'when a document is truncated but the link back is valid' do + let(:html) do + " + + + + + Date: Wed, 11 Jan 2023 22:21:10 +0100 Subject: [PATCH 081/176] Fix sanitizer parsing link text as HTML when stripping unsupported links (#22558) --- lib/sanitize_ext/sanitize_config.rb | 2 +- spec/lib/sanitize_config_spec.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index a2e1d9d01b..baf6526626 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -49,7 +49,7 @@ class Sanitize end end - current_node.replace(current_node.text) unless LINK_PROTOCOLS.include?(scheme) + current_node.replace(Nokogiri::XML::Text.new(current_node.text, current_node.document)) unless LINK_PROTOCOLS.include?(scheme) end UNSUPPORTED_ELEMENTS_TRANSFORMER = lambda do |env| diff --git a/spec/lib/sanitize_config_spec.rb b/spec/lib/sanitize_config_spec.rb index 747d81158d..c9543ceb0c 100644 --- a/spec/lib/sanitize_config_spec.rb +++ b/spec/lib/sanitize_config_spec.rb @@ -38,6 +38,10 @@ describe Sanitize::Config do expect(Sanitize.fragment('Test', subject)).to eq 'Test' end + it 'does not re-interpret HTML when removing unsupported links' do + expect(Sanitize.fragment('Test<a href="https://example.com">test</a>', subject)).to eq 'Test<a href="https://example.com">test</a>' + end + it 'keeps a with href' do expect(Sanitize.fragment('Test', subject)).to eq 'Test' end From a36dfbb2aa53b8ce3e4c88826aeda9f25d98e49a Mon Sep 17 00:00:00 2001 From: Peter Simonsson Date: Wed, 11 Jan 2023 21:58:46 +0100 Subject: [PATCH 082/176] [Glitch] Fix dropdown menu positions when scrolling Port fd33bcb3b25d3eaf593ade0aa8709a1184fc254e to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/actions/dropdown_menu.js | 4 +- .../glitch/components/dropdown_menu.js | 100 +++++++----------- .../containers/dropdown_menu_container.js | 5 +- .../containers/dropdown_menu_container.js | 5 +- .../features/compose/components/dropdown.js | 47 +++++--- .../compose/components/dropdown_menu.js | 46 +------- .../components/emoji_picker_dropdown.js | 39 ++++--- .../compose/components/language_dropdown.js | 81 +++++++------- .../features/compose/components/search.js | 47 ++++---- .../flavours/glitch/reducers/dropdown_menu.js | 4 +- .../styles/components/compose_form.scss | 2 - .../glitch/styles/components/index.scss | 85 +++++++++++---- .../glitch/styles/components/modal.scss | 1 - .../glitch/styles/mastodon-light/diff.scss | 18 +--- 14 files changed, 231 insertions(+), 253 deletions(-) diff --git a/app/javascript/flavours/glitch/actions/dropdown_menu.js b/app/javascript/flavours/glitch/actions/dropdown_menu.js index fb6e55612e..023151d4bf 100644 --- a/app/javascript/flavours/glitch/actions/dropdown_menu.js +++ b/app/javascript/flavours/glitch/actions/dropdown_menu.js @@ -1,8 +1,8 @@ export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN'; export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE'; -export function openDropdownMenu(id, placement, keyboard, scroll_key) { - return { type: DROPDOWN_MENU_OPEN, id, placement, keyboard, scroll_key }; +export function openDropdownMenu(id, keyboard, scroll_key) { + return { type: DROPDOWN_MENU_OPEN, id, keyboard, scroll_key }; } export function closeDropdownMenu(id) { diff --git a/app/javascript/flavours/glitch/components/dropdown_menu.js b/app/javascript/flavours/glitch/components/dropdown_menu.js index 036e0b9090..7c70f750fd 100644 --- a/app/javascript/flavours/glitch/components/dropdown_menu.js +++ b/app/javascript/flavours/glitch/components/dropdown_menu.js @@ -2,9 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import IconButton from './icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from '../features/ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import { CircularProgress } from 'flavours/glitch/components/loading_indicator'; @@ -24,9 +22,6 @@ class DropdownMenu extends React.PureComponent { scrollable: PropTypes.bool, onClose: PropTypes.func.isRequired, style: PropTypes.object, - placement: PropTypes.string, - arrowOffsetLeft: PropTypes.string, - arrowOffsetTop: PropTypes.string, openedViaKeyboard: PropTypes.bool, renderItem: PropTypes.func, renderHeader: PropTypes.func, @@ -35,11 +30,6 @@ class DropdownMenu extends React.PureComponent { static defaultProps = { style: {}, - placement: 'bottom', - }; - - state = { - mounted: false, }; handleDocumentClick = e => { @@ -56,8 +46,6 @@ class DropdownMenu extends React.PureComponent { if (this.focusedItem && this.props.openedViaKeyboard) { this.focusedItem.focus({ preventScroll: true }); } - - this.setState({ mounted: true }); } componentWillUnmount () { @@ -139,40 +127,28 @@ class DropdownMenu extends React.PureComponent { } render () { - const { items, style, placement, arrowOffsetLeft, arrowOffsetTop, scrollable, renderHeader, loading } = this.props; - const { mounted } = this.state; + const { items, scrollable, renderHeader, loading } = this.props; let renderItem = this.props.renderItem || this.renderItem; return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
-
+
+ {loading && ( + + )} -
- {loading && ( - - )} - - {!loading && renderHeader && ( -
- {renderHeader(items)} -
- )} - - {!loading && ( -
    - {items.map((option, i) => renderItem(option, i, { onClick: this.handleClick, onKeyPress: this.handleItemKeyPress }))} -
- )} -
+ {!loading && renderHeader && ( +
+ {renderHeader(items)}
)} - + + {!loading && ( +
    + {items.map((option, i) => renderItem(option, i, { onClick: this.handleClick, onKeyPress: this.handleItemKeyPress }))} +
+ )} +
); } @@ -197,7 +173,6 @@ export default class Dropdown extends React.PureComponent { isUserTouching: PropTypes.func, onOpen: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired, - dropdownPlacement: PropTypes.string, openDropdownId: PropTypes.number, openedViaKeyboard: PropTypes.bool, renderItem: PropTypes.func, @@ -213,13 +188,11 @@ export default class Dropdown extends React.PureComponent { id: id++, }; - handleClick = ({ target, type }) => { + handleClick = ({ type }) => { if (this.state.id === this.props.openDropdownId) { this.handleClose(); } else { - const { top } = target.getBoundingClientRect(); - const placement = top * 2 < innerHeight ? 'bottom' : 'top'; - this.props.onOpen(this.state.id, this.handleItemClick, placement, type !== 'click'); + this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click'); } } @@ -303,7 +276,6 @@ export default class Dropdown extends React.PureComponent { disabled, loading, scrollable, - dropdownPlacement, openDropdownId, openedViaKeyboard, children, @@ -314,7 +286,6 @@ export default class Dropdown extends React.PureComponent { const open = this.state.id === openDropdownId; const button = children ? React.cloneElement(React.Children.only(children), { - ref: this.setTargetRef, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleButtonKeyDown, @@ -326,7 +297,6 @@ export default class Dropdown extends React.PureComponent { active={open} disabled={disabled} size={size} - ref={this.setTargetRef} onClick={this.handleClick} onMouseDown={this.handleMouseDown} onKeyDown={this.handleButtonKeyDown} @@ -336,19 +306,27 @@ export default class Dropdown extends React.PureComponent { return ( - {button} - - - + + {button} + + + {({ props, arrowProps, placement }) => ( +
+
+
+ +
+
+ )} ); diff --git a/app/javascript/flavours/glitch/components/edited_timestamp/containers/dropdown_menu_container.js b/app/javascript/flavours/glitch/components/edited_timestamp/containers/dropdown_menu_container.js index 8b73663d44..a1519757de 100644 --- a/app/javascript/flavours/glitch/components/edited_timestamp/containers/dropdown_menu_container.js +++ b/app/javascript/flavours/glitch/components/edited_timestamp/containers/dropdown_menu_container.js @@ -4,7 +4,6 @@ import { fetchHistory } from 'flavours/glitch/actions/history'; import DropdownMenu from 'flavours/glitch/components/dropdown_menu'; const mapStateToProps = (state, { statusId }) => ({ - dropdownPlacement: state.getIn(['dropdown_menu', 'placement']), openDropdownId: state.getIn(['dropdown_menu', 'openId']), openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']), items: state.getIn(['history', statusId, 'items']), @@ -13,9 +12,9 @@ const mapStateToProps = (state, { statusId }) => ({ const mapDispatchToProps = (dispatch, { statusId }) => ({ - onOpen (id, onItemClick, dropdownPlacement, keyboard) { + onOpen (id, onItemClick, keyboard) { dispatch(fetchHistory(statusId)); - dispatch(openDropdownMenu(id, dropdownPlacement, keyboard)); + dispatch(openDropdownMenu(id, keyboard)); }, onClose (id) { diff --git a/app/javascript/flavours/glitch/containers/dropdown_menu_container.js b/app/javascript/flavours/glitch/containers/dropdown_menu_container.js index b2dff63db8..43ce8ca631 100644 --- a/app/javascript/flavours/glitch/containers/dropdown_menu_container.js +++ b/app/javascript/flavours/glitch/containers/dropdown_menu_container.js @@ -5,18 +5,17 @@ import DropdownMenu from 'flavours/glitch/components/dropdown_menu'; import { isUserTouching } from '../is_mobile'; const mapStateToProps = state => ({ - dropdownPlacement: state.getIn(['dropdown_menu', 'placement']), openDropdownId: state.getIn(['dropdown_menu', 'openId']), openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']), }); const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({ - onOpen(id, onItemClick, dropdownPlacement, keyboard) { + onOpen(id, onItemClick, keyboard) { dispatch(isUserTouching() ? openModal('ACTIONS', { status, actions: items, onClick: onItemClick, - }) : openDropdownMenu(id, dropdownPlacement, keyboard, scrollKey)); + }) : openDropdownMenu(id, keyboard, scrollKey)); }, onClose(id) { diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown.js b/app/javascript/flavours/glitch/features/compose/components/dropdown.js index 3de198c452..924618930e 100644 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/dropdown.js @@ -2,7 +2,7 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; -import Overlay from 'react-overlays/lib/Overlay'; +import Overlay from 'react-overlays/Overlay'; // Components. import IconButton from 'flavours/glitch/components/icon_button'; @@ -45,7 +45,7 @@ export default class ComposerOptionsDropdown extends React.PureComponent { }; // Toggles opening and closing the dropdown. - handleToggle = ({ target, type }) => { + handleToggle = ({ type }) => { const { onModalOpen } = this.props; const { open } = this.state; @@ -59,11 +59,9 @@ export default class ComposerOptionsDropdown extends React.PureComponent { } } } else { - const { top } = target.getBoundingClientRect(); if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); this.setState({ open: !this.state.open, openedViaKeyboard: type !== 'click' }); } } @@ -158,6 +156,18 @@ export default class ComposerOptionsDropdown extends React.PureComponent { }; } + setTargetRef = c => { + this.target = c; + } + + findTarget = () => { + return this.target; + } + + handleOverlayEnter = (state) => { + this.setState({ placement: state.placement }); + } + // Rendering. render () { const { @@ -179,6 +189,7 @@ export default class ComposerOptionsDropdown extends React.PureComponent {
- + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js b/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js index 09e8fc35ae..c4895dfd0d 100644 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js +++ b/app/javascript/flavours/glitch/features/compose/components/dropdown_menu.js @@ -1,7 +1,6 @@ // Package imports. import PropTypes from 'prop-types'; import React from 'react'; -import spring from 'react-motion/lib/spring'; import ImmutablePureComponent from 'react-immutable-pure-component'; import classNames from 'classnames'; @@ -10,15 +9,8 @@ import Icon from 'flavours/glitch/components/icon'; // Utils. import { withPassive } from 'flavours/glitch/utils/dom_helpers'; -import Motion from '../../ui/util/optional_motion'; import { assignHandlers } from 'flavours/glitch/utils/react_helpers'; -// The spring to use with our motion. -const springMotion = spring(1, { - damping: 35, - stiffness: 400, -}); - // The component. export default class ComposerOptionsDropdownContent extends React.PureComponent { @@ -44,7 +36,6 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent }; state = { - mounted: false, value: this.props.openedViaKeyboard ? this.props.items[0].name : undefined, }; @@ -56,7 +47,7 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent } // Stores our node in `this.node`. - handleRef = (node) => { + setRef = (node) => { this.node = node; } @@ -69,7 +60,6 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent } else { this.node.firstChild.focus({ preventScroll: true }); } - this.setState({ mounted: true }); } // On unmounting, we remove our listeners. @@ -191,7 +181,6 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent // Rendering. render () { - const { mounted } = this.state; const { items, onChange, @@ -201,36 +190,9 @@ export default class ComposerOptionsDropdownContent extends React.PureComponent // The result. return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
- {!!items && items.map((item, i) => this.renderItem(item, i))} -
- )} -
+
+ {!!items && items.map((item, i) => this.renderItem(item, i))} +
); } diff --git a/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.js b/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.js index 546d398a0b..38c7355514 100644 --- a/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/emoji_picker_dropdown.js @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components'; -import Overlay from 'react-overlays/lib/Overlay'; +import Overlay from 'react-overlays/Overlay'; import classNames from 'classnames'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { supportsPassiveEvents } from 'detect-passive-events'; @@ -155,9 +155,6 @@ class EmojiPickerMenu extends React.PureComponent { onClose: PropTypes.func.isRequired, onPick: PropTypes.func.isRequired, style: PropTypes.object, - placement: PropTypes.string, - arrowOffsetLeft: PropTypes.string, - arrowOffsetTop: PropTypes.string, intl: PropTypes.object.isRequired, skinTone: PropTypes.number.isRequired, onSkinTone: PropTypes.func.isRequired, @@ -326,14 +323,13 @@ class EmojiPickerDropdown extends React.PureComponent { state = { active: false, loading: false, - placement: null, }; setRef = (c) => { this.dropdown = c; } - onShowDropdown = ({ target }) => { + onShowDropdown = () => { this.setState({ active: true }); if (!EmojiPicker) { @@ -348,9 +344,6 @@ class EmojiPickerDropdown extends React.PureComponent { this.setState({ loading: false, active: false }); }); } - - const { top } = target.getBoundingClientRect(); - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); } onHideDropdown = () => { @@ -384,7 +377,7 @@ class EmojiPickerDropdown extends React.PureComponent { render () { const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis, button } = this.props; const title = intl.formatMessage(messages.emoji); - const { active, loading, placement } = this.state; + const { active, loading } = this.state; return (
@@ -396,16 +389,22 @@ class EmojiPickerDropdown extends React.PureComponent { />}
- - + + {({ props, placement })=> ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js index a3256aa9b0..07d138f52b 100644 --- a/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/language_dropdown.js @@ -2,9 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { injectIntl, defineMessages } from 'react-intl'; import TextIconButton from './text_icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from 'flavours/glitch/features/ui/util/optional_motion'; -import spring from 'react-motion/lib/spring'; +import Overlay from 'react-overlays/Overlay'; import { supportsPassiveEvents } from 'detect-passive-events'; import classNames from 'classnames'; import { languages as preloadedLanguages } from 'flavours/glitch/initial_state'; @@ -22,10 +20,8 @@ const listenerOptions = supportsPassiveEvents ? { passive: true } : false; class LanguageDropdownMenu extends React.PureComponent { static propTypes = { - style: PropTypes.object, value: PropTypes.string.isRequired, frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string).isRequired, - placement: PropTypes.string.isRequired, onClose: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, languages: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)), @@ -37,7 +33,6 @@ class LanguageDropdownMenu extends React.PureComponent { }; state = { - mounted: false, searchValue: '', }; @@ -50,7 +45,6 @@ class LanguageDropdownMenu extends React.PureComponent { componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); - this.setState({ mounted: true }); // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need // to wait for a frame before focusing @@ -222,29 +216,22 @@ class LanguageDropdownMenu extends React.PureComponent { } render () { - const { style, placement, intl } = this.props; - const { mounted, searchValue } = this.state; + const { intl } = this.props; + const { searchValue } = this.state; const isSearching = searchValue !== ''; const results = this.search(); return ( - - {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
-
- - -
+
+
+ + +
-
- {results.map(this.renderItem)} -
-
- )} - +
+ {results.map(this.renderItem)} +
+
); } @@ -266,14 +253,11 @@ class LanguageDropdown extends React.PureComponent { placement: 'bottom', }; - handleToggle = ({ target }) => { - const { top } = target.getBoundingClientRect(); - + handleToggle = () => { if (this.state.open && this.activeElement) { this.activeElement.focus({ preventScroll: true }); } - this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' }); this.setState({ open: !this.state.open }); } @@ -293,13 +277,25 @@ class LanguageDropdown extends React.PureComponent { onChange(value); } + setTargetRef = c => { + this.target = c; + } + + findTarget = () => { + return this.target; + } + + handleOverlayEnter = (state) => { + this.setState({ placement: state.placement }); + } + render () { const { value, intl, frequentlyUsedLanguages } = this.props; const { open, placement } = this.state; return ( -
-
+
+
- - + + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/flavours/glitch/features/compose/components/search.js b/app/javascript/flavours/glitch/features/compose/components/search.js index 9f90a767d0..e5874de75e 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search.js +++ b/app/javascript/flavours/glitch/features/compose/components/search.js @@ -3,13 +3,12 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import { connect } from 'react-redux'; -import spring from 'react-motion/lib/spring'; import { injectIntl, FormattedMessage, defineMessages, } from 'react-intl'; -import Overlay from 'react-overlays/lib/Overlay'; +import Overlay from 'react-overlays/Overlay'; // Components. import Icon from 'flavours/glitch/components/icon'; @@ -17,7 +16,6 @@ import Icon from 'flavours/glitch/components/icon'; // Utils. import { focusRoot } from 'flavours/glitch/utils/dom_helpers'; import { searchEnabled } from 'flavours/glitch/initial_state'; -import Motion from '../../ui/util/optional_motion'; const messages = defineMessages({ placeholder: { id: 'search.placeholder', defaultMessage: 'Search' }, @@ -26,31 +24,20 @@ const messages = defineMessages({ class SearchPopout extends React.PureComponent { - static propTypes = { - style: PropTypes.object, - }; - render () { - const { style } = this.props; const extraInformation = searchEnabled ? : ; return ( -
- - {({ opacity, scaleX, scaleY }) => ( -
-

+
+

-
    -
  • #example
  • -
  • @username@domain
  • -
  • URL
  • -
  • URL
  • -
+
    +
  • #example
  • +
  • @username@domain
  • +
  • URL
  • +
  • URL
  • +
- {extraInformation} -
- )} - + {extraInformation}
); } @@ -136,6 +123,10 @@ class Search extends React.PureComponent { } } + findTarget = () => { + return this.searchForm; + } + render () { const { intl, value, submitted } = this.props; const { expanded } = this.state; @@ -161,8 +152,14 @@ class Search extends React.PureComponent {
- - + + {({ props, placement }) => ( +
+
+ +
+
+ )}
); diff --git a/app/javascript/flavours/glitch/reducers/dropdown_menu.js b/app/javascript/flavours/glitch/reducers/dropdown_menu.js index a78a11acca..51bf9375bf 100644 --- a/app/javascript/flavours/glitch/reducers/dropdown_menu.js +++ b/app/javascript/flavours/glitch/reducers/dropdown_menu.js @@ -4,12 +4,12 @@ import { DROPDOWN_MENU_CLOSE, } from '../actions/dropdown_menu'; -const initialState = Immutable.Map({ openId: null, placement: null, keyboard: false, scroll_key: null }); +const initialState = Immutable.Map({ openId: null, keyboard: false, scroll_key: null }); export default function dropdownMenu(state = initialState, action) { switch (action.type) { case DROPDOWN_MENU_OPEN: - return state.merge({ openId: action.id, placement: action.placement, keyboard: action.keyboard, scroll_key: action.scroll_key }); + return state.merge({ openId: action.id, keyboard: action.keyboard, scroll_key: action.scroll_key }); case DROPDOWN_MENU_CLOSE: return state.get('openId') === action.id ? state.set('openId', null).set('scroll_key', null) : state; default: diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss index 72d3aad1d3..aa2d52ed04 100644 --- a/app/javascript/flavours/glitch/styles/components/compose_form.scss +++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss @@ -586,7 +586,6 @@ } .privacy-dropdown__dropdown { - position: absolute; border-radius: 4px; box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); background: $simple-background-color; @@ -653,7 +652,6 @@ .language-dropdown { &__dropdown { - position: absolute; background: $simple-background-color; box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4); border-radius: 4px; diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index b7a54cd2b4..d50316366b 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -346,9 +346,8 @@ } } -.dropdown-menu { - position: absolute; - transform-origin: 50% 0; +body > [data-popper-placement] { + z-index: 3; } .invisible { @@ -532,6 +531,42 @@ } } +.dropdown-animation { + animation: dropdown 300ms cubic-bezier(0.1, 0.7, 0.1, 1); + + @keyframes dropdown { + from { + opacity: 0; + transform: scaleX(0.85) scaleY(0.75); + } + + to { + opacity: 1; + transform: scaleX(1) scaleY(1); + } + } + + &.top { + transform-origin: bottom; + } + + &.right { + transform-origin: left; + } + + &.bottom { + transform-origin: top; + } + + &.left { + transform-origin: right; + } + + .reduce-motion & { + animation: none; + } +} + .dropdown { display: inline-block; } @@ -600,36 +635,42 @@ .dropdown-menu__arrow { position: absolute; - width: 0; - height: 0; - border: 0 solid transparent; - &.left { - right: -5px; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: $ui-secondary-color; + &::before { + content: ''; + display: block; + width: 14px; + height: 5px; + background-color: $ui-secondary-color; + mask-image: url("data:image/svg+xml;utf8,"); } &.top { bottom: -5px; - margin-left: -7px; - border-width: 5px 7px 0; - border-top-color: $ui-secondary-color; + + &::before { + transform: rotate(180deg); + } + } + + &.right { + left: -9px; + + &::before { + transform: rotate(-90deg); + } } &.bottom { top: -5px; - margin-left: -7px; - border-width: 0 7px 5px; - border-bottom-color: $ui-secondary-color; } - &.right { - left: -5px; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: $ui-secondary-color; + &.left { + right: -9px; + + &::before { + transform: rotate(90deg); + } } } diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss index 8ba8bec102..972e01e7d3 100644 --- a/app/javascript/flavours/glitch/styles/components/modal.scss +++ b/app/javascript/flavours/glitch/styles/components/modal.scss @@ -37,7 +37,6 @@ .modal-root__modal { pointer-events: auto; display: flex; - z-index: 9999; } .media-modal__zoom-button { diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index 9fc1aed2a2..2ec2da8332 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -285,22 +285,8 @@ html { .dropdown-menu { background: $white; - &__arrow { - &.left { - border-left-color: $white; - } - - &.top { - border-top-color: $white; - } - - &.bottom { - border-bottom-color: $white; - } - - &.right { - border-right-color: $white; - } + &__arrow::before { + background-color: $white; } &__item { From ebe2c1093251d0396d6dbd58120bbb92f59cc1c9 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 12 Jan 2023 14:11:55 +0100 Subject: [PATCH 083/176] Change wording of the OAuth scopes descriptions (#22491) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - change `all` from “Everything” to “Full access to your Mastodon account” - change `follow` from “Relationships” to “Follows, Mutes and Blocks” --- config/locales/doorkeeper.en.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml index 2df0056c21..a28f91c0e0 100644 --- a/config/locales/doorkeeper.en.yml +++ b/config/locales/doorkeeper.en.yml @@ -122,14 +122,14 @@ en: admin/accounts: Administration of accounts admin/all: All administrative functions admin/reports: Administration of reports - all: Everything + all: Full access to your Mastodon account blocks: Blocks bookmarks: Bookmarks conversations: Conversations crypto: End-to-end encryption favourites: Favourites filters: Filters - follow: Relationships + follow: Follows, Mutes and Blocks follows: Follows lists: Lists media: Media attachments From f4a6365f55c3b16494337e0880b42108cc4a171a Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 12 Jan 2023 16:43:02 +0100 Subject: [PATCH 084/176] Remove hardcoded width from dropdown overlays (#23062) * Remove hardcoded width from dropdown overlays * Fix emoji picker position --- .../mastodon/features/compose/components/language_dropdown.js | 2 +- .../mastodon/features/compose/components/privacy_dropdown.js | 2 +- app/javascript/styles/mastodon/components.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.js index 4254a4926b..2dd406b4b9 100644 --- a/app/javascript/mastodon/features/compose/components/language_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/language_dropdown.js @@ -307,7 +307,7 @@ class LanguageDropdown extends React.PureComponent { {({ props, placement }) => ( -
+
{({ props, placement }) => ( -
+
Date: Thu, 12 Jan 2023 16:43:02 +0100 Subject: [PATCH 085/176] [Glitch] Remove hardcoded width from dropdown overlays Port f4a6365f55c3b16494337e0880b42108cc4a171a to glitch-soc Signed-off-by: Claire --- .../flavours/glitch/features/compose/components/dropdown.js | 2 +- .../glitch/features/compose/components/language_dropdown.js | 2 +- app/javascript/flavours/glitch/styles/components/emoji.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown.js b/app/javascript/flavours/glitch/features/compose/components/dropdown.js index 924618930e..d98b311d9a 100644 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown.js +++ b/app/javascript/flavours/glitch/features/compose/components/dropdown.js @@ -221,7 +221,7 @@ export default class ComposerOptionsDropdown extends React.PureComponent { popperConfig={{ strategy: 'fixed', onFirstUpdate: this.handleOverlayEnter }} > {({ props, placement }) => ( -
+
{({ props, placement }) => ( -
+
Date: Fri, 13 Jan 2023 10:17:07 +0100 Subject: [PATCH 086/176] Fix incorrect env file generation in mastodon:setup (#23072) Regression from #23012 --- lib/tasks/mastodon.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index cd6d1bcabc..32040feec9 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -399,7 +399,7 @@ namespace :mastodon do escaped = dotenv_escape(value) incompatible_syntax = true if value != escaped - escaped + "#{key}=#{escaped}" end.join("\n") generated_header = "# Generated with mastodon:setup on #{Time.now.utc}\n\n".dup From 21a1a8ee887f82cb36b3d21011a0235e7bfc8e45 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 13 Jan 2023 10:46:52 +0100 Subject: [PATCH 087/176] Fix crash when marking statuses as sensitive while some statuses are deleted (#22134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Do not offer to mark statuses as sensitive if there is no undeleted status with media attachments * Fix crash when marking statuses as sensitive while some statuses are deleted Fixes #21910 * Fix multiple strikes being created for a single report when selecting “Mark as sensitive” * Add tests --- app/models/admin/status_batch_action.rb | 16 +++---- app/views/admin/reports/_actions.html.haml | 2 +- .../admin/reports/actions_controller_spec.rb | 42 +++++++++++++++++++ 3 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 spec/controllers/admin/reports/actions_controller_spec.rb diff --git a/app/models/admin/status_batch_action.rb b/app/models/admin/status_batch_action.rb index 0f019b854d..39cd7d0eb8 100644 --- a/app/models/admin/status_batch_action.rb +++ b/app/models/admin/status_batch_action.rb @@ -73,7 +73,7 @@ class Admin::StatusBatchAction # Can't use a transaction here because UpdateStatusService queues # Sidekiq jobs statuses.includes(:media_attachments, :preview_cards).find_each do |status| - next unless status.with_media? || status.with_preview_card? + next if status.discarded? || !(status.with_media? || status.with_preview_card?) authorize([:admin, status], :update?) @@ -89,15 +89,15 @@ class Admin::StatusBatchAction report.resolve!(current_account) log_action(:resolve, report) end - - @warning = target_account.strikes.create!( - action: :mark_statuses_as_sensitive, - account: current_account, - report: report, - status_ids: status_ids - ) end + @warning = target_account.strikes.create!( + action: :mark_statuses_as_sensitive, + account: current_account, + report: report, + status_ids: status_ids + ) + UserMailer.warning(target_account.user, @warning).deliver_later! if warnable? end diff --git a/app/views/admin/reports/_actions.html.haml b/app/views/admin/reports/_actions.html.haml index 404d53a773..486eb486c7 100644 --- a/app/views/admin/reports/_actions.html.haml +++ b/app/views/admin/reports/_actions.html.haml @@ -5,7 +5,7 @@ = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' .report-actions__item__description = t('admin.reports.actions.resolve_description_html') - - if @statuses.any? { |status| status.with_media? || status.with_preview_card? } + - if @statuses.any? { |status| (status.with_media? || status.with_preview_card?) && !status.discarded? } .report-actions__item .report-actions__item__button = button_tag t('admin.reports.mark_as_sensitive'), name: :mark_as_sensitive, class: 'button' diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb new file mode 100644 index 0000000000..6609798dc0 --- /dev/null +++ b/spec/controllers/admin/reports/actions_controller_spec.rb @@ -0,0 +1,42 @@ +require 'rails_helper' + +describe Admin::Reports::ActionsController do + render_views + + let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + let(:account) { Fabricate(:account) } + let!(:status) { Fabricate(:status, account: account) } + let(:media_attached_status) { Fabricate(:status, account: account) } + let!(:media_attachment) { Fabricate(:media_attachment, account: account, status: media_attached_status) } + let(:media_attached_deleted_status) { Fabricate(:status, account: account, deleted_at: 1.day.ago) } + let!(:media_attachment2) { Fabricate(:media_attachment, account: account, status: media_attached_deleted_status) } + let(:last_media_attached_status) { Fabricate(:status, account: account) } + let!(:last_media_attachment) { Fabricate(:media_attachment, account: account, status: last_media_attached_status) } + let!(:last_status) { Fabricate(:status, account: account) } + + before do + sign_in user, scope: :user + end + + describe 'POST #create' do + let(:report) { Fabricate(:report, status_ids: status_ids, account: user.account, target_account: account) } + let(:status_ids) { [media_attached_status.id, media_attached_deleted_status.id] } + + before do + post :create, params: { report_id: report.id, action => '' } + end + + context 'when action is mark_as_sensitive' do + + let(:action) { 'mark_as_sensitive' } + + it 'resolves the report' do + expect(report.reload.action_taken_at).to_not be_nil + end + + it 'marks the non-deleted as sensitive' do + expect(media_attached_status.reload.sensitive).to eq true + end + end + end +end From f79c200f7ee5c381751ee615cd8ac12b59800919 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 13 Jan 2023 11:03:14 +0100 Subject: [PATCH 088/176] Change wording of admin report handling actions (#18388) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Change admin report handling UI to display appropriate text for remote reports Change from “Decide which action to take to resolve this report. If you take a punitive action against the reported account, an e-mail notification will be sent to them, except when the Spam category is selected.” to “Decide which action to take to resolve this report. This will only affect how your server communicates with this remote account and handle its content.” * Reword admin actions descriptions to make clear which admin actions close reports --- app/views/admin/reports/show.html.haml | 2 +- config/locales/en.yml | 5 +++-- config/locales/simple_form.en.yml | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 5a45b9b781..a286aaec33 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -181,7 +181,7 @@ - if @report.unresolved? %hr.spacer/ - %p#actions= t 'admin.reports.actions_description_html' + %p#actions= t(@report.target_account.local? ? 'admin.reports.actions_description_html' : 'admin.reports.actions_description_remote_html') = render partial: 'admin/reports/actions' diff --git a/config/locales/en.yml b/config/locales/en.yml index 075ce2136f..2a8fe24631 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -575,9 +575,10 @@ en: mark_as_sensitive_description_html: The media in the reported posts will be marked as sensitive and a strike will be recorded to help you escalate on future infractions by the same account. other_description_html: See more options for controlling the account's behaviour and customize communication to the reported account. resolve_description_html: No action will be taken against the reported account, no strike recorded, and the report will be closed. - silence_description_html: The profile will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted. - suspend_description_html: The profile and all its contents will become inaccessible until it is eventually deleted. Interacting with the account will be impossible. Reversible within 30 days. + silence_description_html: The account will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted. Closes all reports against this account. + suspend_description_html: The account and all its contents will be inaccessible and eventually deleted, and interacting with it will be impossible. Reversible within 30 days. Closes all reports against this account. actions_description_html: Decide which action to take to resolve this report. If you take a punitive action against the reported account, an e-mail notification will be sent to them, except when the Spam category is selected. + actions_description_remote_html: Decide which action to take to resolve this report. This will only affect how your server communicates with this remote account and handle its content. add_to_report: Add more to report are_you_sure: Are you sure? assign_to_self: Assign to me diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 6edf7b4e9e..43b9654f1f 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -18,8 +18,8 @@ en: disable: Prevent the user from using their account, but do not delete or hide their contents. none: Use this to send a warning to the user, without triggering any other action. sensitive: Force all this user's media attachments to be flagged as sensitive. - silence: Prevent the user from being able to post with public visibility, hide their posts and notifications from people not following them. - suspend: Prevent any interaction from or to this account and delete its contents. Revertible within 30 days. + silence: Prevent the user from being able to post with public visibility, hide their posts and notifications from people not following them. Closes all reports against this account. + suspend: Prevent any interaction from or to this account and delete its contents. Revertible within 30 days. Closes all reports against this account. 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 From 332a411fadf961f52706db1e358d92d92ed8bf49 Mon Sep 17 00:00:00 2001 From: nametoolong Date: Fri, 13 Jan 2023 22:12:26 +0800 Subject: [PATCH 089/176] Remove title from mailer layout (#23078) --- app/views/layouts/mailer.html.haml | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index f26de8d999..d816f1b8c0 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -4,8 +4,6 @@ %meta{ 'http-equiv' => 'Content-Type', 'content' => 'text/html; charset=utf-8' }/ %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, shrink-to-fit=no' } - %title/ - = stylesheet_pack_tag 'mailer' %body{ dir: locale_direction } %table.email-table{ cellspacing: 0, cellpadding: 0 } From ff70e5019910c309f8ab38d729c4eb5819512698 Mon Sep 17 00:00:00 2001 From: David Freedman Date: Fri, 13 Jan 2023 15:40:06 +0000 Subject: [PATCH 090/176] Don't crash on unobtainable avatars (#22462) --- app/models/concerns/omniauthable.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb index a90d5d888a..feac0a1f5e 100644 --- a/app/models/concerns/omniauthable.rb +++ b/app/models/concerns/omniauthable.rb @@ -55,7 +55,14 @@ module Omniauthable user = User.new(user_params_from_auth(email, auth)) - user.account.avatar_remote_url = auth.info.image if /\A#{URI::DEFAULT_PARSER.make_regexp(%w(http https))}\z/.match?(auth.info.image) + begin + if /\A#{URI::DEFAULT_PARSER.make_regexp(%w(http https))}\z/.match?(auth.info.image) + user.account.avatar_remote_url = auth.info.image + end + rescue Mastodon::UnexpectedResponseError + user.account.avatar_remote_url = nil + end + user.skip_confirmation! if email_is_verified user.save! user From f33e22ae4c32d6a01b2e706bb0b55f961689f03f Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Fri, 13 Jan 2023 16:40:21 +0100 Subject: [PATCH 091/176] Allow changing hide_collections setting with the api (#22790) * Allow changing hide_collections setting with the api This is currently only possible with app/controllers/settings/profiles_controller.rb and is the only difference in the allowed parameter between the two controllers * Fix the lint issue * Use normal indent --- .../api/v1/accounts/credentials_controller.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb index 64b5cb747c..94b707771f 100644 --- a/app/controllers/api/v1/accounts/credentials_controller.rb +++ b/app/controllers/api/v1/accounts/credentials_controller.rb @@ -21,7 +21,17 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController private def account_params - params.permit(:display_name, :note, :avatar, :header, :locked, :bot, :discoverable, fields_attributes: [:name, :value]) + params.permit( + :display_name, + :note, + :avatar, + :header, + :locked, + :bot, + :discoverable, + :hide_collections, + fields_attributes: [:name, :value] + ) end def user_settings_params From d35fe3d5e3a45629634edde4c3d2726262c4f57e Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Fri, 13 Jan 2023 07:43:17 -0800 Subject: [PATCH 092/176] Add peers API endpoint toggle to Server Settings (#22810) * Add peers endpoint toggle to Server Settings This places the toggle under "Discovery" and expands the hint text to explain further what the endpoint is used for. Added a "Recommended" tag since it was recommended in v3 before it was removed. Fixes https://github.com/mastodon/mastodon/issues/22222 * i18n normalize step --- app/views/admin/settings/discovery/show.html.haml | 5 +++++ config/locales/en.yml | 1 + config/locales/simple_form.en.yml | 2 ++ 3 files changed, 8 insertions(+) diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml index f60d1c7662..17c9e93dd7 100644 --- a/app/views/admin/settings/discovery/show.html.haml +++ b/app/views/admin/settings/discovery/show.html.haml @@ -29,6 +29,11 @@ .fields-group = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') + %h4= t('admin.settings.discovery.publish_discovered_servers') + + .fields-group + = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + %h4= t('admin.settings.discovery.follow_recommendations') .fields-group diff --git a/config/locales/en.yml b/config/locales/en.yml index 2a8fe24631..e5c7c0ea37 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -714,6 +714,7 @@ en: preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server. profile_directory: Profile directory public_timelines: Public timelines + publish_discovered_servers: Publish discovered servers title: Discovery trends: Trends domain_blocks: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 43b9654f1f..e9f4d37461 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -81,6 +81,7 @@ en: custom_css: You can apply custom styles on the web version of Mastodon. mascot: Overrides the illustration in the advanced web interface. media_cache_retention_period: Downloaded media files will be deleted after the specified number of days when set to a positive value, and re-downloaded on demand. + peers_api_enabled: A list of domain names this server has encountered in the fediverse. No data is included here about whether you federate with a given server, just that your server knows about it. This is used by services that collect statistics on federation in a general sense. profile_directory: The profile directory lists all users who have opted-in to be discoverable. require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional site_contact_email: How people can reach you for legal or support inquiries. @@ -236,6 +237,7 @@ en: custom_css: Custom CSS mascot: Custom mascot (legacy) media_cache_retention_period: Media cache retention period + peers_api_enabled: Publish list of discovered servers in the API profile_directory: Enable profile directory registrations_mode: Who can sign-up require_invite_text: Require a reason to join From 745bdb11a0d81cc4aff3fe3bba5eecdb8671a632 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 13 Jan 2023 17:00:23 +0100 Subject: [PATCH 093/176] Add `tootctl accounts migrate` (#22330) * Add tootctl accounts replay-migration Fixes #22281 * Change `tootctl accounts replay-migration` to `tootctl accounts migrate` --- lib/mastodon/accounts_cli.rb | 73 ++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 0dd8521313..693c9547c6 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -553,6 +553,79 @@ module Mastodon end end + option :force, type: :boolean + option :replay, type: :boolean + option :target + desc 'migrate USERNAME', 'Migrate a local user to another account' + long_desc <<~LONG_DESC + With --replay, replay the last migration of the specified account, in + case some remote server may not have properly processed the associated + `Move` activity. + + With --target, specify another account to migrate to. + + With --force, perform the migration even if the selected account + redirects to a different account that the one specified. + LONG_DESC + def migrate(username) + if options[:replay].present? && options[:target].present? + say('Use --replay or --target, not both', :red) + exit(1) + end + + if options[:replay].blank? && options[:target].blank? + say('Use either --replay or --target', :red) + exit(1) + end + + account = Account.find_local(username) + + if account.nil? + say("No such account: #{username}", :red) + exit(1) + end + + migration = nil + + if options[:replay] + migration = account.migrations.last + if migration.nil? + say('The specified account has not performed any migration', :red) + exit(1) + end + + unless options[:force] || migration.target_acount_id == account.moved_to_account_id + say('The specified account is not redirecting to its last migration target. Use --force if you want to replay the migration anyway', :red) + exit(1) + end + end + + if options[:target] + target_account = ResolveAccountService.new.call(options[:target]) + + if target_account.nil? + say("The specified target account could not be found: #{options[:target]}", :red) + exit(1) + end + + unless options[:force] || account.moved_to_account_id.nil? || account.moved_to_account_id == target_account.id + say('The specified account is redirecting to a different target account. Use --force if you want to change the migration target', :red) + exit(1) + end + + begin + migration = account.migrations.create!(acct: target_account.acct) + rescue ActiveRecord::RecordInvalid => e + say("Error: #{e.message}", :red) + exit(1) + end + end + + MoveService.new.call(migration) + + say("OK, migrated #{account.acct} to #{migration.target_account.acct}", :green) + end + private def rotate_keys_for_account(account, delay = 0) From 507e1d22f580b23d47d8dc0cb47f6f0b3170fc56 Mon Sep 17 00:00:00 2001 From: Darius Kazemi Date: Fri, 13 Jan 2023 08:14:39 -0800 Subject: [PATCH 094/176] Allow admins to toggle public statistics API (#22833) * Allow admins to toggle public statistics API * Normalize i18n Co-authored-by: Claire --- app/views/admin/settings/discovery/show.html.haml | 5 +++++ config/locales/en.yml | 1 + config/locales/simple_form.en.yml | 2 ++ 3 files changed, 8 insertions(+) diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml index 17c9e93dd7..59188833bd 100644 --- a/app/views/admin/settings/discovery/show.html.haml +++ b/app/views/admin/settings/discovery/show.html.haml @@ -29,6 +29,11 @@ .fields-group = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') + %h4= t('admin.settings.discovery.publish_statistics') + + .fields-group + = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + %h4= t('admin.settings.discovery.publish_discovered_servers') .fields-group diff --git a/config/locales/en.yml b/config/locales/en.yml index e5c7c0ea37..4f04430ee4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -715,6 +715,7 @@ en: profile_directory: Profile directory public_timelines: Public timelines publish_discovered_servers: Publish discovered servers + publish_statistics: Publish statistics title: Discovery trends: Trends domain_blocks: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index e9f4d37461..f66e12c4c1 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -74,6 +74,7 @@ en: hide: Completely hide the filtered content, behaving as if it did not exist warn: Hide the filtered content behind a warning mentioning the filter's title form_admin_settings: + activity_api_enabled: Counts of locally published posts, active users, and new registrations in weekly buckets backups_retention_period: Keep generated user archives for the specified number of days. bootstrap_timeline_accounts: These accounts will be pinned to the top of new users' follow recommendations. closed_registrations_message: Displayed when sign-ups are closed @@ -230,6 +231,7 @@ en: hide: Hide completely warn: Hide with a warning form_admin_settings: + activity_api_enabled: Publish aggregate statistics about user activity in the API backups_retention_period: User archive retention period bootstrap_timeline_accounts: Always recommend these accounts to new users closed_registrations_message: Custom message when sign-ups are not available From 0e8f8a1a1c225272596b3256e3adb0a20a0dc483 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Sat, 14 Jan 2023 06:34:16 +0900 Subject: [PATCH 095/176] Implement tootctl accounts prune (#18397) * Implement tootctl accounts prune * Optimise query Co-authored-by: Claire --- lib/mastodon/accounts_cli.rb | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 693c9547c6..34afbc699d 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -553,6 +553,43 @@ module Mastodon end end + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :dry_run, type: :boolean + desc 'prune', 'Prune remote accounts that never interacted with local users' + long_desc <<-LONG_DESC + Prune remote account that + - follows no local accounts + - is not followed by any local accounts + - has no statuses on local + - has not been mentioned + - has not been favourited local posts + - not muted/blocked by us + LONG_DESC + def prune + dry_run = options[:dry_run] ? ' (dry run)' : '' + + query = Account.remote.where.not(actor_type: %i(Application Service)) + query = query.where('NOT EXISTS (SELECT 1 FROM mentions WHERE account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM favourites WHERE account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM statuses WHERE account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM follows WHERE account_id = accounts.id OR target_account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM blocks WHERE account_id = accounts.id OR target_account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM mutes WHERE target_account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM reports WHERE target_account_id = accounts.id)') + query = query.where('NOT EXISTS (SELECT 1 FROM follow_requests WHERE account_id = accounts.id OR target_account_id = accounts.id)') + + _, deleted = parallelize_with_progress(query) do |account| + next if account.bot? || account.group? + next if account.suspended? + next if account.silenced? + + account.destroy unless options[:dry_run] + 1 + end + + say("OK, pruned #{deleted} accounts#{dry_run}", :green) + end + option :force, type: :boolean option :replay, type: :boolean option :target From d66dfc7b3c1b62a0d5276387ea8745da598afacc Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Sat, 14 Jan 2023 22:00:23 +0900 Subject: [PATCH 096/176] Change confirm prompt for relationships management (#19411) * Change confirm prompt for relationships management * Add Korean translations * Apply suggestions from code review Co-authored-by: TobyWilkes Co-authored-by: TobyWilkes --- app/views/relationships/show.html.haml | 6 +++--- config/locales/en.yml | 3 +++ config/locales/ko.yml | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/views/relationships/show.html.haml b/app/views/relationships/show.html.haml index c82e639e0e..2899cd5140 100644 --- a/app/views/relationships/show.html.haml +++ b/app/views/relationships/show.html.haml @@ -42,11 +42,11 @@ %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('user-plus'), t('relationships.follow_selected_followers')]), name: :follow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship? && !mutual_relationship? + = f.button safe_join([fa_icon('user-plus'), t('relationships.follow_selected_followers')]), name: :follow, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_follow_selected_followers') } if followed_by_relationship? && !mutual_relationship? - = f.button safe_join([fa_icon('user-times'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless followed_by_relationship? + = f.button safe_join([fa_icon('user-times'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_remove_selected_follows') } unless followed_by_relationship? - = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless following_relationship? + = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_remove_selected_followers') } unless following_relationship? = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_domains')]), name: :block_domains, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship? .batch-table__body diff --git a/config/locales/en.yml b/config/locales/en.yml index 4f04430ee4..763110c770 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1371,6 +1371,9 @@ en: unrecognized_emoji: is not a recognized emoji relationships: activity: Account activity + confirm_follow_selected_followers: Are you sure you want to follow selected followers? + confirm_remove_selected_followers: Are you sure you want to remove selected followers? + confirm_remove_selected_follows: Are you sure you want to remove selected follows? dormant: Dormant follow_selected_followers: Follow selected followers followers: Followers diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 48d3d4599d..a320723bf2 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1343,6 +1343,9 @@ ko: unrecognized_emoji: 인식 되지 않은 에모지입니다 relationships: activity: 계정 활동 + confirm_follow_selected_followers: 정말로 선택된 팔로워들을 팔로우 하시겠습니까? + confirm_remove_selected_followers: 정말로 선택된 팔로워들을 삭제하시겠습니까? + confirm_remove_selected_follows: 정말로 선택된 팔로우를 끊으시겠습니까? dormant: 휴면 follow_selected_followers: 선택한 팔로워들을 팔로우 followers: 팔로워 From 1554e0e66a5b38fc9e0ba812d832334e912671f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 10:52:11 +0100 Subject: [PATCH 097/176] Bump punycode from 2.1.1 to 2.2.0 (#23126) Bumps [punycode](https://github.com/bestiejs/punycode.js) from 2.1.1 to 2.2.0. - [Release notes](https://github.com/bestiejs/punycode.js/releases) - [Commits](https://github.com/bestiejs/punycode.js/compare/v2.1.1...v2.2.0) --- updated-dependencies: - dependency-name: punycode dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 93ed7ea87f..1a2b5a57fd 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "postcss-loader": "^3.0.0", "promise.prototype.finally": "^3.1.4", "prop-types": "^15.8.1", - "punycode": "^2.1.0", + "punycode": "^2.2.0", "react": "^16.14.0", "react-dom": "^16.14.0", "react-helmet": "^6.1.0", diff --git a/yarn.lock b/yarn.lock index 6e56f51d14..9ba19af2a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8748,10 +8748,10 @@ punycode@1.4.1, punycode@^1.2.4: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" + integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== q@^1.1.2: version "1.5.1" From cfb9450d20ee60bd5964aa182c1cc50c95de1cbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 10:52:35 +0100 Subject: [PATCH 098/176] Bump glob from 8.0.3 to 8.1.0 (#23125) Bumps [glob](https://github.com/isaacs/node-glob) from 8.0.3 to 8.1.0. - [Release notes](https://github.com/isaacs/node-glob/releases) - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v8.0.3...v8.1.0) --- updated-dependencies: - dependency-name: glob dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1a2b5a57fd..8f18aa6b26 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "file-loader": "^6.2.0", "font-awesome": "^4.7.0", "fuzzysort": "^1.9.0", - "glob": "^8.0.3", + "glob": "^8.1.0", "history": "^4.10.1", "http-link-header": "^1.1.0", "immutable": "^4.2.2", diff --git a/yarn.lock b/yarn.lock index 9ba19af2a2..76023c2665 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5235,10 +5235,10 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" From 6a9c74a7af006bdbd680d0478445577d0ff08b28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 10:52:50 +0100 Subject: [PATCH 099/176] Bump prettier from 2.8.2 to 2.8.3 (#23123) Bumps [prettier](https://github.com/prettier/prettier) from 2.8.2 to 2.8.3. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.8.2...2.8.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8f18aa6b26..b39e6e6106 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "postcss-scss": "^4.0.6", - "prettier": "^2.8.2", + "prettier": "^2.8.3", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", diff --git a/yarn.lock b/yarn.lock index 76023c2665..961d645a0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8593,10 +8593,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" - integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== +prettier@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" + integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" From 0512780e0d7d0c4e86cbe62260cf6d256e6d448b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 10:53:12 +0100 Subject: [PATCH 100/176] Bump rimraf from 3.0.2 to 4.0.7 (#23118) Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.2 to 4.0.7. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v3.0.2...v4.0.7) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b39e6e6106..a4add69424 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "regenerator-runtime": "^0.13.11", "requestidlecallback": "^0.3.0", "reselect": "^4.1.7", - "rimraf": "^3.0.2", + "rimraf": "^4.0.7", "sass": "^1.57.1", "sass-loader": "^10.2.0", "stacktrace-js": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index 961d645a0f..60ec141bf6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9460,6 +9460,11 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.0.7.tgz#f438c7d6a2d5e5cca1d81e3904a48ac7b053a542" + integrity sha512-CUEDDrZvc0swDgVdXGiv3FcYYQMpJxjvSGt85Amj6yU+MCVWurrLCeLiJDdJPHCzNJnwuebBEdcO//eP11Xa7w== + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" From d047e93f47e168ab5d70de8789c4d85c7eebe655 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 10:54:19 +0100 Subject: [PATCH 101/176] Bump nokogiri from 1.13.10 to 1.14.0 (#23128) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.10 to 1.14.0. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.10...v1.14.0) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 3a18d13313..dc51ba3810 100644 --- a/Gemfile +++ b/Gemfile @@ -60,7 +60,7 @@ gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar' -gem 'nokogiri', '~> 1.13' +gem 'nokogiri', '~> 1.14' gem 'nsa', '~> 0.2' gem 'oj', '~> 3.13' gem 'ox', '~> 2.14' diff --git a/Gemfile.lock b/Gemfile.lock index b41c993666..721fc7460b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -401,7 +401,7 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2022.0105) mini_mime (1.1.2) - mini_portile2 (2.8.0) + mini_portile2 (2.8.1) minitest (5.17.0) msgpack (1.6.0) multi_json (1.15.0) @@ -415,7 +415,7 @@ GEM net-protocol net-ssh (7.0.1) nio4r (2.5.8) - nokogiri (1.13.10) + nokogiri (1.14.0) mini_portile2 (~> 2.8.0) racc (~> 1.4) nsa (0.2.8) @@ -486,7 +486,7 @@ GEM pundit (2.3.0) activesupport (>= 3.0.0) raabro (1.4.0) - racc (1.6.1) + racc (1.6.2) rack (2.2.5) rack-attack (6.6.1) rack (>= 1.0, < 3) @@ -808,7 +808,7 @@ DEPENDENCIES memory_profiler mime-types (~> 3.4.1) net-ldap (~> 0.17) - nokogiri (~> 1.13) + nokogiri (~> 1.14) nsa (~> 0.2) oj (~> 3.13) omniauth (~> 1.9) From 23fcf7869ee86e0d6b6bb81bfd1f1339b6192a49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:13:31 +0100 Subject: [PATCH 102/176] Bump rubocop from 1.42.0 to 1.43.0 (#23119) Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.42.0 to 1.43.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.42.0...v1.43.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 721fc7460b..57a1f9b094 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -453,7 +453,7 @@ GEM orm_adapter (0.5.0) ox (2.14.12) parallel (1.22.1) - parser (3.1.3.0) + parser (3.2.0.0) ast (~> 2.4.1) parslet (2.0.0) pastel (0.8.0) @@ -584,16 +584,16 @@ GEM rspec-support (3.11.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.42.0) + rubocop (1.43.0) json (~> 2.3) parallel (~> 1.10) - parser (>= 3.1.2.1) + parser (>= 3.2.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) rubocop-ast (>= 1.24.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) + unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.24.1) parser (>= 3.1.1.0) rubocop-performance (1.15.2) @@ -702,7 +702,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.3.0) + unicode-display_width (2.4.2) uniform_notifier (1.16.0) validate_email (0.1.6) activemodel (>= 3.0) From 8276274bf68c19b01b7d79358dd559251ccf393e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:14:12 +0100 Subject: [PATCH 103/176] Bump rubocop-rspec from 2.16.0 to 2.18.0 (#23122) Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.16.0 to 2.18.0. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.16.0...v2.18.0) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 57a1f9b094..321c1836bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -596,6 +596,8 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.24.1) parser (>= 3.1.1.0) + rubocop-capybara (2.17.0) + rubocop (~> 1.41) rubocop-performance (1.15.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) @@ -603,8 +605,9 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.16.0) + rubocop-rspec (2.18.0) rubocop (~> 1.33) + rubocop-capybara ruby-progressbar (1.11.0) ruby-saml (1.13.0) nokogiri (>= 1.10.5) From c6cda209d586d9f65217edba182c42f84461f3e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:31:39 +0100 Subject: [PATCH 104/176] Bump rack from 2.2.5 to 2.2.6.2 (#23142) Bumps [rack](https://github.com/rack/rack) from 2.2.5 to 2.2.6.2. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/v2.2.5...v2.2.6.2) --- updated-dependencies: - dependency-name: rack dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index dc51ba3810..6a72fec549 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ gem 'puma', '~> 5.6' gem 'rails', '~> 6.1.7' gem 'sprockets', '~> 3.7.2' gem 'thor', '~> 1.2' -gem 'rack', '~> 2.2.5' +gem 'rack', '~> 2.2.6' gem 'hamlit-rails', '~> 0.2' gem 'pg', '~> 1.4' diff --git a/Gemfile.lock b/Gemfile.lock index 321c1836bc..efb768d344 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -487,7 +487,7 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.6.2) - rack (2.2.5) + rack (2.2.6.2) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-cors (1.1.1) @@ -831,7 +831,7 @@ DEPENDENCIES public_suffix (~> 5.0) puma (~> 5.6) pundit (~> 2.3) - rack (~> 2.2.5) + rack (~> 2.2.6) rack-attack (~> 6.6) rack-cors (~> 1.1) rack-test (~> 2.0) From 9b32ca583e028ecd435f517d7996efa578a48d46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:31:55 +0100 Subject: [PATCH 105/176] Bump ox from 2.14.12 to 2.14.13 (#23143) Bumps [ox](https://github.com/ohler55/ox) from 2.14.12 to 2.14.13. - [Release notes](https://github.com/ohler55/ox/releases) - [Changelog](https://github.com/ohler55/ox/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ohler55/ox/compare/v2.14.12...v2.14.13) --- updated-dependencies: - dependency-name: ox dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index efb768d344..cb9a752d25 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM openssl-signature_algorithm (1.2.1) openssl (> 2.0, < 3.1) orm_adapter (0.5.0) - ox (2.14.12) + ox (2.14.13) parallel (1.22.1) parser (3.2.0.0) ast (~> 2.4.1) From 302fcb9788b63bf50fa8e3452626402ccbd8522a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 11:40:21 +0100 Subject: [PATCH 106/176] Bump rails from 6.1.7 to 6.1.7.1 (#23144) Bumps [rails](https://github.com/rails/rails) from 6.1.7 to 6.1.7.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.7...v6.1.7.1) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 121 +++++++++++++++++++++++++++------------------------ 1 file changed, 65 insertions(+), 56 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cb9a752d25..d700e58c53 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,40 +10,40 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7) - actionpack (= 6.1.7) - activesupport (= 6.1.7) + actioncable (6.1.7.1) + actionpack (= 6.1.7.1) + activesupport (= 6.1.7.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7) - actionpack (= 6.1.7) - activejob (= 6.1.7) - activerecord (= 6.1.7) - activestorage (= 6.1.7) - activesupport (= 6.1.7) + actionmailbox (6.1.7.1) + actionpack (= 6.1.7.1) + activejob (= 6.1.7.1) + activerecord (= 6.1.7.1) + activestorage (= 6.1.7.1) + activesupport (= 6.1.7.1) mail (>= 2.7.1) - actionmailer (6.1.7) - actionpack (= 6.1.7) - actionview (= 6.1.7) - activejob (= 6.1.7) - activesupport (= 6.1.7) + actionmailer (6.1.7.1) + actionpack (= 6.1.7.1) + actionview (= 6.1.7.1) + activejob (= 6.1.7.1) + activesupport (= 6.1.7.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7) - actionview (= 6.1.7) - activesupport (= 6.1.7) + actionpack (6.1.7.1) + actionview (= 6.1.7.1) + activesupport (= 6.1.7.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7) - actionpack (= 6.1.7) - activerecord (= 6.1.7) - activestorage (= 6.1.7) - activesupport (= 6.1.7) + actiontext (6.1.7.1) + actionpack (= 6.1.7.1) + activerecord (= 6.1.7.1) + activestorage (= 6.1.7.1) + activesupport (= 6.1.7.1) nokogiri (>= 1.8.5) - actionview (6.1.7) - activesupport (= 6.1.7) + actionview (6.1.7.1) + activesupport (= 6.1.7.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -54,22 +54,22 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.8) - activejob (6.1.7) - activesupport (= 6.1.7) + activejob (6.1.7.1) + activesupport (= 6.1.7.1) globalid (>= 0.3.6) - activemodel (6.1.7) - activesupport (= 6.1.7) - activerecord (6.1.7) - activemodel (= 6.1.7) - activesupport (= 6.1.7) - activestorage (6.1.7) - actionpack (= 6.1.7) - activejob (= 6.1.7) - activerecord (= 6.1.7) - activesupport (= 6.1.7) + activemodel (6.1.7.1) + activesupport (= 6.1.7.1) + activerecord (6.1.7.1) + activemodel (= 6.1.7.1) + activesupport (= 6.1.7.1) + activestorage (6.1.7.1) + actionpack (= 6.1.7.1) + activejob (= 6.1.7.1) + activerecord (= 6.1.7.1) + activesupport (= 6.1.7.1) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.7) + activesupport (6.1.7.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -184,6 +184,7 @@ GEM crass (1.0.6) css_parser (1.12.0) addressable + date (3.3.3) debug_inspector (1.0.0) devise (4.8.1) bcrypt (~> 3.0) @@ -223,7 +224,7 @@ GEM faraday (~> 1) multi_json encryptor (3.0.0) - erubi (1.11.0) + erubi (1.12.0) et-orbi (1.2.7) tzinfo excon (0.95.0) @@ -282,7 +283,7 @@ GEM addressable (~> 2.7) omniauth (>= 1.9, < 3) openid_connect (~> 1.2) - globalid (1.0.0) + globalid (1.0.1) activesupport (>= 5.0) hamlit (2.13.0) temple (>= 0.8.2) @@ -387,8 +388,11 @@ GEM loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.7.1) + mail (2.8.0.1) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp makara (0.5.1) activerecord (>= 5.2.0) marcel (1.0.2) @@ -406,7 +410,12 @@ GEM msgpack (1.6.0) multi_json (1.15.0) multipart-post (2.1.1) + net-imap (0.3.4) + date + net-protocol net-ldap (0.17.1) + net-pop (0.1.2) + net-protocol net-protocol (0.1.3) timeout net-scp (4.0.0.rc1) @@ -502,20 +511,20 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - rails (6.1.7) - actioncable (= 6.1.7) - actionmailbox (= 6.1.7) - actionmailer (= 6.1.7) - actionpack (= 6.1.7) - actiontext (= 6.1.7) - actionview (= 6.1.7) - activejob (= 6.1.7) - activemodel (= 6.1.7) - activerecord (= 6.1.7) - activestorage (= 6.1.7) - activesupport (= 6.1.7) + rails (6.1.7.1) + actioncable (= 6.1.7.1) + actionmailbox (= 6.1.7.1) + actionmailer (= 6.1.7.1) + actionpack (= 6.1.7.1) + actiontext (= 6.1.7.1) + actionview (= 6.1.7.1) + activejob (= 6.1.7.1) + activemodel (= 6.1.7.1) + activerecord (= 6.1.7.1) + activestorage (= 6.1.7.1) + activesupport (= 6.1.7.1) bundler (>= 1.15.0) - railties (= 6.1.7) + railties (= 6.1.7.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -531,9 +540,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (6.1.7) - actionpack (= 6.1.7) - activesupport (= 6.1.7) + railties (6.1.7.1) + actionpack (= 6.1.7.1) + activesupport (= 6.1.7.1) method_source rake (>= 12.2) thor (~> 1.0) From 472fd4307f9c963aba57e537e3ca3a8f94dfa139 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 15:50:50 +0100 Subject: [PATCH 107/176] New Crowdin updates (#2069) * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.yml (Sorani (Kurdish)) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Serbian (Latin)) [ci skip] * New translations simple_form.en.yml (Kurmanji (Kurdish)) [ci skip] * New translations simple_form.en.yml (Sorani (Kurdish)) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Quebec) [ci skip] * Fix pt-BR key --- config/locales-glitch/ckb.yml | 2 +- config/locales-glitch/fr-QC.yml | 2 +- config/locales-glitch/fr.yml | 2 +- config/locales-glitch/ku.yml | 2 +- config/locales-glitch/simple_form.ckb.yml | 2 +- config/locales-glitch/simple_form.ku.yml | 2 +- config/locales-glitch/simple_form.sr-Latn.yml | 2 +- config/locales-glitch/simple_form.zh-HK.yml | 2 +- config/locales-glitch/sr-Latn.yml | 2 +- config/locales-glitch/zh-HK.yml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/locales-glitch/ckb.yml b/config/locales-glitch/ckb.yml index cc251e86ae..77d538af77 100644 --- a/config/locales-glitch/ckb.yml +++ b/config/locales-glitch/ckb.yml @@ -1 +1 @@ -ckb-IR: +ckb: diff --git a/config/locales-glitch/fr-QC.yml b/config/locales-glitch/fr-QC.yml index 6fa399b659..0cba194f54 100644 --- a/config/locales-glitch/fr-QC.yml +++ b/config/locales-glitch/fr-QC.yml @@ -34,7 +34,7 @@ fr-QC: glitch_guide_link_text: Et c'est pareil avec glitch-soc ! auth: captcha_confirmation: - hint_html: Plus qu'une étape ! Pour vérifier votre compte sur ce serveur, vous devez résoudre un CAPTCHA. Vous pouvez contacter l'administrateur·ice du serveur si vous avez des questions ou besoin d'assistance dans la vérification de votre compte. title: Vérification de l'utilisateur generic: use_this: Utiliser ceci diff --git a/config/locales-glitch/fr.yml b/config/locales-glitch/fr.yml index 44e032e661..15c3f8ce52 100644 --- a/config/locales-glitch/fr.yml +++ b/config/locales-glitch/fr.yml @@ -34,7 +34,7 @@ fr: glitch_guide_link_text: Et c'est pareil avec glitch-soc ! auth: captcha_confirmation: - hint_html: Plus qu'une étape ! Pour vérifier votre compte sur ce serveur, vous devez résoudre un CAPTCHA. Vous pouvez contacter l'administrateur·ice du serveur si vous avez des questions ou besoin d'assistance dans la vérification de votre compte. title: Vérification de l'utilisateur generic: use_this: Utiliser ceci diff --git a/config/locales-glitch/ku.yml b/config/locales-glitch/ku.yml index aa87618e43..b36f7c9883 100644 --- a/config/locales-glitch/ku.yml +++ b/config/locales-glitch/ku.yml @@ -1 +1 @@ -kmr-TR: +ku: diff --git a/config/locales-glitch/simple_form.ckb.yml b/config/locales-glitch/simple_form.ckb.yml index cc251e86ae..77d538af77 100644 --- a/config/locales-glitch/simple_form.ckb.yml +++ b/config/locales-glitch/simple_form.ckb.yml @@ -1 +1 @@ -ckb-IR: +ckb: diff --git a/config/locales-glitch/simple_form.ku.yml b/config/locales-glitch/simple_form.ku.yml index aa87618e43..b36f7c9883 100644 --- a/config/locales-glitch/simple_form.ku.yml +++ b/config/locales-glitch/simple_form.ku.yml @@ -1 +1 @@ -kmr-TR: +ku: diff --git a/config/locales-glitch/simple_form.sr-Latn.yml b/config/locales-glitch/simple_form.sr-Latn.yml index 9e26af8191..c482b5e449 100644 --- a/config/locales-glitch/simple_form.sr-Latn.yml +++ b/config/locales-glitch/simple_form.sr-Latn.yml @@ -1 +1 @@ -sr: +sr-Latn: diff --git a/config/locales-glitch/simple_form.zh-HK.yml b/config/locales-glitch/simple_form.zh-HK.yml index 35a3adbaf3..8e51e56487 100644 --- a/config/locales-glitch/simple_form.zh-HK.yml +++ b/config/locales-glitch/simple_form.zh-HK.yml @@ -1 +1 @@ -zh: +zh-HK: diff --git a/config/locales-glitch/sr-Latn.yml b/config/locales-glitch/sr-Latn.yml index 9e26af8191..c482b5e449 100644 --- a/config/locales-glitch/sr-Latn.yml +++ b/config/locales-glitch/sr-Latn.yml @@ -1 +1 @@ -sr: +sr-Latn: diff --git a/config/locales-glitch/zh-HK.yml b/config/locales-glitch/zh-HK.yml index 35a3adbaf3..8e51e56487 100644 --- a/config/locales-glitch/zh-HK.yml +++ b/config/locales-glitch/zh-HK.yml @@ -1 +1 @@ -zh: +zh-HK: From fcc4c9b34a6ab771c9cef6673e817866773e12d0 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:20:52 +0100 Subject: [PATCH 108/176] Change domain block CSV parsing to be more robust and handle more lists (#21470) * Change domain block CSV parsing to be more robust and handle more lists * Add some tests * Improve domain block import validation and reporting --- .../admin/export_domain_allows_controller.rb | 4 +- .../admin/export_domain_blocks_controller.rb | 24 ++++++---- .../admin_export_controller_concern.rb | 10 ---- app/models/admin/import.rb | 47 +++++++++++++++---- config/locales/en.yml | 1 + .../export_domain_blocks_controller_spec.rb | 34 +++++++++++--- spec/fixtures/files/domain_blocks.csv | 6 +-- spec/fixtures/files/domain_blocks_list.txt | 3 ++ 8 files changed, 90 insertions(+), 39 deletions(-) create mode 100644 spec/fixtures/files/domain_blocks_list.txt diff --git a/app/controllers/admin/export_domain_allows_controller.rb b/app/controllers/admin/export_domain_allows_controller.rb index 57fb12c620..adfc39da21 100644 --- a/app/controllers/admin/export_domain_allows_controller.rb +++ b/app/controllers/admin/export_domain_allows_controller.rb @@ -23,9 +23,7 @@ module Admin @import = Admin::Import.new(import_params) return render :new unless @import.validate - parse_import_data!(export_headers) - - @data.take(Admin::Import::ROWS_PROCESSING_LIMIT).each do |row| + @import.csv_rows.each do |row| domain = row['#domain'].strip next if DomainAllow.allowed?(domain) diff --git a/app/controllers/admin/export_domain_blocks_controller.rb b/app/controllers/admin/export_domain_blocks_controller.rb index fb0cd05d29..816422d4ff 100644 --- a/app/controllers/admin/export_domain_blocks_controller.rb +++ b/app/controllers/admin/export_domain_blocks_controller.rb @@ -23,24 +23,30 @@ module Admin @import = Admin::Import.new(import_params) return render :new unless @import.validate - parse_import_data!(export_headers) - @global_private_comment = I18n.t('admin.export_domain_blocks.import.private_comment_template', source: @import.data_file_name, date: I18n.l(Time.now.utc)) @form = Form::DomainBlockBatch.new - @domain_blocks = @data.take(Admin::Import::ROWS_PROCESSING_LIMIT).filter_map do |row| + @domain_blocks = @import.csv_rows.filter_map do |row| domain = row['#domain'].strip next if DomainBlock.rule_for(domain).present? domain_block = DomainBlock.new(domain: domain, - severity: row['#severity'].strip, - reject_media: row['#reject_media'].strip, - reject_reports: row['#reject_reports'].strip, + severity: row.fetch('#severity', :suspend), + reject_media: row.fetch('#reject_media', false), + reject_reports: row.fetch('#reject_reports', false), private_comment: @global_private_comment, - public_comment: row['#public_comment']&.strip, - obfuscate: row['#obfuscate'].strip) + public_comment: row['#public_comment'], + obfuscate: row.fetch('#obfuscate', false)) - domain_block if domain_block.valid? + if domain_block.invalid? + flash.now[:alert] = I18n.t('admin.export_domain_blocks.invalid_domain_block', error: domain_block.errors.full_messages.join(', ')) + next + end + + domain_block + rescue ArgumentError => e + flash.now[:alert] = I18n.t('admin.export_domain_blocks.invalid_domain_block', error: e.message) + next end @warning_domains = Instance.where(domain: @domain_blocks.map(&:domain)).where('EXISTS (SELECT 1 FROM follows JOIN accounts ON follows.account_id = accounts.id OR follows.target_account_id = accounts.id WHERE accounts.domain = instances.domain)').pluck(:domain) diff --git a/app/controllers/concerns/admin_export_controller_concern.rb b/app/controllers/concerns/admin_export_controller_concern.rb index b40c76557f..4ac48a04b7 100644 --- a/app/controllers/concerns/admin_export_controller_concern.rb +++ b/app/controllers/concerns/admin_export_controller_concern.rb @@ -26,14 +26,4 @@ module AdminExportControllerConcern def import_params params.require(:admin_import).permit(:data) end - - def import_data_path - params[:admin_import][:data].path - end - - def parse_import_data!(default_headers) - data = CSV.read(import_data_path, headers: true, encoding: 'UTF-8') - data = CSV.read(import_data_path, headers: default_headers, encoding: 'UTF-8') unless data.headers&.first&.strip&.include?(default_headers[0]) - @data = data.reject(&:blank?) - end end diff --git a/app/models/admin/import.rb b/app/models/admin/import.rb index 79c0722d53..fecde4878b 100644 --- a/app/models/admin/import.rb +++ b/app/models/admin/import.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'csv' + # A non-activerecord helper class for csv upload class Admin::Import include ActiveModel::Model @@ -15,17 +17,46 @@ class Admin::Import data.original_filename end + def csv_rows + csv_data.rewind + + csv_data.take(ROWS_PROCESSING_LIMIT + 1) + end + private + def csv_data + return @csv_data if defined?(@csv_data) + + csv_converter = lambda do |field, field_info| + case field_info.header + when '#domain', '#public_comment' + field&.strip + when '#severity' + field&.strip&.to_sym + when '#reject_media', '#reject_reports', '#obfuscate' + ActiveModel::Type::Boolean.new.cast(field) + else + field + end + end + + @csv_data = CSV.open(data.path, encoding: 'UTF-8', skip_blanks: true, headers: true, converters: csv_converter) + @csv_data.take(1) # Ensure the headers are read + @csv_data = CSV.open(data.path, encoding: 'UTF-8', skip_blanks: true, headers: ['#domain'], converters: csv_converter) unless @csv_data.headers&.first == '#domain' + @csv_data + end + + def csv_row_count + return @csv_row_count if defined?(@csv_row_count) + + csv_data.rewind + @csv_row_count = csv_data.take(ROWS_PROCESSING_LIMIT + 2).count + end + def validate_data - return if data.blank? - - csv_data = CSV.read(data.path, encoding: 'UTF-8') - - row_count = csv_data.size - row_count -= 1 if csv_data.first&.first == '#domain' - - errors.add(:data, I18n.t('imports.errors.over_rows_processing_limit', count: ROWS_PROCESSING_LIMIT)) if row_count > ROWS_PROCESSING_LIMIT + return if data.nil? + errors.add(:data, I18n.t('imports.errors.over_rows_processing_limit', count: ROWS_PROCESSING_LIMIT)) if csv_row_count > ROWS_PROCESSING_LIMIT rescue CSV::MalformedCSVError => e errors.add(:data, I18n.t('imports.errors.invalid_csv_file', error: e.message)) end diff --git a/config/locales/en.yml b/config/locales/en.yml index 763110c770..4143aab045 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -441,6 +441,7 @@ en: private_comment_description_html: 'To help you track where imported blocks come from, imported blocks will be created with the following private comment: %{comment}' private_comment_template: Imported from %{source} on %{date} title: Import domain blocks + invalid_domain_block: 'One or more domain blocks were skipped because of the following error(s): %{error}' new: title: Import domain blocks no_file: No file selected diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb index 8697e0c215..2766102c89 100644 --- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb @@ -9,9 +9,9 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do describe 'GET #export' do it 'renders instances' do - Fabricate(:domain_block, domain: 'bad.domain', severity: 'silence', public_comment: 'bad') - Fabricate(:domain_block, domain: 'worse.domain', severity: 'suspend', reject_media: true, reject_reports: true, public_comment: 'worse', obfuscate: true) - Fabricate(:domain_block, domain: 'reject.media', severity: 'noop', reject_media: true, public_comment: 'reject media') + Fabricate(:domain_block, domain: 'bad.domain', severity: 'silence', public_comment: 'bad server') + Fabricate(:domain_block, domain: 'worse.domain', severity: 'suspend', reject_media: true, reject_reports: true, public_comment: 'worse server', obfuscate: true) + Fabricate(:domain_block, domain: 'reject.media', severity: 'noop', reject_media: true, public_comment: 'reject media and test unicode characters ♥') Fabricate(:domain_block, domain: 'no.op', severity: 'noop', public_comment: 'noop') get :export, params: { format: :csv } @@ -21,10 +21,32 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do end describe 'POST #import' do - it 'blocks imported domains' do - post :import, params: { admin_import: { data: fixture_file_upload('domain_blocks.csv') } } + context 'with complete domain blocks CSV' do + before do + post :import, params: { admin_import: { data: fixture_file_upload('domain_blocks.csv') } } + end - expect(assigns(:domain_blocks).map(&:domain)).to match_array ['bad.domain', 'worse.domain', 'reject.media'] + it 'renders page with expected domain blocks' do + expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to match_array [['bad.domain', :silence], ['worse.domain', :suspend], ['reject.media', :noop]] + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end + + context 'with a list of only domains' do + before do + post :import, params: { admin_import: { data: fixture_file_upload('domain_blocks_list.txt') } } + end + + it 'renders page with expected domain blocks' do + expect(assigns(:domain_blocks).map { |block| [block.domain, block.severity.to_sym] }).to match_array [['bad.domain', :suspend], ['worse.domain', :suspend], ['reject.media', :suspend]] + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end end end diff --git a/spec/fixtures/files/domain_blocks.csv b/spec/fixtures/files/domain_blocks.csv index 28ffb91751..9dbfb4eaf7 100644 --- a/spec/fixtures/files/domain_blocks.csv +++ b/spec/fixtures/files/domain_blocks.csv @@ -1,4 +1,4 @@ #domain,#severity,#reject_media,#reject_reports,#public_comment,#obfuscate -bad.domain,silence,false,false,bad,false -worse.domain,suspend,true,true,worse,true -reject.media,noop,true,false,reject media,false +bad.domain,silence,false,false,bad server,false +worse.domain,suspend,true,true,worse server,true +reject.media,noop,true,false,reject media and test unicode characters ♥,false diff --git a/spec/fixtures/files/domain_blocks_list.txt b/spec/fixtures/files/domain_blocks_list.txt new file mode 100644 index 0000000000..7b6b242533 --- /dev/null +++ b/spec/fixtures/files/domain_blocks_list.txt @@ -0,0 +1,3 @@ +bad.domain +worse.domain +reject.media From 41517a484506796f09610b79c59f91723e2fd662 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:21:48 +0100 Subject: [PATCH 109/176] Fix spurious admin dashboard warning when using ElasticSearch 7.x (#23064) Some 7.x ElasticSearch versions support some 6.x nodes, thus the version check is inadequate. I am not sure there is a good way to check if a server implements all the 7.x APIs, so check server version and minimum wire version instead. --- app/lib/admin/system_check/elasticsearch_check.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb index 7f922978f5..5b4c12399b 100644 --- a/app/lib/admin/system_check/elasticsearch_check.rb +++ b/app/lib/admin/system_check/elasticsearch_check.rb @@ -30,19 +30,24 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck def running_version @running_version ||= begin - Chewy.client.info['version']['minimum_wire_compatibility_version'] || - Chewy.client.info['version']['number'] + Chewy.client.info['version']['number'] rescue Faraday::ConnectionFailed nil end end + def compatible_wire_version + Chewy.client.info['version']['minimum_wire_compatibility_version'] + end + def required_version '7.x' end def compatible_version? return false if running_version.nil? - Gem::Version.new(running_version) >= Gem::Version.new(required_version) + + Gem::Version.new(running_version) >= Gem::Version.new(required_version) || + Gem::Version.new(compatible_wire_version) >= Gem::Version.new(required_version) end end From d4f590d6bba173bb0861e9babc7830bdc57d55d6 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:23:39 +0100 Subject: [PATCH 110/176] Fix scheduled_at input not using datetime-local when editing announcements (#21896) --- app/views/admin/announcements/edit.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml index 66c8d31a79..c6c47586a0 100644 --- a/app/views/admin/announcements/edit.html.haml +++ b/app/views/admin/announcements/edit.html.haml @@ -19,7 +19,7 @@ - unless @announcement.published? .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label + = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } .actions = f.button :button, t('generic.save_changes'), type: :submit From 0405be69d265b81a41be9c253e4b50aa6c8e1ee9 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:25:31 +0100 Subject: [PATCH 111/176] Fix REST API serializer for Account not including `moved` when the moved account has itself moved (#22483) Instead of cutting immediately, cut after one recursion. --- app/serializers/rest/account_serializer.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index e521dacaaa..6582b5bcf6 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -16,6 +16,16 @@ class REST::AccountSerializer < ActiveModel::Serializer attribute :silenced, key: :limited, if: :silenced? attribute :noindex, if: :local? + class AccountDecorator < SimpleDelegator + def self.model_name + Account.model_name + end + + def moved? + false + end + end + class FieldSerializer < ActiveModel::Serializer include FormattingHelper @@ -85,7 +95,7 @@ class REST::AccountSerializer < ActiveModel::Serializer end def moved_to_account - object.suspended? ? nil : object.moved_to_account + object.suspended? ? nil : AccountDecorator.new(object.moved_to_account) end def emojis @@ -111,6 +121,6 @@ class REST::AccountSerializer < ActiveModel::Serializer delegate :suspended?, :silenced?, :local?, to: :object def moved_and_not_nested? - object.moved? && object.moved_to_account.moved_to_account_id.nil? + object.moved? end end From b034dc42be2250f9b754fb88c9163b62d41f78f5 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:28:18 +0100 Subject: [PATCH 112/176] Fix /api/v1/admin/trends/tags using wrong serializer (#18943) * Fix /api/v1/admin/trends/tags using wrong serializer Fix regression from #18641 * Only use `REST::Admin::TagSerializer` when the user can `manage_taxonomies` * Fix admin trending hashtag component to not link if `id` is unknown --- app/controllers/api/v1/admin/trends/tags_controller.rb | 8 ++++++++ app/javascript/mastodon/components/admin/Trends.js | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/admin/trends/tags_controller.rb b/app/controllers/api/v1/admin/trends/tags_controller.rb index f3c0c4b6b4..e77df30216 100644 --- a/app/controllers/api/v1/admin/trends/tags_controller.rb +++ b/app/controllers/api/v1/admin/trends/tags_controller.rb @@ -3,6 +3,14 @@ class Api::V1::Admin::Trends::TagsController < Api::V1::Trends::TagsController before_action -> { authorize_if_got_token! :'admin:read' } + def index + if current_user&.can?(:manage_taxonomies) + render json: @tags, each_serializer: REST::Admin::TagSerializer + else + super + end + end + private def enabled? diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.js index 9530c2a5be..d01b8437ed 100644 --- a/app/javascript/mastodon/components/admin/Trends.js +++ b/app/javascript/mastodon/components/admin/Trends.js @@ -50,7 +50,7 @@ export default class Trends extends React.PureComponent { day.uses)} From 1b2ef60cec381e69384c208589c3dcf0ca2661db Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Thu, 19 Jan 2023 00:29:07 +0900 Subject: [PATCH 113/176] Make visible change for new post notification setting icon (#22541) --- app/javascript/mastodon/features/account/components/header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index 2481e4783e..f6004d1c4b 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -193,7 +193,7 @@ class Header extends ImmutablePureComponent { } if (account.getIn(['relationship', 'requested']) || account.getIn(['relationship', 'following'])) { - bellBtn = ; + bellBtn = ; } if (me !== account.get('id')) { From 7e6ffa085f97dc4688e2655fe2447743ab807e44 Mon Sep 17 00:00:00 2001 From: Peter Simonsson Date: Wed, 18 Jan 2023 15:30:46 +0000 Subject: [PATCH 114/176] Add checkmark symbol to checkbox (#22795) --- app/javascript/styles/mastodon/components.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index ff368faaaa..6a2fe4c0b8 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -423,7 +423,7 @@ body > [data-popper-placement] { &.active { border-color: $highlight-text-color; - background: $highlight-text-color; + background: $highlight-text-color url("data:image/svg+xml;utf8,") center center no-repeat; } } } From 9b3e22c40d5a24ddfa0df42d8fe6e96a273e8afd Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:32:23 +0100 Subject: [PATCH 115/176] Change account moderation notes to make links clickable (#22553) * Change account moderation notes to make links clickable Fixes #22539 * Fix styling of account moderation note links --- app/javascript/styles/mastodon/admin.scss | 9 +++++++++ app/views/admin/report_notes/_report_note.html.haml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 9c06e7a255..674fafbe95 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1572,6 +1572,15 @@ a.sparkline { margin-bottom: 0; } } + + a { + color: $highlight-text-color; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } } &__actions { diff --git a/app/views/admin/report_notes/_report_note.html.haml b/app/views/admin/report_notes/_report_note.html.haml index 54c252ee89..64628989a6 100644 --- a/app/views/admin/report_notes/_report_note.html.haml +++ b/app/views/admin/report_notes/_report_note.html.haml @@ -8,7 +8,7 @@ = l report_note.created_at.to_date .report-notes__item__content - = simple_format(h(report_note.content)) + = linkify(report_note.content) - if can?(:destroy, report_note) .report-notes__item__actions From d1387579b904542245646fc12eca99c97feccc63 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:33:03 +0100 Subject: [PATCH 116/176] Fix situations in which instance actor can be set to a Mastodon-incompatible name (#22307) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Validate internal actor * Use “internal.actor” by default for the server actor username * Fix instance actor username on the fly if it includes ':' * Change actor name from internal.actor to mastodon.internal --- app/models/account.rb | 4 ++-- app/models/concerns/account_finder_concern.rb | 6 ++++-- db/seeds/02_instance_actor.rb | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/models/account.rb b/app/models/account.rb index b27fc748f9..262285a09e 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -84,8 +84,8 @@ class Account < ApplicationRecord validates :username, presence: true validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? } - # Remote user validations - validates :username, format: { with: USERNAME_ONLY_RE }, if: -> { !local? && will_save_change_to_username? } + # Remote user validations, also applies to internal actors + validates :username, format: { with: USERNAME_ONLY_RE }, if: -> { (!local? || actor_type == 'Application') && will_save_change_to_username? } # Local user validations validates :username, format: { with: /\A[a-z0-9_]+\z/i }, length: { maximum: 30 }, if: -> { local? && will_save_change_to_username? && actor_type != 'Application' } diff --git a/app/models/concerns/account_finder_concern.rb b/app/models/concerns/account_finder_concern.rb index e8b804934a..37c3b88959 100644 --- a/app/models/concerns/account_finder_concern.rb +++ b/app/models/concerns/account_finder_concern.rb @@ -13,9 +13,11 @@ module AccountFinderConcern end def representative - Account.find(-99).tap(&:ensure_keys!) + actor = Account.find(-99).tap(&:ensure_keys!) + actor.update!(username: 'mastodon.internal') if actor.username.include?(':') + actor rescue ActiveRecord::RecordNotFound - Account.create!(id: -99, actor_type: 'Application', locked: true, username: Rails.configuration.x.local_domain) + Account.create!(id: -99, actor_type: 'Application', locked: true, username: 'mastodon.internal') end def find_local(username) diff --git a/db/seeds/02_instance_actor.rb b/db/seeds/02_instance_actor.rb index 39186b2734..f9aa372f1c 100644 --- a/db/seeds/02_instance_actor.rb +++ b/db/seeds/02_instance_actor.rb @@ -1 +1 @@ -Account.create_with(actor_type: 'Application', locked: true, username: ENV['LOCAL_DOMAIN'] || Rails.configuration.x.local_domain).find_or_create_by(id: -99) +Account.create_with(actor_type: 'Application', locked: true, username: 'mastodon.internal').find_or_create_by(id: -99) From 4b92e59f4fea4486ee6e5af7421e7945d5f7f998 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 18 Jan 2023 16:33:55 +0100 Subject: [PATCH 117/176] Add support for editing media description and focus point of already-posted statuses (#20878) * Add backend support for editing media attachments of existing posts * Allow editing media attachments of already-posted toots * Add tests --- app/controllers/api/v1/statuses_controller.rb | 7 +++ app/javascript/mastodon/actions/compose.js | 46 ++++++++++++++++--- .../features/compose/components/upload.js | 4 +- .../ui/components/focal_point_modal.js | 2 +- app/javascript/mastodon/reducers/compose.js | 2 +- app/services/update_status_service.rb | 11 ++++- spec/services/update_status_service_spec.rb | 22 +++++++++ 7 files changed, 83 insertions(+), 11 deletions(-) diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 6290a1746a..9a8c0c1619 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -79,6 +79,7 @@ class Api::V1::StatusesController < Api::BaseController current_account.id, text: status_params[:status], media_ids: status_params[:media_ids], + media_attributes: status_params[:media_attributes], sensitive: status_params[:sensitive], language: status_params[:language], spoiler_text: status_params[:spoiler_text], @@ -128,6 +129,12 @@ class Api::V1::StatusesController < Api::BaseController :language, :scheduled_at, media_ids: [], + media_attributes: [ + :id, + :thumbnail, + :description, + :focus, + ], poll: [ :multiple, :hide_totals, diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 531a5eb2b0..72e5929358 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -160,6 +160,18 @@ export function submitCompose(routerHistory) { dispatch(submitComposeRequest()); + // If we're editing a post with media attachments, those have not + // necessarily been changed on the server. Do it now in the same + // API call. + let media_attributes; + if (statusId !== null) { + media_attributes = media.map(item => ({ + id: item.get('id'), + description: item.get('description'), + focus: item.get('focus'), + })); + } + api(getState).request({ url: statusId === null ? '/api/v1/statuses' : `/api/v1/statuses/${statusId}`, method: statusId === null ? 'post' : 'put', @@ -167,6 +179,7 @@ export function submitCompose(routerHistory) { status, in_reply_to_id: getState().getIn(['compose', 'in_reply_to'], null), media_ids: media.map(item => item.get('id')), + media_attributes, sensitive: getState().getIn(['compose', 'sensitive']), spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '', visibility: getState().getIn(['compose', 'privacy']), @@ -375,11 +388,31 @@ export function changeUploadCompose(id, params) { return (dispatch, getState) => { dispatch(changeUploadComposeRequest()); - api(getState).put(`/api/v1/media/${id}`, params).then(response => { - dispatch(changeUploadComposeSuccess(response.data)); - }).catch(error => { - dispatch(changeUploadComposeFail(id, error)); - }); + let media = getState().getIn(['compose', 'media_attachments']).find((item) => item.get('id') === id); + + // Editing already-attached media is deferred to editing the post itself. + // For simplicity's sake, fake an API reply. + if (media && !media.get('unattached')) { + let { description, focus } = params; + const data = media.toJS(); + + if (description) { + data.description = description; + } + + if (focus) { + focus = focus.split(','); + data.meta = { focus: { x: parseFloat(focus[0]), y: parseFloat(focus[1]) } }; + } + + dispatch(changeUploadComposeSuccess(data, true)); + } else { + api(getState).put(`/api/v1/media/${id}`, params).then(response => { + dispatch(changeUploadComposeSuccess(response.data, false)); + }).catch(error => { + dispatch(changeUploadComposeFail(id, error)); + }); + } }; } @@ -390,10 +423,11 @@ export function changeUploadComposeRequest() { }; } -export function changeUploadComposeSuccess(media) { +export function changeUploadComposeSuccess(media, attached) { return { type: COMPOSE_UPLOAD_CHANGE_SUCCESS, media: media, + attached: attached, skipLoading: true, }; } diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.js index b08307adee..af06ce1bf5 100644 --- a/app/javascript/mastodon/features/compose/components/upload.js +++ b/app/javascript/mastodon/features/compose/components/upload.js @@ -43,10 +43,10 @@ export default class Upload extends ImmutablePureComponent {
- {!!media.get('unattached') && ()} +
- {(media.get('description') || '').length === 0 && !!media.get('unattached') && ( + {(media.get('description') || '').length === 0 && (
diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.js index 479f4abd21..b9dbd93900 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -320,7 +320,7 @@ class FocalPointModal extends ImmutablePureComponent { - - {!!media.get('unattached') && ()} + +
- {(media.get('description') || '').length === 0 && !!media.get('unattached') && ( + {(media.get('description') || '').length === 0 && (
- +
)}
diff --git a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.js b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.js index 0dd07fb76b..fb432cf9ca 100644 --- a/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/focal_point_modal.js @@ -320,7 +320,7 @@ class FocalPointModal extends ImmutablePureComponent { -
@@ -257,6 +259,7 @@ class ComposeForm extends ImmutablePureComponent { onSuggestionSelected={this.onSuggestionSelected} onPaste={onPaste} autoFocus={autoFocus} + lang={this.props.lang} > diff --git a/app/javascript/mastodon/features/compose/containers/compose_form_container.js b/app/javascript/mastodon/features/compose/containers/compose_form_container.js index 14cf9230bc..2b76422376 100644 --- a/app/javascript/mastodon/features/compose/containers/compose_form_container.js +++ b/app/javascript/mastodon/features/compose/containers/compose_form_container.js @@ -26,6 +26,7 @@ const mapStateToProps = state => ({ isUploading: state.getIn(['compose', 'is_uploading']), anyMedia: state.getIn(['compose', 'media_attachments']).size > 0, isInReply: state.getIn(['compose', 'in_reply_to']) !== null, + lang: state.getIn(['compose', 'language']), }); const mapDispatchToProps = (dispatch) => ({ From 4725191d3cc3fec26d6aa278cc8c2a44e4242ab3 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 24 Jan 2023 18:50:13 +0100 Subject: [PATCH 162/176] Fix moderation audit log items for warnings having incorrect links (#23242) --- app/helpers/admin/action_logs_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/admin/action_logs_helper.rb b/app/helpers/admin/action_logs_helper.rb index 215ecea0d7..4018ef6b1c 100644 --- a/app/helpers/admin/action_logs_helper.rb +++ b/app/helpers/admin/action_logs_helper.rb @@ -20,7 +20,7 @@ module Admin::ActionLogsHelper when 'Status' link_to log.human_identifier, log.permalink when 'AccountWarning' - link_to log.human_identifier, admin_account_path(log.target_id) + link_to log.human_identifier, disputes_strike_path(log.target_id) when 'Announcement' link_to truncate(log.human_identifier), edit_admin_announcement_path(log.target_id) when 'IpBlock', 'Instance', 'CustomEmoji' From 6883fddb19b1319a378aa5dc2034670c3b27ce39 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 24 Jan 2023 19:40:21 +0100 Subject: [PATCH 163/176] Fix account activation being triggered before email confirmation (#23245) * Add tests * Fix account activation being triggered before email confirmation Fixes #23098 --- app/models/user.rb | 28 ++++++-- spec/models/user_spec.rb | 134 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 152 insertions(+), 10 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 2a42ffaa16..d40044da38 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -195,10 +195,16 @@ class User < ApplicationRecord super - if new_user && approved? - prepare_new_user! - elsif new_user - notify_staff_about_pending_account! + if new_user + # Avoid extremely unlikely race condition when approving and confirming + # the user at the same time + reload unless approved? + + if approved? + prepare_new_user! + else + notify_staff_about_pending_account! + end end end @@ -209,7 +215,13 @@ class User < ApplicationRecord skip_confirmation! save! - prepare_new_user! if new_user && approved? + if new_user + # Avoid extremely unlikely race condition when approving and confirming + # the user at the same time + reload unless approved? + + prepare_new_user! if approved? + end end def update_sign_in!(new_sign_in: false) @@ -260,7 +272,11 @@ class User < ApplicationRecord return if approved? update!(approved: true) - prepare_new_user! + + # Avoid extremely unlikely race condition when approving and confirming + # the user at the same time + reload unless confirmed? + prepare_new_user! if confirmed? end def otp_enabled? diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index a7da31e606..4b3d6101fd 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -142,10 +142,136 @@ RSpec.describe User, type: :model do end describe '#confirm' do - it 'sets email to unconfirmed_email' do - user = Fabricate.build(:user, confirmed_at: Time.now.utc, unconfirmed_email: 'new-email@example.com') - user.confirm - expect(user.email).to eq 'new-email@example.com' + let(:new_email) { 'new-email@example.com' } + + subject { user.confirm } + + before do + allow(TriggerWebhookWorker).to receive(:perform_async) + end + + context 'when the user is already confirmed' do + let!(:user) { Fabricate(:user, confirmed_at: Time.now.utc, approved: true, unconfirmed_email: new_email) } + + it 'sets email to unconfirmed_email' do + expect { subject }.to change { user.reload.email }.to(new_email) + end + + it 'does not trigger the account.approved Web Hook' do + subject + expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id) + end + end + + context 'when the user is a new user' do + let(:user) { Fabricate(:user, confirmed_at: nil, unconfirmed_email: new_email) } + + context 'when the user is already approved' do + around(:example) do |example| + registrations_mode = Setting.registrations_mode + Setting.registrations_mode = 'approved' + + example.run + + Setting.registrations_mode = registrations_mode + end + + before do + user.approve! + end + + it 'sets email to unconfirmed_email' do + expect { subject }.to change { user.reload.email }.to(new_email) + end + + it 'triggers the account.approved Web Hook' do + user.confirm + expect(TriggerWebhookWorker).to have_received(:perform_async).with('account.approved', 'Account', user.account_id).once + end + end + + context 'when the user does not require explicit approval' do + around(:example) do |example| + registrations_mode = Setting.registrations_mode + Setting.registrations_mode = 'open' + + example.run + + Setting.registrations_mode = registrations_mode + end + + it 'sets email to unconfirmed_email' do + expect { subject }.to change { user.reload.email }.to(new_email) + end + + it 'triggers the account.approved Web Hook' do + user.confirm + expect(TriggerWebhookWorker).to have_received(:perform_async).with('account.approved', 'Account', user.account_id).once + end + end + + context 'when the user requires explicit approval but is not approved' do + around(:example) do |example| + registrations_mode = Setting.registrations_mode + Setting.registrations_mode = 'approved' + + example.run + + Setting.registrations_mode = registrations_mode + end + + it 'sets email to unconfirmed_email' do + expect { subject }.to change { user.reload.email }.to(new_email) + end + + it 'does not trigger the account.approved Web Hook' do + subject + expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id) + end + end + end + end + + describe '#approve!' do + subject { user.approve! } + + around(:example) do |example| + registrations_mode = Setting.registrations_mode + Setting.registrations_mode = 'approved' + + example.run + + Setting.registrations_mode = registrations_mode + end + + before do + allow(TriggerWebhookWorker).to receive(:perform_async) + end + + context 'when the user is already confirmed' do + let(:user) { Fabricate(:user, confirmed_at: Time.now.utc, approved: false) } + + it 'sets the approved flag' do + expect { subject }.to change { user.reload.approved? }.to(true) + end + + it 'triggers the account.approved Web Hook' do + subject + expect(TriggerWebhookWorker).to have_received(:perform_async).with('account.approved', 'Account', user.account_id).once + end + end + + context 'when the user is not confirmed' do + let(:user) { Fabricate(:user, confirmed_at: nil, approved: false) } + + it 'sets the approved flag' do + expect { subject }.to change { user.reload.approved? }.to(true) + end + + it 'does not trigger the account.approved Web Hook' do + subject + expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id) + end end end From dd58db64d87896698a840b6cffe06a0e816674ef Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 24 Jan 2023 20:18:25 +0100 Subject: [PATCH 164/176] Change email address input to be disabled for logged-in users when requesting a new confirmation e-mail (#23247) Fixes #23093 --- app/views/auth/confirmations/new.html.haml | 2 +- config/locales/en.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/auth/confirmations/new.html.haml b/app/views/auth/confirmations/new.html.haml index a294d3cb5f..a98257873c 100644 --- a/app/views/auth/confirmations/new.html.haml +++ b/app/views/auth/confirmations/new.html.haml @@ -5,7 +5,7 @@ = render 'shared/error_messages', object: resource .fields-group - = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, hint: false + = f.input :email, autofocus: true, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, readonly: current_user.present?, hint: current_user.present? && t('auth.confirmations.wrong_email_hint') .actions = f.button :button, t('auth.resend_confirmation'), type: :submit diff --git a/config/locales/en.yml b/config/locales/en.yml index 3de2f2772c..39ff4236a1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -965,6 +965,8 @@ en: auth: apply_for_account: Request an account change_password: Password + confirmations: + wrong_email_hint: If that e-mail address is not correct, you can change it in account settings. delete_account: Delete account delete_account_html: If you wish to delete your account, you can proceed here. You will be asked for confirmation. description: From a5a00d7f7adff5e0afbd23ac1e1b16120137509a Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 24 Jan 2023 20:18:41 +0100 Subject: [PATCH 165/176] Fix email with empty domain name labels passing validation (#23246) * Fix email with empty domain name labels passing validation `EmailMxValidator` would allow empty labels because `Resolv::DNS` is particularly lenient about them, but the email would be invalid and unusable. * Add tests --- app/validators/email_mx_validator.rb | 2 ++ spec/validators/email_mx_validator_spec.rb | 27 ++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb index 20f2fd37c6..19c57bdf66 100644 --- a/app/validators/email_mx_validator.rb +++ b/app/validators/email_mx_validator.rb @@ -10,6 +10,8 @@ class EmailMxValidator < ActiveModel::Validator if domain.blank? user.errors.add(:email, :invalid) + elsif domain.include?('..') + user.errors.add(:email, :invalid) elsif !on_allowlist?(domain) resolved_ips, resolved_domains = resolve_mx(domain) diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb index 4feedd0c7f..6640d6058e 100644 --- a/spec/validators/email_mx_validator_spec.rb +++ b/spec/validators/email_mx_validator_spec.rb @@ -28,6 +28,33 @@ describe EmailMxValidator do end end + it 'adds no error if there are DNS records for the e-mail domain' do + resolver = double + + allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([]) + allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([Resolv::DNS::Resource::IN::A.new('192.0.2.42')]) + allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([]) + allow(resolver).to receive(:timeouts=).and_return(nil) + allow(Resolv::DNS).to receive(:open).and_yield(resolver) + + subject.validate(user) + expect(user.errors).not_to have_received(:add) + end + + it 'adds an error if the email domain name contains empty labels' do + resolver = double + + allow(resolver).to receive(:getresources).with('example..com', Resolv::DNS::Resource::IN::MX).and_return([]) + allow(resolver).to receive(:getresources).with('example..com', Resolv::DNS::Resource::IN::A).and_return([Resolv::DNS::Resource::IN::A.new('192.0.2.42')]) + allow(resolver).to receive(:getresources).with('example..com', Resolv::DNS::Resource::IN::AAAA).and_return([]) + allow(resolver).to receive(:timeouts=).and_return(nil) + allow(Resolv::DNS).to receive(:open).and_yield(resolver) + + user = double(email: 'foo@example..com', sign_up_ip: '1.2.3.4', errors: double(add: nil)) + subject.validate(user) + expect(user.errors).to have_received(:add) + end + it 'adds an error if there are no DNS records for the e-mail domain' do resolver = double From cf3ad10e7557a03295d1b86e981a501097615127 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 23 Jan 2023 17:42:58 +0100 Subject: [PATCH 166/176] [Glitch] Fix upload area display in single-column mode Port 54e798a5a05bbe0ef4145337093ec8f8a8196f77 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/styles/components/index.scss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index d50316366b..d4c0d77c84 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -1585,14 +1585,14 @@ button.icon-button.active i.fa-retweet { align-items: center; background: rgba($base-overlay-background, 0.8); display: flex; - height: 100%; + height: 100vh; justify-content: center; left: 0; opacity: 0; - position: absolute; + position: fixed; top: 0; visibility: hidden; - width: 100%; + width: 100vw; z-index: 2000; * { From 78b822c61d19bc258117a7b186da491c9f793a2e Mon Sep 17 00:00:00 2001 From: Mina Her Date: Wed, 25 Jan 2023 00:24:46 +0900 Subject: [PATCH 167/176] [Glitch] Make
diff --git a/app/javascript/flavours/glitch/features/compose/components/compose_form.js b/app/javascript/flavours/glitch/features/compose/components/compose_form.js index 0462c7c4b7..2b57cf15d8 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.js @@ -61,6 +61,7 @@ class ComposeForm extends ImmutablePureComponent { anyMedia: PropTypes.bool, isInReply: PropTypes.bool, singleColumn: PropTypes.bool, + lang: PropTypes.string, advancedOptions: ImmutablePropTypes.map, layout: PropTypes.string, @@ -325,6 +326,7 @@ class ComposeForm extends ImmutablePureComponent { searchTokens={[':']} id='glitch.composer.spoiler.input' className='spoiler-input__input' + lang={this.props.lang} autoFocus={false} />
@@ -343,6 +345,7 @@ class ComposeForm extends ImmutablePureComponent { onSuggestionSelected={this.onSuggestionSelected} onPaste={onPaste} autoFocus={!showSearch && !isMobile(window.innerWidth, layout)} + lang={this.props.lang} > diff --git a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js index d12c98c01d..8f2947672b 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js @@ -70,6 +70,7 @@ function mapStateToProps (state) { mediaDescriptionConfirmation: state.getIn(['local_settings', 'confirm_missing_media_description']), preselectOnReply: state.getIn(['local_settings', 'preselect_on_reply']), isInReply: state.getIn(['compose', 'in_reply_to']) !== null, + lang: state.getIn(['compose', 'language']), }; }; From ffea6680761b4b9debf32317912216c093d457d8 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 23 Jan 2023 13:21:50 +0100 Subject: [PATCH 169/176] [Glitch] Fix missing filtering on some notification types Port 98779535fe46b3100b46c37f5d423f672b57f756 to glitch-soc Signed-off-by: Claire --- .../glitch/features/notifications/components/notification.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/javascript/flavours/glitch/features/notifications/components/notification.js b/app/javascript/flavours/glitch/features/notifications/components/notification.js index d676a4207c..d1aea1b21d 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/notification.js +++ b/app/javascript/flavours/glitch/features/notifications/components/notification.js @@ -124,6 +124,7 @@ export default class Notification extends ImmutablePureComponent { onMoveDown={onMoveDown} onMoveUp={onMoveUp} onMention={onMention} + contextType='notifications' getScrollPosition={getScrollPosition} updateScrollBottom={updateScrollBottom} cachedMediaWidth={this.props.cachedMediaWidth} @@ -146,6 +147,7 @@ export default class Notification extends ImmutablePureComponent { onMoveDown={onMoveDown} onMoveUp={onMoveUp} onMention={onMention} + contextType='notifications' getScrollPosition={getScrollPosition} updateScrollBottom={updateScrollBottom} cachedMediaWidth={this.props.cachedMediaWidth} @@ -168,6 +170,7 @@ export default class Notification extends ImmutablePureComponent { onMoveDown={onMoveDown} onMoveUp={onMoveUp} onMention={onMention} + contextType='notifications' getScrollPosition={getScrollPosition} updateScrollBottom={updateScrollBottom} cachedMediaWidth={this.props.cachedMediaWidth} @@ -190,6 +193,7 @@ export default class Notification extends ImmutablePureComponent { onMoveDown={onMoveDown} onMoveUp={onMoveUp} onMention={onMention} + contextType='notifications' getScrollPosition={getScrollPosition} updateScrollBottom={updateScrollBottom} cachedMediaWidth={this.props.cachedMediaWidth} @@ -212,6 +216,7 @@ export default class Notification extends ImmutablePureComponent { onMoveDown={onMoveDown} onMoveUp={onMoveUp} onMention={onMention} + contextType='notifications' getScrollPosition={getScrollPosition} updateScrollBottom={updateScrollBottom} cachedMediaWidth={this.props.cachedMediaWidth} From 2f112432e646277d4630d49d9c71da74eb75934b Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Jan 2023 16:20:54 +0100 Subject: [PATCH 170/176] Bump version to 4.1.0rc2 (#23220) --- CHANGELOG.md | 13 +++++++++++-- lib/mastodon/version.rb | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ead69ded61..9a1ad4ffcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ All notable changes to this project will be documented in this file. - Add listing of followed hashtags ([connorshea](https://github.com/mastodon/mastodon/pull/21773)) - Add support for editing media description and focus point of already-sent posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20878)) - Add follow request banner on account header ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20785)) -- Add confirmation screen when handling reports ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22375), [Gargron](https://github.com/mastodon/mastodon/pull/23156)) +- Add confirmation screen when handling reports ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22375), [Gargron](https://github.com/mastodon/mastodon/pull/23156), [tribela](https://github.com/mastodon/mastodon/pull/23178)) - Add option to make the landing page be `/about` even when trends are enabled ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20808)) - Add `noindex` setting back to the admin interface ([prplecake](https://github.com/mastodon/mastodon/pull/22205)) - Add instance peers API endpoint toggle back to the admin interface ([dariusk](https://github.com/mastodon/mastodon/pull/22810)) @@ -42,6 +42,7 @@ All notable changes to this project will be documented in this file. - Add left and right margins to emojis ([dsblank](https://github.com/mastodon/mastodon/pull/20464)) - Add `reading:autoplay:gifs` to `/api/v1/preferences` ([j-f1](https://github.com/mastodon/mastodon/pull/22706)) - Add `hide_collections` parameter to `/api/v1/accounts/credentials` ([CarlSchwan](https://github.com/mastodon/mastodon/pull/22790)) +- Add `policy` attribute to web push subscription objects in `/api/v1/push/subscriptions` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23210)) - Add more specific error messages to HTTP signature verification ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21617)) - Add Storj DCS to cloud object storage options in the `mastodon:setup` rake task ([jtolio](https://github.com/mastodon/mastodon/pull/21929)) - Add checkmark symbol in the checkbox for sensitive media ([sidp](https://github.com/mastodon/mastodon/pull/22795)) @@ -49,6 +50,7 @@ All notable changes to this project will be documented in this file. - Add missing accessibility attributes to “Hide image” button in `MediaGallery` ([hs4man21](https://github.com/mastodon/mastodon/pull/22513)) - Add missing accessibility attributes to hide content warning field when disabled ([hs4man21](https://github.com/mastodon/mastodon/pull/22568)) - Add `aria-hidden` to footer circle dividers to improve accessibility ([hs4man21](https://github.com/mastodon/mastodon/pull/22576)) +- Add `lang` attribute to compose form inputs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23240)) ### Changed @@ -66,6 +68,7 @@ All notable changes to this project will be documented in this file. - Change language surrounding disability in prompts for media descriptions ([hs4man21](https://github.com/mastodon/mastodon/pull/20923)) - Change confusing wording in the sign in banner ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22490)) - Change account moderation notes to make links clickable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22553)) +- Change email address input to be read-only for logged-in users when requesting a new confirmation e-mail ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23247)) - Save avatar or header correctly even if the other one fails ([tribela](https://github.com/mastodon/mastodon/pull/18465)) - Change `referrer-policy` to `same-origin` application-wide ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23014), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23037)) - Add 'private' to `Cache-Control`, match Rails expectations ([daxtens](https://github.com/mastodon/mastodon/pull/20608)) @@ -97,7 +100,6 @@ All notable changes to this project will be documented in this file. ### Removed - Officially remove support for Ruby 2.6 ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21477)) -- Remove LDSignature on actor Delete activities ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21466)) - Remove `object-fit` polyfill used for old versions of Microsoft Edge ([shuuji3](https://github.com/mastodon/mastodon/pull/22693)) - Remove empty `title` tag from mailer layout ([nametoolong](https://github.com/mastodon/mastodon/pull/23078)) @@ -107,8 +109,11 @@ All notable changes to this project will be documented in this file. - Fix suspension worker crashing on S3-compatible setups without ACL support ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22487)) - Fix possible race conditions when suspending/unsuspending accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22363)) - Fix being stuck in edit mode when deleting the edited status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22126)) +- Fix filters not being applied to some notification types ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23211)) - Fix some performance issues with `/admin/instances` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21907)) - Fix some pre-4.0 admin audit logs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22091)) +- Fix moderation audit log items for warnings having incorrect links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23242)) +- Fix account activation being sometimes triggered before email confirmation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23245)) - Fix missing OAuth scopes for admin APIs ([trwnh](https://github.com/mastodon/mastodon/pull/20918), [trwnh](https://github.com/mastodon/mastodon/pull/20979)) - Fix voter count not being cleared when a poll is reset ([afontenot](https://github.com/mastodon/mastodon/pull/21700)) - Fix attachments of edited statuses not being fetched ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21565)) @@ -116,15 +121,19 @@ All notable changes to this project will be documented in this file. - Fix 500 error when marking posts as sensitive while some of them are deleted ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22134)) - Fix expanded statuses not always being scrolled into view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21797)) - Fix not being able to scroll the remote interaction modal on small screens ([xendke](https://github.com/mastodon/mastodon/pull/21763)) +- Fix audio player volume control on Safari ([minacle](https://github.com/mastodon/mastodon/pull/23187)) - Fix disappearing “Explore” tabs on Safari ([nyura](https://github.com/mastodon/mastodon/pull/20917), [ykzts](https://github.com/mastodon/mastodon/pull/20982)) - Fix wrong padding in RTL layout ([Gargron](https://github.com/mastodon/mastodon/pull/23157)) +- Fix drag & drop upload area display in single-column mode ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23217)) - Fix being unable to get a single EmailDomainBlock from the admin API ([trwnh](https://github.com/mastodon/mastodon/pull/20846)) - Fix pagination of followed tags ([trwnh](https://github.com/mastodon/mastodon/pull/20861)) - Fix dropdown menu positions when scrolling ([sidp](https://github.com/mastodon/mastodon/pull/22916), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23062)) +- Fix email with empty domain name labels passing validation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23246)) - Fix mysterious registration failure when “Require a reason to join” is set with open registrations ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22127)) - Fix attachment rendering of edited posts in OpenGraph ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22270)) - Fix invalid/empty RSS feed link on account pages ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20772)) - Fix error in `VerifyLinkService` when processing links with no href ([joshuap](https://github.com/mastodon/mastodon/pull/20741)) +- Fix error in `VerifyLinkService` when processing links with invalid URLs ([untitaker](https://github.com/mastodon/mastodon/pull/23204)) - Fix media uploads with FFmpeg 5 ([dead10ck](https://github.com/mastodon/mastodon/pull/21191)) - Fix sensitive flag not being set when replying to a post with a content warning under certain conditions ([kedamaDQ](https://github.com/mastodon/mastodon/pull/21724)) - Fix “Share @user's profile” profile menu item not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21490)) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index a7802b8cee..cc20122c1d 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -17,7 +17,7 @@ module Mastodon end def flags - 'rc1' + 'rc2' end def suffix From e5ae75bf6a88ff70570df43635e75db904e40a50 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Jan 2023 16:28:29 +0100 Subject: [PATCH 171/176] Fix styling of featured tags in light theme (#23252) * Fix styling of featured tags in light theme Fixes #23251 * Remove broken highlighting on /settings/featured_tags --- .../styles/mastodon-light/diff.scss | 19 ------------------- .../settings/featured_tags/index.html.haml | 2 +- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 596b7786bd..c37100a28f 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -551,25 +551,6 @@ html { } } -.directory__tag.active > a, -.directory__tag.active > div { - border-color: $ui-highlight-color; - - &, - h4, - h4 small, - .fa, - .trends__item__current { - color: $white; - } - - &:hover, - &:active, - &:focus { - background: $ui-highlight-color; - } -} - .batch-table { &__toolbar, &__row, diff --git a/app/views/settings/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml index 078abd7882..3ead9d2e2a 100644 --- a/app/views/settings/featured_tags/index.html.haml +++ b/app/views/settings/featured_tags/index.html.haml @@ -17,7 +17,7 @@ %hr.spacer/ - @featured_tags.each do |featured_tag| - .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil } + .directory__tag %div %h4 = fa_icon 'hashtag' From 20934363492db6a33bf89726444c7a41eaa8d854 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Jan 2023 16:28:29 +0100 Subject: [PATCH 172/176] [Glitch] Fix styling of featured tags in light theme Port e5ae75bf6a88ff70570df43635e75db904e40a50 to glitch-soc Signed-off-by: Claire --- .../glitch/styles/mastodon-light/diff.scss | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index c23a05c511..b97c6c5ad6 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -551,25 +551,6 @@ html { } } -.directory__tag.active > a, -.directory__tag.active > div { - border-color: $ui-highlight-color; - - &, - h4, - h4 small, - .fa, - .trends__item__current { - color: $white; - } - - &:hover, - &:active, - &:focus { - background: $ui-highlight-color; - } -} - .batch-table { &__toolbar, &__row, From 13a2abacc8f943e2b1d2da63551443887e1065b0 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Jan 2023 19:55:40 +0100 Subject: [PATCH 173/176] Add `roles` attribute to Account entities in REST API (#23255) --- app/models/status.rb | 4 ++-- app/serializers/rest/account_serializer.rb | 18 ++++++++++++++++++ spec/fabricators/user_role_fabricator.rb | 6 +++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/models/status.rb b/app/models/status.rb index fa9fb9fad3..b1c49e99a4 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -117,7 +117,7 @@ class Status < ApplicationRecord :tags, :preview_cards, :preloadable_poll, - account: [:account_stat, :user], + account: [:account_stat, user: :role], active_mentions: { account: :account_stat }, reblog: [ :application, @@ -127,7 +127,7 @@ class Status < ApplicationRecord :conversation, :status_stat, :preloadable_poll, - account: [:account_stat, :user], + account: [:account_stat, user: :role], active_mentions: { account: :account_stat }, ], thread: { account: :account_stat } diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index 6582b5bcf6..62eac1fbde 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -26,6 +26,16 @@ class REST::AccountSerializer < ActiveModel::Serializer end end + class RoleSerializer < ActiveModel::Serializer + attributes :id, :name, :color + + def id + object.id.to_s + end + end + + has_many :roles, serializer: RoleSerializer, if: :local? + class FieldSerializer < ActiveModel::Serializer include FormattingHelper @@ -114,6 +124,14 @@ class REST::AccountSerializer < ActiveModel::Serializer object.silenced? end + def roles + if object.suspended? + [] + else + [object.user.role].compact.filter { |role| role.highlighted? } + end + end + def noindex object.user_prefers_noindex? end diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb index 28f76c8c47..ed0a7dc1f3 100644 --- a/spec/fabricators/user_role_fabricator.rb +++ b/spec/fabricators/user_role_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:user_role) do name "MyString" - color "MyString" - permissions "" -end \ No newline at end of file + color "" + permissions 0 +end From 20abef6590505d12aca81ed1c386804d75b8b552 Mon Sep 17 00:00:00 2001 From: neatchee Date: Thu, 26 Jan 2023 10:36:44 -0800 Subject: [PATCH 174/176] Allow users to set the trigger height for lengthy toot auto-collapse (#2070) * Allow users to set the trigger height for lengthy toot autocollapse Add a field in the glitch-soc preferences to set the exact height in pixels of a "lengthy toot" where auto-collapse is triggered Originally authored by Dean Bassett (github.com/deanveloper) Squashed 3 commits from neatchee/mastodon and returned some values to project defaults: * ef665c1df5821e684c8da3392049f33243fafa74 * 0fce108d210efe55027a3af061bfc57aaaa83843 * 998f701a2b2e37edbda7dffb11a61f67f5559b18 * Remove bad escape characters * Apply feedback from glitch-soc code review - move input width specification to CSS - adjust language for clarity * Update comments re: lengthy toot height * Fix inconsistent indentation * Use a calculated width that scales better with browser font instead of static 45px width --- .../flavours/glitch/components/status.js | 9 +++++++-- .../glitch/features/local_settings/page/index.js | 14 +++++++++++++- .../features/local_settings/page/item/index.js | 14 ++++++++++---- app/javascript/flavours/glitch/locales/en.json | 1 + .../flavours/glitch/reducers/local_settings.js | 1 + .../glitch/styles/components/local_settings.scss | 4 ++++ 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status.js b/app/javascript/flavours/glitch/components/status.js index 409ec0adc5..cbd8eb31cd 100644 --- a/app/javascript/flavours/glitch/components/status.js +++ b/app/javascript/flavours/glitch/components/status.js @@ -224,7 +224,7 @@ class Status extends ImmutablePureComponent { // - The user has decided to collapse all notifications ('muted' // statuses). // - The user has decided to collapse long statuses and the status is - // over 400px (without media, or 650px with). + // over the user set value (default 400 without media, or 610px with). // - The status is a reply and the user has decided to collapse all // replies. // - The status contains media and the user has decided to collapse all @@ -251,10 +251,15 @@ class Status extends ImmutablePureComponent { // as it could cause surprising changes when receiving notifications if (settings.getIn(['content_warnings', 'shared_state']) && status.get('spoiler_text').length && !status.get('hidden')) return; + let autoCollapseHeight = parseInt(autoCollapseSettings.get('height')); + if (status.get('media_attachments').size && !muted) { + autoCollapseHeight += 210; + } + if (collapse || autoCollapseSettings.get('all') || (autoCollapseSettings.get('notifications') && muted) || - (autoCollapseSettings.get('lengthy') && node.clientHeight > ((status.get('media_attachments').size && !muted) ? 650 : 400)) || + (autoCollapseSettings.get('lengthy') && node.clientHeight > autoCollapseHeight) || (autoCollapseSettings.get('reblogs') && prepend === 'reblogged_by') || (autoCollapseSettings.get('replies') && status.get('in_reply_to_id', null) !== null) || (autoCollapseSettings.get('media') && !(status.get('spoiler_text').length) && status.get('media_attachments').size > 0) diff --git a/app/javascript/flavours/glitch/features/local_settings/page/index.js b/app/javascript/flavours/glitch/features/local_settings/page/index.js index d01eec811e..d1573da9c2 100644 --- a/app/javascript/flavours/glitch/features/local_settings/page/index.js +++ b/app/javascript/flavours/glitch/features/local_settings/page/index.js @@ -5,7 +5,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; // Our imports -import { expandSpoilers, disableSwiping } from 'flavours/glitch/initial_state'; +import { expandSpoilers } from 'flavours/glitch/initial_state'; import { preferenceLink } from 'flavours/glitch/utils/backend_links'; import LocalSettingsPageItem from './item'; import DeprecatedLocalSettingsPageItem from './deprecated_item'; @@ -406,6 +406,18 @@ class LocalSettingsPage extends React.PureComponent { > + + +

diff --git a/app/javascript/flavours/glitch/features/local_settings/page/item/index.js b/app/javascript/flavours/glitch/features/local_settings/page/item/index.js index 6b24e41435..86da640ba7 100644 --- a/app/javascript/flavours/glitch/features/local_settings/page/item/index.js +++ b/app/javascript/flavours/glitch/features/local_settings/page/item/index.js @@ -14,6 +14,7 @@ export default class LocalSettingsPageItem extends React.PureComponent { id: PropTypes.string.isRequired, item: PropTypes.array.isRequired, onChange: PropTypes.func.isRequired, + inputProps: PropTypes.object, options: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string.isRequired, message: PropTypes.string.isRequired, @@ -34,7 +35,7 @@ export default class LocalSettingsPageItem extends React.PureComponent { render () { const { handleChange } = this; - const { settings, item, id, options, children, dependsOn, dependsOnNot, placeholder, disabled } = this.props; + const { settings, item, id, inputProps, options, children, dependsOn, dependsOnNot, placeholder, disabled } = this.props; let enabled = !disabled; if (dependsOn) { @@ -54,14 +55,17 @@ export default class LocalSettingsPageItem extends React.PureComponent { let optionId = `${id}--${opt.value}`; return ( @@ -103,7 +108,8 @@ export default class LocalSettingsPageItem extends React.PureComponent { checked={settings.getIn(item)} onChange={handleChange} disabled={!enabled} - /> + {...inputProps} + /> {children}
diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json index 59f2f74b1e..7c21f69c3c 100644 --- a/app/javascript/flavours/glitch/locales/en.json +++ b/app/javascript/flavours/glitch/locales/en.json @@ -103,6 +103,7 @@ "settings.auto_collapse_all": "Everything", "settings.auto_collapse_lengthy": "Lengthy toots", "settings.auto_collapse_media": "Toots with media", + "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy", "settings.auto_collapse_notifications": "Notifications", "settings.auto_collapse_reblogs": "Boosts", "settings.auto_collapse_replies": "Replies", diff --git a/app/javascript/flavours/glitch/reducers/local_settings.js b/app/javascript/flavours/glitch/reducers/local_settings.js index 81ab1cb0d8..9075146f3e 100644 --- a/app/javascript/flavours/glitch/reducers/local_settings.js +++ b/app/javascript/flavours/glitch/reducers/local_settings.js @@ -37,6 +37,7 @@ const initialState = ImmutableMap({ reblogs : false, replies : false, media : false, + height : 400, }), backgrounds : ImmutableMap({ user_backgrounds : false, diff --git a/app/javascript/flavours/glitch/styles/components/local_settings.scss b/app/javascript/flavours/glitch/styles/components/local_settings.scss index db2b9f154e..f36b21e1cd 100644 --- a/app/javascript/flavours/glitch/styles/components/local_settings.scss +++ b/app/javascript/flavours/glitch/styles/components/local_settings.scss @@ -110,6 +110,10 @@ text-decoration: none; } } + + #mastodon-settings--collapsed-auto-height { + width: calc(4ch + 20px); + } } .glitch.local-settings__page__item.string, From d9a078e6d35b54804cfa696f1b2989b9769b8488 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 26 Jan 2023 23:35:23 +0100 Subject: [PATCH 175/176] Add role badges to WebUI (#2096) * [Glitch] Add role badges to WebUI Signed-off-by: Claire * [Glitch] Ensure role name remains readable Signed-off-by: Claire Signed-off-by: Claire --- .../glitch/features/account/components/header.js | 6 ++++++ .../flavours/glitch/styles/accounts.scss | 2 +- .../glitch/styles/components/accounts.scss | 14 +++++++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js index 071d00bb4c..963ce7bf3f 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.js +++ b/app/javascript/flavours/glitch/features/account/components/header.js @@ -321,6 +321,11 @@ class Header extends ImmutablePureComponent { badge = null; } + let role = null; + if (account.getIn(['roles', 0])) { + role = (
{account.getIn(['roles', 0, 'name'])}
); + } + return (
{!(suspended || hidden || account.get('moved')) && account.getIn(['relationship', 'requested_by']) && } @@ -337,6 +342,7 @@ class Header extends ImmutablePureComponent {
{!suspended && ( diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss index cdc506cf45..2158a691ff 100644 --- a/app/javascript/flavours/glitch/styles/accounts.scss +++ b/app/javascript/flavours/glitch/styles/accounts.scss @@ -214,7 +214,7 @@ font-size: 12px; line-height: 12px; font-weight: 500; - color: var(--user-role-accent, $ui-secondary-color); + color: $ui-secondary-color; background-color: var(--user-role-background, rgba($ui-secondary-color, 0.1)); border: 1px solid var(--user-role-border, rgba($ui-secondary-color, 0.5)); diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss index 5b3e1db1bc..c2a6593b1a 100644 --- a/app/javascript/flavours/glitch/styles/components/accounts.scss +++ b/app/javascript/flavours/glitch/styles/components/accounts.scss @@ -533,14 +533,22 @@ &__tabs { display: flex; - align-items: flex-start; + align-items: flex-end; justify-content: space-between; padding: 7px 10px; - margin-top: -55px; - gap: 8px; + margin-top: -81px; + height: 130px; overflow: hidden; margin-left: -2px; // aligns the pfp with content below + .account-role { + margin: 0 2px; + padding: 4px 0; + box-sizing: border-box; + min-width: 90px; + text-align: center; + } + &__buttons { display: flex; align-items: center; From ec26f7c1b16ca1429991212292e35e520c617485 Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 28 Jan 2023 10:20:55 +0100 Subject: [PATCH 176/176] New translations en.json (German) (#2097) [ci skip] --- app/javascript/flavours/glitch/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json index c5e3cdb35e..a8f189bf42 100644 --- a/app/javascript/flavours/glitch/locales/de.json +++ b/app/javascript/flavours/glitch/locales/de.json @@ -103,6 +103,7 @@ "settings.auto_collapse_all": "Alles", "settings.auto_collapse_lengthy": "Lange Toots", "settings.auto_collapse_media": "Toots mit Anhängen", + "settings.auto_collapse_height": "Höhe (in Pixeln), ab der ein Toot als lang gilt", "settings.auto_collapse_notifications": "Benachrichtigungen", "settings.auto_collapse_reblogs": "Geteilte Toots", "settings.auto_collapse_replies": "Antworten",